@onkernel/sdk 0.0.1-alpha.1 → 0.1.0-alpha.10
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 +92 -0
- package/LICENSE +201 -0
- package/README.md +416 -8
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +203 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +203 -0
- package/client.d.ts.map +1 -0
- package/client.js +477 -0
- package/client.js.map +1 -0
- package/client.mjs +473 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/app-framework.d.mts +49 -0
- package/core/app-framework.d.mts.map +1 -0
- package/core/app-framework.d.ts +49 -0
- package/core/app-framework.d.ts.map +1 -0
- package/core/app-framework.js +105 -0
- package/core/app-framework.js.map +1 -0
- package/core/app-framework.mjs +101 -0
- package/core/app-framework.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +7 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +7 -0
- package/index.d.ts.map +1 -0
- package/index.js +32 -0
- package/index.js.map +1 -0
- package/index.mjs +8 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +35 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +32 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +32 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +32 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +28 -0
- package/internal/shim-types.d.ts +28 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +67 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +67 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +85 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +79 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +58 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +53 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +16 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +16 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +109 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +92 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +133 -42
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/apps.d.mts +142 -0
- package/resources/apps.d.mts.map +1 -0
- package/resources/apps.d.ts +142 -0
- package/resources/apps.d.ts.map +1 -0
- package/resources/apps.js +54 -0
- package/resources/apps.js.map +1 -0
- package/resources/apps.mjs +50 -0
- package/resources/apps.mjs.map +1 -0
- package/resources/browser.d.mts +33 -0
- package/resources/browser.d.mts.map +1 -0
- package/resources/browser.d.ts +33 -0
- package/resources/browser.d.ts.map +1 -0
- package/resources/browser.js +15 -0
- package/resources/browser.js.map +1 -0
- package/resources/browser.mjs +11 -0
- package/resources/browser.mjs.map +1 -0
- package/resources/index.d.mts +3 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +3 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +9 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +4 -0
- package/resources/index.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +759 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/app-framework.ts +137 -0
- package/src/core/error.ts +130 -0
- package/src/core/resource.ts +11 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +24 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +50 -0
- package/src/internal/request-options.ts +37 -0
- package/src/internal/shim-types.d.ts +28 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +92 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +126 -0
- package/src/internal/utils/path.ts +63 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +102 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/.keep +4 -0
- package/src/resource.ts +2 -0
- package/src/resources/apps.ts +187 -0
- package/src/resources/browser.ts +48 -0
- package/src/resources/index.ts +11 -0
- package/src/resources.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
- package/dist/index.cjs +0 -71
- package/dist/index.d.cts +0 -59
- package/dist/index.d.ts +0 -59
- package/dist/index.js +0 -68
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
var _APIPromise_client;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.APIPromise = void 0;
|
|
6
|
+
const tslib_1 = require("../internal/tslib.js");
|
|
7
|
+
const parse_1 = require("../internal/parse.js");
|
|
8
|
+
/**
|
|
9
|
+
* A subclass of `Promise` providing additional helper methods
|
|
10
|
+
* for interacting with the SDK.
|
|
11
|
+
*/
|
|
12
|
+
class APIPromise extends Promise {
|
|
13
|
+
constructor(client, responsePromise, parseResponse = parse_1.defaultParseResponse) {
|
|
14
|
+
super((resolve) => {
|
|
15
|
+
// this is maybe a bit weird but this has to be a no-op to not implicitly
|
|
16
|
+
// parse the response body; instead .then, .catch, .finally are overridden
|
|
17
|
+
// to parse the response
|
|
18
|
+
resolve(null);
|
|
19
|
+
});
|
|
20
|
+
this.responsePromise = responsePromise;
|
|
21
|
+
this.parseResponse = parseResponse;
|
|
22
|
+
_APIPromise_client.set(this, void 0);
|
|
23
|
+
tslib_1.__classPrivateFieldSet(this, _APIPromise_client, client, "f");
|
|
24
|
+
}
|
|
25
|
+
_thenUnwrap(transform) {
|
|
26
|
+
return new APIPromise(tslib_1.__classPrivateFieldGet(this, _APIPromise_client, "f"), this.responsePromise, async (client, props) => transform(await this.parseResponse(client, props), props));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Gets the raw `Response` instance instead of parsing the response
|
|
30
|
+
* data.
|
|
31
|
+
*
|
|
32
|
+
* If you want to parse the response body but still get the `Response`
|
|
33
|
+
* instance, you can use {@link withResponse()}.
|
|
34
|
+
*
|
|
35
|
+
* 👋 Getting the wrong TypeScript type for `Response`?
|
|
36
|
+
* Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
|
|
37
|
+
* to your `tsconfig.json`.
|
|
38
|
+
*/
|
|
39
|
+
asResponse() {
|
|
40
|
+
return this.responsePromise.then((p) => p.response);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Gets the parsed response data and the raw `Response` instance.
|
|
44
|
+
*
|
|
45
|
+
* If you just want to get the raw `Response` instance without parsing it,
|
|
46
|
+
* you can use {@link asResponse()}.
|
|
47
|
+
*
|
|
48
|
+
* 👋 Getting the wrong TypeScript type for `Response`?
|
|
49
|
+
* Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
|
|
50
|
+
* to your `tsconfig.json`.
|
|
51
|
+
*/
|
|
52
|
+
async withResponse() {
|
|
53
|
+
const [data, response] = await Promise.all([this.parse(), this.asResponse()]);
|
|
54
|
+
return { data, response };
|
|
55
|
+
}
|
|
56
|
+
parse() {
|
|
57
|
+
if (!this.parsedPromise) {
|
|
58
|
+
this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(tslib_1.__classPrivateFieldGet(this, _APIPromise_client, "f"), data));
|
|
59
|
+
}
|
|
60
|
+
return this.parsedPromise;
|
|
61
|
+
}
|
|
62
|
+
then(onfulfilled, onrejected) {
|
|
63
|
+
return this.parse().then(onfulfilled, onrejected);
|
|
64
|
+
}
|
|
65
|
+
catch(onrejected) {
|
|
66
|
+
return this.parse().catch(onrejected);
|
|
67
|
+
}
|
|
68
|
+
finally(onfinally) {
|
|
69
|
+
return this.parse().finally(onfinally);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.APIPromise = APIPromise;
|
|
73
|
+
_APIPromise_client = new WeakMap();
|
|
74
|
+
//# sourceMappingURL=api-promise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-promise.js","sourceRoot":"","sources":["../src/core/api-promise.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;;AAKtF,gDAA2E;AAE3E;;;GAGG;AACH,MAAa,UAAc,SAAQ,OAAU;IAI3C,YACE,MAAc,EACN,eAA0C,EAC1C,gBAGiB,4BAAoB;QAE7C,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,yEAAyE;YACzE,0EAA0E;YAC1E,wBAAwB;YACxB,OAAO,CAAC,IAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAXK,oBAAe,GAAf,eAAe,CAA2B;QAC1C,kBAAa,GAAb,aAAa,CAGwB;QAR/C,qCAAgB;QAgBd,+BAAA,IAAI,sBAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IAED,WAAW,CAAI,SAAkD;QAC/D,OAAO,IAAI,UAAU,CAAC,+BAAA,IAAI,0BAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAChF,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,+BAAA,IAAI,0BAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEQ,IAAI,CACX,WAAiF,EACjF,UAAmF;QAEnF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAEQ,KAAK,CACZ,UAAiF;QAEjF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAEQ,OAAO,CAAC,SAA2C;QAC1D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACF;AAhFD,gCAgFC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
var _APIPromise_client;
|
|
3
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "../internal/tslib.mjs";
|
|
4
|
+
import { defaultParseResponse } from "../internal/parse.mjs";
|
|
5
|
+
/**
|
|
6
|
+
* A subclass of `Promise` providing additional helper methods
|
|
7
|
+
* for interacting with the SDK.
|
|
8
|
+
*/
|
|
9
|
+
export class APIPromise extends Promise {
|
|
10
|
+
constructor(client, responsePromise, parseResponse = defaultParseResponse) {
|
|
11
|
+
super((resolve) => {
|
|
12
|
+
// this is maybe a bit weird but this has to be a no-op to not implicitly
|
|
13
|
+
// parse the response body; instead .then, .catch, .finally are overridden
|
|
14
|
+
// to parse the response
|
|
15
|
+
resolve(null);
|
|
16
|
+
});
|
|
17
|
+
this.responsePromise = responsePromise;
|
|
18
|
+
this.parseResponse = parseResponse;
|
|
19
|
+
_APIPromise_client.set(this, void 0);
|
|
20
|
+
__classPrivateFieldSet(this, _APIPromise_client, client, "f");
|
|
21
|
+
}
|
|
22
|
+
_thenUnwrap(transform) {
|
|
23
|
+
return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, "f"), this.responsePromise, async (client, props) => transform(await this.parseResponse(client, props), props));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Gets the raw `Response` instance instead of parsing the response
|
|
27
|
+
* data.
|
|
28
|
+
*
|
|
29
|
+
* If you want to parse the response body but still get the `Response`
|
|
30
|
+
* instance, you can use {@link withResponse()}.
|
|
31
|
+
*
|
|
32
|
+
* 👋 Getting the wrong TypeScript type for `Response`?
|
|
33
|
+
* Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
|
|
34
|
+
* to your `tsconfig.json`.
|
|
35
|
+
*/
|
|
36
|
+
asResponse() {
|
|
37
|
+
return this.responsePromise.then((p) => p.response);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Gets the parsed response data and the raw `Response` instance.
|
|
41
|
+
*
|
|
42
|
+
* If you just want to get the raw `Response` instance without parsing it,
|
|
43
|
+
* you can use {@link asResponse()}.
|
|
44
|
+
*
|
|
45
|
+
* 👋 Getting the wrong TypeScript type for `Response`?
|
|
46
|
+
* Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
|
|
47
|
+
* to your `tsconfig.json`.
|
|
48
|
+
*/
|
|
49
|
+
async withResponse() {
|
|
50
|
+
const [data, response] = await Promise.all([this.parse(), this.asResponse()]);
|
|
51
|
+
return { data, response };
|
|
52
|
+
}
|
|
53
|
+
parse() {
|
|
54
|
+
if (!this.parsedPromise) {
|
|
55
|
+
this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, "f"), data));
|
|
56
|
+
}
|
|
57
|
+
return this.parsedPromise;
|
|
58
|
+
}
|
|
59
|
+
then(onfulfilled, onrejected) {
|
|
60
|
+
return this.parse().then(onfulfilled, onrejected);
|
|
61
|
+
}
|
|
62
|
+
catch(onrejected) {
|
|
63
|
+
return this.parse().catch(onrejected);
|
|
64
|
+
}
|
|
65
|
+
finally(onfinally) {
|
|
66
|
+
return this.parse().finally(onfinally);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
_APIPromise_client = new WeakMap();
|
|
70
|
+
//# sourceMappingURL=api-promise.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-promise.mjs","sourceRoot":"","sources":["../src/core/api-promise.ts"],"names":[],"mappings":"AAAA,sFAAsF;;;OAK/E,EAAoB,oBAAoB,EAAE;AAEjD;;;GAGG;AACH,MAAM,OAAO,UAAc,SAAQ,OAAU;IAI3C,YACE,MAAc,EACN,eAA0C,EAC1C,gBAGiB,oBAAoB;QAE7C,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,yEAAyE;YACzE,0EAA0E;YAC1E,wBAAwB;YACxB,OAAO,CAAC,IAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAXK,oBAAe,GAAf,eAAe,CAA2B;QAC1C,kBAAa,GAAb,aAAa,CAGwB;QAR/C,qCAAgB;QAgBd,uBAAA,IAAI,sBAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IAED,WAAW,CAAI,SAAkD;QAC/D,OAAO,IAAI,UAAU,CAAC,uBAAA,IAAI,0BAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAChF,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAA,IAAI,0BAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEQ,IAAI,CACX,WAAiF,EACjF,UAAmF;QAEnF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAEQ,KAAK,CACZ,UAAiF;QAEjF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAEQ,OAAO,CAAC,SAA2C;QAC1D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export interface KernelContext {
|
|
2
|
+
invocationId: string;
|
|
3
|
+
}
|
|
4
|
+
export interface KernelAction {
|
|
5
|
+
name: string;
|
|
6
|
+
handler: (context: KernelContext, input: any) => Promise<any>;
|
|
7
|
+
}
|
|
8
|
+
export interface KernelJson {
|
|
9
|
+
apps: KernelAppJson[];
|
|
10
|
+
}
|
|
11
|
+
export interface KernelAppJson {
|
|
12
|
+
name: string;
|
|
13
|
+
actions: KernelActionJson[];
|
|
14
|
+
}
|
|
15
|
+
export interface KernelActionJson {
|
|
16
|
+
name: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class KernelApp {
|
|
19
|
+
name: string;
|
|
20
|
+
actions: Map<string, KernelAction>;
|
|
21
|
+
constructor(name: string);
|
|
22
|
+
/**
|
|
23
|
+
* Define an action
|
|
24
|
+
*/
|
|
25
|
+
action<T, R>(nameOrHandler: string | ((input: T) => Promise<R>) | ((context: KernelContext, input: T) => Promise<R>), handler?: ((input: T) => Promise<R>) | ((context: KernelContext, input: T) => Promise<R>)): (context: KernelContext, input: T) => Promise<R>;
|
|
26
|
+
/**
|
|
27
|
+
* Get all actions for this app
|
|
28
|
+
*/
|
|
29
|
+
getActions(): KernelAction[];
|
|
30
|
+
/**
|
|
31
|
+
* Get an action by name
|
|
32
|
+
*/
|
|
33
|
+
getAction(name: string): KernelAction | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Export app information without handlers
|
|
36
|
+
*/
|
|
37
|
+
toJSON(): KernelAppJson;
|
|
38
|
+
}
|
|
39
|
+
declare class KernelAppRegistry {
|
|
40
|
+
private apps;
|
|
41
|
+
registerApp(app: KernelApp): void;
|
|
42
|
+
getApps(): KernelApp[];
|
|
43
|
+
getAppByName(name: string): KernelApp | undefined;
|
|
44
|
+
export(): KernelJson;
|
|
45
|
+
exportJSON(): string;
|
|
46
|
+
}
|
|
47
|
+
export declare const appRegistry: KernelAppRegistry;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=app-framework.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-framework.d.mts","sourceRoot":"","sources":["../src/core/app-framework.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,SAAS;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;gBAEnC,IAAI,EAAE,MAAM;IAMxB;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,CAAC,EACT,aAAa,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EACvG,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,aAG5D,aAAa,SAAS,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;IAyCrE;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;OAEG;IACH,MAAM,IAAI,aAAa;CAQxB;AAGD,cAAM,iBAAiB;IACrB,OAAO,CAAC,IAAI,CAAqC;IAEjD,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAIjC,OAAO,IAAI,SAAS,EAAE;IAItB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIjD,MAAM,IAAI,UAAU;IAMpB,UAAU,IAAI,MAAM;CAGrB;AAGD,eAAO,MAAM,WAAW,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export interface KernelContext {
|
|
2
|
+
invocationId: string;
|
|
3
|
+
}
|
|
4
|
+
export interface KernelAction {
|
|
5
|
+
name: string;
|
|
6
|
+
handler: (context: KernelContext, input: any) => Promise<any>;
|
|
7
|
+
}
|
|
8
|
+
export interface KernelJson {
|
|
9
|
+
apps: KernelAppJson[];
|
|
10
|
+
}
|
|
11
|
+
export interface KernelAppJson {
|
|
12
|
+
name: string;
|
|
13
|
+
actions: KernelActionJson[];
|
|
14
|
+
}
|
|
15
|
+
export interface KernelActionJson {
|
|
16
|
+
name: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class KernelApp {
|
|
19
|
+
name: string;
|
|
20
|
+
actions: Map<string, KernelAction>;
|
|
21
|
+
constructor(name: string);
|
|
22
|
+
/**
|
|
23
|
+
* Define an action
|
|
24
|
+
*/
|
|
25
|
+
action<T, R>(nameOrHandler: string | ((input: T) => Promise<R>) | ((context: KernelContext, input: T) => Promise<R>), handler?: ((input: T) => Promise<R>) | ((context: KernelContext, input: T) => Promise<R>)): (context: KernelContext, input: T) => Promise<R>;
|
|
26
|
+
/**
|
|
27
|
+
* Get all actions for this app
|
|
28
|
+
*/
|
|
29
|
+
getActions(): KernelAction[];
|
|
30
|
+
/**
|
|
31
|
+
* Get an action by name
|
|
32
|
+
*/
|
|
33
|
+
getAction(name: string): KernelAction | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Export app information without handlers
|
|
36
|
+
*/
|
|
37
|
+
toJSON(): KernelAppJson;
|
|
38
|
+
}
|
|
39
|
+
declare class KernelAppRegistry {
|
|
40
|
+
private apps;
|
|
41
|
+
registerApp(app: KernelApp): void;
|
|
42
|
+
getApps(): KernelApp[];
|
|
43
|
+
getAppByName(name: string): KernelApp | undefined;
|
|
44
|
+
export(): KernelJson;
|
|
45
|
+
exportJSON(): string;
|
|
46
|
+
}
|
|
47
|
+
export declare const appRegistry: KernelAppRegistry;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=app-framework.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-framework.d.ts","sourceRoot":"","sources":["../src/core/app-framework.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,SAAS;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;gBAEnC,IAAI,EAAE,MAAM;IAMxB;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,CAAC,EACT,aAAa,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EACvG,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,aAG5D,aAAa,SAAS,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;IAyCrE;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;OAEG;IACH,MAAM,IAAI,aAAa;CAQxB;AAGD,cAAM,iBAAiB;IACrB,OAAO,CAAC,IAAI,CAAqC;IAEjD,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAIjC,OAAO,IAAI,SAAS,EAAE;IAItB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIjD,MAAM,IAAI,UAAU;IAMpB,UAAU,IAAI,MAAM;CAGrB;AAGD,eAAO,MAAM,WAAW,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.appRegistry = exports.KernelApp = void 0;
|
|
4
|
+
class KernelApp {
|
|
5
|
+
constructor(name) {
|
|
6
|
+
this.actions = new Map();
|
|
7
|
+
this.name = name;
|
|
8
|
+
// Register this app in the global registry
|
|
9
|
+
exports.appRegistry.registerApp(this);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Define an action
|
|
13
|
+
*/
|
|
14
|
+
action(nameOrHandler, handler) {
|
|
15
|
+
let actionName;
|
|
16
|
+
let actionHandler;
|
|
17
|
+
if (typeof nameOrHandler === 'string' && handler) {
|
|
18
|
+
// Case: app.action("name", handler)
|
|
19
|
+
actionName = nameOrHandler;
|
|
20
|
+
// Create a handler that accepts context and input, adapting if needed
|
|
21
|
+
if (handler.length === 1) {
|
|
22
|
+
// Original handler only takes input, so we adapt it to the new signature
|
|
23
|
+
const singleArgHandler = handler;
|
|
24
|
+
actionHandler = async (context, input) => singleArgHandler(input);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// Handler takes both context and input
|
|
28
|
+
actionHandler = handler;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else if (typeof nameOrHandler === 'function') {
|
|
32
|
+
// Case: app.action(handler)
|
|
33
|
+
actionName = nameOrHandler.name || 'default';
|
|
34
|
+
// Create a handler that accepts context and input, adapting if needed
|
|
35
|
+
if (nameOrHandler.length === 1) {
|
|
36
|
+
// Original handler only takes input, so we adapt it to the new signature
|
|
37
|
+
const singleArgHandler = nameOrHandler;
|
|
38
|
+
actionHandler = async (context, input) => singleArgHandler(input);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// Handler takes both context and input
|
|
42
|
+
actionHandler = nameOrHandler;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
throw new Error('Invalid action definition');
|
|
47
|
+
}
|
|
48
|
+
// Register the action
|
|
49
|
+
this.actions.set(actionName, {
|
|
50
|
+
name: actionName,
|
|
51
|
+
handler: actionHandler,
|
|
52
|
+
});
|
|
53
|
+
return actionHandler;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get all actions for this app
|
|
57
|
+
*/
|
|
58
|
+
getActions() {
|
|
59
|
+
return Array.from(this.actions.values());
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get an action by name
|
|
63
|
+
*/
|
|
64
|
+
getAction(name) {
|
|
65
|
+
return this.actions.get(name);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Export app information without handlers
|
|
69
|
+
*/
|
|
70
|
+
toJSON() {
|
|
71
|
+
return {
|
|
72
|
+
name: this.name,
|
|
73
|
+
actions: this.getActions().map((action) => ({
|
|
74
|
+
name: action.name,
|
|
75
|
+
})),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.KernelApp = KernelApp;
|
|
80
|
+
// Registry for storing all Kernel apps
|
|
81
|
+
class KernelAppRegistry {
|
|
82
|
+
constructor() {
|
|
83
|
+
this.apps = new Map();
|
|
84
|
+
}
|
|
85
|
+
registerApp(app) {
|
|
86
|
+
this.apps.set(app.name, app);
|
|
87
|
+
}
|
|
88
|
+
getApps() {
|
|
89
|
+
return Array.from(this.apps.values());
|
|
90
|
+
}
|
|
91
|
+
getAppByName(name) {
|
|
92
|
+
return this.apps.get(name);
|
|
93
|
+
}
|
|
94
|
+
export() {
|
|
95
|
+
return {
|
|
96
|
+
apps: this.getApps().map((app) => app.toJSON()),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
exportJSON() {
|
|
100
|
+
return JSON.stringify(this.export(), null, 2);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Create a singleton registry for apps
|
|
104
|
+
exports.appRegistry = new KernelAppRegistry();
|
|
105
|
+
//# sourceMappingURL=app-framework.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-framework.js","sourceRoot":"","sources":["../src/core/app-framework.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
export class KernelApp {
|
|
2
|
+
constructor(name) {
|
|
3
|
+
this.actions = new Map();
|
|
4
|
+
this.name = name;
|
|
5
|
+
// Register this app in the global registry
|
|
6
|
+
appRegistry.registerApp(this);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Define an action
|
|
10
|
+
*/
|
|
11
|
+
action(nameOrHandler, handler) {
|
|
12
|
+
let actionName;
|
|
13
|
+
let actionHandler;
|
|
14
|
+
if (typeof nameOrHandler === 'string' && handler) {
|
|
15
|
+
// Case: app.action("name", handler)
|
|
16
|
+
actionName = nameOrHandler;
|
|
17
|
+
// Create a handler that accepts context and input, adapting if needed
|
|
18
|
+
if (handler.length === 1) {
|
|
19
|
+
// Original handler only takes input, so we adapt it to the new signature
|
|
20
|
+
const singleArgHandler = handler;
|
|
21
|
+
actionHandler = async (context, input) => singleArgHandler(input);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// Handler takes both context and input
|
|
25
|
+
actionHandler = handler;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if (typeof nameOrHandler === 'function') {
|
|
29
|
+
// Case: app.action(handler)
|
|
30
|
+
actionName = nameOrHandler.name || 'default';
|
|
31
|
+
// Create a handler that accepts context and input, adapting if needed
|
|
32
|
+
if (nameOrHandler.length === 1) {
|
|
33
|
+
// Original handler only takes input, so we adapt it to the new signature
|
|
34
|
+
const singleArgHandler = nameOrHandler;
|
|
35
|
+
actionHandler = async (context, input) => singleArgHandler(input);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// Handler takes both context and input
|
|
39
|
+
actionHandler = nameOrHandler;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw new Error('Invalid action definition');
|
|
44
|
+
}
|
|
45
|
+
// Register the action
|
|
46
|
+
this.actions.set(actionName, {
|
|
47
|
+
name: actionName,
|
|
48
|
+
handler: actionHandler,
|
|
49
|
+
});
|
|
50
|
+
return actionHandler;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get all actions for this app
|
|
54
|
+
*/
|
|
55
|
+
getActions() {
|
|
56
|
+
return Array.from(this.actions.values());
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get an action by name
|
|
60
|
+
*/
|
|
61
|
+
getAction(name) {
|
|
62
|
+
return this.actions.get(name);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Export app information without handlers
|
|
66
|
+
*/
|
|
67
|
+
toJSON() {
|
|
68
|
+
return {
|
|
69
|
+
name: this.name,
|
|
70
|
+
actions: this.getActions().map((action) => ({
|
|
71
|
+
name: action.name,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Registry for storing all Kernel apps
|
|
77
|
+
class KernelAppRegistry {
|
|
78
|
+
constructor() {
|
|
79
|
+
this.apps = new Map();
|
|
80
|
+
}
|
|
81
|
+
registerApp(app) {
|
|
82
|
+
this.apps.set(app.name, app);
|
|
83
|
+
}
|
|
84
|
+
getApps() {
|
|
85
|
+
return Array.from(this.apps.values());
|
|
86
|
+
}
|
|
87
|
+
getAppByName(name) {
|
|
88
|
+
return this.apps.get(name);
|
|
89
|
+
}
|
|
90
|
+
export() {
|
|
91
|
+
return {
|
|
92
|
+
apps: this.getApps().map((app) => app.toJSON()),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
exportJSON() {
|
|
96
|
+
return JSON.stringify(this.export(), null, 2);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Create a singleton registry for apps
|
|
100
|
+
export const appRegistry = new KernelAppRegistry();
|
|
101
|
+
//# sourceMappingURL=app-framework.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-framework.mjs","sourceRoot":"","sources":["../src/core/app-framework.ts"],"names":[],"mappings":"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"}
|
package/core/error.d.mts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare class KernelError extends Error {
|
|
2
|
+
}
|
|
3
|
+
export declare class APIError<TStatus extends number | undefined = number | undefined, THeaders extends Headers | undefined = Headers | undefined, TError extends Object | undefined = Object | undefined> extends KernelError {
|
|
4
|
+
/** HTTP status for the response that caused the error */
|
|
5
|
+
readonly status: TStatus;
|
|
6
|
+
/** HTTP headers for the response that caused the error */
|
|
7
|
+
readonly headers: THeaders;
|
|
8
|
+
/** JSON body of the response that caused the error */
|
|
9
|
+
readonly error: TError;
|
|
10
|
+
constructor(status: TStatus, error: TError, message: string | undefined, headers: THeaders);
|
|
11
|
+
private static makeMessage;
|
|
12
|
+
static generate(status: number | undefined, errorResponse: Object | undefined, message: string | undefined, headers: Headers | undefined): APIError;
|
|
13
|
+
}
|
|
14
|
+
export declare class APIUserAbortError extends APIError<undefined, undefined, undefined> {
|
|
15
|
+
constructor({ message }?: {
|
|
16
|
+
message?: string;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export declare class APIConnectionError extends APIError<undefined, undefined, undefined> {
|
|
20
|
+
constructor({ message, cause }: {
|
|
21
|
+
message?: string | undefined;
|
|
22
|
+
cause?: Error | undefined;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export declare class APIConnectionTimeoutError extends APIConnectionError {
|
|
26
|
+
constructor({ message }?: {
|
|
27
|
+
message?: string;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export declare class BadRequestError extends APIError<400, Headers> {
|
|
31
|
+
}
|
|
32
|
+
export declare class AuthenticationError extends APIError<401, Headers> {
|
|
33
|
+
}
|
|
34
|
+
export declare class PermissionDeniedError extends APIError<403, Headers> {
|
|
35
|
+
}
|
|
36
|
+
export declare class NotFoundError extends APIError<404, Headers> {
|
|
37
|
+
}
|
|
38
|
+
export declare class ConflictError extends APIError<409, Headers> {
|
|
39
|
+
}
|
|
40
|
+
export declare class UnprocessableEntityError extends APIError<422, Headers> {
|
|
41
|
+
}
|
|
42
|
+
export declare class RateLimitError extends APIError<429, Headers> {
|
|
43
|
+
}
|
|
44
|
+
export declare class InternalServerError extends APIError<number, Headers> {
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=error.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.mts","sourceRoot":"","sources":["../src/core/error.ts"],"names":[],"mappings":"AAIA,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAEzC,qBAAa,QAAQ,CACnB,OAAO,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACvD,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAC1D,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CACtD,SAAQ,WAAW;IACnB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ;IAO1F,OAAO,CAAC,MAAM,CAAC,WAAW;IAqB1B,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,QAAQ;CAyCZ;AAED,qBAAa,iBAAkB,SAAQ,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBAClE,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAGnD;AAED,qBAAa,kBAAmB,SAAQ,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACnE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE;CAM5F;AAED,qBAAa,yBAA0B,SAAQ,kBAAkB;gBACnD,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAGnD;AAED,qBAAa,eAAgB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE9D,qBAAa,mBAAoB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAElE,qBAAa,qBAAsB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAEpE,qBAAa,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE5D,qBAAa,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE5D,qBAAa,wBAAyB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAEvE,qBAAa,cAAe,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE7D,qBAAa,mBAAoB,SAAQ,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG"}
|
package/core/error.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare class KernelError extends Error {
|
|
2
|
+
}
|
|
3
|
+
export declare class APIError<TStatus extends number | undefined = number | undefined, THeaders extends Headers | undefined = Headers | undefined, TError extends Object | undefined = Object | undefined> extends KernelError {
|
|
4
|
+
/** HTTP status for the response that caused the error */
|
|
5
|
+
readonly status: TStatus;
|
|
6
|
+
/** HTTP headers for the response that caused the error */
|
|
7
|
+
readonly headers: THeaders;
|
|
8
|
+
/** JSON body of the response that caused the error */
|
|
9
|
+
readonly error: TError;
|
|
10
|
+
constructor(status: TStatus, error: TError, message: string | undefined, headers: THeaders);
|
|
11
|
+
private static makeMessage;
|
|
12
|
+
static generate(status: number | undefined, errorResponse: Object | undefined, message: string | undefined, headers: Headers | undefined): APIError;
|
|
13
|
+
}
|
|
14
|
+
export declare class APIUserAbortError extends APIError<undefined, undefined, undefined> {
|
|
15
|
+
constructor({ message }?: {
|
|
16
|
+
message?: string;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export declare class APIConnectionError extends APIError<undefined, undefined, undefined> {
|
|
20
|
+
constructor({ message, cause }: {
|
|
21
|
+
message?: string | undefined;
|
|
22
|
+
cause?: Error | undefined;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export declare class APIConnectionTimeoutError extends APIConnectionError {
|
|
26
|
+
constructor({ message }?: {
|
|
27
|
+
message?: string;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export declare class BadRequestError extends APIError<400, Headers> {
|
|
31
|
+
}
|
|
32
|
+
export declare class AuthenticationError extends APIError<401, Headers> {
|
|
33
|
+
}
|
|
34
|
+
export declare class PermissionDeniedError extends APIError<403, Headers> {
|
|
35
|
+
}
|
|
36
|
+
export declare class NotFoundError extends APIError<404, Headers> {
|
|
37
|
+
}
|
|
38
|
+
export declare class ConflictError extends APIError<409, Headers> {
|
|
39
|
+
}
|
|
40
|
+
export declare class UnprocessableEntityError extends APIError<422, Headers> {
|
|
41
|
+
}
|
|
42
|
+
export declare class RateLimitError extends APIError<429, Headers> {
|
|
43
|
+
}
|
|
44
|
+
export declare class InternalServerError extends APIError<number, Headers> {
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/core/error.ts"],"names":[],"mappings":"AAIA,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAEzC,qBAAa,QAAQ,CACnB,OAAO,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACvD,QAAQ,SAAS,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,EAC1D,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CACtD,SAAQ,WAAW;IACnB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ;IAO1F,OAAO,CAAC,MAAM,CAAC,WAAW;IAqB1B,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,QAAQ;CAyCZ;AAED,qBAAa,iBAAkB,SAAQ,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBAClE,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAGnD;AAED,qBAAa,kBAAmB,SAAQ,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACnE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE;CAM5F;AAED,qBAAa,yBAA0B,SAAQ,kBAAkB;gBACnD,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAGnD;AAED,qBAAa,eAAgB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE9D,qBAAa,mBAAoB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAElE,qBAAa,qBAAsB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAEpE,qBAAa,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE5D,qBAAa,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE5D,qBAAa,wBAAyB,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAEvE,qBAAa,cAAe,SAAQ,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CAAG;AAE7D,qBAAa,mBAAoB,SAAQ,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG"}
|