@authn-sh/sdk-node 0.4.0 → 0.5.0-alpha.9
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/index.cjs +155 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +164 -14
- package/dist/index.d.ts +164 -14
- package/dist/index.js +149 -10
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -38,6 +38,51 @@ var AuthnWebhookSignatureInvalidError = class extends Error {
|
|
|
38
38
|
name = "AuthnWebhookSignatureInvalidError";
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
+
// src/resources/Manager.ts
|
|
42
|
+
var Manager = class {
|
|
43
|
+
constructor(transport) {
|
|
44
|
+
this.transport = transport;
|
|
45
|
+
}
|
|
46
|
+
transport;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// src/resources/Appearance.ts
|
|
50
|
+
var AppearanceManager = class extends Manager {
|
|
51
|
+
async get() {
|
|
52
|
+
const raw = await this.transport.send("GET", "/v1/instance/appearance");
|
|
53
|
+
return hydrateAppearance(raw);
|
|
54
|
+
}
|
|
55
|
+
async put(blob, idempotencyKey) {
|
|
56
|
+
const raw = await this.transport.send("PUT", "/v1/instance/appearance", {
|
|
57
|
+
body: blob,
|
|
58
|
+
idempotencyKey
|
|
59
|
+
});
|
|
60
|
+
return hydrateAppearance(raw);
|
|
61
|
+
}
|
|
62
|
+
async patch(partial, idempotencyKey) {
|
|
63
|
+
const raw = await this.transport.send("PATCH", "/v1/instance/appearance", {
|
|
64
|
+
body: partial,
|
|
65
|
+
idempotencyKey
|
|
66
|
+
});
|
|
67
|
+
return hydrateAppearance(raw);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
function hydrateAppearance(raw) {
|
|
71
|
+
if (!raw || typeof raw !== "object") return {};
|
|
72
|
+
const obj = raw;
|
|
73
|
+
const out = {};
|
|
74
|
+
if (obj.variables && typeof obj.variables === "object") {
|
|
75
|
+
out.variables = obj.variables;
|
|
76
|
+
}
|
|
77
|
+
if (obj.elements && typeof obj.elements === "object") {
|
|
78
|
+
out.elements = obj.elements;
|
|
79
|
+
}
|
|
80
|
+
if (obj.layout && typeof obj.layout === "object") {
|
|
81
|
+
out.layout = obj.layout;
|
|
82
|
+
}
|
|
83
|
+
return out;
|
|
84
|
+
}
|
|
85
|
+
|
|
41
86
|
// src/resources/ListParams.ts
|
|
42
87
|
var ListParams = class {
|
|
43
88
|
constructor(limit, offset, orderBy) {
|
|
@@ -57,14 +102,6 @@ var ListParams = class {
|
|
|
57
102
|
}
|
|
58
103
|
};
|
|
59
104
|
|
|
60
|
-
// src/resources/Manager.ts
|
|
61
|
-
var Manager = class {
|
|
62
|
-
constructor(transport) {
|
|
63
|
-
this.transport = transport;
|
|
64
|
-
}
|
|
65
|
-
transport;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
105
|
// src/resources/PaginatedList.ts
|
|
69
106
|
function hydratePaginatedList(raw, hydrate) {
|
|
70
107
|
if (!raw || typeof raw !== "object") {
|
|
@@ -276,6 +313,37 @@ function hydrateBlocklistIdentifier(raw) {
|
|
|
276
313
|
return hydrateIdentifier(raw, "blocklist_identifier");
|
|
277
314
|
}
|
|
278
315
|
|
|
316
|
+
// src/resources/Localization.ts
|
|
317
|
+
var LocalizationManager = class extends Manager {
|
|
318
|
+
async get() {
|
|
319
|
+
const raw = await this.transport.send("GET", "/v1/instance/localization");
|
|
320
|
+
return hydrateLocalization(raw);
|
|
321
|
+
}
|
|
322
|
+
async put(blob, idempotencyKey) {
|
|
323
|
+
const raw = await this.transport.send("PUT", "/v1/instance/localization", {
|
|
324
|
+
body: blob,
|
|
325
|
+
idempotencyKey
|
|
326
|
+
});
|
|
327
|
+
return hydrateLocalization(raw);
|
|
328
|
+
}
|
|
329
|
+
async patch(partial, idempotencyKey) {
|
|
330
|
+
const raw = await this.transport.send("PATCH", "/v1/instance/localization", {
|
|
331
|
+
body: partial,
|
|
332
|
+
idempotencyKey
|
|
333
|
+
});
|
|
334
|
+
return hydrateLocalization(raw);
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
function hydrateLocalization(raw) {
|
|
338
|
+
const obj = raw && typeof raw === "object" ? raw : {};
|
|
339
|
+
return {
|
|
340
|
+
default_locale: typeof obj.default_locale === "string" ? obj.default_locale : "en-US",
|
|
341
|
+
fallback_locale: typeof obj.fallback_locale === "string" ? obj.fallback_locale : "en-US",
|
|
342
|
+
supported_locales: Array.isArray(obj.supported_locales) ? obj.supported_locales.filter((s) => typeof s === "string") : [],
|
|
343
|
+
overrides: obj.overrides && typeof obj.overrides === "object" ? obj.overrides : {}
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
|
|
279
347
|
// src/resources/OauthProviders.ts
|
|
280
348
|
var OauthProvidersManager = class extends Manager {
|
|
281
349
|
async list(params) {
|
|
@@ -597,6 +665,62 @@ function hydrateOrganizationDomain(raw) {
|
|
|
597
665
|
};
|
|
598
666
|
}
|
|
599
667
|
|
|
668
|
+
// src/resources/Passkeys.ts
|
|
669
|
+
var PasskeysListParams = class extends ListParams {
|
|
670
|
+
constructor(userId, limit, offset, orderBy) {
|
|
671
|
+
super(limit, offset, orderBy);
|
|
672
|
+
this.userId = userId;
|
|
673
|
+
}
|
|
674
|
+
userId;
|
|
675
|
+
toQuery() {
|
|
676
|
+
const q = super.toQuery();
|
|
677
|
+
if (this.userId) q.user_id = this.userId;
|
|
678
|
+
return q;
|
|
679
|
+
}
|
|
680
|
+
};
|
|
681
|
+
var PasskeysManager = class extends Manager {
|
|
682
|
+
async list(params) {
|
|
683
|
+
const raw = await this.transport.send("GET", "/v1/passkeys", {
|
|
684
|
+
query: (params ?? new PasskeysListParams()).toQuery()
|
|
685
|
+
});
|
|
686
|
+
return hydratePaginatedList(raw, hydratePasskey);
|
|
687
|
+
}
|
|
688
|
+
async get(passkeyId) {
|
|
689
|
+
const raw = await this.transport.send("GET", `/v1/passkeys/${encodeURIComponent(passkeyId)}`);
|
|
690
|
+
return hydratePasskey(raw);
|
|
691
|
+
}
|
|
692
|
+
async update(passkeyId, data, idempotencyKey) {
|
|
693
|
+
const raw = await this.transport.send(
|
|
694
|
+
"PATCH",
|
|
695
|
+
`/v1/passkeys/${encodeURIComponent(passkeyId)}`,
|
|
696
|
+
{
|
|
697
|
+
body: data,
|
|
698
|
+
idempotencyKey
|
|
699
|
+
}
|
|
700
|
+
);
|
|
701
|
+
return hydratePasskey(raw);
|
|
702
|
+
}
|
|
703
|
+
async delete(passkeyId) {
|
|
704
|
+
await this.transport.send("DELETE", `/v1/passkeys/${encodeURIComponent(passkeyId)}`);
|
|
705
|
+
}
|
|
706
|
+
};
|
|
707
|
+
function hydratePasskey(raw) {
|
|
708
|
+
const obj = raw && typeof raw === "object" ? raw : {};
|
|
709
|
+
return {
|
|
710
|
+
id: String(obj.id ?? ""),
|
|
711
|
+
object: "passkey",
|
|
712
|
+
userId: String(obj.user_id ?? ""),
|
|
713
|
+
nickname: typeof obj.nickname === "string" ? obj.nickname : "",
|
|
714
|
+
transports: Array.isArray(obj.transports) ? obj.transports.filter((t) => typeof t === "string") : [],
|
|
715
|
+
aaguid: typeof obj.aaguid === "string" ? obj.aaguid : null,
|
|
716
|
+
verified: Boolean(obj.verified),
|
|
717
|
+
lastUsedAt: typeof obj.last_used_at === "number" ? obj.last_used_at : null,
|
|
718
|
+
createdAt: typeof obj.created_at === "number" ? obj.created_at : 0,
|
|
719
|
+
updatedAt: typeof obj.updated_at === "number" ? obj.updated_at : 0,
|
|
720
|
+
raw: obj
|
|
721
|
+
};
|
|
722
|
+
}
|
|
723
|
+
|
|
600
724
|
// src/resources/PhoneNumbers.ts
|
|
601
725
|
var PhoneNumbersListParams = class extends ListParams {
|
|
602
726
|
constructor(userId, limit, offset, orderBy) {
|
|
@@ -1135,6 +1259,9 @@ var Authn = class {
|
|
|
1135
1259
|
roles;
|
|
1136
1260
|
permissions;
|
|
1137
1261
|
instance;
|
|
1262
|
+
passkeys;
|
|
1263
|
+
appearance;
|
|
1264
|
+
localization;
|
|
1138
1265
|
constructor(opts) {
|
|
1139
1266
|
if (!opts.secretKey || typeof opts.secretKey !== "string") {
|
|
1140
1267
|
throw new AuthnConfigError("Authn: secretKey is required.");
|
|
@@ -1164,12 +1291,15 @@ var Authn = class {
|
|
|
1164
1291
|
this.roles = new RolesManager(this.transport);
|
|
1165
1292
|
this.permissions = new PermissionsManager(this.transport);
|
|
1166
1293
|
this.instance = new InstanceManager(this.transport);
|
|
1294
|
+
this.passkeys = new PasskeysManager(this.transport);
|
|
1295
|
+
this.appearance = new AppearanceManager(this.transport);
|
|
1296
|
+
this.localization = new LocalizationManager(this.transport);
|
|
1167
1297
|
}
|
|
1168
1298
|
};
|
|
1169
1299
|
|
|
1170
1300
|
// src/tokens/VerifiedClaims.ts
|
|
1171
1301
|
var VerifiedClaims = class {
|
|
1172
|
-
constructor(sub, sid, iss, azp, exp, iat, nbf, actor, organization, wasTest, twoFactorVerified, secondFactorAgeSeconds, firstFactorAgeSeconds, phoneNumberVerified, defaultSecondFactor, raw) {
|
|
1302
|
+
constructor(sub, sid, iss, azp, exp, iat, nbf, actor, organization, wasTest, twoFactorVerified, secondFactorAgeSeconds, firstFactorAgeSeconds, phoneNumberVerified, defaultSecondFactor, passkeyVerified, passkeyCount, raw) {
|
|
1173
1303
|
this.sub = sub;
|
|
1174
1304
|
this.sid = sid;
|
|
1175
1305
|
this.iss = iss;
|
|
@@ -1185,6 +1315,8 @@ var VerifiedClaims = class {
|
|
|
1185
1315
|
this.firstFactorAgeSeconds = firstFactorAgeSeconds;
|
|
1186
1316
|
this.phoneNumberVerified = phoneNumberVerified;
|
|
1187
1317
|
this.defaultSecondFactor = defaultSecondFactor;
|
|
1318
|
+
this.passkeyVerified = passkeyVerified;
|
|
1319
|
+
this.passkeyCount = passkeyCount;
|
|
1188
1320
|
this.raw = raw;
|
|
1189
1321
|
}
|
|
1190
1322
|
sub;
|
|
@@ -1202,6 +1334,8 @@ var VerifiedClaims = class {
|
|
|
1202
1334
|
firstFactorAgeSeconds;
|
|
1203
1335
|
phoneNumberVerified;
|
|
1204
1336
|
defaultSecondFactor;
|
|
1337
|
+
passkeyVerified;
|
|
1338
|
+
passkeyCount;
|
|
1205
1339
|
raw;
|
|
1206
1340
|
hasRole(roleKey) {
|
|
1207
1341
|
return this.organization?.role === roleKey;
|
|
@@ -1215,6 +1349,9 @@ var VerifiedClaims = class {
|
|
|
1215
1349
|
preferredSecondFactor() {
|
|
1216
1350
|
return this.defaultSecondFactor;
|
|
1217
1351
|
}
|
|
1352
|
+
hasVerifiedPasskey() {
|
|
1353
|
+
return this.passkeyVerified;
|
|
1354
|
+
}
|
|
1218
1355
|
};
|
|
1219
1356
|
function buildVerifiedClaims(claims) {
|
|
1220
1357
|
const num = (k) => typeof claims[k] === "number" ? claims[k] : 0;
|
|
@@ -1257,6 +1394,8 @@ function buildVerifiedClaims(claims) {
|
|
|
1257
1394
|
numOrNull("ffa"),
|
|
1258
1395
|
claims["pnv"] === true,
|
|
1259
1396
|
dsf,
|
|
1397
|
+
claims["pkv"] === true,
|
|
1398
|
+
num("pkc"),
|
|
1260
1399
|
claims
|
|
1261
1400
|
);
|
|
1262
1401
|
}
|
|
@@ -1472,6 +1611,6 @@ function stripWhsecPrefix(secret) {
|
|
|
1472
1611
|
return secret.startsWith("whsec_") ? secret.slice(6) : secret;
|
|
1473
1612
|
}
|
|
1474
1613
|
|
|
1475
|
-
export { AllowlistIdentifiersManager, Authn, AuthnConfigError, AuthnHttpError, AuthnTokenInvalidError, AuthnWebhookSignatureInvalidError, BlocklistIdentifiersManager, ExternalAccountsListParams, ExternalAccountsManager, InstanceManager, InvitationsListParams, InvitationsManager, ListParams, OauthProvidersManager, OrganizationDomainsManager, OrganizationInvitationsManager, OrganizationMembershipsManager, OrganizationsManager, PermissionsManager, PhoneNumbersListParams, PhoneNumbersManager, RedirectUrlsManager, RolesManager, SessionsListParams, SessionsManager, SmsTemplatesManager, TokenVerifier, Transport, UsersListParams, UsersManager, VerifiedClaims, WebhookSignatureVerifier, buildVerifiedClaims, decodeFrontendApiUrl, hydrateAllowlistIdentifier, hydrateBlocklistIdentifier, hydrateExternalAccount, hydrateInstance, hydrateInvitation, hydrateOauthProvider, hydrateOrganization, hydrateOrganizationDomain, hydrateOrganizationInvitation, hydrateOrganizationMembership, hydratePermission, hydratePhoneNumber, hydrateRedirectUrl, hydrateRole, hydrateSession, hydrateSmsTemplate, hydrateUser };
|
|
1614
|
+
export { AllowlistIdentifiersManager, AppearanceManager, Authn, AuthnConfigError, AuthnHttpError, AuthnTokenInvalidError, AuthnWebhookSignatureInvalidError, BlocklistIdentifiersManager, ExternalAccountsListParams, ExternalAccountsManager, InstanceManager, InvitationsListParams, InvitationsManager, ListParams, LocalizationManager, OauthProvidersManager, OrganizationDomainsManager, OrganizationInvitationsManager, OrganizationMembershipsManager, OrganizationsManager, PasskeysListParams, PasskeysManager, PermissionsManager, PhoneNumbersListParams, PhoneNumbersManager, RedirectUrlsManager, RolesManager, SessionsListParams, SessionsManager, SmsTemplatesManager, TokenVerifier, Transport, UsersListParams, UsersManager, VerifiedClaims, WebhookSignatureVerifier, buildVerifiedClaims, decodeFrontendApiUrl, hydrateAllowlistIdentifier, hydrateAppearance, hydrateBlocklistIdentifier, hydrateExternalAccount, hydrateInstance, hydrateInvitation, hydrateLocalization, hydrateOauthProvider, hydrateOrganization, hydrateOrganizationDomain, hydrateOrganizationInvitation, hydrateOrganizationMembership, hydratePasskey, hydratePermission, hydratePhoneNumber, hydrateRedirectUrl, hydrateRole, hydrateSession, hydrateSmsTemplate, hydrateUser };
|
|
1476
1615
|
//# sourceMappingURL=index.js.map
|
|
1477
1616
|
//# sourceMappingURL=index.js.map
|