npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@h6s-ai/web

v0.4.0

Published

headless 자격증명 등록 SDK — 플랫폼 파트너가 end-user 자격증명을 headless 호스팅 페이지로 안전하게 등록하기 위한 vanilla JS 라이브러리

Downloads

675

Readme

@h6s-ai/web — headless Web SDK

브라우저에서 자격증명 등록을 처리하는 vanilla JavaScript SDK입니다. 직접 UI 를 그리는 headless 모드와 관리형 위젯을 제공합니다.

설치

npm i @h6s-ai/web

빠른 시작 — headless (BYO-UI)

import { createRegistration, getCertificateAgentDownloadUrl } from "@h6s-ai/web";

const reg = createRegistration({ sessionToken }); // 백엔드에서 발급받은 1회용 토큰

await reg.load(); // 폼 메타데이터·공개키 로드

// 공동인증서 — 설치된 인증서 에이전트에서 선택
const certs = await reg.certificates.list();
const installUrl = getCertificateAgentDownloadUrl(); // 에이전트 설치 링크가 필요할 때 사용
await reg.certificates.register({ certificateId: certs[0].id, password });

// 공동인증서 — 파일을 직접 업로드 (에이전트 없이)
// PFX 한 파일
await reg.certificates.registerFromFile({
  mode: "pfx",
  pfx: await pfxFile.arrayBuffer(),
  password,
});
// 또는 인증서 + 개인키 두 파일
await reg.certificates.registerFromFile({
  mode: "split",
  cert: await derFile.arrayBuffer(),
  key: await keyFile.arrayBuffer(),
  password,
});

// 기관 아이디
await reg.login.register({
  providerCode: "kb_bank",
  fields: { loginId, loginPw },
});

reg.on("success", ({ credentialId }) => {
  // credentialId 를 파트너 시스템의 사용자와 연결합니다
});
reg.on("error", (error) => {
  // error.code · error.retryable 로 분기합니다
});

인증서 목록·입력칸·버튼은 직접 렌더합니다. SDK 는 필요한 조회와 등록 제출만 처리합니다. 파일 업로드 폼을 그릴 때는 reg.load() 가 돌려준 인증서 옵션의 certSchema.inputModes 로 어떤 모드(pfx/split)와 입력 필드가 있는지 확인할 수 있습니다.

공동인증서 에이전트 설치 URL

import { getCertificateAgentDownloadUrl } from "@h6s-ai/web";

const href = getCertificateAgentDownloadUrl();
const macHref = getCertificateAgentDownloadUrl({ platform: "macos" });

현재 브라우저의 플랫폼을 자동 감지합니다. 모바일·서버 환경처럼 설치 파일이 없는 경우에는 null 을 반환합니다.

관리형 위젯 — @h6s-ai/web/embedded

UI 까지 h6s 가 렌더하는 iframe/모달/hosted 흐름을 쓰려면 서브패스를 가져옵니다.

import { openRegistrationModal } from "@h6s-ai/web/embedded";

openRegistrationModal({
  sessionToken,
  onSuccess: ({ credentialId }) => {},
  onExit: ({ reason }) => {},
});
  • 파트너 모달·드로어 안에 iframe 만 임베드 (mountRegistration)
  • 호스팅 페이지로 직접 이동 (openHostedRegistration)

CDN <script> 로 로드하면 전역 window.h6s 에 관리형 표면과 에이전트 설치 URL 헬퍼가 노출됩니다 — Vanilla 가이드를 참고하세요.

sessionToken 은 백엔드에서

sessionToken 은 브라우저에서 만들지 않습니다. 파트너 백엔드가 API 키로 발급한 1회용 토큰을 받아 SDK 에 넘깁니다. 발급 호출과 옵션은 SDK 가이드에 정리되어 있습니다.