@tier0/sdk-v2 0.0.0-stage → 0.2.1
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/LICENSE +21 -0
- package/NOTICE.md +7 -0
- package/README.md +201 -2
- package/dist/cjs/app-identity-contract.generated.d.ts +22 -0
- package/dist/cjs/app-identity-contract.generated.js +51 -0
- package/dist/cjs/app-identity-contract.generated.js.map +1 -0
- package/dist/cjs/capabilities.d.ts +54 -0
- package/dist/cjs/capabilities.js +134 -0
- package/dist/cjs/capabilities.js.map +1 -0
- package/dist/cjs/client.d.ts +604 -0
- package/dist/cjs/client.js +35 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/cloud-server.d.ts +31 -0
- package/dist/cjs/cloud-server.js +114 -0
- package/dist/cjs/cloud-server.js.map +1 -0
- package/dist/cjs/cloud-transport.d.ts +67 -0
- package/dist/cjs/cloud-transport.js +272 -0
- package/dist/cjs/cloud-transport.js.map +1 -0
- package/dist/cjs/controls.d.ts +93 -0
- package/dist/cjs/controls.js +169 -0
- package/dist/cjs/controls.js.map +1 -0
- package/dist/cjs/data/bootstrap.d.ts +70 -0
- package/dist/cjs/data/bootstrap.js +291 -0
- package/dist/cjs/data/bootstrap.js.map +1 -0
- package/dist/cjs/data/call.d.ts +33 -0
- package/dist/cjs/data/call.js +216 -0
- package/dist/cjs/data/call.js.map +1 -0
- package/dist/cjs/data/client.d.ts +134 -0
- package/dist/cjs/data/client.js +185 -0
- package/dist/cjs/data/client.js.map +1 -0
- package/dist/cjs/data/collection.d.ts +335 -0
- package/dist/cjs/data/collection.js +601 -0
- package/dist/cjs/data/collection.js.map +1 -0
- package/dist/cjs/data/context.d.ts +12 -0
- package/dist/cjs/data/context.js +50 -0
- package/dist/cjs/data/context.js.map +1 -0
- package/dist/cjs/data/declarations.d.ts +11 -0
- package/dist/cjs/data/declarations.js +18 -0
- package/dist/cjs/data/declarations.js.map +1 -0
- package/dist/cjs/data/define.d.ts +77 -0
- package/dist/cjs/data/define.js +31 -0
- package/dist/cjs/data/define.js.map +1 -0
- package/dist/cjs/data/error.d.ts +78 -0
- package/dist/cjs/data/error.js +182 -0
- package/dist/cjs/data/error.js.map +1 -0
- package/dist/cjs/data/index.d.ts +24 -0
- package/dist/cjs/data/index.js +49 -0
- package/dist/cjs/data/index.js.map +1 -0
- package/dist/cjs/data/schema.d.ts +88 -0
- package/dist/cjs/data/schema.js +657 -0
- package/dist/cjs/data/schema.js.map +1 -0
- package/dist/cjs/data/sort.d.ts +8 -0
- package/dist/cjs/data/sort.js +21 -0
- package/dist/cjs/data/sort.js.map +1 -0
- package/dist/cjs/data/subscribe.d.ts +108 -0
- package/dist/cjs/data/subscribe.js +270 -0
- package/dist/cjs/data/subscribe.js.map +1 -0
- package/dist/cjs/files.d.ts +67 -0
- package/dist/cjs/files.js +119 -0
- package/dist/cjs/files.js.map +1 -0
- package/dist/cjs/framework-scope.d.ts +1 -0
- package/dist/cjs/framework-scope.js +14 -0
- package/dist/cjs/framework-scope.js.map +1 -0
- package/dist/cjs/index.d.ts +14 -0
- package/dist/cjs/index.js +33 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/mq/broker.d.ts +65 -0
- package/dist/cjs/mq/broker.js +115 -0
- package/dist/cjs/mq/broker.js.map +1 -0
- package/dist/cjs/mq/client.d.ts +37 -0
- package/dist/cjs/mq/client.js +321 -0
- package/dist/cjs/mq/client.js.map +1 -0
- package/dist/cjs/mq/index.d.ts +5 -0
- package/dist/cjs/mq/index.js +11 -0
- package/dist/cjs/mq/index.js.map +1 -0
- package/dist/cjs/mq/types.d.ts +48 -0
- package/dist/cjs/mq/types.js +3 -0
- package/dist/cjs/mq/types.js.map +1 -0
- package/dist/cjs/openapi/api.generated.d.ts +820 -0
- package/dist/cjs/openapi/api.generated.js +607 -0
- package/dist/cjs/openapi/api.generated.js.map +1 -0
- package/dist/cjs/openapi/client.d.ts +56 -0
- package/dist/cjs/openapi/client.js +219 -0
- package/dist/cjs/openapi/client.js.map +1 -0
- package/dist/cjs/openapi/codecs.generated.d.ts +2234 -0
- package/dist/cjs/openapi/codecs.generated.js +6 -0
- package/dist/cjs/openapi/codecs.generated.js.map +1 -0
- package/dist/cjs/openapi/index.d.ts +5 -0
- package/dist/cjs/openapi/index.js +12 -0
- package/dist/cjs/openapi/index.js.map +1 -0
- package/dist/cjs/openapi/types.generated.d.ts +3227 -0
- package/dist/cjs/openapi/types.generated.js +3 -0
- package/dist/cjs/openapi/types.generated.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/react.d.ts +9 -0
- package/dist/cjs/react.js +16 -0
- package/dist/cjs/react.js.map +1 -0
- package/dist/cjs/runtime-context.d.ts +9 -0
- package/dist/cjs/runtime-context.js +25 -0
- package/dist/cjs/runtime-context.js.map +1 -0
- package/dist/cjs/runtime-env.d.ts +1 -0
- package/dist/cjs/runtime-env.js +18 -0
- package/dist/cjs/runtime-env.js.map +1 -0
- package/dist/cjs/source.d.ts +39 -0
- package/dist/cjs/source.js +29 -0
- package/dist/cjs/source.js.map +1 -0
- package/dist/cjs/stream.d.ts +40 -0
- package/dist/cjs/stream.js +33 -0
- package/dist/cjs/stream.js.map +1 -0
- package/dist/cjs/uns-v2/client.d.ts +132 -0
- package/dist/cjs/uns-v2/client.js +352 -0
- package/dist/cjs/uns-v2/client.js.map +1 -0
- package/dist/cjs/uns-v2/codec.d.ts +11 -0
- package/dist/cjs/uns-v2/codec.js +290 -0
- package/dist/cjs/uns-v2/codec.js.map +1 -0
- package/dist/cjs/uns-v2/data-client.d.ts +10 -0
- package/dist/cjs/uns-v2/data-client.js +18 -0
- package/dist/cjs/uns-v2/data-client.js.map +1 -0
- package/dist/cjs/uns-v2/generated.d.ts +18178 -0
- package/dist/cjs/uns-v2/generated.js +144 -0
- package/dist/cjs/uns-v2/generated.js.map +1 -0
- package/dist/cjs/uns-v2/index.d.ts +5 -0
- package/dist/cjs/uns-v2/index.js +24 -0
- package/dist/cjs/uns-v2/index.js.map +1 -0
- package/dist/cjs/uns-v2/sse.d.ts +20 -0
- package/dist/cjs/uns-v2/sse.js +65 -0
- package/dist/cjs/uns-v2/sse.js.map +1 -0
- package/dist/cjs/vue.d.ts +9 -0
- package/dist/cjs/vue.js +39 -0
- package/dist/cjs/vue.js.map +1 -0
- package/dist/esm/app-identity-contract.generated.d.ts +22 -0
- package/dist/esm/app-identity-contract.generated.js +48 -0
- package/dist/esm/app-identity-contract.generated.js.map +1 -0
- package/dist/esm/capabilities.d.ts +54 -0
- package/dist/esm/capabilities.js +129 -0
- package/dist/esm/capabilities.js.map +1 -0
- package/dist/esm/client.d.ts +604 -0
- package/dist/esm/client.js +32 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/cloud-server.d.ts +31 -0
- package/dist/esm/cloud-server.js +109 -0
- package/dist/esm/cloud-server.js.map +1 -0
- package/dist/esm/cloud-transport.d.ts +67 -0
- package/dist/esm/cloud-transport.js +267 -0
- package/dist/esm/cloud-transport.js.map +1 -0
- package/dist/esm/controls.d.ts +93 -0
- package/dist/esm/controls.js +163 -0
- package/dist/esm/controls.js.map +1 -0
- package/dist/esm/data/bootstrap.d.ts +70 -0
- package/dist/esm/data/bootstrap.js +286 -0
- package/dist/esm/data/bootstrap.js.map +1 -0
- package/dist/esm/data/call.d.ts +33 -0
- package/dist/esm/data/call.js +211 -0
- package/dist/esm/data/call.js.map +1 -0
- package/dist/esm/data/client.d.ts +134 -0
- package/dist/esm/data/client.js +181 -0
- package/dist/esm/data/client.js.map +1 -0
- package/dist/esm/data/collection.d.ts +335 -0
- package/dist/esm/data/collection.js +594 -0
- package/dist/esm/data/collection.js.map +1 -0
- package/dist/esm/data/context.d.ts +12 -0
- package/dist/esm/data/context.js +44 -0
- package/dist/esm/data/context.js.map +1 -0
- package/dist/esm/data/declarations.d.ts +11 -0
- package/dist/esm/data/declarations.js +10 -0
- package/dist/esm/data/declarations.js.map +1 -0
- package/dist/esm/data/define.d.ts +77 -0
- package/dist/esm/data/define.js +27 -0
- package/dist/esm/data/define.js.map +1 -0
- package/dist/esm/data/error.d.ts +78 -0
- package/dist/esm/data/error.js +176 -0
- package/dist/esm/data/error.js.map +1 -0
- package/dist/esm/data/index.d.ts +24 -0
- package/dist/esm/data/index.js +20 -0
- package/dist/esm/data/index.js.map +1 -0
- package/dist/esm/data/schema.d.ts +88 -0
- package/dist/esm/data/schema.js +646 -0
- package/dist/esm/data/schema.js.map +1 -0
- package/dist/esm/data/sort.d.ts +8 -0
- package/dist/esm/data/sort.js +18 -0
- package/dist/esm/data/sort.js.map +1 -0
- package/dist/esm/data/subscribe.d.ts +108 -0
- package/dist/esm/data/subscribe.js +265 -0
- package/dist/esm/data/subscribe.js.map +1 -0
- package/dist/esm/files.d.ts +67 -0
- package/dist/esm/files.js +113 -0
- package/dist/esm/files.js.map +1 -0
- package/dist/esm/framework-scope.d.ts +1 -0
- package/dist/esm/framework-scope.js +11 -0
- package/dist/esm/framework-scope.js.map +1 -0
- package/dist/esm/index.d.ts +14 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/mq/broker.d.ts +65 -0
- package/dist/esm/mq/broker.js +109 -0
- package/dist/esm/mq/broker.js.map +1 -0
- package/dist/esm/mq/client.d.ts +37 -0
- package/dist/esm/mq/client.js +314 -0
- package/dist/esm/mq/client.js.map +1 -0
- package/dist/esm/mq/index.d.ts +5 -0
- package/dist/esm/mq/index.js +3 -0
- package/dist/esm/mq/index.js.map +1 -0
- package/dist/esm/mq/types.d.ts +48 -0
- package/dist/esm/mq/types.js +2 -0
- package/dist/esm/mq/types.js.map +1 -0
- package/dist/esm/openapi/api.generated.d.ts +820 -0
- package/dist/esm/openapi/api.generated.js +603 -0
- package/dist/esm/openapi/api.generated.js.map +1 -0
- package/dist/esm/openapi/client.d.ts +56 -0
- package/dist/esm/openapi/client.js +210 -0
- package/dist/esm/openapi/client.js.map +1 -0
- package/dist/esm/openapi/codecs.generated.d.ts +2234 -0
- package/dist/esm/openapi/codecs.generated.js +3 -0
- package/dist/esm/openapi/codecs.generated.js.map +1 -0
- package/dist/esm/openapi/index.d.ts +5 -0
- package/dist/esm/openapi/index.js +3 -0
- package/dist/esm/openapi/index.js.map +1 -0
- package/dist/esm/openapi/types.generated.d.ts +3227 -0
- package/dist/esm/openapi/types.generated.js +2 -0
- package/dist/esm/openapi/types.generated.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/react.d.ts +9 -0
- package/dist/esm/react.js +12 -0
- package/dist/esm/react.js.map +1 -0
- package/dist/esm/runtime-context.d.ts +9 -0
- package/dist/esm/runtime-context.js +22 -0
- package/dist/esm/runtime-context.js.map +1 -0
- package/dist/esm/runtime-env.d.ts +1 -0
- package/dist/esm/runtime-env.js +15 -0
- package/dist/esm/runtime-env.js.map +1 -0
- package/dist/esm/source.d.ts +39 -0
- package/dist/esm/source.js +25 -0
- package/dist/esm/source.js.map +1 -0
- package/dist/esm/stream.d.ts +40 -0
- package/dist/esm/stream.js +29 -0
- package/dist/esm/stream.js.map +1 -0
- package/dist/esm/uns-v2/client.d.ts +132 -0
- package/dist/esm/uns-v2/client.js +343 -0
- package/dist/esm/uns-v2/client.js.map +1 -0
- package/dist/esm/uns-v2/codec.d.ts +11 -0
- package/dist/esm/uns-v2/codec.js +284 -0
- package/dist/esm/uns-v2/codec.js.map +1 -0
- package/dist/esm/uns-v2/data-client.d.ts +10 -0
- package/dist/esm/uns-v2/data-client.js +14 -0
- package/dist/esm/uns-v2/data-client.js.map +1 -0
- package/dist/esm/uns-v2/generated.d.ts +18178 -0
- package/dist/esm/uns-v2/generated.js +141 -0
- package/dist/esm/uns-v2/generated.js.map +1 -0
- package/dist/esm/uns-v2/index.d.ts +5 -0
- package/dist/esm/uns-v2/index.js +5 -0
- package/dist/esm/uns-v2/index.js.map +1 -0
- package/dist/esm/uns-v2/sse.d.ts +20 -0
- package/dist/esm/uns-v2/sse.js +60 -0
- package/dist/esm/uns-v2/sse.js.map +1 -0
- package/dist/esm/vue.d.ts +9 -0
- package/dist/esm/vue.js +36 -0
- package/dist/esm/vue.js.map +1 -0
- package/docs/acceptance-2026-10-22.md +88 -0
- package/package.json +243 -4
- package/skills/tier0-sdk-v2/SKILL.md +66 -0
- package/skills/tier0-sdk-v2/references/integration.md +72 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-agent/SKILL.md +73 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-agent/references/results.md +45 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-controls/SKILL.md +63 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-data/SKILL.md +58 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-data/references/consistency.md +70 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-data/references/errors.md +82 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-data/references/modeling.md +113 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-data/references/read-write.md +168 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-data/references/schema-evolution.md +36 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-files/SKILL.md +85 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-files/references/delete.md +22 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-files/references/download.md +49 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-files/references/multipart.md +42 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-files/references/upload.md +27 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-files/references/url.md +22 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-members/SKILL.md +56 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-members/references/app-members.md +41 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-members/references/platform-members.md +56 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-mq/SKILL.md +78 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-mq/references/quickstart.md +69 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-notifications/SKILL.md +42 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-notifications/references/get.md +34 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-notifications/references/send.md +72 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-source/SKILL.md +38 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-source/references/changes.md +40 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-source/references/create.md +63 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-source/references/delete.md +47 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-source/references/protocols.md +36 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-source/references/read.md +34 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-source/references/state.md +37 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-source/references/update.md +62 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-stream/SKILL.md +43 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-stream/references/create.md +56 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-stream/references/delete.md +35 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-stream/references/deploy.md +64 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-stream/references/lifecycle.md +26 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-stream/references/read.md +35 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-stream/references/update.md +36 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-system/SKILL.md +64 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-system/references/info.md +23 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-system/references/whoami.md +21 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-uns/SKILL.md +55 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-uns/references/create.md +56 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-uns/references/data-workflows.md +69 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-uns/references/delete.md +53 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-uns/references/namespace.md +38 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-uns/references/read.md +34 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-uns/references/restore.md +39 -0
- package/skills/tier0-sdk-v2/tier0-sdk-v2-uns/references/update.md +62 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnsV2RawNumber = void 0;
|
|
4
|
+
exports.encodeUnsV2JSON = encodeUnsV2JSON;
|
|
5
|
+
exports.decodeUnsV2JSON = decodeUnsV2JSON;
|
|
6
|
+
const generated_js_1 = require("./generated.js");
|
|
7
|
+
const codecs_generated_js_1 = require("../openapi/codecs.generated.js");
|
|
8
|
+
const numericBrand = Symbol('UnsV2NumericToken');
|
|
9
|
+
const schemas = { ...generated_js_1.UNS_V2_CODEC_SCHEMAS, ...codecs_generated_js_1.V1_CODEC_SCHEMAS };
|
|
10
|
+
const jsonNumberPattern = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
|
|
11
|
+
const int64Min = -(1n << 63n);
|
|
12
|
+
const int64Max = (1n << 63n) - 1n;
|
|
13
|
+
/** Exact JSON number used when JavaScript number cannot preserve the wire value. */
|
|
14
|
+
class UnsV2RawNumber {
|
|
15
|
+
lexeme;
|
|
16
|
+
constructor(lexeme) {
|
|
17
|
+
if (!jsonNumberPattern.test(lexeme))
|
|
18
|
+
throw new TypeError('Tier0 SDK: invalid raw JSON number.');
|
|
19
|
+
this.lexeme = lexeme;
|
|
20
|
+
Object.freeze(this);
|
|
21
|
+
}
|
|
22
|
+
toNumber() { return Number(this.lexeme); }
|
|
23
|
+
toBigInt() {
|
|
24
|
+
if (!/^-?(?:0|[1-9]\d*)$/.test(this.lexeme))
|
|
25
|
+
throw new TypeError('Tier0 SDK: raw JSON number is not an integer.');
|
|
26
|
+
return BigInt(this.lexeme);
|
|
27
|
+
}
|
|
28
|
+
toString() { return this.lexeme; }
|
|
29
|
+
toJSON() {
|
|
30
|
+
throw new TypeError('Tier0 SDK: UnsV2RawNumber requires encodeUnsV2JSON or explicit conversion.');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.UnsV2RawNumber = UnsV2RawNumber;
|
|
34
|
+
function numeric(value) {
|
|
35
|
+
return value !== null && typeof value === 'object' && numericBrand in value;
|
|
36
|
+
}
|
|
37
|
+
class JSONParser {
|
|
38
|
+
text;
|
|
39
|
+
offset = 0;
|
|
40
|
+
constructor(text) {
|
|
41
|
+
this.text = text;
|
|
42
|
+
}
|
|
43
|
+
parse() {
|
|
44
|
+
const value = this.value();
|
|
45
|
+
this.space();
|
|
46
|
+
if (this.offset !== this.text.length)
|
|
47
|
+
throw new SyntaxError('Trailing JSON content.');
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
space() {
|
|
51
|
+
while (this.text[this.offset] === ' ' || this.text[this.offset] === '\t' ||
|
|
52
|
+
this.text[this.offset] === '\r' || this.text[this.offset] === '\n')
|
|
53
|
+
this.offset += 1;
|
|
54
|
+
}
|
|
55
|
+
value() {
|
|
56
|
+
this.space();
|
|
57
|
+
const char = this.text[this.offset];
|
|
58
|
+
if (char === '"')
|
|
59
|
+
return this.string();
|
|
60
|
+
if (char === '{')
|
|
61
|
+
return this.object();
|
|
62
|
+
if (char === '[')
|
|
63
|
+
return this.array();
|
|
64
|
+
if (this.text.startsWith('true', this.offset)) {
|
|
65
|
+
this.offset += 4;
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
if (this.text.startsWith('false', this.offset)) {
|
|
69
|
+
this.offset += 5;
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (this.text.startsWith('null', this.offset)) {
|
|
73
|
+
this.offset += 4;
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const match = this.text.slice(this.offset).match(/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/);
|
|
77
|
+
if (match) {
|
|
78
|
+
this.offset += match[0].length;
|
|
79
|
+
return { [numericBrand]: match[0] };
|
|
80
|
+
}
|
|
81
|
+
throw new SyntaxError(`Invalid JSON at offset ${this.offset}.`);
|
|
82
|
+
}
|
|
83
|
+
string() {
|
|
84
|
+
const start = this.offset++;
|
|
85
|
+
let escaped = false;
|
|
86
|
+
while (this.offset < this.text.length) {
|
|
87
|
+
const char = this.text[this.offset++];
|
|
88
|
+
if (char === '"' && !escaped)
|
|
89
|
+
return JSON.parse(this.text.slice(start, this.offset));
|
|
90
|
+
if (char === '\\' && !escaped)
|
|
91
|
+
escaped = true;
|
|
92
|
+
else
|
|
93
|
+
escaped = false;
|
|
94
|
+
}
|
|
95
|
+
throw new SyntaxError('Unterminated JSON string.');
|
|
96
|
+
}
|
|
97
|
+
object() {
|
|
98
|
+
const result = Object.create(null);
|
|
99
|
+
this.offset += 1;
|
|
100
|
+
this.space();
|
|
101
|
+
if (this.text[this.offset] === '}') {
|
|
102
|
+
this.offset += 1;
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
while (true) {
|
|
106
|
+
this.space();
|
|
107
|
+
if (this.text[this.offset] !== '"')
|
|
108
|
+
throw new SyntaxError('Expected JSON object key.');
|
|
109
|
+
const key = this.string();
|
|
110
|
+
this.space();
|
|
111
|
+
if (this.text[this.offset++] !== ':')
|
|
112
|
+
throw new SyntaxError('Expected JSON object colon.');
|
|
113
|
+
result[key] = this.value();
|
|
114
|
+
this.space();
|
|
115
|
+
const delimiter = this.text[this.offset++];
|
|
116
|
+
if (delimiter === '}')
|
|
117
|
+
return result;
|
|
118
|
+
if (delimiter !== ',')
|
|
119
|
+
throw new SyntaxError('Expected JSON object delimiter.');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
array() {
|
|
123
|
+
const result = [];
|
|
124
|
+
this.offset += 1;
|
|
125
|
+
this.space();
|
|
126
|
+
if (this.text[this.offset] === ']') {
|
|
127
|
+
this.offset += 1;
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
while (true) {
|
|
131
|
+
result.push(this.value());
|
|
132
|
+
this.space();
|
|
133
|
+
const delimiter = this.text[this.offset++];
|
|
134
|
+
if (delimiter === ']')
|
|
135
|
+
return result;
|
|
136
|
+
if (delimiter !== ',')
|
|
137
|
+
throw new SyntaxError('Expected JSON array delimiter.');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function variants(codec, seen = new Set()) {
|
|
142
|
+
if (!codec)
|
|
143
|
+
return [];
|
|
144
|
+
if (codec.r) {
|
|
145
|
+
if (seen.has(codec.r))
|
|
146
|
+
return [];
|
|
147
|
+
const next = new Set(seen);
|
|
148
|
+
next.add(codec.r);
|
|
149
|
+
return variants(schemas[codec.r], next);
|
|
150
|
+
}
|
|
151
|
+
if (codec.k === 'u')
|
|
152
|
+
return (codec.a || []).flatMap(item => variants(item, seen));
|
|
153
|
+
return [codec];
|
|
154
|
+
}
|
|
155
|
+
function kind(codec, expected) {
|
|
156
|
+
return variants(codec).find(item => item.k === expected);
|
|
157
|
+
}
|
|
158
|
+
function property(codec, name) {
|
|
159
|
+
for (const candidate of variants(codec)) {
|
|
160
|
+
if (candidate.k !== 'o')
|
|
161
|
+
continue;
|
|
162
|
+
if (candidate.p && Object.prototype.hasOwnProperty.call(candidate.p, name))
|
|
163
|
+
return candidate.p[name];
|
|
164
|
+
if (candidate.x)
|
|
165
|
+
return candidate.x;
|
|
166
|
+
}
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
function decimalIdentity(token) {
|
|
170
|
+
const match = token.match(/^(-?)(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
|
|
171
|
+
if (!match)
|
|
172
|
+
throw new SyntaxError('Invalid JSON number.');
|
|
173
|
+
const negative = match[1] === '-';
|
|
174
|
+
const fraction = match[3] || '';
|
|
175
|
+
let digits = `${match[2]}${fraction}`.replace(/^0+/, '');
|
|
176
|
+
if (!digits)
|
|
177
|
+
return '0';
|
|
178
|
+
let power = Number(match[4] || 0) - fraction.length;
|
|
179
|
+
const trailing = digits.match(/0+$/)?.[0].length || 0;
|
|
180
|
+
if (trailing) {
|
|
181
|
+
digits = digits.slice(0, -trailing);
|
|
182
|
+
power += trailing;
|
|
183
|
+
}
|
|
184
|
+
return `${negative ? '-' : ''}${digits}e${power}`;
|
|
185
|
+
}
|
|
186
|
+
function decode(value, codec) {
|
|
187
|
+
if (numeric(value)) {
|
|
188
|
+
const token = value[numericBrand];
|
|
189
|
+
if (kind(codec, 'i')) {
|
|
190
|
+
if (!/^-?(?:0|[1-9]\d*)$/.test(token))
|
|
191
|
+
throw new SyntaxError('Invalid int64 JSON token.');
|
|
192
|
+
const integer = BigInt(token);
|
|
193
|
+
if (integer < int64Min || integer > int64Max)
|
|
194
|
+
throw new SyntaxError('UNS v2 int64 exceeds the signed 64-bit range.');
|
|
195
|
+
return integer >= BigInt(Number.MIN_SAFE_INTEGER) && integer <= BigInt(Number.MAX_SAFE_INTEGER)
|
|
196
|
+
? Number(integer) : integer;
|
|
197
|
+
}
|
|
198
|
+
if (kind(codec, 'j') && !/^-?(?:0|[1-9]\d*)$/.test(token)) {
|
|
199
|
+
throw new SyntaxError('Invalid integer JSON token.');
|
|
200
|
+
}
|
|
201
|
+
const number = Number(token);
|
|
202
|
+
if (Number.isFinite(number) && (!Number.isInteger(number) || Number.isSafeInteger(number)) &&
|
|
203
|
+
decimalIdentity(token) === decimalIdentity(JSON.stringify(number)))
|
|
204
|
+
return number;
|
|
205
|
+
return new UnsV2RawNumber(token);
|
|
206
|
+
}
|
|
207
|
+
if (Array.isArray(value)) {
|
|
208
|
+
const item = kind(codec, 'a')?.i;
|
|
209
|
+
return value.map(entry => decode(entry, item));
|
|
210
|
+
}
|
|
211
|
+
if (value !== null && typeof value === 'object') {
|
|
212
|
+
return Object.fromEntries(Object.entries(value).map(([name, entry]) => [name, decode(entry, property(codec, name))]));
|
|
213
|
+
}
|
|
214
|
+
return value;
|
|
215
|
+
}
|
|
216
|
+
function encode(value, codec, seen) {
|
|
217
|
+
if (value === undefined)
|
|
218
|
+
return undefined;
|
|
219
|
+
if (value === null || typeof value === 'boolean')
|
|
220
|
+
return JSON.stringify(value);
|
|
221
|
+
if (typeof value === 'string')
|
|
222
|
+
return JSON.stringify(value);
|
|
223
|
+
if (typeof value === 'bigint') {
|
|
224
|
+
if (!kind(codec, 'i') || value < int64Min || value > int64Max) {
|
|
225
|
+
throw new TypeError('Tier0 SDK: bigint is only valid for signed int64 contract fields.');
|
|
226
|
+
}
|
|
227
|
+
return value.toString();
|
|
228
|
+
}
|
|
229
|
+
if (typeof value === 'number') {
|
|
230
|
+
if (!Number.isFinite(value))
|
|
231
|
+
throw new TypeError('Tier0 SDK: UNS v2 request contains a non-finite number.');
|
|
232
|
+
if (kind(codec, 'j') && !Number.isInteger(value)) {
|
|
233
|
+
throw new TypeError('Tier0 SDK: UNS v2 integer field requires an integer.');
|
|
234
|
+
}
|
|
235
|
+
if (kind(codec, 'i') && !Number.isSafeInteger(value)) {
|
|
236
|
+
throw new TypeError('Tier0 SDK: UNS v2 int64 must be a safe integer; string coercion is forbidden.');
|
|
237
|
+
}
|
|
238
|
+
if (Number.isInteger(value) && !Number.isSafeInteger(value)) {
|
|
239
|
+
throw new TypeError('Tier0 SDK: UNS v2 request integer exceeds the JavaScript safe-integer range.');
|
|
240
|
+
}
|
|
241
|
+
return JSON.stringify(value);
|
|
242
|
+
}
|
|
243
|
+
if (value instanceof UnsV2RawNumber) {
|
|
244
|
+
if (kind(codec, 'i')) {
|
|
245
|
+
if (!/^-?(?:0|[1-9]\d*)$/.test(value.lexeme))
|
|
246
|
+
throw new TypeError('Tier0 SDK: int64 requires an integer.');
|
|
247
|
+
const integer = BigInt(value.lexeme);
|
|
248
|
+
if (integer < int64Min || integer > int64Max)
|
|
249
|
+
throw new TypeError('Tier0 SDK: int64 exceeds the signed 64-bit range.');
|
|
250
|
+
}
|
|
251
|
+
if (kind(codec, 'j') && !/^-?(?:0|[1-9]\d*)$/.test(value.lexeme)) {
|
|
252
|
+
throw new TypeError('Tier0 SDK: integer field requires an integer.');
|
|
253
|
+
}
|
|
254
|
+
return value.lexeme;
|
|
255
|
+
}
|
|
256
|
+
if (typeof value !== 'object' || seen.has(value))
|
|
257
|
+
throw new TypeError('Tier0 SDK: UNS v2 request must be acyclic JSON.');
|
|
258
|
+
seen.add(value);
|
|
259
|
+
try {
|
|
260
|
+
if (Array.isArray(value)) {
|
|
261
|
+
const item = kind(codec, 'a')?.i;
|
|
262
|
+
return `[${value.map(entry => {
|
|
263
|
+
const encoded = encode(entry, item, seen);
|
|
264
|
+
if (encoded === undefined)
|
|
265
|
+
throw new TypeError('Tier0 SDK: UNS v2 arrays cannot contain undefined.');
|
|
266
|
+
return encoded;
|
|
267
|
+
}).join(',')}]`;
|
|
268
|
+
}
|
|
269
|
+
const entries = [];
|
|
270
|
+
for (const [name, entry] of Object.entries(value)) {
|
|
271
|
+
const encoded = encode(entry, property(codec, name), seen);
|
|
272
|
+
if (encoded !== undefined)
|
|
273
|
+
entries.push(`${JSON.stringify(name)}:${encoded}`);
|
|
274
|
+
}
|
|
275
|
+
return `{${entries.join(',')}}`;
|
|
276
|
+
}
|
|
277
|
+
finally {
|
|
278
|
+
seen.delete(value);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
function encodeUnsV2JSON(value, schemaName) {
|
|
282
|
+
const encoded = encode(value, { r: schemaName }, new Set());
|
|
283
|
+
if (encoded === undefined)
|
|
284
|
+
throw new TypeError('Tier0 SDK: UNS v2 request body is required.');
|
|
285
|
+
return encoded;
|
|
286
|
+
}
|
|
287
|
+
function decodeUnsV2JSON(text, schemaName) {
|
|
288
|
+
return decode(new JSONParser(text).parse(), { r: schemaName });
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/uns-v2/codec.ts"],"names":[],"mappings":"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","sourcesContent":["import { UNS_V2_CODEC_SCHEMAS } from './generated.js';\nimport { V1_CODEC_SCHEMAS } from '../openapi/codecs.generated.js';\n\ntype Codec = { readonly k?: string; readonly r?: string; readonly i?: Codec; readonly p?: Record<string, Codec>; readonly x?: Codec; readonly a?: readonly Codec[] };\nconst numericBrand: unique symbol = Symbol('UnsV2NumericToken');\ntype NumericToken = { readonly [numericBrand]: string };\nconst schemas = { ...UNS_V2_CODEC_SCHEMAS, ...V1_CODEC_SCHEMAS } as unknown as Record<string, Codec>;\nconst jsonNumberPattern = /^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/;\nconst int64Min = -(1n << 63n);\nconst int64Max = (1n << 63n) - 1n;\n\n/** Exact JSON number used when JavaScript number cannot preserve the wire value. */\nexport class UnsV2RawNumber {\n readonly lexeme: string;\n\n constructor(lexeme: string) {\n if (!jsonNumberPattern.test(lexeme)) throw new TypeError('Tier0 SDK: invalid raw JSON number.');\n this.lexeme = lexeme;\n Object.freeze(this);\n }\n\n toNumber(): number { return Number(this.lexeme); }\n toBigInt(): bigint {\n if (!/^-?(?:0|[1-9]\\d*)$/.test(this.lexeme)) throw new TypeError('Tier0 SDK: raw JSON number is not an integer.');\n return BigInt(this.lexeme);\n }\n toString(): string { return this.lexeme; }\n toJSON(): never {\n throw new TypeError('Tier0 SDK: UnsV2RawNumber requires encodeUnsV2JSON or explicit conversion.');\n }\n}\n\nfunction numeric(value: unknown): value is NumericToken {\n return value !== null && typeof value === 'object' && numericBrand in value;\n}\n\nclass JSONParser {\n private offset = 0;\n constructor(private readonly text: string) {}\n\n parse(): unknown {\n const value = this.value();\n this.space();\n if (this.offset !== this.text.length) throw new SyntaxError('Trailing JSON content.');\n return value;\n }\n\n private space(): void {\n while (this.text[this.offset] === ' ' || this.text[this.offset] === '\\t' ||\n this.text[this.offset] === '\\r' || this.text[this.offset] === '\\n') this.offset += 1;\n }\n\n private value(): unknown {\n this.space();\n const char = this.text[this.offset];\n if (char === '\"') return this.string();\n if (char === '{') return this.object();\n if (char === '[') return this.array();\n if (this.text.startsWith('true', this.offset)) { this.offset += 4; return true; }\n if (this.text.startsWith('false', this.offset)) { this.offset += 5; return false; }\n if (this.text.startsWith('null', this.offset)) { this.offset += 4; return null; }\n const match = this.text.slice(this.offset).match(/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/);\n if (match) { this.offset += match[0].length; return { [numericBrand]: match[0] }; }\n throw new SyntaxError(`Invalid JSON at offset ${this.offset}.`);\n }\n\n private string(): string {\n const start = this.offset++;\n let escaped = false;\n while (this.offset < this.text.length) {\n const char = this.text[this.offset++];\n if (char === '\"' && !escaped) return JSON.parse(this.text.slice(start, this.offset)) as string;\n if (char === '\\\\' && !escaped) escaped = true;\n else escaped = false;\n }\n throw new SyntaxError('Unterminated JSON string.');\n }\n\n private object(): Record<string, unknown> {\n const result: Record<string, unknown> = Object.create(null) as Record<string, unknown>;\n this.offset += 1;\n this.space();\n if (this.text[this.offset] === '}') { this.offset += 1; return result; }\n while (true) {\n this.space();\n if (this.text[this.offset] !== '\"') throw new SyntaxError('Expected JSON object key.');\n const key = this.string();\n this.space();\n if (this.text[this.offset++] !== ':') throw new SyntaxError('Expected JSON object colon.');\n result[key] = this.value();\n this.space();\n const delimiter = this.text[this.offset++];\n if (delimiter === '}') return result;\n if (delimiter !== ',') throw new SyntaxError('Expected JSON object delimiter.');\n }\n }\n\n private array(): unknown[] {\n const result: unknown[] = [];\n this.offset += 1;\n this.space();\n if (this.text[this.offset] === ']') { this.offset += 1; return result; }\n while (true) {\n result.push(this.value());\n this.space();\n const delimiter = this.text[this.offset++];\n if (delimiter === ']') return result;\n if (delimiter !== ',') throw new SyntaxError('Expected JSON array delimiter.');\n }\n }\n}\n\nfunction variants(codec: Codec | undefined, seen = new Set<string>()): Codec[] {\n if (!codec) return [];\n if (codec.r) {\n if (seen.has(codec.r)) return [];\n const next = new Set(seen);\n next.add(codec.r);\n return variants(schemas[codec.r], next);\n }\n if (codec.k === 'u') return (codec.a || []).flatMap(item => variants(item, seen));\n return [codec];\n}\n\nfunction kind(codec: Codec | undefined, expected: string): Codec | undefined {\n return variants(codec).find(item => item.k === expected);\n}\n\nfunction property(codec: Codec | undefined, name: string): Codec | undefined {\n for (const candidate of variants(codec)) {\n if (candidate.k !== 'o') continue;\n if (candidate.p && Object.prototype.hasOwnProperty.call(candidate.p, name)) return candidate.p[name];\n if (candidate.x) return candidate.x;\n }\n return undefined;\n}\n\nfunction decimalIdentity(token: string): string {\n const match = token.match(/^(-?)(\\d+)(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n if (!match) throw new SyntaxError('Invalid JSON number.');\n const negative = match[1] === '-';\n const fraction = match[3] || '';\n let digits = `${match[2]}${fraction}`.replace(/^0+/, '');\n if (!digits) return '0';\n let power = Number(match[4] || 0) - fraction.length;\n const trailing = digits.match(/0+$/)?.[0].length || 0;\n if (trailing) {\n digits = digits.slice(0, -trailing);\n power += trailing;\n }\n return `${negative ? '-' : ''}${digits}e${power}`;\n}\n\nfunction decode(value: unknown, codec: Codec | undefined): unknown {\n if (numeric(value)) {\n const token = value[numericBrand];\n if (kind(codec, 'i')) {\n if (!/^-?(?:0|[1-9]\\d*)$/.test(token)) throw new SyntaxError('Invalid int64 JSON token.');\n const integer = BigInt(token);\n if (integer < int64Min || integer > int64Max) throw new SyntaxError('UNS v2 int64 exceeds the signed 64-bit range.');\n return integer >= BigInt(Number.MIN_SAFE_INTEGER) && integer <= BigInt(Number.MAX_SAFE_INTEGER)\n ? Number(integer) : integer;\n }\n if (kind(codec, 'j') && !/^-?(?:0|[1-9]\\d*)$/.test(token)) {\n throw new SyntaxError('Invalid integer JSON token.');\n }\n const number = Number(token);\n if (Number.isFinite(number) && (!Number.isInteger(number) || Number.isSafeInteger(number)) &&\n decimalIdentity(token) === decimalIdentity(JSON.stringify(number))) return number;\n return new UnsV2RawNumber(token);\n }\n if (Array.isArray(value)) {\n const item = kind(codec, 'a')?.i;\n return value.map(entry => decode(entry, item));\n }\n if (value !== null && typeof value === 'object') {\n return Object.fromEntries(Object.entries(value).map(([name, entry]) => [name, decode(entry, property(codec, name))]));\n }\n return value;\n}\n\nfunction encode(value: unknown, codec: Codec | undefined, seen: Set<unknown>): string | undefined {\n if (value === undefined) return undefined;\n if (value === null || typeof value === 'boolean') return JSON.stringify(value);\n if (typeof value === 'string') return JSON.stringify(value);\n if (typeof value === 'bigint') {\n if (!kind(codec, 'i') || value < int64Min || value > int64Max) {\n throw new TypeError('Tier0 SDK: bigint is only valid for signed int64 contract fields.');\n }\n return value.toString();\n }\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) throw new TypeError('Tier0 SDK: UNS v2 request contains a non-finite number.');\n if (kind(codec, 'j') && !Number.isInteger(value)) {\n throw new TypeError('Tier0 SDK: UNS v2 integer field requires an integer.');\n }\n if (kind(codec, 'i') && !Number.isSafeInteger(value)) {\n throw new TypeError('Tier0 SDK: UNS v2 int64 must be a safe integer; string coercion is forbidden.');\n }\n if (Number.isInteger(value) && !Number.isSafeInteger(value)) {\n throw new TypeError('Tier0 SDK: UNS v2 request integer exceeds the JavaScript safe-integer range.');\n }\n return JSON.stringify(value);\n }\n if (value instanceof UnsV2RawNumber) {\n if (kind(codec, 'i')) {\n if (!/^-?(?:0|[1-9]\\d*)$/.test(value.lexeme)) throw new TypeError('Tier0 SDK: int64 requires an integer.');\n const integer = BigInt(value.lexeme);\n if (integer < int64Min || integer > int64Max) throw new TypeError('Tier0 SDK: int64 exceeds the signed 64-bit range.');\n }\n if (kind(codec, 'j') && !/^-?(?:0|[1-9]\\d*)$/.test(value.lexeme)) {\n throw new TypeError('Tier0 SDK: integer field requires an integer.');\n }\n return value.lexeme;\n }\n if (typeof value !== 'object' || seen.has(value)) throw new TypeError('Tier0 SDK: UNS v2 request must be acyclic JSON.');\n seen.add(value);\n try {\n if (Array.isArray(value)) {\n const item = kind(codec, 'a')?.i;\n return `[${value.map(entry => {\n const encoded = encode(entry, item, seen);\n if (encoded === undefined) throw new TypeError('Tier0 SDK: UNS v2 arrays cannot contain undefined.');\n return encoded;\n }).join(',')}]`;\n }\n const entries: string[] = [];\n for (const [name, entry] of Object.entries(value)) {\n const encoded = encode(entry, property(codec, name), seen);\n if (encoded !== undefined) entries.push(`${JSON.stringify(name)}:${encoded}`);\n }\n return `{${entries.join(',')}}`;\n } finally {\n seen.delete(value);\n }\n}\n\nexport function encodeUnsV2JSON(value: unknown, schemaName: string): string {\n const encoded = encode(value, { r: schemaName }, new Set());\n if (encoded === undefined) throw new TypeError('Tier0 SDK: UNS v2 request body is required.');\n return encoded;\n}\n\nexport function decodeUnsV2JSON(text: string, schemaName: string): unknown {\n return decode(new JSONParser(text).parse(), { r: schemaName });\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ClientConfig } from '../openapi/client.js';
|
|
2
|
+
import type { CloudTransportConfig } from '../cloud-transport.js';
|
|
3
|
+
import { type UnsV2Client } from './client.js';
|
|
4
|
+
import { type UnsV2Operations, type UnsV2OperationName } from './generated.js';
|
|
5
|
+
export type UnsDataOperationName = Exclude<UnsV2OperationName, `source${string}` | `stream${string}` | `control${string}`>;
|
|
6
|
+
export type UnsDataClient = Readonly<Pick<UnsV2Operations, UnsDataOperationName>>;
|
|
7
|
+
/** Excludes Source, Stream and Control management from the application data facade. */
|
|
8
|
+
export declare function bindUnsDataClient(raw: UnsV2Client): UnsDataClient;
|
|
9
|
+
export type UnsDataClientConfig = ClientConfig & CloudTransportConfig;
|
|
10
|
+
export declare function createUnsDataClient(config?: UnsDataClientConfig): UnsDataClient;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bindUnsDataClient = bindUnsDataClient;
|
|
4
|
+
exports.createUnsDataClient = createUnsDataClient;
|
|
5
|
+
const client_js_1 = require("../openapi/client.js");
|
|
6
|
+
const client_js_2 = require("./client.js");
|
|
7
|
+
const generated_js_1 = require("./generated.js");
|
|
8
|
+
/** Excludes Source, Stream and Control management from the application data facade. */
|
|
9
|
+
function bindUnsDataClient(raw) {
|
|
10
|
+
return Object.freeze(Object.fromEntries(Object.keys(generated_js_1.UNS_V2_OPERATIONS)
|
|
11
|
+
.filter(name => !/^(source|stream|control)/.test(name))
|
|
12
|
+
.map(name => [name, raw[name]])));
|
|
13
|
+
}
|
|
14
|
+
function createUnsDataClient(config = {}) {
|
|
15
|
+
const http = new client_js_1.HttpClient(config);
|
|
16
|
+
return bindUnsDataClient((0, client_js_2.createUnsV2Client)(() => http, config));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-client.js","sourceRoot":"","sources":["../../../src/uns-v2/data-client.ts"],"names":[],"mappings":";;AAQA,8CAMC;AAED,kDAGC;AAnBD,oDAAqE;AAErE,2CAAkE;AAClE,iDAAkG;AAIlG,uFAAuF;AACvF,SAAgB,iBAAiB,CAAC,GAAgB;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,IAAI,CAAC,gCAAiB,CAAC;SAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAA0B,CAAC,CAAC,CAAC,CACxD,CAAkB,CAAC;AACtB,CAAC;AAED,SAAgB,mBAAmB,CAAC,SAA8B,EAAE;IAClE,MAAM,IAAI,GAAG,IAAI,sBAAU,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,iBAAiB,CAAC,IAAA,6BAAiB,EAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC","sourcesContent":["import { HttpClient, type ClientConfig } from '../openapi/client.js';\nimport type { CloudTransportConfig } from '../cloud-transport.js';\nimport { createUnsV2Client, type UnsV2Client } from './client.js';\nimport { UNS_V2_OPERATIONS, type UnsV2Operations, type UnsV2OperationName } from './generated.js';\n\nexport type UnsDataOperationName = Exclude<UnsV2OperationName, `source${string}` | `stream${string}` | `control${string}`>;\nexport type UnsDataClient = Readonly<Pick<UnsV2Operations, UnsDataOperationName>>;\n/** Excludes Source, Stream and Control management from the application data facade. */\nexport function bindUnsDataClient(raw: UnsV2Client): UnsDataClient {\n return Object.freeze(Object.fromEntries(\n Object.keys(UNS_V2_OPERATIONS)\n .filter(name => !/^(source|stream|control)/.test(name))\n .map(name => [name, raw[name as UnsV2OperationName]]),\n )) as UnsDataClient;\n}\nexport type UnsDataClientConfig = ClientConfig & CloudTransportConfig;\nexport function createUnsDataClient(config: UnsDataClientConfig = {}): UnsDataClient {\n const http = new HttpClient(config);\n return bindUnsDataClient(createUnsV2Client(() => http, config));\n}\n"]}
|