ns-auth-sdk 1.14.0 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cjs-CSUAVztq.cjs → browser-index.cjs} +5476 -296
- package/dist/browser-index.cjs.map +1 -0
- package/dist/browser-index.d.cts +1998 -0
- package/dist/browser-index.d.cts.map +1 -0
- package/dist/browser-index.d.mts +1998 -0
- package/dist/browser-index.d.mts.map +1 -0
- package/dist/{cjs-sm5h7qxv.mjs → browser-index.mjs} +5169 -69
- package/dist/browser-index.mjs.map +1 -0
- package/dist/{group-coordination-BlFpBVpn.mjs → group-coordination-BV6PKlKp.mjs} +1 -1
- package/dist/{group-coordination-BlFpBVpn.mjs.map → group-coordination-BV6PKlKp.mjs.map} +1 -1
- package/dist/{group-coordination-ImuoJEoy.mjs → group-coordination-BytkmY9j.mjs} +1 -1
- package/dist/{group-coordination-LGIyipaX.cjs → group-coordination-DL39hJ3R.cjs} +1 -1
- package/dist/{group-coordination-LGIyipaX.cjs.map → group-coordination-DL39hJ3R.cjs.map} +1 -1
- package/dist/{group-coordination-Cf18OjZt.cjs → group-coordination-DLban6a7.cjs} +1 -1
- package/dist/index.cjs +8899 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.mjs +9072 -213
- package/dist/index.mjs.map +1 -1
- package/dist/{prf-handler-D3EqUNWe.cjs → prf-handler-BNd7gmXJ.cjs} +1 -1
- package/dist/{prf-handler-D3EqUNWe.cjs.map → prf-handler-BNd7gmXJ.cjs.map} +1 -1
- package/dist/prf-handler-CRMgzJG2.cjs +3 -0
- package/dist/{prf-handler-Dly_WZGn.mjs → prf-handler-DG99ZkS2.mjs} +1 -1
- package/dist/{prf-handler-Db8CsoIP.mjs → prf-handler-Dj2WTO9i.mjs} +1 -1
- package/dist/{prf-handler-Db8CsoIP.mjs.map → prf-handler-Dj2WTO9i.mjs.map} +1 -1
- package/dist/zkm.service-Bv88tVS5.mjs +3 -0
- package/dist/zkm.service-D2BZ_aqA.cjs +3 -0
- package/dist/{zkm.service-DfSPbuOl.cjs → zkm.service-DX06sSfB.cjs} +1 -1
- package/dist/{zkm.service-DfSPbuOl.cjs.map → zkm.service-DX06sSfB.cjs.map} +1 -1
- package/dist/{zkm.service-B24N_0FB.mjs → zkm.service-j0HlN7Oq.mjs} +1 -1
- package/dist/{zkm.service-B24N_0FB.mjs.map → zkm.service-j0HlN7Oq.mjs.map} +1 -1
- package/package.json +19 -6
- package/dist/_esm-C7FRLTj2.cjs +0 -9030
- package/dist/_esm-C7FRLTj2.cjs.map +0 -1
- package/dist/_esm-D_oMW5T5.mjs +0 -9028
- package/dist/_esm-D_oMW5T5.mjs.map +0 -1
- package/dist/base64-js-B8y7dH5k.mjs +0 -93
- package/dist/base64-js-B8y7dH5k.mjs.map +0 -1
- package/dist/base64-js-Tm-kCeud.cjs +0 -98
- package/dist/base64-js-Tm-kCeud.cjs.map +0 -1
- package/dist/ccip-157tdxqP.cjs +0 -7947
- package/dist/ccip-157tdxqP.cjs.map +0 -1
- package/dist/ccip-BEMMdVyd.cjs +0 -4
- package/dist/ccip-BSmCdJ3K.mjs +0 -3
- package/dist/ccip-okqXkslP.mjs +0 -6567
- package/dist/ccip-okqXkslP.mjs.map +0 -1
- package/dist/chains-CTeD2UcS.mjs +0 -33
- package/dist/chains-CTeD2UcS.mjs.map +0 -1
- package/dist/chains-Du-lv_5i.cjs +0 -33
- package/dist/chains-Du-lv_5i.cjs.map +0 -1
- package/dist/chunk-Bnu9O96Y.cjs +0 -60
- package/dist/chunk-CVYhg9ik.mjs +0 -45
- package/dist/cjs-CSUAVztq.cjs.map +0 -1
- package/dist/cjs-sm5h7qxv.mjs.map +0 -1
- package/dist/defineChain-7QG67hYU.cjs +0 -30
- package/dist/defineChain-7QG67hYU.cjs.map +0 -1
- package/dist/defineChain-DBem8ZQY.mjs +0 -24
- package/dist/defineChain-DBem8ZQY.mjs.map +0 -1
- package/dist/dist-BPmSxkxc.cjs +0 -10676
- package/dist/dist-BPmSxkxc.cjs.map +0 -1
- package/dist/dist-BSjH4t6s.cjs +0 -12932
- package/dist/dist-BSjH4t6s.cjs.map +0 -1
- package/dist/dist-C-KjTK4Q.cjs +0 -447
- package/dist/dist-C-KjTK4Q.cjs.map +0 -1
- package/dist/dist-C2h97xM-.mjs +0 -355
- package/dist/dist-C2h97xM-.mjs.map +0 -1
- package/dist/dist-CT7grDWb.mjs +0 -12920
- package/dist/dist-CT7grDWb.mjs.map +0 -1
- package/dist/dist-D7fRmK6G.mjs +0 -10632
- package/dist/dist-D7fRmK6G.mjs.map +0 -1
- package/dist/dist-DlmcyFmM.mjs +0 -16951
- package/dist/dist-DlmcyFmM.mjs.map +0 -1
- package/dist/dist-O0uZr5OF.cjs +0 -17122
- package/dist/dist-O0uZr5OF.cjs.map +0 -1
- package/dist/echo-BB-JgAYZ.cjs +0 -339
- package/dist/echo-BB-JgAYZ.cjs.map +0 -1
- package/dist/echo-Bwy4_Cvh.mjs +0 -316
- package/dist/echo-Bwy4_Cvh.mjs.map +0 -1
- package/dist/echo-D6X2IuNW.cjs +0 -9
- package/dist/echo-DvfG_heb.mjs +0 -8
- package/dist/esm-BcHKCX5i.mjs +0 -569
- package/dist/esm-BcHKCX5i.mjs.map +0 -1
- package/dist/esm-Bh_YwFIz.cjs +0 -599
- package/dist/esm-Bh_YwFIz.cjs.map +0 -1
- package/dist/esm-C0XO9TQm.cjs +0 -30449
- package/dist/esm-C0XO9TQm.cjs.map +0 -1
- package/dist/esm-vMUVj9k4.mjs +0 -30440
- package/dist/esm-vMUVj9k4.mjs.map +0 -1
- package/dist/keyset-CKMQXvsb.mjs +0 -172
- package/dist/keyset-CKMQXvsb.mjs.map +0 -1
- package/dist/keyset-Cxdgu110.cjs +0 -237
- package/dist/keyset-Cxdgu110.cjs.map +0 -1
- package/dist/keyset-DLxpGhdu.cjs +0 -6
- package/dist/keyset-IKjlhvqF.mjs +0 -4
- package/dist/node-3EUJ4ga9.cjs +0 -9
- package/dist/node-C2UpE11T.cjs +0 -444
- package/dist/node-C2UpE11T.cjs.map +0 -1
- package/dist/node-CHdpTQdN.mjs +0 -8679
- package/dist/node-CHdpTQdN.mjs.map +0 -1
- package/dist/node-DQt1CVGl.mjs +0 -6
- package/dist/node-Dy8ww1LG.cjs +0 -8680
- package/dist/node-Dy8ww1LG.cjs.map +0 -1
- package/dist/node-IX55IH6z.mjs +0 -397
- package/dist/node-IX55IH6z.mjs.map +0 -1
- package/dist/nostr-BTOpBN_5.cjs +0 -11
- package/dist/nostr-D4E52XRU.mjs +0 -224
- package/dist/nostr-D4E52XRU.mjs.map +0 -1
- package/dist/nostr-Hv2tsnuI.cjs +0 -272
- package/dist/nostr-Hv2tsnuI.cjs.map +0 -1
- package/dist/nostr-ZwJe_DlZ.mjs +0 -4
- package/dist/pako.esm-DTVnlCJh.cjs +0 -3856
- package/dist/pako.esm-DTVnlCJh.cjs.map +0 -1
- package/dist/pako.esm-ORhkEHM2.mjs +0 -3838
- package/dist/pako.esm-ORhkEHM2.mjs.map +0 -1
- package/dist/peer-B9g3OQ5D.cjs +0 -18
- package/dist/peer-CptDj7zu.mjs +0 -745
- package/dist/peer-CptDj7zu.mjs.map +0 -1
- package/dist/peer-CtqL0yiE.mjs +0 -9
- package/dist/peer-XrPL0O6z.cjs +0 -822
- package/dist/peer-XrPL0O6z.cjs.map +0 -1
- package/dist/ping-BXKREIdI.mjs +0 -7
- package/dist/ping-BtVhKocl.cjs +0 -379
- package/dist/ping-BtVhKocl.cjs.map +0 -1
- package/dist/ping-D5fpMhGC.cjs +0 -11
- package/dist/ping-DOD50kW_.mjs +0 -332
- package/dist/ping-DOD50kW_.mjs.map +0 -1
- package/dist/policy-8HcjulLD.cjs +0 -293
- package/dist/policy-8HcjulLD.cjs.map +0 -1
- package/dist/policy-BA6MEOBY.mjs +0 -5
- package/dist/policy-BFNdXvmM.cjs +0 -11
- package/dist/policy-D_nFHHjo.mjs +0 -228
- package/dist/policy-D_nFHHjo.mjs.map +0 -1
- package/dist/prf-handler-BNiyCQMt.cjs +0 -3
- package/dist/src-CVfTUJQl.mjs +0 -822
- package/dist/src-CVfTUJQl.mjs.map +0 -1
- package/dist/src-D5S86Xpf.cjs +0 -827
- package/dist/src-D5S86Xpf.cjs.map +0 -1
- package/dist/types-B-TLIS13.cjs +0 -212
- package/dist/types-B-TLIS13.cjs.map +0 -1
- package/dist/types-CTm_FHYD.mjs +0 -111
- package/dist/types-CTm_FHYD.mjs.map +0 -1
- package/dist/validation-1xwWVXqE.mjs +0 -3
- package/dist/validation-DnpurN79.cjs +0 -405
- package/dist/validation-DnpurN79.cjs.map +0 -1
- package/dist/validation-IsAUvsvy.mjs +0 -334
- package/dist/validation-IsAUvsvy.mjs.map +0 -1
- package/dist/validation-yCvZCqIs.cjs +0 -6
- package/dist/wrapper-C5NpyacC.cjs +0 -3552
- package/dist/wrapper-C5NpyacC.cjs.map +0 -1
- package/dist/wrapper-CHq_CV4J.mjs +0 -3552
- package/dist/wrapper-CHq_CV4J.mjs.map +0 -1
- package/dist/zkm.service-BrXyI4BS.mjs +0 -3
- package/dist/zkm.service-BvQ01wSH.cjs +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prf-handler-
|
|
1
|
+
{"version":3,"file":"prf-handler-BNd7gmXJ.cjs","names":[],"sources":["../src/utils/prf-handler.ts"],"sourcesContent":["/**\n * PRF (Pseudo-Random Function) handler for WebAuthn\n * @packageDocumentation\n */\n\nimport type { GetPrfSecretOptions, PasskeyCreationOptions } from './types.js';\n\nconst PRF_EVAL_INPUT = new TextEncoder().encode('nostr-pwk');\n\n/**\n * @returns PRF\n */\nexport async function isPrfSupported(): Promise<boolean> {\n try {\n const response = await navigator.credentials.get({\n publicKey: {\n challenge: crypto.getRandomValues(new Uint8Array(32)),\n allowCredentials: [],\n userVerification: 'required',\n extensions: { prf: { eval: { first: PRF_EVAL_INPUT } } },\n } as PublicKeyCredentialRequestOptions,\n });\n\n if (!response) return false;\n\n const assertion = response as unknown as {\n getClientExtensionResults: () => {\n prf?: {\n results?: {\n first?: ArrayBuffer;\n };\n };\n };\n };\n\n const res = assertion.getClientExtensionResults()?.prf?.results?.first;\n return !!res;\n } catch {\n return false;\n }\n}\n\n/**\n * @param options\n * @returns Credential\n */\nexport async function createPasskey(options: PasskeyCreationOptions = {}): Promise<Uint8Array> {\n // Node\n const rpName = options.rp?.name || (typeof location !== 'undefined' ? location.host : 'Nosskey');\n const rpId = options.rp?.id;\n const userName = options.user?.name || 'user@example.com';\n const userDisplayName = options.user?.displayName || 'Nosskey user';\n\n const credentialCreationOptions: CredentialCreationOptions = {\n publicKey: {\n rp: {\n name: rpName,\n id: rpId,\n },\n user: {\n id: crypto.getRandomValues(new Uint8Array(16)),\n name: userName,\n displayName: userDisplayName,\n },\n pubKeyCredParams: options.pubKeyCredParams || [{ type: 'public-key', alg: -7 }], // ES256\n authenticatorSelection: options.authenticatorSelection || {\n residentKey: 'required',\n userVerification: 'required',\n },\n challenge: crypto.getRandomValues(new Uint8Array(32)),\n extensions: options.extensions || { prf: {} }, // PRF拡張を要求\n } as PublicKeyCredentialCreationOptions,\n };\n const cred = (await navigator.credentials.create(\n credentialCreationOptions\n )) as PublicKeyCredential;\n\n return new Uint8Array(cred.rawId);\n}\n\n/**\n * ID\n * @param credentialId \n * @param options PRF(rpId、timeout、userVerification)\n * @returns PRF credentialID\n */\nexport async function getPrfSecret(\n credentialId?: Uint8Array,\n options?: GetPrfSecretOptions\n): Promise<{ secret: Uint8Array; id: Uint8Array }> {\n const allowCredentials = credentialId ? [{ type: 'public-key' as const, id: credentialId as BufferSource }] : [];\n\n const requestOptions: PublicKeyCredentialRequestOptions = {\n challenge: crypto.getRandomValues(new Uint8Array(32)),\n allowCredentials,\n userVerification: options?.userVerification || 'required',\n extensions: {\n prf: { eval: { first: PRF_EVAL_INPUT } },\n } as AuthenticationExtensionsClientInputs,\n };\n\n if (options?.rpId) {\n requestOptions.rpId = options.rpId;\n }\n if (options?.timeout) {\n requestOptions.timeout = options.timeout;\n }\n\n const response = await navigator.credentials.get({\n publicKey: requestOptions,\n });\n\n if (!response) {\n throw new Error('Authentication failed');\n }\n\n const assertion = response as unknown as {\n getClientExtensionResults: () => {\n prf?: {\n results?: {\n first?: ArrayBuffer;\n };\n };\n };\n };\n\n const secret = assertion.getClientExtensionResults()?.prf?.results?.first;\n if (!secret) {\n throw new Error('PRF secret not available');\n }\n\n // response credentialId\n const responseId = new Uint8Array((response as PublicKeyCredential).rawId);\n\n return {\n secret: new Uint8Array(secret),\n id: responseId,\n };\n}\n"],"mappings":";;AAOA,MAAM,iBAAiB,IAAI,aAAa,CAAC,OAAO,YAAY;;;;AAK5D,eAAsB,iBAAmC;AACvD,KAAI;EACF,MAAM,WAAW,MAAM,UAAU,YAAY,IAAI,EAC/C,WAAW;GACT,WAAW,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;GACrD,kBAAkB,EAAE;GACpB,kBAAkB;GAClB,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,gBAAgB,EAAE,EAAE;GACzD,EACF,CAAC;AAEF,MAAI,CAAC,SAAU,QAAO;AAatB,SAAO,CAAC,CAXU,SAUI,2BAA2B,EAAE,KAAK,SAAS;SAE3D;AACN,SAAO;;;;;;;AAQX,eAAsB,cAAc,UAAkC,EAAE,EAAuB;CAE7F,MAAM,SAAS,QAAQ,IAAI,SAAS,OAAO,aAAa,cAAc,SAAS,OAAO;CACtF,MAAM,OAAO,QAAQ,IAAI;CACzB,MAAM,WAAW,QAAQ,MAAM,QAAQ;CACvC,MAAM,kBAAkB,QAAQ,MAAM,eAAe;CAErD,MAAM,4BAAuD,EAC3D,WAAW;EACT,IAAI;GACF,MAAM;GACN,IAAI;GACL;EACD,MAAM;GACJ,IAAI,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;GAC9C,MAAM;GACN,aAAa;GACd;EACD,kBAAkB,QAAQ,oBAAoB,CAAC;GAAE,MAAM;GAAc,KAAK;GAAI,CAAC;EAC/E,wBAAwB,QAAQ,0BAA0B;GACxD,aAAa;GACb,kBAAkB;GACnB;EACD,WAAW,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;EACrD,YAAY,QAAQ,cAAc,EAAE,KAAK,EAAE,EAAE;EAC9C,EACF;CACD,MAAM,OAAQ,MAAM,UAAU,YAAY,OACxC,0BACD;AAED,QAAO,IAAI,WAAW,KAAK,MAAM;;;;;;;;AASnC,eAAsB,aACpB,cACA,SACiD;CACjD,MAAM,mBAAmB,eAAe,CAAC;EAAE,MAAM;EAAuB,IAAI;EAA8B,CAAC,GAAG,EAAE;CAEhH,MAAM,iBAAoD;EACxD,WAAW,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;EACrD;EACA,kBAAkB,SAAS,oBAAoB;EAC/C,YAAY,EACV,KAAK,EAAE,MAAM,EAAE,OAAO,gBAAgB,EAAE,EACzC;EACF;AAED,KAAI,SAAS,KACX,gBAAe,OAAO,QAAQ;AAEhC,KAAI,SAAS,QACX,gBAAe,UAAU,QAAQ;CAGnC,MAAM,WAAW,MAAM,UAAU,YAAY,IAAI,EAC/C,WAAW,gBACZ,CAAC;AAEF,KAAI,CAAC,SACH,OAAM,IAAI,MAAM,wBAAwB;CAa1C,MAAM,SAVY,SAUO,2BAA2B,EAAE,KAAK,SAAS;AACpE,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,2BAA2B;CAI7C,MAAM,aAAa,IAAI,WAAY,SAAiC,MAAM;AAE1E,QAAO;EACL,QAAQ,IAAI,WAAW,OAAO;EAC9B,IAAI;EACL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prf-handler-
|
|
1
|
+
{"version":3,"file":"prf-handler-Dj2WTO9i.mjs","names":[],"sources":["../src/utils/prf-handler.ts"],"sourcesContent":["/**\n * PRF (Pseudo-Random Function) handler for WebAuthn\n * @packageDocumentation\n */\n\nimport type { GetPrfSecretOptions, PasskeyCreationOptions } from './types.js';\n\nconst PRF_EVAL_INPUT = new TextEncoder().encode('nostr-pwk');\n\n/**\n * @returns PRF\n */\nexport async function isPrfSupported(): Promise<boolean> {\n try {\n const response = await navigator.credentials.get({\n publicKey: {\n challenge: crypto.getRandomValues(new Uint8Array(32)),\n allowCredentials: [],\n userVerification: 'required',\n extensions: { prf: { eval: { first: PRF_EVAL_INPUT } } },\n } as PublicKeyCredentialRequestOptions,\n });\n\n if (!response) return false;\n\n const assertion = response as unknown as {\n getClientExtensionResults: () => {\n prf?: {\n results?: {\n first?: ArrayBuffer;\n };\n };\n };\n };\n\n const res = assertion.getClientExtensionResults()?.prf?.results?.first;\n return !!res;\n } catch {\n return false;\n }\n}\n\n/**\n * @param options\n * @returns Credential\n */\nexport async function createPasskey(options: PasskeyCreationOptions = {}): Promise<Uint8Array> {\n // Node\n const rpName = options.rp?.name || (typeof location !== 'undefined' ? location.host : 'Nosskey');\n const rpId = options.rp?.id;\n const userName = options.user?.name || 'user@example.com';\n const userDisplayName = options.user?.displayName || 'Nosskey user';\n\n const credentialCreationOptions: CredentialCreationOptions = {\n publicKey: {\n rp: {\n name: rpName,\n id: rpId,\n },\n user: {\n id: crypto.getRandomValues(new Uint8Array(16)),\n name: userName,\n displayName: userDisplayName,\n },\n pubKeyCredParams: options.pubKeyCredParams || [{ type: 'public-key', alg: -7 }], // ES256\n authenticatorSelection: options.authenticatorSelection || {\n residentKey: 'required',\n userVerification: 'required',\n },\n challenge: crypto.getRandomValues(new Uint8Array(32)),\n extensions: options.extensions || { prf: {} }, // PRF拡張を要求\n } as PublicKeyCredentialCreationOptions,\n };\n const cred = (await navigator.credentials.create(\n credentialCreationOptions\n )) as PublicKeyCredential;\n\n return new Uint8Array(cred.rawId);\n}\n\n/**\n * ID\n * @param credentialId \n * @param options PRF(rpId、timeout、userVerification)\n * @returns PRF credentialID\n */\nexport async function getPrfSecret(\n credentialId?: Uint8Array,\n options?: GetPrfSecretOptions\n): Promise<{ secret: Uint8Array; id: Uint8Array }> {\n const allowCredentials = credentialId ? [{ type: 'public-key' as const, id: credentialId as BufferSource }] : [];\n\n const requestOptions: PublicKeyCredentialRequestOptions = {\n challenge: crypto.getRandomValues(new Uint8Array(32)),\n allowCredentials,\n userVerification: options?.userVerification || 'required',\n extensions: {\n prf: { eval: { first: PRF_EVAL_INPUT } },\n } as AuthenticationExtensionsClientInputs,\n };\n\n if (options?.rpId) {\n requestOptions.rpId = options.rpId;\n }\n if (options?.timeout) {\n requestOptions.timeout = options.timeout;\n }\n\n const response = await navigator.credentials.get({\n publicKey: requestOptions,\n });\n\n if (!response) {\n throw new Error('Authentication failed');\n }\n\n const assertion = response as unknown as {\n getClientExtensionResults: () => {\n prf?: {\n results?: {\n first?: ArrayBuffer;\n };\n };\n };\n };\n\n const secret = assertion.getClientExtensionResults()?.prf?.results?.first;\n if (!secret) {\n throw new Error('PRF secret not available');\n }\n\n // response credentialId\n const responseId = new Uint8Array((response as PublicKeyCredential).rawId);\n\n return {\n secret: new Uint8Array(secret),\n id: responseId,\n };\n}\n"],"mappings":";AAOA,MAAM,iBAAiB,IAAI,aAAa,CAAC,OAAO,YAAY;;;;AAK5D,eAAsB,iBAAmC;AACvD,KAAI;EACF,MAAM,WAAW,MAAM,UAAU,YAAY,IAAI,EAC/C,WAAW;GACT,WAAW,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;GACrD,kBAAkB,EAAE;GACpB,kBAAkB;GAClB,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,gBAAgB,EAAE,EAAE;GACzD,EACF,CAAC;AAEF,MAAI,CAAC,SAAU,QAAO;AAatB,SAAO,CAAC,CAXU,SAUI,2BAA2B,EAAE,KAAK,SAAS;SAE3D;AACN,SAAO;;;;;;;AAQX,eAAsB,cAAc,UAAkC,EAAE,EAAuB;CAE7F,MAAM,SAAS,QAAQ,IAAI,SAAS,OAAO,aAAa,cAAc,SAAS,OAAO;CACtF,MAAM,OAAO,QAAQ,IAAI;CACzB,MAAM,WAAW,QAAQ,MAAM,QAAQ;CACvC,MAAM,kBAAkB,QAAQ,MAAM,eAAe;CAErD,MAAM,4BAAuD,EAC3D,WAAW;EACT,IAAI;GACF,MAAM;GACN,IAAI;GACL;EACD,MAAM;GACJ,IAAI,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;GAC9C,MAAM;GACN,aAAa;GACd;EACD,kBAAkB,QAAQ,oBAAoB,CAAC;GAAE,MAAM;GAAc,KAAK;GAAI,CAAC;EAC/E,wBAAwB,QAAQ,0BAA0B;GACxD,aAAa;GACb,kBAAkB;GACnB;EACD,WAAW,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;EACrD,YAAY,QAAQ,cAAc,EAAE,KAAK,EAAE,EAAE;EAC9C,EACF;CACD,MAAM,OAAQ,MAAM,UAAU,YAAY,OACxC,0BACD;AAED,QAAO,IAAI,WAAW,KAAK,MAAM;;;;;;;;AASnC,eAAsB,aACpB,cACA,SACiD;CACjD,MAAM,mBAAmB,eAAe,CAAC;EAAE,MAAM;EAAuB,IAAI;EAA8B,CAAC,GAAG,EAAE;CAEhH,MAAM,iBAAoD;EACxD,WAAW,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC;EACrD;EACA,kBAAkB,SAAS,oBAAoB;EAC/C,YAAY,EACV,KAAK,EAAE,MAAM,EAAE,OAAO,gBAAgB,EAAE,EACzC;EACF;AAED,KAAI,SAAS,KACX,gBAAe,OAAO,QAAQ;AAEhC,KAAI,SAAS,QACX,gBAAe,UAAU,QAAQ;CAGnC,MAAM,WAAW,MAAM,UAAU,YAAY,IAAI,EAC/C,WAAW,gBACZ,CAAC;AAEF,KAAI,CAAC,SACH,OAAM,IAAI,MAAM,wBAAwB;CAa1C,MAAM,SAVY,SAUO,2BAA2B,EAAE,KAAK,SAAS;AACpE,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,2BAA2B;CAI7C,MAAM,aAAa,IAAI,WAAY,SAAiC,MAAM;AAE1E,QAAO;EACL,QAAQ,IAAI,WAAW,OAAO;EAC9B,IAAI;EACL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zkm.service-
|
|
1
|
+
{"version":3,"file":"zkm.service-DX06sSfB.cjs","names":["#config","#connected","#identity","#group"],"sources":["../src/services/zkm.service.ts"],"sourcesContent":["/**\n * ZK Membership Service - Using Semaphore library for anonymous group membership\n * @packageDocumentation\n */\n\nimport type { ZKMVerifierConfig } from '../types/zkm.js';\n\nexport interface ZKMIdentity {\n privateKey: string;\n commitment: string;\n}\n\nlet IdentityClass: any = null;\nlet GroupClass: any = null;\nlet generateProofFn: any = null;\nlet verifyProofFn: any = null;\n\nasync function loadSemaphore(): Promise<void> {\n if (IdentityClass) return;\n\n try {\n const semaphore = await import('@semaphore-protocol/proof');\n IdentityClass = semaphore.Identity;\n GroupClass = semaphore.Group;\n generateProofFn = semaphore.generateProof;\n verifyProofFn = semaphore.verifyProof;\n } catch (error) {\n throw new Error('Semaphore requires @semaphore-protocol/proof. Install with: npm install @semaphore-protocol/proof');\n }\n}\n\nexport function isZKMAvailable(): boolean {\n return true;\n}\n\nexport async function generateIdentity(): Promise<ZKMIdentity> {\n await loadSemaphore();\n const identity = new IdentityClass();\n return {\n privateKey: identity.identityNullifier.toString(16),\n commitment: identity.commitment.toString(16),\n };\n}\n\nexport async function createGroup(groupId: string, adminIdentity: ZKMIdentity): Promise<any> {\n await loadSemaphore();\n const identity = new IdentityClass(BigInt('0x' + adminIdentity.privateKey));\n const group = new GroupClass();\n group.addMember(identity.commitment);\n \n return {\n id: groupId,\n group,\n root: group.root.toString(16),\n createdAt: new Date().toISOString(),\n };\n}\n\nexport async function addMember(group: any, newIdentity: ZKMIdentity): Promise<any> {\n await loadSemaphore();\n const identity = new IdentityClass(BigInt('0x' + newIdentity.privateKey));\n group.group.addMember(identity.commitment);\n \n return {\n ...group,\n root: group.group.root.toString(16),\n };\n}\n\nexport async function generateMembershipProof(\n identity: ZKMIdentity,\n group: any,\n scope: string = 'default'\n): Promise<any> {\n await loadSemaphore();\n \n const semaphoreIdentity = new IdentityClass(BigInt('0x' + identity.privateKey));\n const proof = await generateProofFn(semaphoreIdentity, group.group, BigInt(scope), group.group.root);\n \n return {\n groupId: group.id,\n root: group.root,\n proof: JSON.stringify(proof),\n nullifier: proof.nullifier.toString(16),\n scope,\n merkleTreeDepth: group.group.depth,\n issuedAt: new Date().toISOString(),\n };\n}\n\nexport async function verifyMembershipProof(\n proof: any,\n knownRoot: string\n): Promise<boolean> {\n await loadSemaphore();\n \n try {\n const proofObj = typeof proof.proof === 'string' ? JSON.parse(proof.proof) : proof.proof;\n const isValid = await verifyProofFn(proofObj, BigInt('0x' + knownRoot));\n return isValid;\n } catch (error) {\n console.error('Proof verification failed:', error);\n return false;\n }\n}\n\nexport class ZKMService {\n #config: ZKMVerifierConfig | null = null;\n #connected = false;\n #identity: ZKMIdentity | null = null;\n #group: any = null;\n\n async connect(config: ZKMVerifierConfig): Promise<void> {\n this.#config = config;\n this.#connected = true;\n }\n\n async disconnect(): Promise<void> {\n this.#config = null;\n this.#connected = false;\n }\n\n isConnected(): boolean {\n return this.#connected;\n }\n\n async generateIdentity(): Promise<ZKMIdentity> {\n await loadSemaphore();\n const identity = new IdentityClass();\n this.#identity = {\n privateKey: identity.identityNullifier.toString(16),\n commitment: identity.commitment.toString(16),\n };\n return this.#identity;\n }\n\n async createGroup(groupId: string): Promise<any> {\n if (!this.#identity) {\n throw new Error('No identity. Call generateIdentity() first.');\n }\n \n await loadSemaphore();\n const identity = new IdentityClass(BigInt('0x' + this.#identity.privateKey));\n const group = new GroupClass();\n group.addMember(identity.commitment);\n \n this.#group = {\n id: groupId,\n group,\n root: group.root.toString(16),\n createdAt: new Date().toISOString(),\n };\n \n return this.#group;\n }\n\n async addMember(identity: ZKMIdentity): Promise<any> {\n if (!this.#group) {\n throw new Error('No group. Call createGroup() first.');\n }\n \n await loadSemaphore();\n const semaphoreIdentity = new IdentityClass(BigInt('0x' + identity.privateKey));\n this.#group.group.addMember(semaphoreIdentity.commitment);\n \n this.#group = {\n ...this.#group,\n root: this.#group.group.root.toString(16),\n };\n \n return this.#group;\n }\n\n async generateProof(scope?: string): Promise<any> {\n if (!this.#identity || !this.#group) {\n throw new Error('No identity or group. Call generateIdentity() and createGroup() first.');\n }\n \n return generateMembershipProof(this.#identity, this.#group, scope);\n }\n\n async verifyProof(proof: any, root: string): Promise<boolean> {\n return verifyMembershipProof(proof, root);\n }\n\n getIdentity(): ZKMIdentity | null {\n return this.#identity;\n }\n\n getGroup(): any | null {\n return this.#group;\n }\n\n getConfig(): ZKMVerifierConfig | null {\n return this.#config;\n }\n}"],"mappings":"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"}
|
|
@@ -112,4 +112,4 @@ var ZKMService = class {
|
|
|
112
112
|
|
|
113
113
|
//#endregion
|
|
114
114
|
export { verifyMembershipProof as i, generateMembershipProof as n, isZKMAvailable as r, ZKMService as t };
|
|
115
|
-
//# sourceMappingURL=zkm.service-
|
|
115
|
+
//# sourceMappingURL=zkm.service-j0HlN7Oq.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zkm.service-
|
|
1
|
+
{"version":3,"file":"zkm.service-j0HlN7Oq.mjs","names":["#config","#connected","#identity","#group"],"sources":["../src/services/zkm.service.ts"],"sourcesContent":["/**\n * ZK Membership Service - Using Semaphore library for anonymous group membership\n * @packageDocumentation\n */\n\nimport type { ZKMVerifierConfig } from '../types/zkm.js';\n\nexport interface ZKMIdentity {\n privateKey: string;\n commitment: string;\n}\n\nlet IdentityClass: any = null;\nlet GroupClass: any = null;\nlet generateProofFn: any = null;\nlet verifyProofFn: any = null;\n\nasync function loadSemaphore(): Promise<void> {\n if (IdentityClass) return;\n\n try {\n const semaphore = await import('@semaphore-protocol/proof');\n IdentityClass = semaphore.Identity;\n GroupClass = semaphore.Group;\n generateProofFn = semaphore.generateProof;\n verifyProofFn = semaphore.verifyProof;\n } catch (error) {\n throw new Error('Semaphore requires @semaphore-protocol/proof. Install with: npm install @semaphore-protocol/proof');\n }\n}\n\nexport function isZKMAvailable(): boolean {\n return true;\n}\n\nexport async function generateIdentity(): Promise<ZKMIdentity> {\n await loadSemaphore();\n const identity = new IdentityClass();\n return {\n privateKey: identity.identityNullifier.toString(16),\n commitment: identity.commitment.toString(16),\n };\n}\n\nexport async function createGroup(groupId: string, adminIdentity: ZKMIdentity): Promise<any> {\n await loadSemaphore();\n const identity = new IdentityClass(BigInt('0x' + adminIdentity.privateKey));\n const group = new GroupClass();\n group.addMember(identity.commitment);\n \n return {\n id: groupId,\n group,\n root: group.root.toString(16),\n createdAt: new Date().toISOString(),\n };\n}\n\nexport async function addMember(group: any, newIdentity: ZKMIdentity): Promise<any> {\n await loadSemaphore();\n const identity = new IdentityClass(BigInt('0x' + newIdentity.privateKey));\n group.group.addMember(identity.commitment);\n \n return {\n ...group,\n root: group.group.root.toString(16),\n };\n}\n\nexport async function generateMembershipProof(\n identity: ZKMIdentity,\n group: any,\n scope: string = 'default'\n): Promise<any> {\n await loadSemaphore();\n \n const semaphoreIdentity = new IdentityClass(BigInt('0x' + identity.privateKey));\n const proof = await generateProofFn(semaphoreIdentity, group.group, BigInt(scope), group.group.root);\n \n return {\n groupId: group.id,\n root: group.root,\n proof: JSON.stringify(proof),\n nullifier: proof.nullifier.toString(16),\n scope,\n merkleTreeDepth: group.group.depth,\n issuedAt: new Date().toISOString(),\n };\n}\n\nexport async function verifyMembershipProof(\n proof: any,\n knownRoot: string\n): Promise<boolean> {\n await loadSemaphore();\n \n try {\n const proofObj = typeof proof.proof === 'string' ? JSON.parse(proof.proof) : proof.proof;\n const isValid = await verifyProofFn(proofObj, BigInt('0x' + knownRoot));\n return isValid;\n } catch (error) {\n console.error('Proof verification failed:', error);\n return false;\n }\n}\n\nexport class ZKMService {\n #config: ZKMVerifierConfig | null = null;\n #connected = false;\n #identity: ZKMIdentity | null = null;\n #group: any = null;\n\n async connect(config: ZKMVerifierConfig): Promise<void> {\n this.#config = config;\n this.#connected = true;\n }\n\n async disconnect(): Promise<void> {\n this.#config = null;\n this.#connected = false;\n }\n\n isConnected(): boolean {\n return this.#connected;\n }\n\n async generateIdentity(): Promise<ZKMIdentity> {\n await loadSemaphore();\n const identity = new IdentityClass();\n this.#identity = {\n privateKey: identity.identityNullifier.toString(16),\n commitment: identity.commitment.toString(16),\n };\n return this.#identity;\n }\n\n async createGroup(groupId: string): Promise<any> {\n if (!this.#identity) {\n throw new Error('No identity. Call generateIdentity() first.');\n }\n \n await loadSemaphore();\n const identity = new IdentityClass(BigInt('0x' + this.#identity.privateKey));\n const group = new GroupClass();\n group.addMember(identity.commitment);\n \n this.#group = {\n id: groupId,\n group,\n root: group.root.toString(16),\n createdAt: new Date().toISOString(),\n };\n \n return this.#group;\n }\n\n async addMember(identity: ZKMIdentity): Promise<any> {\n if (!this.#group) {\n throw new Error('No group. Call createGroup() first.');\n }\n \n await loadSemaphore();\n const semaphoreIdentity = new IdentityClass(BigInt('0x' + identity.privateKey));\n this.#group.group.addMember(semaphoreIdentity.commitment);\n \n this.#group = {\n ...this.#group,\n root: this.#group.group.root.toString(16),\n };\n \n return this.#group;\n }\n\n async generateProof(scope?: string): Promise<any> {\n if (!this.#identity || !this.#group) {\n throw new Error('No identity or group. Call generateIdentity() and createGroup() first.');\n }\n \n return generateMembershipProof(this.#identity, this.#group, scope);\n }\n\n async verifyProof(proof: any, root: string): Promise<boolean> {\n return verifyMembershipProof(proof, root);\n }\n\n getIdentity(): ZKMIdentity | null {\n return this.#identity;\n }\n\n getGroup(): any | null {\n return this.#group;\n }\n\n getConfig(): ZKMVerifierConfig | null {\n return this.#config;\n }\n}"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ns-auth-sdk",
|
|
3
|
-
"version": "1.14.
|
|
3
|
+
"version": "1.14.2",
|
|
4
4
|
"description": "Decentralized SSO library - Authentication, membership, and profile management",
|
|
5
|
-
"main": "./dist/index.
|
|
6
|
-
"module": "./dist/index.mjs",
|
|
7
|
-
"types": "./dist/index.d.
|
|
5
|
+
"main": "./dist/browser-index.cjs",
|
|
6
|
+
"module": "./dist/browser-index.mjs",
|
|
7
|
+
"types": "./dist/browser-index.d.mts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
-
"types": "./dist/index.d.
|
|
10
|
+
"types": "./dist/browser-index.d.mts",
|
|
11
|
+
"import": "./dist/browser-index.mjs",
|
|
12
|
+
"require": "./dist/browser-index.cjs",
|
|
13
|
+
"default": "./dist/browser-index.mjs"
|
|
14
|
+
},
|
|
15
|
+
"./browser": {
|
|
16
|
+
"types": "./dist/browser-index.d.mts",
|
|
17
|
+
"import": "./dist/browser-index.mjs",
|
|
18
|
+
"require": "./dist/browser-index.cjs",
|
|
19
|
+
"default": "./dist/browser-index.mjs"
|
|
20
|
+
},
|
|
21
|
+
"./node": {
|
|
22
|
+
"types": "./dist/index.d.mts",
|
|
11
23
|
"import": "./dist/index.mjs",
|
|
12
|
-
"require": "./dist/index.
|
|
24
|
+
"require": "./dist/index.cjs",
|
|
25
|
+
"default": "./dist/index.mjs"
|
|
13
26
|
},
|
|
14
27
|
"./styles": "./dist/index.css"
|
|
15
28
|
},
|