@atlasauth/backend 0.17.0 → 0.19.0
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/CHANGELOG.md +40 -0
- package/dist/backchannel-handlers.d.ts +87 -0
- package/dist/backchannel-handlers.js +137 -0
- package/dist/backchannel-handlers.js.map +1 -0
- package/dist/client/activity.d.ts +13 -2
- package/dist/client/activity.js.map +1 -1
- package/dist/client/audit-logs.d.ts +7 -0
- package/dist/client/audit-logs.js.map +1 -1
- package/dist/client/compliance.d.ts +216 -0
- package/dist/client/compliance.js +77 -0
- package/dist/client/compliance.js.map +1 -0
- package/dist/client/credentials.d.ts +409 -0
- package/dist/client/credentials.js +158 -0
- package/dist/client/credentials.js.map +1 -0
- package/dist/client/data-subject-requests.d.ts +36 -1
- package/dist/client/data-subject-requests.js.map +1 -1
- package/dist/client/design.d.ts +48 -0
- package/dist/client/design.js +9 -0
- package/dist/client/design.js.map +1 -1
- package/dist/client/entitlement-overrides.d.ts +30 -0
- package/dist/client/entitlement-overrides.js +9 -0
- package/dist/client/entitlement-overrides.js.map +1 -1
- package/dist/client/env.d.ts +16 -0
- package/dist/client/env.js +38 -0
- package/dist/client/env.js.map +1 -0
- package/dist/client/error.d.ts +10 -0
- package/dist/client/error.js +4 -0
- package/dist/client/error.js.map +1 -1
- package/dist/client/index.d.ts +382 -7
- package/dist/client/index.js +44 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/instance.d.ts +401 -3
- package/dist/client/instance.js +77 -3
- package/dist/client/instance.js.map +1 -1
- package/dist/client/integrations.d.ts +107 -0
- package/dist/client/integrations.js +25 -0
- package/dist/client/integrations.js.map +1 -0
- package/dist/client/messaging.d.ts +18 -4
- package/dist/client/messaging.js +6 -2
- package/dist/client/messaging.js.map +1 -1
- package/dist/client/oauth-clients.d.ts +11 -3
- package/dist/client/oauth-clients.js +4 -2
- package/dist/client/oauth-clients.js.map +1 -1
- package/dist/client/operator.d.ts +100 -0
- package/dist/client/operator.js +132 -0
- package/dist/client/operator.js.map +1 -0
- package/dist/client/platform.d.ts +233 -9
- package/dist/client/platform.js +74 -6
- package/dist/client/platform.js.map +1 -1
- package/dist/client/policies.d.ts +316 -0
- package/dist/client/policies.js +103 -0
- package/dist/client/policies.js.map +1 -0
- package/dist/client/privacy.d.ts +127 -0
- package/dist/client/privacy.js +44 -0
- package/dist/client/privacy.js.map +1 -0
- package/dist/client/referrals.d.ts +53 -6
- package/dist/client/referrals.js +9 -0
- package/dist/client/referrals.js.map +1 -1
- package/dist/client/request.d.ts +38 -1
- package/dist/client/request.js +6 -2
- package/dist/client/request.js.map +1 -1
- package/dist/client/sealed-box.d.ts +7 -0
- package/dist/client/sealed-box.js +62 -0
- package/dist/client/sealed-box.js.map +1 -0
- package/dist/client/sessions.d.ts +16 -5
- package/dist/client/sessions.js +7 -10
- package/dist/client/sessions.js.map +1 -1
- package/dist/client/status.d.ts +200 -0
- package/dist/client/status.js +54 -0
- package/dist/client/status.js.map +1 -0
- package/dist/client/users.d.ts +15 -0
- package/dist/client/webhooks.d.ts +244 -11
- package/dist/client/webhooks.js +52 -3
- package/dist/client/webhooks.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.js +20 -4
- package/dist/index.js.map +1 -1
- package/dist/oidc.d.ts +65 -1
- package/dist/oidc.js +46 -0
- package/dist/oidc.js.map +1 -1
- package/dist/policy-source.d.ts +104 -0
- package/dist/policy-source.js +99 -0
- package/dist/policy-source.js.map +1 -0
- package/dist/referral-test-calls.d.ts +26 -13
- package/dist/referral-test-calls.js +40 -14
- package/dist/referral-test-calls.js.map +1 -1
- package/dist/testing.d.ts +41 -6
- package/dist/testing.js +34 -2
- package/dist/testing.js.map +1 -1
- package/dist/webhooks.d.ts +8 -0
- package/dist/webhooks.js +13 -4
- package/dist/webhooks.js.map +1 -1
- package/package.json +6 -3
package/dist/client/design.d.ts
CHANGED
|
@@ -189,6 +189,44 @@ export interface DesignSettings {
|
|
|
189
189
|
legacy: boolean;
|
|
190
190
|
/** When `legacy`: the design derived from the older branding settings. */
|
|
191
191
|
legacy_design?: AtlasDesign | null;
|
|
192
|
+
/** Instance designs: the imported brand document layer (null when none). */
|
|
193
|
+
brand?: BrandImport | null;
|
|
194
|
+
/** Instance designs: the layers, lowest first (preset < brand < design < audience). */
|
|
195
|
+
precedence?: {
|
|
196
|
+
layer: 'preset' | 'brand' | 'design' | 'audience';
|
|
197
|
+
source: string | null;
|
|
198
|
+
}[];
|
|
199
|
+
/** Instance designs: which layer each field set by the brand or the design comes from. */
|
|
200
|
+
sources?: Record<string, 'brand' | 'design'>;
|
|
201
|
+
/** After a brand import: the tokens that were not applied, with the reason. */
|
|
202
|
+
ignored?: BrandIgnoredToken[];
|
|
203
|
+
}
|
|
204
|
+
export interface BrandIgnoredToken {
|
|
205
|
+
/** The token path in the brand document, e.g. `color.sparkle`. */
|
|
206
|
+
token: string;
|
|
207
|
+
reason: string;
|
|
208
|
+
}
|
|
209
|
+
/** An imported brand document (design tokens), as its own layer under the instance design. */
|
|
210
|
+
export interface BrandImport {
|
|
211
|
+
source: 'url' | 'inline';
|
|
212
|
+
url: string | null;
|
|
213
|
+
/** Epoch ms. */
|
|
214
|
+
imported_at: number;
|
|
215
|
+
document_sha256: string;
|
|
216
|
+
/** The design overrides the document mapped to. */
|
|
217
|
+
design: AtlasDesign;
|
|
218
|
+
mapping: {
|
|
219
|
+
token: string;
|
|
220
|
+
to: string;
|
|
221
|
+
value: string | number;
|
|
222
|
+
}[];
|
|
223
|
+
ignored: BrandIgnoredToken[];
|
|
224
|
+
meta: {
|
|
225
|
+
name: string | null;
|
|
226
|
+
legalName: string | null;
|
|
227
|
+
supportEmail: string | null;
|
|
228
|
+
favicon: string | null;
|
|
229
|
+
};
|
|
192
230
|
}
|
|
193
231
|
/** A compiled, unsaved design. Nothing is stored. */
|
|
194
232
|
export interface DesignPreview {
|
|
@@ -266,6 +304,16 @@ export declare function designResource(request: RequestFn): {
|
|
|
266
304
|
get(): Promise<DesignSettings>;
|
|
267
305
|
/** Replace the whole instance design. */
|
|
268
306
|
replace(design: AtlasDesign): Promise<DesignSettings>;
|
|
307
|
+
/**
|
|
308
|
+
* Import a brand document (W3C design tokens) as its own layer under the
|
|
309
|
+
* instance design: `{ brandUrl }` fetches it (https), `{ brand }` sends it,
|
|
310
|
+
* `{ brand: null }` removes it. The result lists `brand.mapping` and `ignored`.
|
|
311
|
+
*/
|
|
312
|
+
importBrand(input: {
|
|
313
|
+
brandUrl: string;
|
|
314
|
+
} | {
|
|
315
|
+
brand: Record<string, unknown> | null;
|
|
316
|
+
}): Promise<DesignSettings>;
|
|
269
317
|
/** Change part of the instance design; `null` removes a setting. */
|
|
270
318
|
update(design: AtlasDesignPatch): Promise<DesignSettings>;
|
|
271
319
|
/** Compile an unsaved design (CSS, attributes, fonts, rendered page). Nothing is saved. */
|
package/dist/client/design.js
CHANGED
|
@@ -12,6 +12,15 @@ function designResource(request) {
|
|
|
12
12
|
replace(design) {
|
|
13
13
|
return request({ method: 'PUT', path: '/v1/instance/design', body: { design } });
|
|
14
14
|
},
|
|
15
|
+
/**
|
|
16
|
+
* Import a brand document (W3C design tokens) as its own layer under the
|
|
17
|
+
* instance design: `{ brandUrl }` fetches it (https), `{ brand }` sends it,
|
|
18
|
+
* `{ brand: null }` removes it. The result lists `brand.mapping` and `ignored`.
|
|
19
|
+
*/
|
|
20
|
+
importBrand(input) {
|
|
21
|
+
const body = 'brandUrl' in input ? { brand_url: input.brandUrl } : { brand: input.brand };
|
|
22
|
+
return request({ method: 'PUT', path: '/v1/instance/design', body });
|
|
23
|
+
},
|
|
15
24
|
/** Change part of the instance design; `null` removes a setting. */
|
|
16
25
|
update(design) {
|
|
17
26
|
return request({ method: 'PATCH', path: '/v1/instance/design', body: { design } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design.js","sourceRoot":"","sources":["../../src/client/design.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"design.js","sourceRoot":"","sources":["../../src/client/design.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ export interface EntitlementOverride {
|
|
|
18
18
|
limits: Record<string, unknown> | null;
|
|
19
19
|
/** Epoch ms when the override lapses, or null for open-ended. */
|
|
20
20
|
expires_at: number | null;
|
|
21
|
+
/** For an account of the owner's own products: reads back as `planSource: "internal"` and never counts as revenue. */
|
|
22
|
+
internal?: boolean;
|
|
21
23
|
created_by: string | null;
|
|
22
24
|
created_at: number;
|
|
23
25
|
}
|
|
@@ -32,6 +34,8 @@ export interface CreateEntitlementOverrideBody {
|
|
|
32
34
|
limits?: Record<string, unknown> | null;
|
|
33
35
|
/** Epoch ms; omit or null for open-ended. */
|
|
34
36
|
expires_at?: number | null;
|
|
37
|
+
/** The grant is for an account of the owner's own products (reported as `internal`). */
|
|
38
|
+
internal?: boolean;
|
|
35
39
|
}
|
|
36
40
|
export interface ListEntitlementOverridesParams {
|
|
37
41
|
subject_type?: EntitlementOverrideSubjectType;
|
|
@@ -48,3 +52,29 @@ export declare function entitlementOverridesResource(request: RequestFn): {
|
|
|
48
52
|
deleted: true;
|
|
49
53
|
}>;
|
|
50
54
|
};
|
|
55
|
+
/** The standard entitlements document: one shape any product can serve (JSON Schema `https://atlasauth.net/schemas/entitlements-v1.json`). */
|
|
56
|
+
export interface Entitlements {
|
|
57
|
+
object: 'entitlements';
|
|
58
|
+
$schema?: string;
|
|
59
|
+
subject: {
|
|
60
|
+
type: EntitlementOverrideSubjectType;
|
|
61
|
+
id: string;
|
|
62
|
+
};
|
|
63
|
+
plan: string | null;
|
|
64
|
+
/** `plan` (a subscription), `override` (a sales-led grant), `internal` (an owner account, never revenue) or `none`. */
|
|
65
|
+
planSource: 'plan' | 'override' | 'internal' | 'none';
|
|
66
|
+
entitlements: Array<{
|
|
67
|
+
key: string;
|
|
68
|
+
enabled: boolean;
|
|
69
|
+
limit?: number;
|
|
70
|
+
used?: number;
|
|
71
|
+
source: 'plan' | 'override' | 'internal';
|
|
72
|
+
}>;
|
|
73
|
+
}
|
|
74
|
+
export declare function entitlementsResource(request: RequestFn): {
|
|
75
|
+
/** `GET /v1/entitlements`: gate a feature the same way against any product that serves this shape. */
|
|
76
|
+
get(params: {
|
|
77
|
+
subject_type: EntitlementOverrideSubjectType;
|
|
78
|
+
subject_id: string;
|
|
79
|
+
}): Promise<Entitlements>;
|
|
80
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.entitlementOverridesResource = entitlementOverridesResource;
|
|
4
|
+
exports.entitlementsResource = entitlementsResource;
|
|
4
5
|
const request_1 = require("./request");
|
|
5
6
|
function entitlementOverridesResource(request) {
|
|
6
7
|
return {
|
|
@@ -17,4 +18,12 @@ function entitlementOverridesResource(request) {
|
|
|
17
18
|
},
|
|
18
19
|
};
|
|
19
20
|
}
|
|
21
|
+
function entitlementsResource(request) {
|
|
22
|
+
return {
|
|
23
|
+
/** `GET /v1/entitlements`: gate a feature the same way against any product that serves this shape. */
|
|
24
|
+
get(params) {
|
|
25
|
+
return request({ method: 'GET', path: '/v1/entitlements', query: { ...params } });
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
20
29
|
//# sourceMappingURL=entitlement-overrides.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entitlement-overrides.js","sourceRoot":"","sources":["../../src/client/entitlement-overrides.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"entitlement-overrides.js","sourceRoot":"","sources":["../../src/client/entitlement-overrides.ts"],"names":[],"mappings":";;AAgDA,oEAmBC;AAmBD,oDAOC;AA7FD,uCAAgD;AAgDhD,SAAgB,4BAA4B,CAAC,OAAkB;IAC7D,OAAO;QACL,MAAM,CACJ,IAAmC,EACnC,cAAuB;YAEvB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,yEAAyE;QACzE,IAAI,CACF,SAAyC,EAAE;YAE3C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,yFAAyF;QACzF,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;KACF,CAAC;AACJ,CAAC;AAmBD,SAAgB,oBAAoB,CAAC,OAAkB;IACrD,OAAO;QACL,sGAAsG;QACtG,GAAG,CAAC,MAA4E;YAC9E,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type AtlasClient } from './index';
|
|
2
|
+
import { type AtlasClientConfig } from './request';
|
|
3
|
+
/** The environment names the SDK, the CLI and the generated env files all accept for the API base URL. */
|
|
4
|
+
export declare const API_BASE_ENV_NAMES: readonly ["ATLAS_API_BASE", "ATLAS_API_URL"];
|
|
5
|
+
type Env = Record<string, string | undefined>;
|
|
6
|
+
/**
|
|
7
|
+
* The Backend API base URL from the environment. `ATLAS_API_BASE` and
|
|
8
|
+
* `ATLAS_API_URL` are both accepted (the first one set wins; blank values are
|
|
9
|
+
* ignored), so code written against either name keeps working.
|
|
10
|
+
*/
|
|
11
|
+
export declare function apiBaseFromEnv(env?: Env): string | undefined;
|
|
12
|
+
/** A client config from `ATLAS_SECRET_KEY` plus the optional API base (`ATLAS_API_BASE` or `ATLAS_API_URL`). */
|
|
13
|
+
export declare function atlasConfigFromEnv(env?: Env, overrides?: Partial<AtlasClientConfig>): AtlasClientConfig;
|
|
14
|
+
/** `createAtlasClient(atlasConfigFromEnv(env))`: the one-liner for server code that configures itself from the environment. */
|
|
15
|
+
export declare function createAtlasClientFromEnv(env?: Env, overrides?: Partial<AtlasClientConfig>): AtlasClient;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.API_BASE_ENV_NAMES = void 0;
|
|
4
|
+
exports.apiBaseFromEnv = apiBaseFromEnv;
|
|
5
|
+
exports.atlasConfigFromEnv = atlasConfigFromEnv;
|
|
6
|
+
exports.createAtlasClientFromEnv = createAtlasClientFromEnv;
|
|
7
|
+
const index_1 = require("./index");
|
|
8
|
+
const request_1 = require("./request");
|
|
9
|
+
/** The environment names the SDK, the CLI and the generated env files all accept for the API base URL. */
|
|
10
|
+
exports.API_BASE_ENV_NAMES = ['ATLAS_API_BASE', 'ATLAS_API_URL'];
|
|
11
|
+
function processEnv() {
|
|
12
|
+
return globalThis.process?.env ?? {};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The Backend API base URL from the environment. `ATLAS_API_BASE` and
|
|
16
|
+
* `ATLAS_API_URL` are both accepted (the first one set wins; blank values are
|
|
17
|
+
* ignored), so code written against either name keeps working.
|
|
18
|
+
*/
|
|
19
|
+
function apiBaseFromEnv(env = processEnv()) {
|
|
20
|
+
for (const name of exports.API_BASE_ENV_NAMES) {
|
|
21
|
+
const value = env[name]?.trim();
|
|
22
|
+
if (value)
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
/** A client config from `ATLAS_SECRET_KEY` plus the optional API base (`ATLAS_API_BASE` or `ATLAS_API_URL`). */
|
|
28
|
+
function atlasConfigFromEnv(env = processEnv(), overrides = {}) {
|
|
29
|
+
const secretKey = overrides.secretKey ?? env.ATLAS_SECRET_KEY?.trim();
|
|
30
|
+
if (!secretKey)
|
|
31
|
+
throw new Error('@atlasauth/backend: missing ATLAS_SECRET_KEY.');
|
|
32
|
+
return { ...overrides, secretKey, apiUrl: overrides.apiUrl ?? apiBaseFromEnv(env) ?? request_1.DEFAULT_API_URL };
|
|
33
|
+
}
|
|
34
|
+
/** `createAtlasClient(atlasConfigFromEnv(env))`: the one-liner for server code that configures itself from the environment. */
|
|
35
|
+
function createAtlasClientFromEnv(env = processEnv(), overrides = {}) {
|
|
36
|
+
return (0, index_1.createAtlasClient)(atlasConfigFromEnv(env, overrides));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/client/env.ts"],"names":[],"mappings":";;;AAiBA,wCAMC;AAGD,gDAIC;AAGD,4DAEC;AAnCD,mCAA8D;AAC9D,uCAAoE;AAEpE,0GAA0G;AAC7F,QAAA,kBAAkB,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAU,CAAC;AAI/E,SAAS,UAAU;IACjB,OAAQ,UAA0C,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,MAAW,UAAU,EAAE;IACpD,KAAK,MAAM,IAAI,IAAI,0BAAkB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;QAChC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gHAAgH;AAChH,SAAgB,kBAAkB,CAAC,MAAW,UAAU,EAAE,EAAE,YAAwC,EAAE;IACpG,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACtE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACjF,OAAO,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,yBAAe,EAAE,CAAC;AACzG,CAAC;AAED,+HAA+H;AAC/H,SAAgB,wBAAwB,CAAC,MAAW,UAAU,EAAE,EAAE,YAAwC,EAAE;IAC1G,OAAO,IAAA,yBAAiB,EAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/client/error.d.ts
CHANGED
|
@@ -16,6 +16,12 @@ export interface AtlasErrorItem {
|
|
|
16
16
|
message: string;
|
|
17
17
|
param?: string;
|
|
18
18
|
meta?: Record<string, unknown>;
|
|
19
|
+
/** The code's page in the error reference (https://atlasauth.net/errors/<code>). */
|
|
20
|
+
docs_url?: string;
|
|
21
|
+
/** `ROUTE_NOT_FOUND` only: the closest documented paths. */
|
|
22
|
+
did_you_mean?: string[];
|
|
23
|
+
/** `ROUTE_NOT_FOUND` only: the methods the path does support. */
|
|
24
|
+
allowed_methods?: string[];
|
|
19
25
|
}
|
|
20
26
|
export declare class AtlasApiError extends Error {
|
|
21
27
|
readonly name = "AtlasApiError";
|
|
@@ -68,6 +74,8 @@ export declare const AtlasErrorCodes: {
|
|
|
68
74
|
/** The key is unknown, revoked or malformed. */
|
|
69
75
|
readonly INVALID_KEY: "INVALID_KEY";
|
|
70
76
|
readonly NOT_FOUND: "NOT_FOUND";
|
|
77
|
+
/** No endpoint matches the method and path (a typo or a guessed route); see `did_you_mean`. */
|
|
78
|
+
readonly ROUTE_NOT_FOUND: "ROUTE_NOT_FOUND";
|
|
71
79
|
readonly VALIDATION_FAILED: "VALIDATION_FAILED";
|
|
72
80
|
readonly RATE_LIMITED: "RATE_LIMITED";
|
|
73
81
|
/** An idempotency key was reused with a different request (e.g. another unit or amount). */
|
|
@@ -78,6 +86,8 @@ export declare const AtlasErrorCodes: {
|
|
|
78
86
|
readonly SESSION_IDLE_EXPIRED: "SESSION_IDLE_EXPIRED";
|
|
79
87
|
readonly SESSION_EXPIRED: "SESSION_EXPIRED";
|
|
80
88
|
readonly SCOPE_MISSING: "SCOPE_MISSING";
|
|
89
|
+
readonly INSUFFICIENT_SCOPE: "INSUFFICIENT_SCOPE";
|
|
90
|
+
readonly STEP_UP_REQUIRED: "STEP_UP_REQUIRED";
|
|
81
91
|
readonly FORBIDDEN: "FORBIDDEN";
|
|
82
92
|
readonly CONFLICT: "CONFLICT";
|
|
83
93
|
};
|
package/dist/client/error.js
CHANGED
|
@@ -64,6 +64,8 @@ exports.AtlasErrorCodes = {
|
|
|
64
64
|
/** The key is unknown, revoked or malformed. */
|
|
65
65
|
INVALID_KEY: 'INVALID_KEY',
|
|
66
66
|
NOT_FOUND: 'NOT_FOUND',
|
|
67
|
+
/** No endpoint matches the method and path (a typo or a guessed route); see `did_you_mean`. */
|
|
68
|
+
ROUTE_NOT_FOUND: 'ROUTE_NOT_FOUND',
|
|
67
69
|
VALIDATION_FAILED: 'VALIDATION_FAILED',
|
|
68
70
|
RATE_LIMITED: 'RATE_LIMITED',
|
|
69
71
|
/** An idempotency key was reused with a different request (e.g. another unit or amount). */
|
|
@@ -74,6 +76,8 @@ exports.AtlasErrorCodes = {
|
|
|
74
76
|
SESSION_IDLE_EXPIRED: 'SESSION_IDLE_EXPIRED',
|
|
75
77
|
SESSION_EXPIRED: 'SESSION_EXPIRED',
|
|
76
78
|
SCOPE_MISSING: 'SCOPE_MISSING',
|
|
79
|
+
INSUFFICIENT_SCOPE: 'INSUFFICIENT_SCOPE',
|
|
80
|
+
STEP_UP_REQUIRED: 'STEP_UP_REQUIRED',
|
|
77
81
|
FORBIDDEN: 'FORBIDDEN',
|
|
78
82
|
CONFLICT: 'CONFLICT',
|
|
79
83
|
};
|
package/dist/client/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/client/error.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/client/error.ts"],"names":[],"mappings":";;;AA0BA,MAAa,aAAc,SAAQ,KAAK;IACpB,IAAI,GAAG,eAAe,CAAC;IACzC,0CAA0C;IACjC,MAAM,CAAS;IACxB,8CAA8C;IACrC,MAAM,CAAmB;IAElC,YAAY,MAAc,EAAE,MAAwB,EAAE,OAAgB;QACpE,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,wCAAwC,MAAM,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,uEAAuE;QACvE,sEAAsE;QACtE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,uEAAuE;IACvE,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IAC9B,CAAC;IAED,yEAAyE;IACzE,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAClD,CAAC;CACF;AAzBD,sCAyBC;AAED;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC7B,+EAA+E;IAC/E,6BAA6B,EAAE,+BAA+B;IAC9D,mEAAmE;IACnE,uBAAuB,EAAE,yBAAyB;IAClD,oGAAoG;IACpG,qBAAqB,EAAE,uBAAuB;IAC9C,oGAAoG;IACpG,qBAAqB,EAAE,uBAAuB;IAC9C,wGAAwG;IACxG,cAAc,EAAE,gBAAgB;IAChC,0FAA0F;IAC1F,aAAa,EAAE,eAAe;IAC9B,uIAAuI;IACvI,eAAe,EAAE,iBAAiB;IAClC,oFAAoF;IACpF,6BAA6B,EAAE,+BAA+B;IAC9D,8EAA8E;IAC9E,6BAA6B,EAAE,+BAA+B;IAC9D,6HAA6H;IAC7H,+BAA+B,EAAE,iCAAiC;IAClE,kGAAkG;IAClG,sCAAsC,EAAE,wCAAwC;IAChF,2GAA2G;IAC3G,wBAAwB,EAAE,0BAA0B;IACpD,2EAA2E;IAC3E,mBAAmB,EAAE,qBAAqB;IAC1C,oEAAoE;IACpE,WAAW,EAAE,aAAa;IAC1B,6FAA6F;IAC7F,iBAAiB,EAAE,mBAAmB;IACtC,gDAAgD;IAChD,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,+FAA+F;IAC/F,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,YAAY,EAAE,cAAc;IAC5B,4FAA4F;IAC5F,oBAAoB,EAAE,sBAAsB;IAC5C,yFAAyF;IACzF,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,oBAAoB,EAAE,sBAAsB;IAC5C,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;CACZ,CAAC"}
|