@ibgib/web-gib 0.0.55 → 0.0.57

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 (46) hide show
  1. package/dist/AUTO-GENERATED-version.d.mts +1 -1
  2. package/dist/AUTO-GENERATED-version.mjs +1 -1
  3. package/dist/api/api-index.mjs +1 -1
  4. package/dist/api/api-index.mjs.map +1 -1
  5. package/dist/api/ibgib-api-bridge.d.mts +35 -0
  6. package/dist/api/ibgib-api-bridge.d.mts.map +1 -1
  7. package/dist/api/ibgib-api-bridge.mjs +70 -3
  8. package/dist/api/ibgib-api-bridge.mjs.map +1 -1
  9. package/dist/ui/component/identity/add-device/add-device.d.mts.map +1 -1
  10. package/dist/ui/component/identity/add-device/add-device.html +6 -7
  11. package/dist/ui/component/identity/add-device/add-device.mjs +13 -10
  12. package/dist/ui/component/identity/add-device/add-device.mjs.map +1 -1
  13. package/dist/ui/component/identity/keystone-creator/keystone-creator.css +19 -0
  14. package/dist/ui/component/identity/keystone-creator/keystone-creator.d.mts +1 -0
  15. package/dist/ui/component/identity/keystone-creator/keystone-creator.d.mts.map +1 -1
  16. package/dist/ui/component/identity/keystone-creator/keystone-creator.html +10 -0
  17. package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs +164 -41
  18. package/dist/ui/component/identity/keystone-creator/keystone-creator.mjs.map +1 -1
  19. package/dist/ui/component/identity/keystone-details/keystone-details.d.mts.map +1 -1
  20. package/dist/ui/component/identity/keystone-details/keystone-details.mjs +9 -8
  21. package/dist/ui/component/identity/keystone-details/keystone-details.mjs.map +1 -1
  22. package/package.json +2 -2
  23. package/src/AUTO-GENERATED-version.mts +1 -1
  24. package/src/api/api-index.mts +1 -1
  25. package/src/api/ibgib-api-bridge.mts +94 -4
  26. package/src/identity/sso/{sso-custodian-service.mts → sso-custodian-service.mts.bak} +65 -38
  27. package/src/identity/sso/{sso-custodian-service.respec.mts → sso-custodian-service.respec.mts.bak} +15 -14
  28. package/src/ui/component/identity/add-device/add-device.html +6 -7
  29. package/src/ui/component/identity/add-device/add-device.mts +17 -16
  30. package/src/ui/component/identity/keystone-creator/keystone-creator.css +19 -0
  31. package/src/ui/component/identity/keystone-creator/keystone-creator.html +10 -0
  32. package/src/ui/component/identity/keystone-creator/keystone-creator.mts +180 -55
  33. package/src/ui/component/identity/keystone-details/keystone-details.mts +16 -15
  34. package/dist/identity/sso/sso-config-helper.d.mts +0 -7
  35. package/dist/identity/sso/sso-config-helper.d.mts.map +0 -1
  36. package/dist/identity/sso/sso-config-helper.mjs +0 -42
  37. package/dist/identity/sso/sso-config-helper.mjs.map +0 -1
  38. package/dist/identity/sso/sso-custodian-service.d.mts +0 -139
  39. package/dist/identity/sso/sso-custodian-service.d.mts.map +0 -1
  40. package/dist/identity/sso/sso-custodian-service.mjs +0 -443
  41. package/dist/identity/sso/sso-custodian-service.mjs.map +0 -1
  42. package/dist/identity/sso/sso-custodian-service.respec.d.mts +0 -2
  43. package/dist/identity/sso/sso-custodian-service.respec.d.mts.map +0 -1
  44. package/dist/identity/sso/sso-custodian-service.respec.mjs +0 -254
  45. package/dist/identity/sso/sso-custodian-service.respec.mjs.map +0 -1
  46. /package/src/identity/sso/{sso-config-helper.mts → sso-config-helper.mts.bak} +0 -0
@@ -1,443 +0,0 @@
1
- import { createPublicKey, verify } from 'node:crypto';
2
- import { hash, HashAlgorithm, extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
3
- import { kdf_recursiveSaltWrap } from '@ibgib/core-gib/dist/keystone/kdf/kdf-helpers.mjs';
4
- import { KeystoneService_V1 } from '@ibgib/core-gib/dist/keystone/keystone-service-v1.mjs';
5
- import { KEYSTONE_VERB_MANAGE, KEYSTONE_VERB_REVOKE, POOL_ID_MANAGE, KEYSTONE_POOL_ID_REGEXP } from '@ibgib/core-gib/dist/keystone/keystone-constants.mjs';
6
- import { generateOpaqueChallengeId } from '@ibgib/core-gib/dist/keystone/keystone-helpers.mjs';
7
- import { KeystoneStrategyFactory } from '@ibgib/core-gib/dist/keystone/strategy/keystone-strategy-factory.mjs';
8
- /**
9
- * Server-side service for token exchange, JWT validation, and user profile normalization.
10
- */
11
- export class SsoCustodianService {
12
- config;
13
- lc = `[${SsoCustodianService.name}]`;
14
- // In-memory cache for JSON Web Key Sets (JWKS) per provider
15
- jwksCache = new Map();
16
- jwksTtlMs = 24 * 60 * 60 * 1000; // Cache certs for 24 hours
17
- /**
18
- * @param config The server's global SSO configuration.
19
- * - Visibility: Private (Contains high-entropy secrets like `ssoServerKdfSecret` and `sessionSecret`).
20
- * - Generator: Server (Bootstrapped from node environment variables on server initialization).
21
- */
22
- constructor(config) {
23
- this.config = config;
24
- }
25
- /**
26
- * Exchanges an authorization code for an OAuth2 token and retrieves normalized user info.
27
- *
28
- * @param providerId The string identifier of the OAuth provider (e.g. 'google' or 'github').
29
- * - Visibility: Public (Non-sensitive metadata string).
30
- * - Generator: Client (Sent from browser UI selection).
31
- *
32
- * @param code The temporary authorization code returned by the OAuth provider.
33
- * - Visibility: Private (Confidential short-lived bearer credential. Must be kept private).
34
- * - Generator: Provider (Created by provider's OAuth page and sent to client redirect URI).
35
- *
36
- * @param redirectUri The redirect URI registered in the provider portal.
37
- * - Visibility: Public (Configuration URL).
38
- * - Generator: Client/Server (Derived from environmental configuration and sent by client).
39
- */
40
- async getOAuthUserInfo(providerId, code, redirectUri) {
41
- const lc = `${this.lc}[${this.getOAuthUserInfo.name}]`;
42
- const providerConfig = this.config.providers[providerId];
43
- if (!providerConfig) {
44
- throw new Error(`Provider '${providerId}' is not configured on this server. (E: c28900abfefd23e89cf23f12)`);
45
- }
46
- console.log(`${lc} Exchanging code for provider: ${providerId}`);
47
- // 1. Exchange authorization code for tokens
48
- const tokens = await this.exchangeCodeForTokens(providerConfig, code, redirectUri);
49
- // 2. Retrieve and normalize user info
50
- if (providerId === 'google') {
51
- // Google returns an id_token (JWT) directly containing user info
52
- if (!tokens.id_token) {
53
- throw new Error(`Google token exchange did not return id_token. (E: e28900abfefd23e89cf45f23)`);
54
- }
55
- return this.verifyAndNormalizeGoogleToken(tokens.id_token);
56
- }
57
- else if (providerId === 'github') {
58
- // GitHub requires calling the /user API using the access_token
59
- if (!tokens.access_token) {
60
- throw new Error(`GitHub token exchange did not return access_token. (E: a28900abfefd23e89cf56f34)`);
61
- }
62
- return this.fetchAndNormalizeGithubUser(providerConfig, tokens.access_token);
63
- }
64
- throw new Error(`Unsupported provider: ${providerId}. (E: d28900abfefd23e89cf67f45)`);
65
- }
66
- /**
67
- * Directly validates a Google ID Token (JWT) locally and returns normalized user info.
68
- * Useful for client-side authentication handshakes.
69
- *
70
- * @param idToken The raw base64-encoded signed JSON Web Token (JWT) ID token returned by Google.
71
- * - Visibility: Private (Sensitive bearer credential containing signature and claims. Must be kept private).
72
- * - Generator: Provider (Generated and signed cryptographically by Google authentication servers).
73
- */
74
- async verifyAndNormalizeGoogleToken(idToken) {
75
- const lc = `${this.lc}[${this.verifyAndNormalizeGoogleToken.name}]`;
76
- const providerConfig = this.config.providers.google;
77
- if (!providerConfig) {
78
- throw new Error(`Google provider config is missing. (E: g28900abfefd23e89cf78f56)`);
79
- }
80
- // Verify signature and decode JWT payload
81
- const payload = await this.verifyJwt(idToken, providerConfig);
82
- // Assert claims
83
- const nowSeconds = Math.floor(Date.now() / 1000);
84
- if (payload.exp && payload.exp < nowSeconds) {
85
- throw new Error(`Token has expired. (E: t28900abfefd23e89cf89f67)`);
86
- }
87
- if (payload.aud !== providerConfig.clientId) {
88
- throw new Error(`Token audience mismatch. Expected ${providerConfig.clientId}, got ${payload.aud}. (E: m28900abfefd23e89cf90f78)`);
89
- }
90
- if (!payload.sub) {
91
- throw new Error(`Google JWT is missing subject claim ('sub'). (E: s28900abfefd23e89cfa1f89)`);
92
- }
93
- return {
94
- providerKey: `google:${payload.sub}`,
95
- providerId: 'google',
96
- sub: payload.sub,
97
- email: payload.email,
98
- name: payload.name,
99
- picture: payload.picture
100
- };
101
- }
102
- /**
103
- * Internal: Exchange authorization code for access token / ID token.
104
- *
105
- * @param providerConfig Server configuration settings for the specific provider.
106
- * - Visibility: Private (Contains provider client secrets. Must stay server-side).
107
- * - Generator: Server (Configured from node environment variables).
108
- *
109
- * @param code The temporary authorization code to exchange.
110
- * - Visibility: Private (Short-lived credential. Must be kept private).
111
- * - Generator: Provider (Via OAuth flow).
112
- *
113
- * @param redirectUri The redirect URI registered for the exchange.
114
- * - Visibility: Public (Configuration URL).
115
- * - Generator: Client/Server (From app configuration).
116
- */
117
- async exchangeCodeForTokens(providerConfig, code, redirectUri) {
118
- const body = new URLSearchParams({
119
- client_id: providerConfig.clientId,
120
- client_secret: providerConfig.clientSecret,
121
- code,
122
- redirect_uri: redirectUri,
123
- grant_type: 'authorization_code'
124
- });
125
- const headers = {
126
- 'Content-Type': 'application/x-www-form-urlencoded'
127
- };
128
- // GitHub requires an Accept header to return JSON instead of URL-encoded string
129
- if (providerConfig.providerId === 'github') {
130
- headers['Accept'] = 'application/json';
131
- }
132
- const res = await fetch(providerConfig.tokenUrl, {
133
- method: 'POST',
134
- headers,
135
- body: body.toString()
136
- });
137
- if (!res.ok) {
138
- const errText = await res.text();
139
- throw new Error(`Token exchange failed (HTTP ${res.status}): ${errText}`);
140
- }
141
- return res.json();
142
- }
143
- /**
144
- * Internal: Fetch GitHub user profile and normalize.
145
- *
146
- * @param providerConfig Server configuration settings for GitHub.
147
- * - Visibility: Private (Contains GitHub client secret).
148
- * - Generator: Server (From environment config).
149
- *
150
- * @param accessToken The active OAuth2 access token to authorize the API call.
151
- * - Visibility: Private (Bearer token. Must be kept private).
152
- * - Generator: Provider (GitHub token endpoint).
153
- */
154
- async fetchAndNormalizeGithubUser(providerConfig, accessToken) {
155
- const res = await fetch(providerConfig.userInfoUrl, {
156
- headers: {
157
- 'Authorization': `Bearer ${accessToken}`,
158
- 'User-Agent': 'space-gib-auth-agent' // GitHub API requires User-Agent
159
- }
160
- });
161
- if (!res.ok) {
162
- const errText = await res.text();
163
- throw new Error(`Failed to fetch GitHub user info (HTTP ${res.status}): ${errText}`);
164
- }
165
- const rawUser = await res.json();
166
- if (!rawUser.id) {
167
- throw new Error(`GitHub user info response missing 'id' field.`);
168
- }
169
- const sub = String(rawUser.id);
170
- return {
171
- providerKey: `github:${sub}`,
172
- providerId: 'github',
173
- sub,
174
- email: rawUser.email || undefined,
175
- name: rawUser.name || rawUser.login || undefined,
176
- picture: rawUser.avatar_url || undefined
177
- };
178
- }
179
- /**
180
- * Internal: Decodes and cryptographically verifies a JWT signature using JWKS public keys.
181
- *
182
- * @param token The raw base64-encoded JWT token to verify.
183
- * - Visibility: Private (Sensitive token. Must be kept private).
184
- * - Generator: Provider (Google / OIDC server).
185
- *
186
- * @param providerConfig The target provider server settings containing `jwksUrl`.
187
- * - Visibility: Private (Contains secrets).
188
- * - Generator: Server (From environment config).
189
- */
190
- async verifyJwt(token, providerConfig) {
191
- const parts = token.split('.');
192
- if (parts.length !== 3) {
193
- throw new Error('JWT must have 3 parts separated by dots.');
194
- }
195
- const [headerB64, payloadB64, signatureB64] = parts;
196
- // 1. Decode header and select algorithm/key ID
197
- let header;
198
- try {
199
- header = JSON.parse(Buffer.from(headerB64, 'base64url').toString('utf-8'));
200
- }
201
- catch {
202
- throw new Error('Failed to parse JWT header.');
203
- }
204
- if (header.alg !== 'RS256') {
205
- throw new Error(`Only RS256 algorithm is supported, got: ${header.alg}`);
206
- }
207
- const kid = header.kid;
208
- if (!kid) {
209
- throw new Error('JWT header missing key ID (kid).');
210
- }
211
- // 2. Fetch public keys (JWKS)
212
- const keys = await this.getJwksKeys(providerConfig);
213
- const jwk = keys.find(key => key.kid === kid);
214
- if (!jwk) {
215
- throw new Error(`JWK public key matching kid '${kid}' not found.`);
216
- }
217
- // 3. Create Public Key object using Node native crypto
218
- const publicKey = createPublicKey({
219
- key: jwk,
220
- format: 'jwk'
221
- });
222
- // 4. Verify signature against header + payload data
223
- const signature = Buffer.from(signatureB64, 'base64url');
224
- const data = Buffer.from(`${headerB64}.${payloadB64}`);
225
- const isValid = verify('sha256', data, publicKey, signature);
226
- if (!isValid) {
227
- throw new Error('Cryptographic signature verification failed.');
228
- }
229
- // 5. Decode and return payload
230
- try {
231
- return JSON.parse(Buffer.from(payloadB64, 'base64url').toString('utf-8'));
232
- }
233
- catch {
234
- throw new Error('Failed to parse JWT payload.');
235
- }
236
- }
237
- /**
238
- * Internal: Retrieves JWKS keys from cache or fetches them from the provider's jwksUrl.
239
- *
240
- * @param providerConfig The provider config containing the target `jwksUrl`.
241
- * - Visibility: Private (Contains client secrets).
242
- * - Generator: Server (From environment config).
243
- */
244
- async getJwksKeys(providerConfig) {
245
- const providerId = providerConfig.providerId;
246
- const cached = this.jwksCache.get(providerId);
247
- if (cached && cached.expiresAt > Date.now()) {
248
- return cached.keys;
249
- }
250
- if (!providerConfig.jwksUrl) {
251
- throw new Error(`Provider '${providerId}' does not define a jwksUrl for JWT signature validation.`);
252
- }
253
- const res = await fetch(providerConfig.jwksUrl);
254
- if (!res.ok) {
255
- throw new Error(`Failed to fetch JWKS from ${providerConfig.jwksUrl} (HTTP ${res.status})`);
256
- }
257
- const body = (await res.json());
258
- if (!body.keys || !Array.isArray(body.keys)) {
259
- throw new Error(`Invalid JWKS response structure from ${providerConfig.jwksUrl}`);
260
- }
261
- this.jwksCache.set(providerId, {
262
- keys: body.keys,
263
- expiresAt: Date.now() + this.jwksTtlMs
264
- });
265
- return body.keys;
266
- }
267
- /**
268
- * Derives a server-delegate master secret deterministically using the server's private KDF secret,
269
- * the providerKey, and the user's public nonce.
270
- *
271
- * @param providerKey The unique key identifying the provider and user sub ID (e.g. `google:123...`).
272
- * - Visibility: Public (Identifier saved on parent's delegate claim, safe for log/ledger storage).
273
- * - Generator: Provider/Server (Derived by mapping provider user sub ID after authentication).
274
- *
275
- * @param userNonce The public, high-entropy nonce generated by the client to salt the KDF derivation.
276
- * - Visibility: Public (Salt value stored on parent's delegate claim, safe for ledger storage).
277
- * - Generator: Client (Generated offline on user's device).
278
- */
279
- async deriveServerDelegateSecret(providerKey, userNonce) {
280
- const salt = await hash({
281
- s: `${providerKey}:${userNonce}`,
282
- algorithm: HashAlgorithm.sha_512
283
- });
284
- return await kdf_recursiveSaltWrap({
285
- masterSecret: this.config.ssoServerKdfSecret,
286
- salt,
287
- rounds: 1000,
288
- algorithm: HashAlgorithm.sha_512
289
- });
290
- }
291
- /**
292
- * Creates a public custodian challenge pool (custodian-manage) derived deterministically
293
- * from the server's private KDF secret, providerKey, and userNonce.
294
- *
295
- * @param providerKey The unique key identifying the provider and user sub ID (e.g. `google:123...`).
296
- * - Visibility: Public (Mapped identifier, safe for ledger).
297
- * - Generator: Provider/Server (Derived after successful token exchange).
298
- *
299
- * @param userNonce The public, high-entropy nonce.
300
- * - Visibility: Public (Derivation salt, safe for ledger).
301
- * - Generator: Client (Generated on user's device).
302
- */
303
- async createCustodianChallengePool({ providerId, providerKey, userNonce, keystoneAddr, metaspace, space, }) {
304
- // 1. Fetch target keystone
305
- const keystoneService = new KeystoneService_V1();
306
- const targetKeystone = await keystoneService.getLatestKeystone({
307
- addr: keystoneAddr,
308
- metaspace,
309
- space
310
- });
311
- if (!targetKeystone) {
312
- throw new Error(`Keystone not found for address: ${keystoneAddr} (E: 8a9c2b1d3e5f6a7b8c9d0e1f2a3b4c5d)`);
313
- }
314
- // 2. Locate native manage pool
315
- const userManagePool = targetKeystone.data?.challengePools.find(p => p.id === POOL_ID_MANAGE);
316
- if (!userManagePool) {
317
- throw new Error(`Keystone manage pool not found. Custodian manage pool must match the user manage pool's security config. (E: 7c4e5f6a7b8c9d0e1f2a3b4c5e6f7a8b)`);
318
- }
319
- // 3. Dynamic poolId based on providerId with regex validation
320
- if (!providerId || !KEYSTONE_POOL_ID_REGEXP.test(providerId)) {
321
- throw new Error(`Invalid providerId: "${providerId}". Must match ${KEYSTONE_POOL_ID_REGEXP} (E: 3a2c4e5f6a7b8c9d0e1f2a3b4c5e6f)`);
322
- }
323
- const poolId = `custodian-manage-${providerId}`;
324
- // 4. Derive delegate secrets
325
- const custodianSecret = await this.deriveServerDelegateSecret(providerKey, userNonce);
326
- const poolSalt = await hash({
327
- s: `${providerKey}:${userNonce}:salt`,
328
- algorithm: HashAlgorithm.sha_256
329
- });
330
- const poolSaltShort = poolSalt.substring(0, 16);
331
- // 5. Clone user's manage pool config, updating only ID, salt, and allowedVerbs
332
- const config = {
333
- ...userManagePool.config,
334
- id: poolId,
335
- salt: poolSaltShort,
336
- allowedVerbs: [KEYSTONE_VERB_MANAGE, KEYSTONE_VERB_REVOKE]
337
- };
338
- const strategy = KeystoneStrategyFactory.create({ config });
339
- const poolSecret = await strategy.derivePoolSecret({ masterSecret: custodianSecret });
340
- const challenges = {};
341
- const timestamp = Date.now().toString();
342
- for (let i = 0; i < config.behavior.size; i++) {
343
- const challengeId = await generateOpaqueChallengeId({
344
- salt: config.salt,
345
- timestamp,
346
- index: i
347
- });
348
- const solution = await strategy.generateSolution({
349
- poolSecret,
350
- poolId: config.id,
351
- challengeId
352
- });
353
- challenges[challengeId] = await strategy.generateChallenge({ solution });
354
- }
355
- return {
356
- id: poolId,
357
- config,
358
- challenges,
359
- isForeign: true,
360
- metadata: {
361
- owner: 'custodian',
362
- providerKey
363
- }
364
- };
365
- }
366
- /**
367
- * Maps private server configuration to safe public client configurations.
368
- *
369
- * @param hostUrl The root URL host address of the server (e.g. `https://space-gib.localhost` or `https://ibgib.space`).
370
- * - Visibility: Public (Non-sensitive hostname configuration).
371
- * - Generator: Server (Extracted from the HTTP request context headers/protocol).
372
- */
373
- getSsoClientConfigs(hostUrl) {
374
- const configs = [];
375
- if (this.config.providers.google) {
376
- configs.push({
377
- providerId: 'google',
378
- clientId: this.config.providers.google.clientId,
379
- authUrl: 'https://accounts.google.com/o/oauth2/v2/auth',
380
- redirectUri: `${hostUrl}/`,
381
- scope: 'openid email profile'
382
- });
383
- }
384
- if (this.config.providers.github) {
385
- configs.push({
386
- providerId: 'github',
387
- clientId: this.config.providers.github.clientId,
388
- authUrl: 'https://github.com/login/oauth/authorize',
389
- redirectUri: `${hostUrl}/`,
390
- scope: 'read:user user:email'
391
- });
392
- }
393
- return configs;
394
- }
395
- /**
396
- * Revokes an active OAuth access or refresh token with the provider.
397
- * Keeps token revocation logic DRY and centralized.
398
- */
399
- async revokeToken(providerId, token) {
400
- const lc = `${this.lc}[${this.revokeToken.name}]`;
401
- const providerConfig = this.config.providers[providerId];
402
- if (!providerConfig) {
403
- throw new Error(`SSO provider "${providerId}" config is missing. (E: r28900abfefd23e89cf78f57)`);
404
- }
405
- try {
406
- if (providerId === 'google') {
407
- const res = await fetch(`https://oauth2.googleapis.com/revoke?token=${encodeURIComponent(token)}`, {
408
- method: 'POST',
409
- headers: {
410
- 'Content-Type': 'application/x-www-form-urlencoded'
411
- }
412
- });
413
- if (!res.ok) {
414
- const text = await res.text();
415
- console.warn(`${lc} Google token revocation returned status ${res.status}: ${text}`);
416
- }
417
- }
418
- else if (providerId === 'github') {
419
- const auth = Buffer.from(`${providerConfig.clientId}:${providerConfig.clientSecret}`).toString('base64');
420
- const res = await fetch(`https://api.github.com/applications/${providerConfig.clientId}/grant`, {
421
- method: 'DELETE',
422
- headers: {
423
- 'Authorization': `Basic ${auth}`,
424
- 'Accept': 'application/vnd.github.v3+json',
425
- 'User-Agent': 'space-gib-server'
426
- },
427
- body: JSON.stringify({ access_token: token })
428
- });
429
- if (!res.ok && res.status !== 404) {
430
- const text = await res.text();
431
- console.warn(`${lc} GitHub token revocation returned status ${res.status}: ${text}`);
432
- }
433
- }
434
- else {
435
- throw new Error(`Unsupported provider: ${providerId} (E: e28900abfefd23e89cf78f58)`);
436
- }
437
- }
438
- catch (error) {
439
- console.error(`${lc} Token revocation failed for provider ${providerId}: ${extractErrorMsg(error)}`);
440
- }
441
- }
442
- }
443
- //# sourceMappingURL=sso-custodian-service.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sso-custodian-service.mjs","sourceRoot":"","sources":["../../../src/identity/sso/sso-custodian-service.mts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sso-custodian-service.respec.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sso-custodian-service.respec.d.mts","sourceRoot":"","sources":["../../../src/identity/sso/sso-custodian-service.respec.mts"],"names":[],"mappings":""}