@auth0/ai 1.0.2 → 2.0.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/README.md +1 -1
- package/dist/cjs/authorizers/ciba/CIBAAuthorizerBase.js +81 -55
- package/dist/cjs/authorizers/ciba/CIBAAuthorizerBase.js.map +1 -1
- package/dist/cjs/authorizers/ciba/CIBAAuthorizerParams.js.map +1 -1
- package/dist/cjs/authorizers/ciba/asyncLocalStorage.js +1 -1
- package/dist/cjs/authorizers/ciba/asyncLocalStorage.js.map +1 -1
- package/dist/cjs/authorizers/context.js +20 -0
- package/dist/cjs/authorizers/context.js.map +1 -0
- package/dist/cjs/authorizers/device-authorizer/DeviceAuthResponse.js +18 -0
- package/dist/cjs/authorizers/device-authorizer/DeviceAuthResponse.js.map +1 -0
- package/dist/cjs/authorizers/device-authorizer/DeviceAuthorizerBase.js +231 -0
- package/dist/cjs/authorizers/device-authorizer/DeviceAuthorizerBase.js.map +1 -0
- package/dist/cjs/{TokenResponse.js → authorizers/device-authorizer/DeviceAuthorizerParams.js} +1 -1
- package/dist/cjs/authorizers/device-authorizer/DeviceAuthorizerParams.js.map +1 -0
- package/dist/cjs/authorizers/device-authorizer/asyncLocalStorage.js +14 -0
- package/dist/cjs/authorizers/device-authorizer/asyncLocalStorage.js.map +1 -0
- package/dist/cjs/authorizers/device-authorizer/index.js +9 -0
- package/dist/cjs/authorizers/device-authorizer/index.js.map +1 -0
- package/dist/cjs/authorizers/federated-connections/FederatedConnectionAuthorizerBase.js +158 -0
- package/dist/cjs/authorizers/federated-connections/FederatedConnectionAuthorizerBase.js.map +1 -0
- package/dist/cjs/authorizers/federated-connections/FederatedConnectionAuthorizerParams.js +3 -0
- package/dist/cjs/authorizers/federated-connections/FederatedConnectionAuthorizerParams.js.map +1 -0
- package/dist/cjs/authorizers/federated-connections/asyncLocalStorage.js +5 -5
- package/dist/cjs/authorizers/federated-connections/asyncLocalStorage.js.map +1 -1
- package/dist/cjs/authorizers/federated-connections/index.js +5 -125
- package/dist/cjs/authorizers/federated-connections/index.js.map +1 -1
- package/dist/cjs/authorizers/index.js.map +1 -1
- package/dist/cjs/authorizers/types.js +14 -0
- package/dist/cjs/authorizers/types.js.map +1 -0
- package/dist/cjs/credentials.js +13 -0
- package/dist/cjs/credentials.js.map +1 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interrupts/DeviceInterrupts.js +79 -0
- package/dist/cjs/interrupts/DeviceInterrupts.js.map +1 -0
- package/dist/cjs/interrupts/index.js +37 -1
- package/dist/cjs/interrupts/index.js.map +1 -1
- package/dist/cjs/stores/Store.js +12 -0
- package/dist/cjs/stores/Store.js.map +1 -0
- package/dist/cjs/stores/SubStore.js +52 -0
- package/dist/cjs/stores/SubStore.js.map +1 -0
- package/dist/cjs/stores/impl/FSStore.js +80 -0
- package/dist/cjs/stores/impl/FSStore.js.map +1 -0
- package/dist/cjs/stores/impl/MemoryStore.js +15 -0
- package/dist/cjs/stores/impl/MemoryStore.js.map +1 -0
- package/dist/cjs/stores/impl/TempBoxStore.js +22 -0
- package/dist/cjs/stores/impl/TempBoxStore.js.map +1 -0
- package/dist/cjs/stores/index.js +10 -0
- package/dist/cjs/stores/index.js.map +1 -0
- package/dist/cjs/util/index.js +12 -0
- package/dist/cjs/util/index.js.map +1 -0
- package/dist/esm/authorizers/ciba/CIBAAuthorizerBase.d.ts +12 -8
- package/dist/esm/authorizers/ciba/CIBAAuthorizerBase.js +78 -55
- package/dist/esm/authorizers/ciba/CIBAAuthorizerBase.js.map +1 -1
- package/dist/esm/authorizers/ciba/CIBAAuthorizerParams.d.ts +20 -20
- package/dist/esm/authorizers/ciba/CIBAAuthorizerParams.js.map +1 -1
- package/dist/esm/authorizers/ciba/asyncLocalStorage.d.ts +7 -3
- package/dist/esm/authorizers/ciba/asyncLocalStorage.js +1 -1
- package/dist/esm/authorizers/ciba/asyncLocalStorage.js.map +1 -1
- package/dist/esm/authorizers/context.d.ts +16 -0
- package/dist/esm/authorizers/context.js +16 -0
- package/dist/esm/authorizers/context.js.map +1 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthResponse.d.ts +38 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthResponse.js +15 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthResponse.js.map +1 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthorizerBase.d.ts +49 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthorizerBase.js +224 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthorizerBase.js.map +1 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthorizerParams.d.ts +58 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthorizerParams.js +2 -0
- package/dist/esm/authorizers/device-authorizer/DeviceAuthorizerParams.js.map +1 -0
- package/dist/esm/authorizers/device-authorizer/asyncLocalStorage.d.ts +16 -0
- package/dist/esm/authorizers/device-authorizer/asyncLocalStorage.js +10 -0
- package/dist/esm/authorizers/device-authorizer/asyncLocalStorage.js.map +1 -0
- package/dist/esm/authorizers/device-authorizer/index.d.ts +4 -0
- package/dist/esm/authorizers/device-authorizer/index.js +3 -0
- package/dist/esm/authorizers/device-authorizer/index.js.map +1 -0
- package/dist/esm/authorizers/federated-connections/FederatedConnectionAuthorizerBase.d.ts +30 -0
- package/dist/esm/authorizers/federated-connections/FederatedConnectionAuthorizerBase.js +151 -0
- package/dist/esm/authorizers/federated-connections/FederatedConnectionAuthorizerBase.js.map +1 -0
- package/dist/esm/authorizers/federated-connections/FederatedConnectionAuthorizerParams.d.ts +38 -0
- package/dist/esm/authorizers/federated-connections/FederatedConnectionAuthorizerParams.js +2 -0
- package/dist/esm/authorizers/federated-connections/FederatedConnectionAuthorizerParams.js.map +1 -0
- package/dist/esm/authorizers/federated-connections/asyncLocalStorage.d.ts +7 -5
- package/dist/esm/authorizers/federated-connections/asyncLocalStorage.js +3 -3
- package/dist/esm/authorizers/federated-connections/asyncLocalStorage.js.map +1 -1
- package/dist/esm/authorizers/federated-connections/index.d.ts +3 -36
- package/dist/esm/authorizers/federated-connections/index.js +2 -122
- package/dist/esm/authorizers/federated-connections/index.js.map +1 -1
- package/dist/esm/authorizers/index.d.ts +1 -12
- package/dist/esm/authorizers/index.js.map +1 -1
- package/dist/esm/authorizers/types.d.ts +37 -0
- package/dist/esm/authorizers/types.js +11 -0
- package/dist/esm/authorizers/types.js.map +1 -0
- package/dist/esm/credentials.d.ts +33 -8
- package/dist/esm/credentials.js +11 -1
- package/dist/esm/credentials.js.map +1 -1
- package/dist/esm/index.d.ts +1 -3
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interrupts/DeviceInterrupts.d.ts +55 -0
- package/dist/esm/interrupts/DeviceInterrupts.js +70 -0
- package/dist/esm/interrupts/DeviceInterrupts.js.map +1 -0
- package/dist/esm/interrupts/index.d.ts +2 -0
- package/dist/esm/interrupts/index.js +2 -0
- package/dist/esm/interrupts/index.js.map +1 -1
- package/dist/esm/stores/Store.d.ts +40 -0
- package/dist/esm/stores/Store.js +11 -0
- package/dist/esm/stores/Store.js.map +1 -0
- package/dist/esm/stores/SubStore.d.ts +31 -0
- package/dist/esm/stores/SubStore.js +48 -0
- package/dist/esm/stores/SubStore.js.map +1 -0
- package/dist/esm/stores/impl/FSStore.d.ts +19 -0
- package/dist/esm/stores/impl/FSStore.js +72 -0
- package/dist/esm/stores/impl/FSStore.js.map +1 -0
- package/dist/esm/stores/impl/MemoryStore.d.ts +8 -0
- package/dist/esm/stores/impl/MemoryStore.js +11 -0
- package/dist/esm/stores/impl/MemoryStore.js.map +1 -0
- package/dist/esm/stores/impl/TempBoxStore.d.ts +13 -0
- package/dist/esm/stores/impl/TempBoxStore.js +18 -0
- package/dist/esm/stores/impl/TempBoxStore.js.map +1 -0
- package/dist/esm/stores/index.d.ts +5 -0
- package/dist/esm/stores/index.js +4 -0
- package/dist/esm/stores/index.js.map +1 -0
- package/dist/esm/util/index.d.ts +3 -0
- package/dist/esm/util/index.js +8 -0
- package/dist/esm/util/index.js.map +1 -0
- package/package.json +20 -4
- package/dist/cjs/TokenResponse.js.map +0 -1
- package/dist/cjs/authorizers/device-authorizer.js +0 -130
- package/dist/cjs/authorizers/device-authorizer.js.map +0 -1
- package/dist/esm/TokenResponse.d.ts +0 -15
- package/dist/esm/TokenResponse.js +0 -2
- package/dist/esm/TokenResponse.js.map +0 -1
- package/dist/esm/authorizers/device-authorizer.d.ts +0 -15
- package/dist/esm/authorizers/device-authorizer.js +0 -90
- package/dist/esm/authorizers/device-authorizer.js.map +0 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidGrantInterrupt = exports.AuthorizationPollingInterrupt = exports.AuthorizationPendingInterrupt = exports.AuthorizationRequestExpiredInterrupt = exports.AccessDeniedInterrupt = exports.DeviceInterrupt = void 0;
|
|
4
|
+
const Auth0Interrupt_1 = require("./Auth0Interrupt");
|
|
5
|
+
/**
|
|
6
|
+
* Base class for Device interrupts.
|
|
7
|
+
*/
|
|
8
|
+
class DeviceInterrupt extends Auth0Interrupt_1.Auth0Interrupt {
|
|
9
|
+
constructor(message, code) {
|
|
10
|
+
super(message, code);
|
|
11
|
+
}
|
|
12
|
+
static isInterrupt(interrupt) {
|
|
13
|
+
return (interrupt &&
|
|
14
|
+
Auth0Interrupt_1.Auth0Interrupt.isInterrupt(interrupt) &&
|
|
15
|
+
typeof interrupt.code === "string" &&
|
|
16
|
+
interrupt.code.startsWith("DEVICE_"));
|
|
17
|
+
}
|
|
18
|
+
static hasRequestData(interrupt) {
|
|
19
|
+
return DeviceInterrupt.isInterrupt(interrupt) && "response" in interrupt;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.DeviceInterrupt = DeviceInterrupt;
|
|
23
|
+
/**
|
|
24
|
+
* An interrupt that is thrown when the user denies the authorization request.
|
|
25
|
+
*/
|
|
26
|
+
class AccessDeniedInterrupt extends DeviceInterrupt {
|
|
27
|
+
constructor(message, response) {
|
|
28
|
+
super(message, AccessDeniedInterrupt.code);
|
|
29
|
+
this.response = response;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.AccessDeniedInterrupt = AccessDeniedInterrupt;
|
|
33
|
+
AccessDeniedInterrupt.code = "DEVICE_ACCESS_DENIED";
|
|
34
|
+
/**
|
|
35
|
+
* An interrupt that is thrown when the authorization request has expired.
|
|
36
|
+
*/
|
|
37
|
+
class AuthorizationRequestExpiredInterrupt extends DeviceInterrupt {
|
|
38
|
+
constructor(message, response) {
|
|
39
|
+
super(message, AuthorizationRequestExpiredInterrupt.code);
|
|
40
|
+
this.response = response;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.AuthorizationRequestExpiredInterrupt = AuthorizationRequestExpiredInterrupt;
|
|
44
|
+
AuthorizationRequestExpiredInterrupt.code = "DEVICE_AUTHORIZATION_REQUEST_EXPIRED";
|
|
45
|
+
/**
|
|
46
|
+
* An interrupt that is thrown when the authorization is still pending
|
|
47
|
+
* and the Authorizer is in `mode: interrupt`.
|
|
48
|
+
*/
|
|
49
|
+
class AuthorizationPendingInterrupt extends DeviceInterrupt {
|
|
50
|
+
constructor(message, response) {
|
|
51
|
+
super(message, AuthorizationPendingInterrupt.code);
|
|
52
|
+
this.response = response;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.AuthorizationPendingInterrupt = AuthorizationPendingInterrupt;
|
|
56
|
+
AuthorizationPendingInterrupt.code = "DEVICE_AUTHORIZATION_PENDING";
|
|
57
|
+
/**
|
|
58
|
+
* An interrupt that is thrown when the authorization polling fails.
|
|
59
|
+
*/
|
|
60
|
+
class AuthorizationPollingInterrupt extends Auth0Interrupt_1.Auth0Interrupt {
|
|
61
|
+
constructor(message, response) {
|
|
62
|
+
super(message, AuthorizationPollingInterrupt.code);
|
|
63
|
+
this.response = response;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.AuthorizationPollingInterrupt = AuthorizationPollingInterrupt;
|
|
67
|
+
AuthorizationPollingInterrupt.code = "DEVICE_AUTHORIZATION_POLLING_ERROR";
|
|
68
|
+
/**
|
|
69
|
+
* An interrupt that is thrown when the grant is invalid.
|
|
70
|
+
*/
|
|
71
|
+
class InvalidGrantInterrupt extends Auth0Interrupt_1.Auth0Interrupt {
|
|
72
|
+
constructor(message, response) {
|
|
73
|
+
super(message, AuthorizationPollingInterrupt.code);
|
|
74
|
+
this.response = response;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.InvalidGrantInterrupt = InvalidGrantInterrupt;
|
|
78
|
+
InvalidGrantInterrupt.code = "DEVICE_INVALID_GRANT";
|
|
79
|
+
//# sourceMappingURL=DeviceInterrupts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceInterrupts.js","sourceRoot":"","sources":["../../../src/interrupts/DeviceInterrupts.ts"],"names":[],"mappings":";;;AACA,qDAAsE;AAMtE;;GAEG;AACH,MAAa,eAAgB,SAAQ,+BAAc;IACjD,YAAY,OAAe,EAAE,IAAY;QACvC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,WAAW,CAEhB,SAAc;QAEd,OAAO,CACL,SAAS;YACT,+BAAc,CAAC,WAAW,CAAC,SAAS,CAAC;YACrC,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;YAClC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CACrC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,SAAc;QAEd,OAAO,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,UAAU,IAAI,SAAS,CAAC;IAC3E,CAAC;CACF;AAtBD,0CAsBC;AAED;;GAEG;AACH,MAAa,qBACX,SAAQ,eAAe;IAIvB,YACE,OAAe,EACC,QAAqC;QAErD,KAAK,CAAC,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAF3B,aAAQ,GAAR,QAAQ,CAA6B;IAGvD,CAAC;;AAVH,sDAWC;AAPe,0BAAI,GAAW,sBAA+B,CAAC;AAS/D;;GAEG;AACH,MAAa,oCACX,SAAQ,eAAe;IAIvB,YACE,OAAe,EACC,QAAqC;QAErD,KAAK,CAAC,OAAO,EAAE,oCAAoC,CAAC,IAAI,CAAC,CAAC;QAF1C,aAAQ,GAAR,QAAQ,CAA6B;IAGvD,CAAC;;AAVH,oFAWC;AAPe,yCAAI,GAAW,sCAA+C,CAAC;AAS/E;;;GAGG;AACH,MAAa,6BACX,SAAQ,eAAe;IAIvB,YACE,OAAe,EACC,QAAqC;QAErD,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAC;QAFnC,aAAQ,GAAR,QAAQ,CAA6B;IAGvD,CAAC;;AAVH,sEAWC;AAPe,kCAAI,GAAW,8BAAuC,CAAC;AASvE;;GAEG;AACH,MAAa,6BACX,SAAQ,+BAAc;IAItB,YACE,OAAe,EACC,QAAqC;QAErD,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAC;QAFnC,aAAQ,GAAR,QAAQ,CAA6B;IAGvD,CAAC;;AAVH,sEAWC;AAPe,kCAAI,GAAW,oCAA6C,CAAC;AAS7E;;GAEG;AACH,MAAa,qBACX,SAAQ,+BAAc;IAItB,YACE,OAAe,EACC,QAAqC;QAErD,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAC;QAFnC,aAAQ,GAAR,QAAQ,CAA6B;IAGvD,CAAC;;AAVH,sDAWC;AAPe,0BAAI,GAAW,sBAA+B,CAAC","sourcesContent":["import { DeviceAuthorizationResponse } from \"../authorizers/device-authorizer/DeviceAuthResponse\";\nimport { Auth0Interrupt, Auth0InterruptData } from \"./Auth0Interrupt\";\n\nexport interface WithDeviceAuthResponseData {\n response: DeviceAuthorizationResponse;\n}\n\n/**\n * Base class for Device interrupts.\n */\nexport class DeviceInterrupt extends Auth0Interrupt {\n constructor(message: string, code: string) {\n super(message, code);\n }\n\n static isInterrupt<T extends abstract new (...args: any) => any>(\n this: T,\n interrupt: any\n ): interrupt is Auth0InterruptData<InstanceType<T>> {\n return (\n interrupt &&\n Auth0Interrupt.isInterrupt(interrupt) &&\n typeof interrupt.code === \"string\" &&\n interrupt.code.startsWith(\"DEVICE_\")\n );\n }\n\n static hasRequestData(\n interrupt: any\n ): interrupt is WithDeviceAuthResponseData {\n return DeviceInterrupt.isInterrupt(interrupt) && \"response\" in interrupt;\n }\n}\n\n/**\n * An interrupt that is thrown when the user denies the authorization request.\n */\nexport class AccessDeniedInterrupt\n extends DeviceInterrupt\n implements WithDeviceAuthResponseData\n{\n public static code: string = \"DEVICE_ACCESS_DENIED\" as const;\n constructor(\n message: string,\n public readonly response: DeviceAuthorizationResponse\n ) {\n super(message, AccessDeniedInterrupt.code);\n }\n}\n\n/**\n * An interrupt that is thrown when the authorization request has expired.\n */\nexport class AuthorizationRequestExpiredInterrupt\n extends DeviceInterrupt\n implements WithDeviceAuthResponseData\n{\n public static code: string = \"DEVICE_AUTHORIZATION_REQUEST_EXPIRED\" as const;\n constructor(\n message: string,\n public readonly response: DeviceAuthorizationResponse\n ) {\n super(message, AuthorizationRequestExpiredInterrupt.code);\n }\n}\n\n/**\n * An interrupt that is thrown when the authorization is still pending\n * and the Authorizer is in `mode: interrupt`.\n */\nexport class AuthorizationPendingInterrupt\n extends DeviceInterrupt\n implements WithDeviceAuthResponseData\n{\n public static code: string = \"DEVICE_AUTHORIZATION_PENDING\" as const;\n constructor(\n message: string,\n public readonly response: DeviceAuthorizationResponse\n ) {\n super(message, AuthorizationPendingInterrupt.code);\n }\n}\n\n/**\n * An interrupt that is thrown when the authorization polling fails.\n */\nexport class AuthorizationPollingInterrupt\n extends Auth0Interrupt\n implements WithDeviceAuthResponseData\n{\n public static code: string = \"DEVICE_AUTHORIZATION_POLLING_ERROR\" as const;\n constructor(\n message: string,\n public readonly response: DeviceAuthorizationResponse\n ) {\n super(message, AuthorizationPollingInterrupt.code);\n }\n}\n\n/**\n * An interrupt that is thrown when the grant is invalid.\n */\nexport class InvalidGrantInterrupt\n extends Auth0Interrupt\n implements WithDeviceAuthResponseData\n{\n public static code: string = \"DEVICE_INVALID_GRANT\" as const;\n constructor(\n message: string,\n public readonly response: DeviceAuthorizationResponse\n ) {\n super(message, AuthorizationPollingInterrupt.code);\n }\n}\n"]}
|
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InvalidGrantInterrupt = exports.AuthorizationPollingInterrupt = exports.AuthorizationPendingInterrupt = exports.AuthorizationRequestExpiredInterrupt = exports.UserDoesNotHavePushNotificationsInterrupt = exports.AccessDeniedInterrupt = exports.CIBAInterrupt = exports.FederatedConnectionError = exports.FederatedConnectionInterrupt = exports.Auth0Interrupt = void 0;
|
|
36
|
+
exports.DeviceInterrupt = exports.DeviceInterrupts = exports.InvalidGrantInterrupt = exports.AuthorizationPollingInterrupt = exports.AuthorizationPendingInterrupt = exports.AuthorizationRequestExpiredInterrupt = exports.UserDoesNotHavePushNotificationsInterrupt = exports.AccessDeniedInterrupt = exports.CIBAInterrupt = exports.FederatedConnectionError = exports.FederatedConnectionInterrupt = exports.Auth0Interrupt = void 0;
|
|
4
37
|
var Auth0Interrupt_1 = require("./Auth0Interrupt");
|
|
5
38
|
Object.defineProperty(exports, "Auth0Interrupt", { enumerable: true, get: function () { return Auth0Interrupt_1.Auth0Interrupt; } });
|
|
6
39
|
var FederatedConnectionInterrupt_1 = require("./FederatedConnectionInterrupt");
|
|
@@ -14,4 +47,7 @@ Object.defineProperty(exports, "AuthorizationRequestExpiredInterrupt", { enumera
|
|
|
14
47
|
Object.defineProperty(exports, "AuthorizationPendingInterrupt", { enumerable: true, get: function () { return CIBAInterrupts_1.AuthorizationPendingInterrupt; } });
|
|
15
48
|
Object.defineProperty(exports, "AuthorizationPollingInterrupt", { enumerable: true, get: function () { return CIBAInterrupts_1.AuthorizationPollingInterrupt; } });
|
|
16
49
|
Object.defineProperty(exports, "InvalidGrantInterrupt", { enumerable: true, get: function () { return CIBAInterrupts_1.InvalidGrantInterrupt; } });
|
|
50
|
+
exports.DeviceInterrupts = __importStar(require("./DeviceInterrupts"));
|
|
51
|
+
var DeviceInterrupts_1 = require("./DeviceInterrupts");
|
|
52
|
+
Object.defineProperty(exports, "DeviceInterrupt", { enumerable: true, get: function () { return DeviceInterrupts_1.DeviceInterrupt; } });
|
|
17
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interrupts/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interrupts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,+EAGwC;AAFtC,4IAAA,4BAA4B,OAAA;AAC5B,wIAAA,wBAAwB,OAAA;AAG1B,mDAQ0B;AAPxB,+GAAA,aAAa,OAAA;AACb,uHAAA,qBAAqB,OAAA;AACrB,2IAAA,yCAAyC,OAAA;AACzC,sIAAA,oCAAoC,OAAA;AACpC,+HAAA,6BAA6B,OAAA;AAC7B,+HAAA,6BAA6B,OAAA;AAC7B,uHAAA,qBAAqB,OAAA;AAGvB,uEAAuD;AACvD,uDAAqD;AAA5C,mHAAA,eAAe,OAAA","sourcesContent":["export { Auth0Interrupt } from \"./Auth0Interrupt\";\n\nexport {\n FederatedConnectionInterrupt,\n FederatedConnectionError,\n} from \"./FederatedConnectionInterrupt\";\n\nexport {\n CIBAInterrupt,\n AccessDeniedInterrupt,\n UserDoesNotHavePushNotificationsInterrupt,\n AuthorizationRequestExpiredInterrupt,\n AuthorizationPendingInterrupt,\n AuthorizationPollingInterrupt,\n InvalidGrantInterrupt,\n} from \"./CIBAInterrupts\";\n\nexport * as DeviceInterrupts from \"./DeviceInterrupts\";\nexport { DeviceInterrupt } from \"./DeviceInterrupts\";\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* A key-value store interface.
|
|
4
|
+
*
|
|
5
|
+
* Auth0AI uses this store in different stages:
|
|
6
|
+
*
|
|
7
|
+
* 1. to store the authorization request when an AI agent is interrupted (CIBA, Device Flow)
|
|
8
|
+
* 2. user credentials associated to threads to avoid re-authentication (CIBA, Device Flow, Federated Connection)
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
//# sourceMappingURL=Store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../../src/stores/Store.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG","sourcesContent":["/**\n * A key-value store interface.\n *\n * Auth0AI uses this store in different stages:\n *\n * 1. to store the authorization request when an AI agent is interrupted (CIBA, Device Flow)\n * 2. user credentials associated to threads to avoid re-authentication (CIBA, Device Flow, Federated Connection)\n *\n */\n\nexport interface Store<T = any> {\n /**\n *\n * Get a value from the store.\n *\n * @param namespace - The namespace of the key\n * @param key - The key\n */\n get(namespace: string[], key: string): Promise<T | undefined>;\n\n /**\n *\n * Delete a value from the store.\n * @param namespace - The namespace of the key\n * @param key - The key\n */\n delete(namespace: string[], key: string): Promise<void>;\n\n /**\n *\n * Put a value in the store.\n *\n * @param namespace - The namespace of the key\n * @param key - The key\n * @param value - The value to store\n * @param [options] - The options to store the value\n * @param [options.expiresIn] - The time in milliseconds to expire the value\n */\n put(\n namespace: string[],\n key: string,\n value: T,\n options?: { expiresIn?: number }\n ): Promise<void>;\n}\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubStore = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* A store implementation that delegates operations to a parent store with optional namespace prefixing.
|
|
6
|
+
*
|
|
7
|
+
* @template T - The type of values stored in this SubStore
|
|
8
|
+
* @implements {Store<T>}
|
|
9
|
+
*/
|
|
10
|
+
class SubStore {
|
|
11
|
+
constructor(parent, options = {}) {
|
|
12
|
+
this.parent = parent;
|
|
13
|
+
this.options = options;
|
|
14
|
+
if (typeof parent === "undefined") {
|
|
15
|
+
throw new Error("Parent store is required");
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
getFullNamespace(namespace) {
|
|
19
|
+
if (this.options.baseNamespace) {
|
|
20
|
+
return [...this.options.baseNamespace, ...namespace];
|
|
21
|
+
}
|
|
22
|
+
return namespace;
|
|
23
|
+
}
|
|
24
|
+
get(namespace, key) {
|
|
25
|
+
return this.parent.get(this.getFullNamespace(namespace), key);
|
|
26
|
+
}
|
|
27
|
+
delete(namespace, key) {
|
|
28
|
+
return this.parent.delete(this.getFullNamespace(namespace), key);
|
|
29
|
+
}
|
|
30
|
+
put(namespace, key, value, options) {
|
|
31
|
+
const expiresIn = (options === null || options === void 0 ? void 0 : options.expiresIn)
|
|
32
|
+
? options.expiresIn
|
|
33
|
+
: this.options.getTTL
|
|
34
|
+
? this.options.getTTL(value)
|
|
35
|
+
: undefined;
|
|
36
|
+
const fullNS = this.getFullNamespace(namespace);
|
|
37
|
+
return this.parent.put(fullNS, key, value, {
|
|
38
|
+
expiresIn,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
createSubStore(options = {}) {
|
|
42
|
+
if (typeof options === "string") {
|
|
43
|
+
options = { baseNamespace: [options] };
|
|
44
|
+
}
|
|
45
|
+
else if (Array.isArray(options)) {
|
|
46
|
+
options = { baseNamespace: options };
|
|
47
|
+
}
|
|
48
|
+
return new SubStore(this, options);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.SubStore = SubStore;
|
|
52
|
+
//# sourceMappingURL=SubStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubStore.js","sourceRoot":"","sources":["../../../src/stores/SubStore.ts"],"names":[],"mappings":";;;AAaA;;;;;GAKG;AACH,MAAa,QAAQ;IACnB,YACmB,MAAkB,EAClB,UAA6B,EAAE;QAD/B,WAAM,GAAN,MAAM,CAAY;QAClB,YAAO,GAAP,OAAO,CAAwB;QAEhD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,SAAmB;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,SAAmB,EAAE,GAAW;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,SAAmB,EAAE,GAAW;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,GAAG,CACD,SAAmB,EACnB,GAAW,EACX,KAAQ,EACR,OAAgC;QAEhC,MAAM,SAAS,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;YAClC,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;gBACnB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5B,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEhD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;YACzC,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAO,UAAoD,EAAE;QACzE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,GAAG,EAAE,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,QAAQ,CAAO,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;CACF;AApDD,4BAoDC","sourcesContent":["import { Store } from \"./Store\";\n\n/**\n * Parameters for configuring a SubStore.\n * @template T The type of values to be stored in the SubStore.\n * @property {string[]} [baseNamespace] - An optional base namespace for the SubStore, used to organize keys in a hierarchical structure.\n * @property {(value: T) => number | undefined} [getTTL] - An optional function that returns the expiry time for a value in milliseconds since epoch, or undefined if the value doesn't expire.\n */\ntype SubStoreParams<T> = {\n baseNamespace?: string[];\n getTTL?: (value: T) => number | undefined;\n};\n\n/**\n * A store implementation that delegates operations to a parent store with optional namespace prefixing.\n *\n * @template T - The type of values stored in this SubStore\n * @implements {Store<T>}\n */\nexport class SubStore<T = any> implements Store<T> {\n constructor(\n private readonly parent: Store<any>,\n private readonly options: SubStoreParams<T> = {}\n ) {\n if (typeof parent === \"undefined\") {\n throw new Error(\"Parent store is required\");\n }\n }\n\n private getFullNamespace(namespace: string[]) {\n if (this.options.baseNamespace) {\n return [...this.options.baseNamespace, ...namespace];\n }\n return namespace;\n }\n\n get(namespace: string[], key: string) {\n return this.parent.get(this.getFullNamespace(namespace), key);\n }\n\n delete(namespace: string[], key: string) {\n return this.parent.delete(this.getFullNamespace(namespace), key);\n }\n\n put(\n namespace: string[],\n key: string,\n value: T,\n options?: { expiresIn?: number }\n ): Promise<void> {\n const expiresIn = options?.expiresIn\n ? options.expiresIn\n : this.options.getTTL\n ? this.options.getTTL(value)\n : undefined;\n\n const fullNS = this.getFullNamespace(namespace);\n\n return this.parent.put(fullNS, key, value, {\n expiresIn,\n });\n }\n\n createSubStore<TNew>(options: string | string[] | SubStoreParams<TNew> = {}) {\n if (typeof options === \"string\") {\n options = { baseNamespace: [options] };\n } else if (Array.isArray(options)) {\n options = { baseNamespace: options };\n }\n return new SubStore<TNew>(this, options);\n }\n}\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FSStore = exports.PersistentTempBox = void 0;
|
|
7
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const tempbox_1 = require("tempbox");
|
|
10
|
+
const TempBoxStore_1 = require("./TempBoxStore");
|
|
11
|
+
class PersistentTempBox extends tempbox_1.TempBox {
|
|
12
|
+
constructor(filepath, debounceMs = 100) {
|
|
13
|
+
const absPath = path_1.default.resolve(filepath);
|
|
14
|
+
super({
|
|
15
|
+
onSet: () => this._debouncedPersist(),
|
|
16
|
+
onDelete: () => this._debouncedPersist(),
|
|
17
|
+
onClear: () => this._debouncedPersist(),
|
|
18
|
+
onExpire: () => this._debouncedPersist(),
|
|
19
|
+
});
|
|
20
|
+
this._pendingWriteTimeout = null;
|
|
21
|
+
this.filepath = absPath;
|
|
22
|
+
this._debounceMs = debounceMs;
|
|
23
|
+
this._load();
|
|
24
|
+
}
|
|
25
|
+
async _load() {
|
|
26
|
+
try {
|
|
27
|
+
const raw = await promises_1.default.readFile(this.filepath, "utf-8");
|
|
28
|
+
const parsed = JSON.parse(raw);
|
|
29
|
+
for (const [key, { value, expiresAt }] of Object.entries(parsed)) {
|
|
30
|
+
const ttl = expiresAt ? Math.max(0, expiresAt - Date.now()) : undefined;
|
|
31
|
+
if (ttl === undefined || ttl > 0) {
|
|
32
|
+
this.set(key, value, ttl);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
if (err.code !== "ENOENT") {
|
|
38
|
+
console.error(`Failed to load persisted store:`, err);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
_debouncedPersist() {
|
|
43
|
+
if (this._pendingWriteTimeout) {
|
|
44
|
+
clearTimeout(this._pendingWriteTimeout);
|
|
45
|
+
}
|
|
46
|
+
this._pendingWriteTimeout = setTimeout(() => {
|
|
47
|
+
this._persist();
|
|
48
|
+
}, this._debounceMs);
|
|
49
|
+
}
|
|
50
|
+
async _persist() {
|
|
51
|
+
const entries = {};
|
|
52
|
+
for (const [key, { value, expiresAt }] of this["data"].entries()) {
|
|
53
|
+
if (!expiresAt || expiresAt > Date.now()) {
|
|
54
|
+
entries[key] = { value, expiresAt };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
await this._ensureDirectory();
|
|
59
|
+
await promises_1.default.writeFile(this.filepath, JSON.stringify(entries, null, 2), "utf-8");
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
console.error(`Failed to persist store to disk:`, err);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async _ensureDirectory() {
|
|
66
|
+
const dir = path_1.default.dirname(this.filepath);
|
|
67
|
+
await promises_1.default.mkdir(dir, { recursive: true });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.PersistentTempBox = PersistentTempBox;
|
|
71
|
+
/**
|
|
72
|
+
* An unsafe filesystem store for dev/demo purposes.
|
|
73
|
+
*/
|
|
74
|
+
class FSStore extends TempBoxStore_1.TempBoxStore {
|
|
75
|
+
constructor(filepath) {
|
|
76
|
+
super(new PersistentTempBox(filepath));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.FSStore = FSStore;
|
|
80
|
+
//# sourceMappingURL=FSStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FSStore.js","sourceRoot":"","sources":["../../../../src/stores/impl/FSStore.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs/promises\";\nimport path from \"path\";\nimport { TempBox } from \"tempbox\";\n\nimport { TempBoxStore } from \"./TempBoxStore\";\n\ntype StoredEntry = {\n value: any;\n expiresAt: number | null;\n};\n\nexport class PersistentTempBox extends TempBox {\n private filepath: string;\n private _pendingWriteTimeout: NodeJS.Timeout | null = null;\n private _debounceMs: number;\n\n constructor(filepath: string, debounceMs = 100) {\n const absPath = path.resolve(filepath);\n super({\n onSet: () => this._debouncedPersist(),\n onDelete: () => this._debouncedPersist(),\n onClear: () => this._debouncedPersist(),\n onExpire: () => this._debouncedPersist(),\n });\n this.filepath = absPath;\n this._debounceMs = debounceMs;\n this._load();\n }\n\n private async _load() {\n try {\n const raw = await fs.readFile(this.filepath, \"utf-8\");\n const parsed: Record<string, StoredEntry> = JSON.parse(raw);\n\n for (const [key, { value, expiresAt }] of Object.entries(parsed)) {\n const ttl = expiresAt ? Math.max(0, expiresAt - Date.now()) : undefined;\n if (ttl === undefined || ttl > 0) {\n this.set(key, value, ttl);\n }\n }\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") {\n console.error(`Failed to load persisted store:`, err);\n }\n }\n }\n\n private _debouncedPersist() {\n if (this._pendingWriteTimeout) {\n clearTimeout(this._pendingWriteTimeout);\n }\n\n this._pendingWriteTimeout = setTimeout(() => {\n this._persist();\n }, this._debounceMs);\n }\n\n private async _persist() {\n const entries: Record<string, StoredEntry> = {};\n for (const [key, { value, expiresAt }] of this[\"data\"].entries()) {\n if (!expiresAt || expiresAt > Date.now()) {\n entries[key] = { value, expiresAt };\n }\n }\n\n try {\n await this._ensureDirectory();\n await fs.writeFile(\n this.filepath,\n JSON.stringify(entries, null, 2),\n \"utf-8\"\n );\n } catch (err) {\n console.error(`Failed to persist store to disk:`, err);\n }\n }\n\n private async _ensureDirectory() {\n const dir = path.dirname(this.filepath);\n await fs.mkdir(dir, { recursive: true });\n }\n}\n\n/**\n * An unsafe filesystem store for dev/demo purposes.\n */\nexport class FSStore<T = any> extends TempBoxStore<T> {\n constructor(filepath: string) {\n super(new PersistentTempBox(filepath));\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryStore = void 0;
|
|
4
|
+
const tempbox_1 = require("tempbox");
|
|
5
|
+
const TempBoxStore_1 = require("./TempBoxStore");
|
|
6
|
+
/**
|
|
7
|
+
* An in-memory store for dev/demo purposes.
|
|
8
|
+
*/
|
|
9
|
+
class MemoryStore extends TempBoxStore_1.TempBoxStore {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(new tempbox_1.TempBox());
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.MemoryStore = MemoryStore;
|
|
15
|
+
//# sourceMappingURL=MemoryStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryStore.js","sourceRoot":"","sources":["../../../../src/stores/impl/MemoryStore.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAElC,iDAA8C;AAE9C;;GAEG;AACH,MAAa,WAAqB,SAAQ,2BAAe;IACvD;QACE,KAAK,CAAC,IAAI,iBAAO,EAAE,CAAC,CAAC;IACvB,CAAC;CACF;AAJD,kCAIC","sourcesContent":["import { TempBox } from \"tempbox\";\n\nimport { TempBoxStore } from \"./TempBoxStore\";\n\n/**\n * An in-memory store for dev/demo purposes.\n */\nexport class MemoryStore<T = any> extends TempBoxStore<T> {\n constructor() {\n super(new TempBox());\n }\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TempBoxStore = void 0;
|
|
4
|
+
class TempBoxStore {
|
|
5
|
+
constructor(store) {
|
|
6
|
+
this.store = store;
|
|
7
|
+
}
|
|
8
|
+
getKey(namespace, key) {
|
|
9
|
+
return namespace.join("/") + "/" + key;
|
|
10
|
+
}
|
|
11
|
+
async get(namespace, key) {
|
|
12
|
+
return this.store.get(this.getKey(namespace, key));
|
|
13
|
+
}
|
|
14
|
+
async delete(namespace, key) {
|
|
15
|
+
this.store.delete(this.getKey(namespace, key));
|
|
16
|
+
}
|
|
17
|
+
async put(namespace, key, value, options) {
|
|
18
|
+
this.store.set(this.getKey(namespace, key), value, options === null || options === void 0 ? void 0 : options.expiresIn);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.TempBoxStore = TempBoxStore;
|
|
22
|
+
//# sourceMappingURL=TempBoxStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TempBoxStore.js","sourceRoot":"","sources":["../../../../src/stores/impl/TempBoxStore.ts"],"names":[],"mappings":";;;AAIA,MAAa,YAAY;IACvB,YAAuC,KAAc;QAAd,UAAK,GAAL,KAAK,CAAS;IAAG,CAAC;IAEjD,MAAM,CAAC,SAAmB,EAAE,GAAW;QAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAmB,EAAE,GAAW;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAmB,EAAE,GAAW;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,GAAG,CACP,SAAmB,EACnB,GAAW,EACX,KAAQ,EACR,OAAgC;QAEhC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,CAAC;IACzE,CAAC;CACF;AAvBD,oCAuBC","sourcesContent":["import { TempBox } from \"tempbox\";\n\nimport { Store } from \"../Store\";\n\nexport class TempBoxStore<T = any> implements Store<T> {\n protected constructor(private readonly store: TempBox) {}\n\n private getKey(namespace: string[], key: string) {\n return namespace.join(\"/\") + \"/\" + key;\n }\n\n async get(namespace: string[], key: string) {\n return this.store.get(this.getKey(namespace, key));\n }\n\n async delete(namespace: string[], key: string) {\n this.store.delete(this.getKey(namespace, key));\n }\n\n async put(\n namespace: string[],\n key: string,\n value: T,\n options?: { expiresIn?: number }\n ) {\n this.store.set(this.getKey(namespace, key), value, options?.expiresIn);\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FSStore = exports.MemoryStore = exports.SubStore = void 0;
|
|
4
|
+
var SubStore_1 = require("./SubStore");
|
|
5
|
+
Object.defineProperty(exports, "SubStore", { enumerable: true, get: function () { return SubStore_1.SubStore; } });
|
|
6
|
+
var MemoryStore_1 = require("./impl/MemoryStore");
|
|
7
|
+
Object.defineProperty(exports, "MemoryStore", { enumerable: true, get: function () { return MemoryStore_1.MemoryStore; } });
|
|
8
|
+
var FSStore_1 = require("./impl/FSStore");
|
|
9
|
+
Object.defineProperty(exports, "FSStore", { enumerable: true, get: function () { return FSStore_1.FSStore; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stores/index.ts"],"names":[],"mappings":";;;AACA,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,kDAAiD;AAAxC,0GAAA,WAAW,OAAA;AACpB,0CAAyC;AAAhC,kGAAA,OAAO,OAAA","sourcesContent":["export type { Store } from \"./Store\";\nexport { SubStore } from \"./SubStore\";\nexport { MemoryStore } from \"./impl/MemoryStore\";\nexport { FSStore } from \"./impl/FSStore\";\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.omit = void 0;
|
|
4
|
+
const omit = function omit(obj, keys) {
|
|
5
|
+
const result = { ...obj };
|
|
6
|
+
for (const key of keys) {
|
|
7
|
+
delete result[key];
|
|
8
|
+
}
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
exports.omit = omit;
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,SAAS,IAAI,CAC/B,GAAM,EACN,IAAS;IAET,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAoB,CAAC;AAC9B,CAAC,CAAC;AATW,QAAA,IAAI,QASf","sourcesContent":["export const omit = function omit<T extends object, K extends keyof T>(\n obj: T,\n keys: K[]\n): Omit<T, K> {\n const result = { ...obj };\n for (const key of keys) {\n delete result[key];\n }\n return result as Omit<T, K>;\n};\n\nexport type RequireFields<T, K extends keyof T> = Required<Pick<T, K>> &\n Omit<T, K>;\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AuthorizerParams } from "../";
|
|
3
|
-
import { Credentials } from "../../credentials";
|
|
1
|
+
import { TokenSet } from "../../credentials";
|
|
4
2
|
import { AuthorizationPendingInterrupt, AuthorizationPollingInterrupt } from "../../interrupts";
|
|
3
|
+
import { ContextGetter } from "../context";
|
|
4
|
+
import { Auth0ClientParams } from "../types";
|
|
5
5
|
import { CIBAAuthorizationRequest } from "./CIBAAuthorizationRequest";
|
|
6
6
|
import { CIBAAuthorizerParams } from "./CIBAAuthorizerParams";
|
|
7
7
|
/**
|
|
@@ -9,13 +9,17 @@ import { CIBAAuthorizerParams } from "./CIBAAuthorizerParams";
|
|
|
9
9
|
* the backend.
|
|
10
10
|
*/
|
|
11
11
|
export declare class CIBAAuthorizerBase<ToolExecuteArgs extends any[]> {
|
|
12
|
+
private readonly auth0;
|
|
13
|
+
private readonly authResponseStore;
|
|
14
|
+
private readonly credentialsStore;
|
|
12
15
|
private readonly params;
|
|
13
|
-
auth0:
|
|
14
|
-
|
|
16
|
+
constructor(auth0: Partial<Auth0ClientParams>, params: CIBAAuthorizerParams<ToolExecuteArgs>);
|
|
17
|
+
private getInstanceID;
|
|
15
18
|
private start;
|
|
19
|
+
private getAuthorizeParams;
|
|
16
20
|
private getCredentialsInternal;
|
|
17
|
-
protected getCredentials(authRequest: CIBAAuthorizationRequest): Promise<
|
|
18
|
-
protected getCredentialsPolling(authRequest: CIBAAuthorizationRequest): Promise<
|
|
21
|
+
protected getCredentials(authRequest: CIBAAuthorizationRequest): Promise<TokenSet | undefined>;
|
|
22
|
+
protected getCredentialsPolling(authRequest: CIBAAuthorizationRequest): Promise<TokenSet | undefined>;
|
|
19
23
|
protected deleteAuthRequest(): Promise<void> | undefined;
|
|
20
24
|
/**
|
|
21
25
|
*
|
|
@@ -25,7 +29,7 @@ export declare class CIBAAuthorizerBase<ToolExecuteArgs extends any[]> {
|
|
|
25
29
|
* @param execute - The tool execute method.
|
|
26
30
|
* @returns The wrapped execute method.
|
|
27
31
|
*/
|
|
28
|
-
protect(getContext:
|
|
32
|
+
protect(getContext: ContextGetter<ToolExecuteArgs>, execute: (...args: ToolExecuteArgs) => any): (...args: ToolExecuteArgs) => any;
|
|
29
33
|
protected handleAuthorizationInterrupts(err: AuthorizationPendingInterrupt | AuthorizationPollingInterrupt): void;
|
|
30
34
|
}
|
|
31
35
|
//# sourceMappingURL=CIBAAuthorizerBase.d.ts.map
|