@ibgib/web-gib 0.0.61 → 0.0.62

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.
Files changed (59) hide show
  1. package/dist/AUTO-GENERATED-version.d.mts +1 -1
  2. package/dist/AUTO-GENERATED-version.mjs +1 -1
  3. package/dist/helpers.web.d.mts +3 -1
  4. package/dist/helpers.web.d.mts.map +1 -1
  5. package/dist/helpers.web.mjs +17 -1
  6. package/dist/helpers.web.mjs.map +1 -1
  7. package/dist/identity/device-delegate-helper.d.mts +48 -0
  8. package/dist/identity/device-delegate-helper.d.mts.map +1 -1
  9. package/dist/identity/device-delegate-helper.mjs +86 -2
  10. package/dist/identity/device-delegate-helper.mjs.map +1 -1
  11. package/dist/identity/device-delegate.respec.mjs +6 -6
  12. package/dist/identity/device-delegate.respec.mjs.map +1 -1
  13. package/dist/identity/passkey-helper.d.mts +72 -0
  14. package/dist/identity/passkey-helper.d.mts.map +1 -0
  15. package/dist/identity/passkey-helper.mjs +237 -0
  16. package/dist/identity/passkey-helper.mjs.map +1 -0
  17. package/dist/identity/passkey.respec.d.mts +2 -0
  18. package/dist/identity/passkey.respec.d.mts.map +1 -0
  19. package/dist/identity/passkey.respec.mjs +169 -0
  20. package/dist/identity/passkey.respec.mjs.map +1 -0
  21. package/dist/index.d.mts +1 -0
  22. package/dist/index.d.mts.map +1 -1
  23. package/dist/index.mjs +1 -0
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/ui/component/identity/add-device/add-device.d.mts.map +1 -1
  26. package/dist/ui/component/identity/add-device/add-device.mjs +1 -0
  27. package/dist/ui/component/identity/add-device/add-device.mjs.map +1 -1
  28. package/dist/ui/component/identity/keystone-creator/keystone-creator.d.mts +18 -1
  29. package/dist/ui/component/identity/keystone-creator/keystone-creator.d.mts.map +1 -1
  30. package/dist/ui/component/identity/keystone-creator/keystone-creator.html +42 -3
  31. package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs +510 -74
  32. package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs.map +1 -1
  33. package/dist/ui/component/identity/keystone-details/keystone-details.d.mts +16 -1
  34. package/dist/ui/component/identity/keystone-details/keystone-details.d.mts.map +1 -1
  35. package/dist/ui/component/identity/keystone-details/keystone-details.html +38 -0
  36. package/dist/ui/component/identity/keystone-details/keystone-details.mjs +946 -122
  37. package/dist/ui/component/identity/keystone-details/keystone-details.mjs.map +1 -1
  38. package/dist/ui/component/identity/remove-device/remove-device.d.mts.map +1 -1
  39. package/dist/ui/component/identity/remove-device/remove-device.mjs +1 -0
  40. package/dist/ui/component/identity/remove-device/remove-device.mjs.map +1 -1
  41. package/dist/ui/ui-helpers.d.mts +3 -0
  42. package/dist/ui/ui-helpers.d.mts.map +1 -1
  43. package/dist/ui/ui-helpers.mjs +110 -6
  44. package/dist/ui/ui-helpers.mjs.map +1 -1
  45. package/package.json +2 -2
  46. package/src/AUTO-GENERATED-version.mts +1 -1
  47. package/src/helpers.web.mts +22 -2
  48. package/src/identity/device-delegate-helper.mts +135 -2
  49. package/src/identity/device-delegate.respec.mts +6 -6
  50. package/src/identity/passkey-helper.mts +304 -0
  51. package/src/identity/passkey.respec.mts +194 -0
  52. package/src/index.mts +1 -0
  53. package/src/ui/component/identity/add-device/add-device.mts +1 -0
  54. package/src/ui/component/identity/keystone-creator/keystone-creator.html +42 -3
  55. package/src/ui/component/identity/keystone-creator/keystone-creator.mts +551 -77
  56. package/src/ui/component/identity/keystone-details/keystone-details.html +38 -0
  57. package/src/ui/component/identity/keystone-details/keystone-details.mts +1011 -131
  58. package/src/ui/component/identity/remove-device/remove-device.mts +1 -0
  59. package/src/ui/ui-helpers.mts +118 -5
@@ -0,0 +1,237 @@
1
+ /**
2
+ * @module identity/passkey-helper
3
+ *
4
+ * WebAuthn Level 3 PRF (Pseudo-Random Function) Passkey helper service.
5
+ * Derives deterministic 256-bit symmetric secrets from hardware biometrics
6
+ * (Touch ID, Windows Hello, Android Biometrics, YubiKey 5Ci) and creates
7
+ * passkey device sync delegates.
8
+ */
9
+ import { extractErrorMsg, getSaferSubstring } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
10
+ import { deriveDelegateSecret, createSyncDelegateKeystone } from '@ibgib/core-gib/dist/keystone/delegate/delegate-helpers.mjs';
11
+ import { generateDefaultDeviceTag, setDeviceDelegateSecret } from './device-delegate-helper.mjs';
12
+ /**
13
+ * Checks if the browser and underlying platform authenticator support WebAuthn PRF.
14
+ */
15
+ export async function isPasskeyPrfSupported() {
16
+ try {
17
+ if (typeof window === 'undefined' || !window.PublicKeyCredential) {
18
+ return false;
19
+ }
20
+ if (typeof window.PublicKeyCredential.getClientCapabilities === 'function') {
21
+ const caps = await window.PublicKeyCredential.getClientCapabilities();
22
+ if (caps && caps['prf']) {
23
+ return true;
24
+ }
25
+ }
26
+ // Fallback: check if PublicKeyCredential exists and platform authenticator is available
27
+ if (typeof PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable === 'function') {
28
+ const isPlatformAvailable = await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();
29
+ return isPlatformAvailable;
30
+ }
31
+ return false;
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
37
+ /**
38
+ * Helper to convert an ArrayBuffer to a lowercase hex string.
39
+ */
40
+ export function bufferToHex(buffer) {
41
+ return Array.from(new Uint8Array(buffer))
42
+ .map(b => b.toString(16).padStart(2, '0'))
43
+ .join('');
44
+ }
45
+ /**
46
+ * Helper to convert a hex string to a Uint8Array.
47
+ */
48
+ export function hexToUint8Array(hex) {
49
+ const cleanHex = hex.replace(/[^0-9a-fA-F]/g, '');
50
+ const bytes = new Uint8Array(Math.floor(cleanHex.length / 2));
51
+ for (let i = 0; i < bytes.length; i++) {
52
+ bytes[i] = parseInt(cleanHex.substr(i * 2, 2), 16);
53
+ }
54
+ return bytes;
55
+ }
56
+ /**
57
+ * Helper to normalize a salt string or buffer into a 32-byte Uint8Array for PRF evaluation.
58
+ */
59
+ export function normalizeSaltTo32Bytes(salt) {
60
+ if (salt instanceof Uint8Array) {
61
+ if (salt.length === 32)
62
+ return salt;
63
+ const result = new Uint8Array(32);
64
+ result.set(salt.subarray(0, 32));
65
+ return result;
66
+ }
67
+ // If hex string of length 64 (32 bytes)
68
+ if (/^[0-9a-fA-F]{64}$/.test(salt)) {
69
+ return hexToUint8Array(salt);
70
+ }
71
+ // Text string: encode and pad/slice to 32 bytes
72
+ const encoded = new TextEncoder().encode(salt);
73
+ const result = new Uint8Array(32);
74
+ result.set(encoded.subarray(0, 32));
75
+ return result;
76
+ }
77
+ /**
78
+ * Creates and registers a new WebAuthn resident passkey credential with PRF enabled.
79
+ */
80
+ /**
81
+ * Creates and registers a new WebAuthn resident passkey credential with PRF enabled.
82
+ */
83
+ export async function registerPasskeyCredential({ username, displayName = username, rpName = 'ibgib', rpId, salt, }) {
84
+ const lc = `[registerPasskeyCredential]`;
85
+ try {
86
+ if (typeof window === 'undefined' || !navigator.credentials?.create) {
87
+ throw new Error('WebAuthn is not supported in this browser environment.');
88
+ }
89
+ const effectiveRpId = rpId || (typeof window !== 'undefined' ? window.location.hostname : undefined);
90
+ const challenge = crypto.getRandomValues(new Uint8Array(32));
91
+ const userId = new TextEncoder().encode(username.slice(0, 64));
92
+ const saltBuffer = salt ? normalizeSaltTo32Bytes(salt) : undefined;
93
+ const prfExtension = saltBuffer
94
+ ? { eval: { first: saltBuffer } }
95
+ : {};
96
+ const credential = await navigator.credentials.create({
97
+ publicKey: {
98
+ challenge,
99
+ rp: {
100
+ name: rpName,
101
+ ...(effectiveRpId ? { id: effectiveRpId } : {})
102
+ },
103
+ user: {
104
+ id: userId,
105
+ name: username,
106
+ displayName
107
+ },
108
+ pubKeyCredParams: [
109
+ { alg: -7, type: 'public-key' }, // ES256 (ECDSA P-256)
110
+ { alg: -257, type: 'public-key' }, // RS256 (RSA)
111
+ { alg: -8, type: 'public-key' }, // Ed25519
112
+ ],
113
+ authenticatorSelection: {
114
+ residentKey: 'required',
115
+ userVerification: 'required'
116
+ },
117
+ extensions: {
118
+ prf: prfExtension
119
+ }
120
+ }
121
+ });
122
+ if (!credential) {
123
+ throw new Error('Passkey creation was cancelled or failed.');
124
+ }
125
+ const credentialId = bufferToHex(credential.rawId);
126
+ const response = credential.response;
127
+ const transports = (typeof response.getTransports === 'function')
128
+ ? response.getTransports()
129
+ : [];
130
+ const extResults = credential.getClientExtensionResults?.() || {};
131
+ console.log(`${lc} WebAuthn registration clientExtensionResults:`, extResults);
132
+ let passkeySecret;
133
+ if (extResults.prf?.results?.first) {
134
+ passkeySecret = bufferToHex(extResults.prf.results.first);
135
+ console.log(`${lc} Evaluated PRF directly during create!`);
136
+ }
137
+ return {
138
+ credentialId,
139
+ rawId: credential.rawId,
140
+ transports,
141
+ passkeySecret
142
+ };
143
+ }
144
+ catch (error) {
145
+ console.error(`${lc} ${extractErrorMsg(error)}`);
146
+ throw error;
147
+ }
148
+ }
149
+ /**
150
+ * Evaluates the PRF extension on a passkey assertion to derive a deterministic 256-bit symmetric secret.
151
+ */
152
+ export async function evaluatePasskeyPrf({ salt, credentialId, transports, rpId, }) {
153
+ const lc = `[evaluatePasskeyPrf]`;
154
+ try {
155
+ if (typeof window === 'undefined' || !navigator.credentials?.get) {
156
+ throw new Error('WebAuthn is not supported in this browser environment.');
157
+ }
158
+ const effectiveRpId = rpId || (typeof window !== 'undefined' ? window.location.hostname : undefined);
159
+ const challenge = crypto.getRandomValues(new Uint8Array(32));
160
+ const saltBuffer = normalizeSaltTo32Bytes(salt);
161
+ let allowCredentials = undefined;
162
+ if (credentialId) {
163
+ const rawBytes = hexToUint8Array(credentialId);
164
+ allowCredentials = [{
165
+ id: rawBytes.buffer,
166
+ type: 'public-key',
167
+ ...(transports && transports.length > 0 ? { transports } : {})
168
+ }];
169
+ }
170
+ const assertion = await navigator.credentials.get({
171
+ publicKey: {
172
+ challenge,
173
+ ...(effectiveRpId ? { rpId: effectiveRpId } : {}),
174
+ allowCredentials,
175
+ userVerification: 'required',
176
+ extensions: {
177
+ prf: {
178
+ eval: {
179
+ first: saltBuffer
180
+ }
181
+ }
182
+ }
183
+ }
184
+ });
185
+ if (!assertion) {
186
+ throw new Error('Passkey authentication was cancelled or failed.');
187
+ }
188
+ const resolvedCredentialId = bufferToHex(assertion.rawId);
189
+ const extResults = assertion.getClientExtensionResults?.() || {};
190
+ console.log(`${lc} WebAuthn assertion clientExtensionResults:`, extResults);
191
+ const prfResult = extResults.prf?.results?.first;
192
+ if (!prfResult) {
193
+ console.error(`${lc} Extension results did not contain PRF evaluation:`, extResults);
194
+ throw new Error('Authenticator did not return a PRF evaluation. PRF extension may not be supported on this authenticator.');
195
+ }
196
+ const passkeySecret = bufferToHex(prfResult);
197
+ return {
198
+ passkeySecret,
199
+ credentialId: resolvedCredentialId
200
+ };
201
+ }
202
+ catch (error) {
203
+ console.error(`${lc} ${extractErrorMsg(error)}`);
204
+ throw error;
205
+ }
206
+ }
207
+ /**
208
+ * Creates a Passkey sovereign sync delegate for this device.
209
+ * Standardized format: `passkey-${safeUsername}-${defaultDeviceTag}`
210
+ */
211
+ export async function createPasskeyDeviceSyncDelegate({ username, primaryTjpAddr, passkeySecret, transports, metaspace, space, }) {
212
+ const delegateSecret = await deriveDelegateSecret({ masterSecret: passkeySecret });
213
+ await setDeviceDelegateSecret({ primaryTjpAddr, delegateSecret });
214
+ const safeUser = getSaferSubstring({ text: username, length: 8, keepLiterals: ['-'] }) || 'user';
215
+ const defaultDeviceTag = generateDefaultDeviceTag();
216
+ const deviceTag = `passkey-${safeUser}-${defaultDeviceTag}`;
217
+ const sovereignSyncProfileName = process.env.KEYSTONE_PROFILE_SOVEREIGN_SYNC;
218
+ if (!sovereignSyncProfileName || !sovereignSyncProfileName.trim()) {
219
+ throw new Error('KEYSTONE_PROFILE_SOVEREIGN_SYNC environment variable is missing.');
220
+ }
221
+ const delegateKeystone = await createSyncDelegateKeystone({
222
+ profileName: sovereignSyncProfileName.trim(),
223
+ username,
224
+ deviceTag,
225
+ primaryTjpAddr,
226
+ delegateSecret,
227
+ additionalFrameDetails: {
228
+ client: 'space-gib-web',
229
+ role: 'passkey-sync',
230
+ ...(transports && transports.length > 0 ? { transports } : {})
231
+ },
232
+ metaspace,
233
+ space,
234
+ });
235
+ return { delegateKeystone, deviceTag, delegateSecret };
236
+ }
237
+ //# sourceMappingURL=passkey-helper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey-helper.mjs","sourceRoot":"","sources":["../../src/identity/passkey-helper.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=passkey.respec.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey.respec.d.mts","sourceRoot":"","sources":["../../src/identity/passkey.respec.mts"],"names":[],"mappings":""}
@@ -0,0 +1,169 @@
1
+ import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
2
+ import { getIbGibGlobalThis_IbGib } from '../helpers.mjs';
3
+ import { bufferToHex, hexToUint8Array, normalizeSaltTo32Bytes, isPasskeyPrfSupported, createPasskeyDeviceSyncDelegate } from './passkey-helper.mjs';
4
+ import { getDeviceDelegateSecret } from './device-delegate-helper.mjs';
5
+ const sir = `[${import.meta.url}]`;
6
+ // Initialize global db & store names for tests
7
+ const globalThisIbGib = getIbGibGlobalThis_IbGib();
8
+ globalThisIbGib.dbName_hack = 'space_gib_db';
9
+ globalThisIbGib.storeName_hack = 'space_gib_store';
10
+ // Mock storage substrate for Node test environment
11
+ const inMemoryStore = new Map();
12
+ if (typeof globalThis.indexedDB === 'undefined') {
13
+ globalThis.indexedDB = {
14
+ open: (dbName) => {
15
+ const req = {};
16
+ setTimeout(() => {
17
+ const db = {
18
+ objectStoreNames: { contains: () => true },
19
+ transaction: (storeName) => ({
20
+ objectStore: (sName) => ({
21
+ get: (key) => {
22
+ const getReq = {};
23
+ setTimeout(() => {
24
+ const val = inMemoryStore.get(key);
25
+ getReq.result = val !== undefined ? { value: val } : undefined;
26
+ if (getReq.onsuccess)
27
+ getReq.onsuccess({ target: getReq });
28
+ }, 0);
29
+ return getReq;
30
+ },
31
+ put: (datum) => {
32
+ const putReq = {};
33
+ setTimeout(() => {
34
+ inMemoryStore.set(datum.key, datum.value);
35
+ if (putReq.onsuccess)
36
+ putReq.onsuccess({ target: putReq });
37
+ }, 0);
38
+ return putReq;
39
+ },
40
+ delete: (key) => {
41
+ const delReq = {};
42
+ setTimeout(() => {
43
+ inMemoryStore.delete(key);
44
+ if (delReq.onsuccess)
45
+ delReq.onsuccess({ target: delReq });
46
+ }, 0);
47
+ return delReq;
48
+ }
49
+ })
50
+ }),
51
+ close: () => { }
52
+ };
53
+ req.result = db;
54
+ if (req.onsuccess)
55
+ req.onsuccess({ target: req });
56
+ }, 0);
57
+ return req;
58
+ }
59
+ };
60
+ }
61
+ // Setup environment profile
62
+ process.env.KEYSTONE_PROFILE_SOVEREIGN_SYNC = 'sync-profile.dev';
63
+ class MockIbGibSpace {
64
+ name;
65
+ store = new Map();
66
+ ib = 'witness space mock-space mock_space_id user';
67
+ constructor(name = "mock_space") {
68
+ this.name = name;
69
+ }
70
+ async put({ ibGib }) {
71
+ const addr = `${ibGib.ib}^${ibGib.gib}`;
72
+ this.store.set(addr, JSON.parse(JSON.stringify(ibGib)));
73
+ }
74
+ async get({ addr }) {
75
+ const data = this.store.get(addr);
76
+ return data ? JSON.parse(JSON.stringify(data)) : null;
77
+ }
78
+ async argy({ argData, ibGibs }) {
79
+ return {
80
+ ib: 'arg^gib',
81
+ gib: 'arg_gib',
82
+ data: argData,
83
+ ibGibs,
84
+ };
85
+ }
86
+ async witness(arg) {
87
+ return { data: { success: true } };
88
+ }
89
+ }
90
+ class MockMetaspaceService {
91
+ space;
92
+ constructor(space) {
93
+ this.space = space;
94
+ }
95
+ async getLocalUserSpace({ lock } = {}) {
96
+ return this.space;
97
+ }
98
+ async put(args) {
99
+ const target = args.space || this.space;
100
+ return target.put(args);
101
+ }
102
+ async registerNewIbGib({ ibGib }) {
103
+ return this.put({ ibGib });
104
+ }
105
+ async get(args) {
106
+ const target = args.space || this.space;
107
+ if (args.addr) {
108
+ const x = await target.get({ addr: args.addr });
109
+ return { success: !!x, ibGibs: x ? [x] : [] };
110
+ }
111
+ return { success: true, ibGibs: [] };
112
+ }
113
+ }
114
+ const mockSpace = new MockIbGibSpace();
115
+ const mockMetaspace = new MockMetaspaceService(mockSpace);
116
+ await respecfully(sir, 'Passkey WebAuthn PRF Helper Service', async () => {
117
+ await ifWe(sir, 'bufferToHex and hexToUint8Array roundtrip correctly', async () => {
118
+ const originalBytes = new Uint8Array([0xde, 0xad, 0xbe, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]);
119
+ const hex = bufferToHex(originalBytes.buffer);
120
+ iReckon(sir, hex).willEqual('deadbeef0123456789abcdef');
121
+ const roundtripBytes = hexToUint8Array(hex);
122
+ iReckon(sir, roundtripBytes.length).willEqual(originalBytes.length);
123
+ for (let i = 0; i < originalBytes.length; i++) {
124
+ iReckon(sir, roundtripBytes[i]).willEqual(originalBytes[i]);
125
+ }
126
+ });
127
+ await ifWe(sir, 'normalizeSaltTo32Bytes normalizes various salt inputs to 32 bytes', async () => {
128
+ // 1. Hex string of 64 chars (32 bytes)
129
+ const hex64 = '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef';
130
+ const normHex = normalizeSaltTo32Bytes(hex64);
131
+ iReckon(sir, normHex.length).willEqual(32);
132
+ iReckon(sir, bufferToHex(normHex.buffer)).willEqual(hex64);
133
+ // 2. Text string
134
+ const textSalt = 'ibgib_passkey_salt_domain_123';
135
+ const normText = normalizeSaltTo32Bytes(textSalt);
136
+ iReckon(sir, normText.length).willEqual(32);
137
+ // 3. Uint8Array
138
+ const rawBytes = new Uint8Array(32);
139
+ rawBytes.fill(0x42);
140
+ const normRaw = normalizeSaltTo32Bytes(rawBytes);
141
+ iReckon(sir, normRaw.length).willEqual(32);
142
+ iReckon(sir, normRaw[0]).willEqual(0x42);
143
+ });
144
+ await ifWe(sir, 'isPasskeyPrfSupported evaluates capabilities cleanly', async () => {
145
+ // In Node environment without window
146
+ const supported = await isPasskeyPrfSupported();
147
+ iReckon(sir, typeof supported).willEqual('boolean');
148
+ });
149
+ await ifWe(sir, 'createPasskeyDeviceSyncDelegate creates standard passkey sync delegate', async () => {
150
+ const username = 'alice';
151
+ const primaryTjpAddr = 'keystone^alice_primary_tjp.addr';
152
+ const passkeySecret = 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef';
153
+ const { delegateKeystone, deviceTag, delegateSecret } = await createPasskeyDeviceSyncDelegate({
154
+ username,
155
+ primaryTjpAddr,
156
+ passkeySecret,
157
+ transports: ['internal'],
158
+ metaspace: mockMetaspace,
159
+ space: mockSpace,
160
+ });
161
+ iReckon(sir, delegateKeystone).asTo('delegateKeystone is generated').isGonnaBeTruthy();
162
+ iReckon(sir, deviceTag.startsWith('passkey-alice-')).asTo('deviceTag follows passkey naming format').isGonnaBeTrue();
163
+ iReckon(sir, delegateSecret).asTo('delegateSecret is derived').isGonnaBeTruthy();
164
+ // Verify stored in IndexedDB
165
+ const storedSecret = await getDeviceDelegateSecret({ primaryTjpAddr });
166
+ iReckon(sir, storedSecret).willEqual(delegateSecret);
167
+ });
168
+ });
169
+ //# sourceMappingURL=passkey.respec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey.respec.mjs","sourceRoot":"","sources":["../../src/identity/passkey.respec.mts"],"names":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -14,6 +14,7 @@ export * from "./api/ibgib-api-bridge.mjs";
14
14
  export * from "./identity/keystone-sync-service.mjs";
15
15
  export * from "./identity/device-delegate-helper.mjs";
16
16
  export * from "./identity/sso-popup-helper.mjs";
17
+ export * from "./identity/passkey-helper.mjs";
17
18
  export * from "./ui/component/identity/index.mjs";
18
19
  export * from "./ui/ui-constants.mjs";
19
20
  export * from "./ui/ui-types.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC;AAEvD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAG9B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAGhD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC;AAEvD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAG9B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAG9C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
package/dist/index.mjs CHANGED
@@ -16,6 +16,7 @@ export * from "./api/ibgib-api-bridge.mjs";
16
16
  export * from "./identity/keystone-sync-service.mjs";
17
17
  export * from "./identity/device-delegate-helper.mjs";
18
18
  export * from "./identity/sso-popup-helper.mjs";
19
+ export * from "./identity/passkey-helper.mjs";
19
20
  // Identity UI components
20
21
  export * from "./ui/component/identity/index.mjs";
21
22
  // UI constants & types
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC;AAEvD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAE9B,kBAAkB;AAClB,cAAc,4BAA4B,CAAC;AAE3C,2BAA2B;AAC3B,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAEhD,yBAAyB;AACzB,cAAc,mCAAmC,CAAC;AAElD,uBAAuB;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC;AAEvD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAE9B,kBAAkB;AAClB,cAAc,4BAA4B,CAAC;AAE3C,2BAA2B;AAC3B,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAE9C,yBAAyB;AACzB,cAAc,mCAAmC,CAAC;AAElD,uBAAuB;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-device.d.mts","sourceRoot":"","sources":["../../../../../src/ui/component/identity/add-device/add-device.mts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAc3D,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAG,MAAM,yCAAyC,CAAC;AAChH,OAAO,EACH,YAAY,EAAE,6BAA6B,EAC3C,qCAAqC,EACxC,MAAM,2BAA2B,CAAC;AASnC,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAE5D;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,6BAA6B;IACrE,SAAS,CAAC,EAAE,EAAE,MAAM,CAA8B;IAElD,WAAW,CAAC,EAAE,MAAM,CAAgD;IACpE,aAAa,SAA6B;IAE1C,cAKC;IAEK,cAAc,CAAC,EACjB,IAAI,EACJ,SAAS,EACZ,EAAE;QACC,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,SAAS,CAAC;KACxB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CASzC;CACJ;AAED,UAAU,iBAAkB,SAAQ,YAAY;IAC5C,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,EAAE,oBAAoB,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,iBAAiB,CAAC;IAChC,YAAY,EAAE,iBAAiB,CAAC;IAChC,eAAe,EAAE,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,uBAAuB,EAAE,cAAc,CAAC;IACxC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,aAAa,EAAE,iBAAiB,CAAC;IACjC,wBAAwB,EAAE,cAAc,CAAC;IACzC,aAAa,EAAE,gBAAgB,CAAC;IAChC,oBAAoB,EAAE,iBAAiB,CAAC;IACxC,cAAc,EAAE,gBAAgB,CAAC;IACjC,kBAAkB,EAAE,gBAAgB,CAAC;IACrC,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,oBAAoB,CAAC;IACjC,YAAY,EAAE,cAAc,CAAC;IAC7B,cAAc,EAAE,WAAW,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,0BACT,SAAQ,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CACzD,YAAW,6BAA6B,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAkC;IAGtD,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,sBAAsB,CAAC,CAAmB;IAClD,OAAO,CAAC,mBAAmB,CAAC,CAAiB;IAE7C,cAEC;IAEc,UAAU,CAAC,IAAI,EAAE,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;IAEc,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAmCtC;IAEc,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;IAED,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,YAAY;IAiBpB,UAAgB,cAAc,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,iBA2D7D;IAMD,UAAgB,mBAAmB,kBAgElC;IAED,UAAgB,gBAAgB,kBA2G/B;YAMa,mCAAmC;IAiFjD,UAAgB,uBAAuB,kBAkItC;YAMa,wBAAwB;IAoGtC,UAAyB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjD;IAEc,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnD;CACJ"}
1
+ {"version":3,"file":"add-device.d.mts","sourceRoot":"","sources":["../../../../../src/ui/component/identity/add-device/add-device.mts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAc3D,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAG,MAAM,yCAAyC,CAAC;AAChH,OAAO,EACH,YAAY,EAAE,6BAA6B,EAC3C,qCAAqC,EACxC,MAAM,2BAA2B,CAAC;AASnC,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAE5D;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,6BAA6B;IACrE,SAAS,CAAC,EAAE,EAAE,MAAM,CAA8B;IAElD,WAAW,CAAC,EAAE,MAAM,CAAgD;IACpE,aAAa,SAA6B;IAE1C,cAKC;IAEK,cAAc,CAAC,EACjB,IAAI,EACJ,SAAS,EACZ,EAAE;QACC,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,SAAS,CAAC;KACxB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CASzC;CACJ;AAED,UAAU,iBAAkB,SAAQ,YAAY;IAC5C,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,EAAE,oBAAoB,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,iBAAiB,CAAC;IAChC,YAAY,EAAE,iBAAiB,CAAC;IAChC,eAAe,EAAE,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,uBAAuB,EAAE,cAAc,CAAC;IACxC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,aAAa,EAAE,iBAAiB,CAAC;IACjC,wBAAwB,EAAE,cAAc,CAAC;IACzC,aAAa,EAAE,gBAAgB,CAAC;IAChC,oBAAoB,EAAE,iBAAiB,CAAC;IACxC,cAAc,EAAE,gBAAgB,CAAC;IACjC,kBAAkB,EAAE,gBAAgB,CAAC;IACrC,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,EAAE,oBAAoB,CAAC;IACjC,YAAY,EAAE,cAAc,CAAC;IAC7B,cAAc,EAAE,WAAW,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,0BACT,SAAQ,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CACzD,YAAW,6BAA6B,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAkC;IAGtD,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,sBAAsB,CAAC,CAAmB;IAClD,OAAO,CAAC,mBAAmB,CAAC,CAAiB;IAE7C,cAEC;IAEc,UAAU,CAAC,IAAI,EAAE,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;IAEc,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAmCtC;IAEc,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;IAED,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,YAAY;IAiBpB,UAAgB,cAAc,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,iBA2D7D;IAMD,UAAgB,mBAAmB,kBAgElC;IAED,UAAgB,gBAAgB,kBA2G/B;YAMa,mCAAmC;IAiFjD,UAAgB,uBAAuB,kBAmItC;YAMa,wBAAwB;IAoGtC,UAAyB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjD;IAEc,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnD;CACJ"}
@@ -489,6 +489,7 @@ export class AddDeviceComponentInstance extends IbGibFormInstanceBase {
489
489
  parentKeystone: primaryKeystone,
490
490
  delegateKeystone,
491
491
  masterSecret,
492
+ signingPoolId: 'manage',
492
493
  allowedVerbs: [KEYSTONE_VERB_SYNC, KEYSTONE_VERB_CONNECT],
493
494
  metaspace,
494
495
  space,
@@ -1 +1 @@
1
- {"version":3,"file":"add-device.mjs","sourceRoot":"","sources":["../../../../../src/ui/component/identity/add-device/add-device.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-device.mjs","sourceRoot":"","sources":["../../../../../src/ui/component/identity/add-device/add-device.mts"],"names":[],"mappings":"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"}