@unyt/datex 0.0.6 → 0.0.7

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.
Files changed (42) hide show
  1. package/README.md +6 -4
  2. package/esm/_dnt.shims.d.ts +1 -1
  3. package/esm/datex-core/datex_core_js.internal.d.ts +283 -212
  4. package/esm/datex-core/datex_core_js.internal.d.ts.map +1 -1
  5. package/esm/datex-core/datex_core_js.internal.js +834 -548
  6. package/esm/datex-core/datex_core_js.wasm +0 -0
  7. package/esm/deno.json +11 -2
  8. package/esm/dif/builders.d.ts +11 -0
  9. package/esm/dif/builders.d.ts.map +1 -0
  10. package/esm/dif/builders.js +23 -0
  11. package/esm/dif/definitions.d.ts +116 -0
  12. package/esm/dif/definitions.d.ts.map +1 -0
  13. package/esm/dif/definitions.js +70 -0
  14. package/esm/dif/dif-handler.d.ts +217 -0
  15. package/esm/dif/dif-handler.d.ts.map +1 -0
  16. package/esm/dif/dif-handler.js +688 -0
  17. package/esm/dif/display.d.ts +8 -0
  18. package/esm/dif/display.d.ts.map +1 -0
  19. package/esm/dif/display.js +74 -0
  20. package/esm/mod.js +8 -6
  21. package/esm/network/com-hub.d.ts +1 -0
  22. package/esm/network/com-hub.d.ts.map +1 -1
  23. package/esm/network/com-hub.js +3 -0
  24. package/esm/network/interface-impls/base.d.ts +11 -0
  25. package/esm/network/interface-impls/base.d.ts.map +1 -0
  26. package/esm/network/interface-impls/base.js +21 -0
  27. package/esm/network/interface-impls/websocket-client.d.ts +6 -0
  28. package/esm/network/interface-impls/websocket-client.d.ts.map +1 -0
  29. package/esm/network/interface-impls/websocket-client.js +6 -0
  30. package/esm/network/interface-impls/websocket-server-deno.d.ts +9 -0
  31. package/esm/network/interface-impls/websocket-server-deno.d.ts.map +1 -0
  32. package/esm/network/interface-impls/websocket-server-deno.js +45 -0
  33. package/esm/refs/ref.d.ts +27 -0
  34. package/esm/refs/ref.d.ts.map +1 -0
  35. package/esm/refs/ref.js +58 -0
  36. package/esm/runtime/runtime.d.ts +97 -5
  37. package/esm/runtime/runtime.d.ts.map +1 -1
  38. package/esm/runtime/runtime.js +69 -13
  39. package/esm/runtime/special-core-types.d.ts +10 -0
  40. package/esm/runtime/special-core-types.d.ts.map +1 -0
  41. package/esm/runtime/special-core-types.js +51 -0
  42. package/package.json +10 -1
@@ -0,0 +1,8 @@
1
+ import { type DIFReference, DIFReferenceMutability, type DIFRepresentationValue, type DIFTypeContainer, type DIFValueContainer } from "./definitions.js";
2
+ export declare function mutabilityToDisplayString(mut: DIFReferenceMutability): string;
3
+ export declare function difReferenceToDisplayString(reference: DIFReference): string;
4
+ export declare function difValueContainerToDisplayString(container: DIFValueContainer): string;
5
+ export declare function difRepresentationValueToDisplayString(difRepValue: DIFRepresentationValue): string;
6
+ export declare function difTypeContainerToDisplayString(difType: DIFTypeContainer): string;
7
+ export declare function addressToDisplayString(address: string): string;
8
+ //# sourceMappingURL=display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/dif/display.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,YAAY,EACjB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,sBAAsB,GAAG,MAAM,CAS7E;AAED,wBAAgB,2BAA2B,CACvC,SAAS,EAAE,YAAY,GACxB,MAAM,CAKR;AAED,wBAAgB,gCAAgC,CAC5C,SAAS,EAAE,iBAAiB,GAC7B,MAAM,CAgBR;AAED,wBAAgB,qCAAqC,CACjD,WAAW,EAAE,sBAAsB,GACpC,MAAM,CAyBR;AAED,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,gBAAgB,GAC1B,MAAM,CAQR;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAS9D"}
@@ -0,0 +1,74 @@
1
+ import { CoreTypeAddress, DIFReferenceMutability, } from "./definitions.js";
2
+ export function mutabilityToDisplayString(mut) {
3
+ if (mut === DIFReferenceMutability.Mutable) {
4
+ return "&mut ";
5
+ }
6
+ else if (mut === DIFReferenceMutability.Final) {
7
+ return "&final ";
8
+ }
9
+ else if (mut === DIFReferenceMutability.Immutable) {
10
+ return "&";
11
+ }
12
+ throw new Error("Unknown mutability: " + mut);
13
+ }
14
+ export function difReferenceToDisplayString(reference) {
15
+ const typeString = difTypeContainerToDisplayString(reference.allowed_type);
16
+ const valueString = difValueContainerToDisplayString(reference.value);
17
+ const mutString = mutabilityToDisplayString(reference.mut);
18
+ return `${mutString}${valueString} (allowed: ${typeString})`;
19
+ }
20
+ export function difValueContainerToDisplayString(container) {
21
+ if (typeof container === "string") {
22
+ return addressToDisplayString(container);
23
+ }
24
+ else {
25
+ const typeString = container.type
26
+ ? difTypeContainerToDisplayString(container.type)
27
+ : null;
28
+ const valueString = difRepresentationValueToDisplayString(container.value);
29
+ if (typeString) {
30
+ return `{ type: ${typeString}, value: ${valueString} }`;
31
+ }
32
+ else {
33
+ return valueString;
34
+ }
35
+ }
36
+ }
37
+ export function difRepresentationValueToDisplayString(difRepValue) {
38
+ if (Array.isArray(difRepValue)) {
39
+ return `[${difRepValue.map((v) => {
40
+ if (Array.isArray(v)) {
41
+ return `[${v.map((vv) => difValueContainerToDisplayString(vv))
42
+ .join(", ")}]`;
43
+ }
44
+ else {
45
+ return difValueContainerToDisplayString(v);
46
+ }
47
+ }).join(", ")}]`;
48
+ }
49
+ else if (difRepValue && typeof difRepValue === "object") {
50
+ return `{ ${Object.entries(difRepValue).map(([k, v]) => `${k}: ${difValueContainerToDisplayString(v)}`).join(", ")} }`;
51
+ }
52
+ else {
53
+ return JSON.stringify(difRepValue);
54
+ }
55
+ }
56
+ export function difTypeContainerToDisplayString(difType) {
57
+ if (typeof difType === "string") {
58
+ return addressToDisplayString(difType);
59
+ }
60
+ else {
61
+ return `{ name: ${difType.name}, kind: ${difType.kind}, def: ${JSON.stringify(difType.def)}, mut: ${difType.mut} }`;
62
+ }
63
+ }
64
+ export function addressToDisplayString(address) {
65
+ const found = Object.entries(CoreTypeAddress).find(([_, addr]) => {
66
+ return addr === address;
67
+ });
68
+ if (found) {
69
+ return found[0];
70
+ }
71
+ else {
72
+ return "$" + address;
73
+ }
74
+ }
package/esm/mod.js CHANGED
@@ -21,9 +21,11 @@ const defaultConfig = {
21
21
  export const Datex = await Runtime.create(defaultConfig, {
22
22
  allow_unsigned_blocks: true,
23
23
  });
24
- try {
25
- console.log("@example responded with:", await Datex.execute("@example :: 'Hello, World!'"));
26
- }
27
- catch (error) {
28
- console.error("Could not reach @example", error);
29
- }
24
+ // try {
25
+ // console.log(
26
+ // "@example responded with:",
27
+ // await Datex.execute("@example :: 'Hello, World!'"),
28
+ // );
29
+ // } catch (error) {
30
+ // console.error("Could not reach @example", error);
31
+ // }
@@ -17,5 +17,6 @@ export declare class ComHub {
17
17
  * @param endpoint The endpoint for which to print the trace.
18
18
  */
19
19
  printTrace(endpoint: string): Promise<void>;
20
+ sendBlock(block: Uint8Array, interface_uuid: string, socket_uuid: string): Promise<boolean>;
20
21
  }
21
22
  //# sourceMappingURL=com-hub.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"com-hub.d.ts","sourceRoot":"","sources":["../../src/network/com-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,qBAAa,MAAM;;gBAYH,QAAQ,EAAE,QAAQ;IAI9B,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,MAAM,EACzC,aAAa,EAAE,CAAC,EAChB,IAAI,EAAE,OAAO,gBAAgB,CAAC,OAAO,CAAC;IAWpC,eAAe,CAAC,CAAC,SAAS,OAAO,gBAAgB,CAAC,OAAO,CAAC,EAC5D,aAAa,EAAE,CAAC,EAChB,SAAS,EAAE,CAAC,SAAS,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAClE,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,eAAe,CACjB,CAAC,SAAS,gBAAgB,CAAC,OAAO,CAAC,EAEnC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAC3D,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAkCpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,sBAAsB,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;IAI9D;;OAEG;IACI,aAAa,IAAI,IAAI;IAO5B;;;OAGG;IACU,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU3D"}
1
+ {"version":3,"file":"com-hub.d.ts","sourceRoot":"","sources":["../../src/network/com-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,qBAAa,MAAM;;gBAYH,QAAQ,EAAE,QAAQ;IAI9B,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,MAAM,EACzC,aAAa,EAAE,CAAC,EAChB,IAAI,EAAE,OAAO,gBAAgB,CAAC,OAAO,CAAC;IAWpC,eAAe,CAAC,CAAC,SAAS,OAAO,gBAAgB,CAAC,OAAO,CAAC,EAC5D,aAAa,EAAE,CAAC,EAChB,SAAS,EAAE,CAAC,SAAS,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAClE,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,eAAe,CACjB,CAAC,SAAS,gBAAgB,CAAC,OAAO,CAAC,EAEnC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAC3D,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAkCpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,sBAAsB,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE;IAI9D;;OAEG;IACI,aAAa,IAAI,IAAI;IAO5B;;;OAGG;IACU,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjD,SAAS,CACZ,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;CAGtB"}
@@ -68,6 +68,9 @@ export class ComHub {
68
68
  }
69
69
  console.log(trace);
70
70
  }
71
+ sendBlock(block, interface_uuid, socket_uuid) {
72
+ return __classPrivateFieldGet(this, _ComHub_jsComHub, "f").send_block(block, interface_uuid, socket_uuid);
73
+ }
71
74
  }
72
75
  _a = ComHub, _ComHub_jsComHub = new WeakMap();
73
76
  _ComHub_interfaceImpls = { value: new Map() };
@@ -0,0 +1,11 @@
1
+ import "../../_dnt.polyfills.js";
2
+ import { ComInterfaceImpl } from "../com-interface.js";
3
+ import type { BaseInterfaceSetupData, InterfaceDirection } from "../../datex-core/datex_core_js";
4
+ export declare class BaseInterfaceImpl extends ComInterfaceImpl<BaseInterfaceSetupData> {
5
+ registerSocket(interfaceDirection: InterfaceDirection): string;
6
+ destroySocket(socketUUID: string): void;
7
+ receive(socketUUID: string, data: Uint8Array): void;
8
+ testSendBlock(socketUUID: string, data: Uint8Array): Promise<boolean>;
9
+ onSend(callback: (data: Uint8Array, receiver_socket_uuid: string) => Promise<boolean>): void;
10
+ }
11
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/network/interface-impls/base.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EACR,sBAAsB,EACtB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AAExC,qBAAa,iBACT,SAAQ,gBAAgB,CAAC,sBAAsB,CAAC;IACzC,cAAc,CAAC,kBAAkB,EAAE,kBAAkB;IAOrD,aAAa,CAAC,UAAU,EAAE,MAAM;IAOhC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAQ5C,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAQlD,MAAM,CACT,QAAQ,EAAE,CACN,IAAI,EAAE,UAAU,EAChB,oBAAoB,EAAE,MAAM,KAC3B,OAAO,CAAC,OAAO,CAAC;CAI5B"}
@@ -0,0 +1,21 @@
1
+ import "../../_dnt.polyfills.js";
2
+ import { ComInterfaceImpl } from "../com-interface.js";
3
+ import { ComHub } from "../com-hub.js";
4
+ export class BaseInterfaceImpl extends ComInterfaceImpl {
5
+ registerSocket(interfaceDirection) {
6
+ return this.jsComHub.base_interface_register_socket(this.uuid, interfaceDirection);
7
+ }
8
+ destroySocket(socketUUID) {
9
+ return this.jsComHub.base_interface_destroy_socket(this.uuid, socketUUID);
10
+ }
11
+ receive(socketUUID, data) {
12
+ return this.jsComHub.base_interface_receive(this.uuid, socketUUID, data);
13
+ }
14
+ testSendBlock(socketUUID, data) {
15
+ return this.jsComHub.base_interface_test_send_block(this.uuid, socketUUID, data);
16
+ }
17
+ onSend(callback) {
18
+ return this.jsComHub.base_interface_on_send(this.uuid, callback);
19
+ }
20
+ }
21
+ ComHub.registerInterfaceImpl("base", BaseInterfaceImpl);
@@ -0,0 +1,6 @@
1
+ import "../../_dnt.polyfills.js";
2
+ import { ComInterfaceImpl } from "../com-interface.js";
3
+ import type { WebSocketClientInterfaceSetupData } from "../../datex-core/datex_core_js";
4
+ export declare class WebSocketClientInterfaceImpl extends ComInterfaceImpl<WebSocketClientInterfaceSetupData> {
5
+ }
6
+ //# sourceMappingURL=websocket-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../../src/network/interface-impls/websocket-client.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,gCAAgC,CAAC;AAGxF,qBAAa,4BACT,SAAQ,gBAAgB,CAAC,iCAAiC,CAAC;CAC9D"}
@@ -0,0 +1,6 @@
1
+ import "../../_dnt.polyfills.js";
2
+ import { ComInterfaceImpl } from "../com-interface.js";
3
+ import { ComHub } from "../com-hub.js";
4
+ export class WebSocketClientInterfaceImpl extends ComInterfaceImpl {
5
+ }
6
+ ComHub.registerInterfaceImpl("websocket-client", WebSocketClientInterfaceImpl);
@@ -0,0 +1,9 @@
1
+ import "../../_dnt.polyfills.js";
2
+ import { ComInterfaceImpl } from "../com-interface.js";
3
+ import type { WebSocketServerInterfaceSetupData } from "../../datex-core/datex_core_js";
4
+ export declare class WebSockerServerDenoInterfaceImpl extends ComInterfaceImpl<WebSocketServerInterfaceSetupData> {
5
+ #private;
6
+ init(): void;
7
+ cleanup(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=websocket-server-deno.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-server-deno.d.ts","sourceRoot":"","sources":["../../../src/network/interface-impls/websocket-server-deno.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,gCAAgC,CAAC;AAExF,qBAAa,gCACT,SAAQ,gBAAgB,CAAC,iCAAiC,CAAC;;IAGlD,IAAI;IAwBE,OAAO;CAMzB"}
@@ -0,0 +1,45 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _WebSockerServerDenoInterfaceImpl_server;
13
+ import "../../_dnt.polyfills.js";
14
+ import * as dntShim from "../../_dnt.shims.js";
15
+ import { ComInterfaceImpl } from "../com-interface.js";
16
+ import { ComHub } from "../com-hub.js";
17
+ export class WebSockerServerDenoInterfaceImpl extends ComInterfaceImpl {
18
+ constructor() {
19
+ super(...arguments);
20
+ _WebSockerServerDenoInterfaceImpl_server.set(this, void 0);
21
+ }
22
+ init() {
23
+ __classPrivateFieldSet(this, _WebSockerServerDenoInterfaceImpl_server, dntShim.Deno.serve({
24
+ port: this.setupData.port,
25
+ }, (req) => {
26
+ if (req.headers.get("upgrade") != "websocket") {
27
+ return new dntShim.Response(null, { status: 501 });
28
+ }
29
+ const { socket, response } = dntShim.Deno.upgradeWebSocket(req);
30
+ if (!this.jsComHub.websocket_server_interface_add_socket(this.uuid, socket)) {
31
+ console.error("Failed to add websocket to server interface");
32
+ return new dntShim.Response("Failed to add websocket to server interface", { status: 500 });
33
+ }
34
+ return response;
35
+ }), "f");
36
+ }
37
+ async cleanup() {
38
+ if (__classPrivateFieldGet(this, _WebSockerServerDenoInterfaceImpl_server, "f")) {
39
+ await __classPrivateFieldGet(this, _WebSockerServerDenoInterfaceImpl_server, "f").shutdown();
40
+ __classPrivateFieldSet(this, _WebSockerServerDenoInterfaceImpl_server, undefined, "f");
41
+ }
42
+ }
43
+ }
44
+ _WebSockerServerDenoInterfaceImpl_server = new WeakMap();
45
+ ComHub.registerInterfaceImpl("websocket-server", WebSockerServerDenoInterfaceImpl);
@@ -0,0 +1,27 @@
1
+ import type { DIFHandler } from "../dif/dif-handler.js";
2
+ /**
3
+ * The Ref class is a wrapper around a value that is stored in a pointer.
4
+ * Primitive values (string, number, boolean, null) are always wrapped in a Ref when stored in a pointer.
5
+ */
6
+ export declare class Ref<T> {
7
+ #private;
8
+ constructor(value: T, pointerAddress: string, difHandler: DIFHandler);
9
+ get pointerAddress(): string;
10
+ /**
11
+ * Silently updates the value of the reference without notifying observers.
12
+ * This should only be used internally.
13
+ * @param newValue - The new value to set.
14
+ */
15
+ updateValueSilently(newValue: T): void;
16
+ /**
17
+ * Gets the current value of the reference.
18
+ */
19
+ get value(): T;
20
+ /**
21
+ * Replaces the current value of the reference with a new value.
22
+ * Also notifies all observers of the pointer about the change.
23
+ * @throws If the reference is immutable or the new value is of an incompatible type.
24
+ */
25
+ set value(newValue: T);
26
+ }
27
+ //# sourceMappingURL=ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../src/refs/ref.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,qBAAa,GAAG,CAAC,CAAC;;gBAKF,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAMpE,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IAI/B;;OAEG;IACH,IAAI,KAAK,IAAI,CAAC,CAEb;IAED;;;;OAIG;IACH,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,EAUpB;CACJ"}
@@ -0,0 +1,58 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _Ref_value, _Ref_pointerAddress, _Ref_difHandler;
13
+ import { DIF_Replace } from "../dif/builders.js";
14
+ /**
15
+ * The Ref class is a wrapper around a value that is stored in a pointer.
16
+ * Primitive values (string, number, boolean, null) are always wrapped in a Ref when stored in a pointer.
17
+ */
18
+ export class Ref {
19
+ constructor(value, pointerAddress, difHandler) {
20
+ _Ref_value.set(this, void 0);
21
+ _Ref_pointerAddress.set(this, void 0);
22
+ _Ref_difHandler.set(this, void 0);
23
+ __classPrivateFieldSet(this, _Ref_value, value, "f");
24
+ __classPrivateFieldSet(this, _Ref_pointerAddress, pointerAddress, "f");
25
+ __classPrivateFieldSet(this, _Ref_difHandler, difHandler, "f");
26
+ }
27
+ get pointerAddress() {
28
+ return __classPrivateFieldGet(this, _Ref_pointerAddress, "f");
29
+ }
30
+ /**
31
+ * Silently updates the value of the reference without notifying observers.
32
+ * This should only be used internally.
33
+ * @param newValue - The new value to set.
34
+ */
35
+ updateValueSilently(newValue) {
36
+ __classPrivateFieldSet(this, _Ref_value, newValue, "f");
37
+ }
38
+ /**
39
+ * Gets the current value of the reference.
40
+ */
41
+ get value() {
42
+ return __classPrivateFieldGet(this, _Ref_value, "f");
43
+ }
44
+ /**
45
+ * Replaces the current value of the reference with a new value.
46
+ * Also notifies all observers of the pointer about the change.
47
+ * @throws If the reference is immutable or the new value is of an incompatible type.
48
+ */
49
+ set value(newValue) {
50
+ const oldValue = __classPrivateFieldGet(this, _Ref_value, "f");
51
+ if (oldValue === newValue)
52
+ return;
53
+ // Try to update the pointer
54
+ __classPrivateFieldGet(this, _Ref_difHandler, "f").updatePointer(__classPrivateFieldGet(this, _Ref_pointerAddress, "f"), DIF_Replace(__classPrivateFieldGet(this, _Ref_difHandler, "f"), newValue));
55
+ __classPrivateFieldSet(this, _Ref_value, newValue, "f");
56
+ }
57
+ }
58
+ _Ref_value = new WeakMap(), _Ref_pointerAddress = new WeakMap(), _Ref_difHandler = new WeakMap();
@@ -1,5 +1,8 @@
1
- import { type JSMemory, type JSRuntime } from "../datex-core.js";
1
+ import { type JSRuntime } from "../datex-core.js";
2
2
  import { ComHub } from "../network/com-hub.js";
3
+ import { DIFHandler } from "../dif/dif-handler.js";
4
+ import type { DIFReferenceMutability, DIFTypeContainer } from "../dif/definitions.js";
5
+ import type { Ref } from "../refs/ref.js";
3
6
  interface DebugFlags {
4
7
  allow_unsigned_blocks?: boolean;
5
8
  enable_deterministic_behavior?: boolean;
@@ -12,6 +15,12 @@ export type RuntimeConfig = {
12
15
  }[];
13
16
  debug?: boolean;
14
17
  };
18
+ export type DecompileOptions = {
19
+ formatted?: boolean;
20
+ colorized?: boolean;
21
+ resolve_slots?: boolean;
22
+ json_compat?: boolean;
23
+ };
15
24
  export declare class Runtime {
16
25
  #private;
17
26
  readonly js_version: string;
@@ -24,15 +33,98 @@ export declare class Runtime {
24
33
  */
25
34
  get endpoint(): string;
26
35
  get version(): string;
27
- get memory(): JSMemory;
36
+ get dif(): DIFHandler;
28
37
  get comHub(): ComHub;
29
38
  /**
30
39
  * @internal only used for debugging
31
40
  */
32
41
  get _runtime(): JSRuntime;
33
- execute(datex_script: string, formatted?: boolean): Promise<string>;
34
- execute_sync(datex_script: string, formatted?: boolean): string;
35
- _execute_internal(datex_script: string): boolean;
42
+ executeWithStringResult(datexScript: string, values?: unknown[] | null, decompileOptions?: DecompileOptions | null): Promise<string>;
43
+ executeSyncWithStringResult(datexScript: string, values?: unknown[] | null, decompileOptions?: DecompileOptions | null): string;
44
+ /**
45
+ * Asynchronously executes a Datex script and returns the result as a Promise.
46
+ * Injected values can be passed as an array in `values`.
47
+ * If the script returns no value, it will return `undefined`.
48
+ * Example usage:
49
+ * ```ts
50
+ * const result = await runtime.execute<number>("1 + ?", [41]);
51
+ * console.log(result); // 42
52
+ * ```
53
+ */
54
+ execute<T = unknown>(datexScript: string, values?: unknown[]): Promise<T>;
55
+ /**
56
+ * Asynchronously executes a Datex script and returns the result as a Promise.
57
+ * Injected values can be passed to the template string.
58
+ * Example usage:
59
+ * ```ts
60
+ * const result = await runtime.execute<number>`1 + ${41}`;
61
+ * console.log(result); // 42
62
+ * ```
63
+ */
64
+ execute<T = unknown>(templateStrings: TemplateStringsArray, ...values: unknown[]): Promise<T>;
65
+ /**
66
+ * Executes a Datex script synchronously and returns the result as a generic type T.
67
+ * Injected values can be passed as an array in `values`.
68
+ * If the script returns no value, it will return `undefined`.
69
+ * Example usage:
70
+ * ```ts
71
+ * const result = runtime.executeSync<number>("1 + ?", [41]);
72
+ * console.log(result); // 42
73
+ * ```
74
+ */
75
+ executeSync<T = unknown>(datexScript: string, values?: unknown[]): T;
76
+ /**
77
+ * Executes a Datex script synchronously and returns the result as a generic type T.
78
+ * Injected values can be passed to the template string.
79
+ * Example usage:
80
+ * ```ts
81
+ * const result = runtime.executeSync<number>`1 + ${41}`;
82
+ * console.log(result); // 42
83
+ * ```
84
+ */
85
+ executeSync<T = unknown>(templateStrings: TemplateStringsArray, ...values: unknown[]): T;
86
+ valueToString(value: unknown, decompileOptions?: DecompileOptions | null): string;
87
+ _execute_internal(datexScript: string): boolean;
88
+ /**
89
+ * Creates a new pointer containg the given JS value.
90
+ * The returned value is a proxy object that behaves like the original object,
91
+ * but also propagates changes between JS and the DATEX runtime.
92
+ */
93
+ createPointer<V, M extends DIFReferenceMutability = typeof DIFReferenceMutability.Mutable>(value: V & {}, allowedType?: DIFTypeContainer | null, mutability?: M): PointerOut<V, M>;
94
+ }
95
+ type WidenLiteral<T> = T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends bigint ? bigint : T extends symbol ? symbol : T;
96
+ type IsRef<T> = T extends Ref<unknown> ? true : false;
97
+ type ContainsRef<T> = IsRef<T> extends true ? true : T extends object ? {
98
+ [K in keyof T]: ContainsRef<T[K]>;
99
+ }[keyof T] extends true ? true : false : false;
100
+ export type AssignableRef<T> = Ref<T> | T & {
101
+ value?: T;
102
+ };
103
+ type Builtins = Function | Date | RegExp | Map<unknown, unknown> | Set<unknown> | WeakMap<WeakKey, unknown> | WeakSet<WeakKey> | Array<unknown>;
104
+ type IsPlainObject<T> = T extends Builtins ? false : T extends object ? true : false;
105
+ type ObjectFieldOut<T, M extends DIFReferenceMutability> = T extends Ref<infer U> ? M extends typeof DIFReferenceMutability.Final ? Ref<U> : AssignableRef<U> : IsPlainObject<T> extends true ? (ContainsRef<T> extends true ? M extends typeof DIFReferenceMutability.Final ? {
106
+ readonly [K in keyof T]: ObjectFieldOut<T[K], M>;
107
+ } : {
108
+ [K in keyof T]: ObjectFieldOut<T[K], M>;
109
+ } : {
110
+ readonly [K in keyof T]: ObjectFieldOut<T[K], M>;
111
+ }) : T;
112
+ type PointerOut<V, M extends DIFReferenceMutability> = V extends Ref<infer U> ? M extends typeof DIFReferenceMutability.Final ? Ref<U> : AssignableRef<U> : IsPlainObject<V> extends true ? (ContainsRef<V> extends true ? M extends typeof DIFReferenceMutability.Final ? {
113
+ readonly [K in keyof V]: ObjectFieldOut<V[K], M>;
114
+ } : {
115
+ [K in keyof V]: ObjectFieldOut<V[K], M>;
116
+ } : {
117
+ readonly [K in keyof V]: ObjectFieldOut<V[K], M>;
118
+ }) : V extends Builtins ? Pointer<V> : M extends typeof DIFReferenceMutability.Final ? Ref<V> : Ref<WidenLiteral<V>>;
119
+ type CollectionProps<T> = {
120
+ [K in keyof T as K extends "value" ? never : K]: T[K];
121
+ };
122
+ interface MapRef<K, V> extends Ref<Map<K, V>>, CollectionProps<Map<K, V>> {
123
+ }
124
+ interface SetRef<T> extends Ref<Set<T>>, CollectionProps<Set<T>> {
125
+ }
126
+ interface ArrayRef<T> extends Ref<T[]>, CollectionProps<T[]> {
36
127
  }
128
+ type Pointer<T> = T extends Map<infer K, infer V> ? MapRef<K, V> : T extends Set<infer U> ? SetRef<U> : T extends Array<infer U> ? ArrayRef<U> : Ref<T>;
37
129
  export {};
38
130
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,QAAQ,EACb,KAAK,SAAS,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK/C,UAAU,UAAU;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,qBAAa,OAAO;;IAChB,SAAgB,UAAU,SAAW;gBAMzB,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,UAAU;WAMvC,MAAM,CACtB,MAAM,EAAE,aAAa,EACrB,WAAW,CAAC,EAAE,UAAU,GACzB,OAAO,CAAC,OAAO,CAAC;IAMZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,MAAM,IAAI,QAAQ,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,SAAS,CAExB;IAEM,OAAO,CACV,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,OAAe,GAC3B,OAAO,CAAC,MAAM,CAAC;IAIX,YAAY,CACf,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,OAAe,GAC3B,MAAM;IAIF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;CAG1D"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,15 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _Runtime_runtime, _Runtime_memory, _Runtime_comHub;
12
+ var _Runtime_instances, _Runtime_runtime, _Runtime_comHub, _Runtime_difHandler, _Runtime_executeInternal, _Runtime_executeSyncInternal, _Runtime_getScriptAndValues;
13
13
  import { create_runtime, execute_internal, } from "../datex-core.js";
14
14
  import { ComHub } from "../network/com-hub.js";
15
+ import { DIFHandler } from "../dif/dif-handler.js";
15
16
  // auto-generated version - do not edit:
16
- const VERSION = "0.0.6";
17
+ const VERSION = "0.0.7";
17
18
  export class Runtime {
18
19
  constructor(config, debug_flags) {
20
+ _Runtime_instances.add(this);
19
21
  Object.defineProperty(this, "js_version", {
20
22
  enumerable: true,
21
23
  configurable: true,
@@ -23,11 +25,11 @@ export class Runtime {
23
25
  value: VERSION
24
26
  });
25
27
  _Runtime_runtime.set(this, void 0);
26
- _Runtime_memory.set(this, void 0);
27
28
  _Runtime_comHub.set(this, void 0);
29
+ _Runtime_difHandler.set(this, void 0);
28
30
  __classPrivateFieldSet(this, _Runtime_runtime, create_runtime(JSON.stringify(config), debug_flags), "f");
29
- __classPrivateFieldSet(this, _Runtime_memory, __classPrivateFieldGet(this, _Runtime_runtime, "f").memory, "f");
30
31
  __classPrivateFieldSet(this, _Runtime_comHub, new ComHub(__classPrivateFieldGet(this, _Runtime_runtime, "f").com_hub), "f");
32
+ __classPrivateFieldSet(this, _Runtime_difHandler, new DIFHandler(__classPrivateFieldGet(this, _Runtime_runtime, "f")), "f");
31
33
  }
32
34
  static async create(config, debug_flags) {
33
35
  const runtime = new Runtime(config, debug_flags);
@@ -49,8 +51,8 @@ export class Runtime {
49
51
  get version() {
50
52
  return __classPrivateFieldGet(this, _Runtime_runtime, "f").version;
51
53
  }
52
- get memory() {
53
- return __classPrivateFieldGet(this, _Runtime_memory, "f");
54
+ get dif() {
55
+ return __classPrivateFieldGet(this, _Runtime_difHandler, "f");
54
56
  }
55
57
  get comHub() {
56
58
  return __classPrivateFieldGet(this, _Runtime_comHub, "f");
@@ -61,14 +63,68 @@ export class Runtime {
61
63
  get _runtime() {
62
64
  return __classPrivateFieldGet(this, _Runtime_runtime, "f");
63
65
  }
64
- execute(datex_script, formatted = false) {
65
- return __classPrivateFieldGet(this, _Runtime_runtime, "f").execute(datex_script, formatted);
66
+ executeWithStringResult(datexScript, values = [], decompileOptions = null) {
67
+ return __classPrivateFieldGet(this, _Runtime_runtime, "f").execute_with_string_result(datexScript, __classPrivateFieldGet(this, _Runtime_difHandler, "f").convertToDIFValues(values), decompileOptions);
66
68
  }
67
- execute_sync(datex_script, formatted = false) {
68
- return __classPrivateFieldGet(this, _Runtime_runtime, "f").execute_sync(datex_script, formatted);
69
+ executeSyncWithStringResult(datexScript, values = [], decompileOptions = null) {
70
+ return __classPrivateFieldGet(this, _Runtime_runtime, "f").execute_sync_with_string_result(datexScript, __classPrivateFieldGet(this, _Runtime_difHandler, "f").convertToDIFValues(values), decompileOptions);
69
71
  }
70
- _execute_internal(datex_script) {
71
- return execute_internal(datex_script);
72
+ execute(datexScriptOrTemplateStrings, ...values) {
73
+ const { datexScript, valuesArray } = __classPrivateFieldGet(this, _Runtime_instances, "m", _Runtime_getScriptAndValues).call(this, datexScriptOrTemplateStrings, ...values);
74
+ return __classPrivateFieldGet(this, _Runtime_instances, "m", _Runtime_executeInternal).call(this, datexScript, valuesArray);
75
+ }
76
+ executeSync(datexScriptOrTemplateStrings, ...values) {
77
+ // determine datexScript and valuesArray based on the type of datexScriptOrTemplateStrings
78
+ const { datexScript, valuesArray } = __classPrivateFieldGet(this, _Runtime_instances, "m", _Runtime_getScriptAndValues).call(this, datexScriptOrTemplateStrings, ...values);
79
+ return __classPrivateFieldGet(this, _Runtime_instances, "m", _Runtime_executeSyncInternal).call(this, datexScript, valuesArray);
80
+ }
81
+ valueToString(value, decompileOptions = null) {
82
+ return __classPrivateFieldGet(this, _Runtime_runtime, "f").value_to_string(__classPrivateFieldGet(this, _Runtime_difHandler, "f").convertJSValueToDIFValue(value), decompileOptions);
83
+ }
84
+ _execute_internal(datexScript) {
85
+ return execute_internal(datexScript);
86
+ }
87
+ /**
88
+ * Creates a new pointer containg the given JS value.
89
+ * The returned value is a proxy object that behaves like the original object,
90
+ * but also propagates changes between JS and the DATEX runtime.
91
+ */
92
+ createPointer(
93
+ // deno-lint-ignore ban-types
94
+ value, allowedType, mutability) {
95
+ return __classPrivateFieldGet(this, _Runtime_difHandler, "f").createPointerFromJSValue(value, allowedType, mutability);
72
96
  }
73
97
  }
74
- _Runtime_runtime = new WeakMap(), _Runtime_memory = new WeakMap(), _Runtime_comHub = new WeakMap();
98
+ _Runtime_runtime = new WeakMap(), _Runtime_comHub = new WeakMap(), _Runtime_difHandler = new WeakMap(), _Runtime_instances = new WeakSet(), _Runtime_executeInternal = async function _Runtime_executeInternal(datexScript, values = []) {
99
+ const difValueContainer = await __classPrivateFieldGet(this, _Runtime_difHandler, "f").executeDIF(datexScript, values);
100
+ if (difValueContainer === null) {
101
+ return undefined;
102
+ }
103
+ return __classPrivateFieldGet(this, _Runtime_difHandler, "f").resolveDIFValueContainer(difValueContainer);
104
+ }, _Runtime_executeSyncInternal = function _Runtime_executeSyncInternal(datexScript, values = []) {
105
+ const difValue = __classPrivateFieldGet(this, _Runtime_difHandler, "f").executeSyncDIF(datexScript, values);
106
+ if (difValue === null) {
107
+ return undefined;
108
+ }
109
+ const result = __classPrivateFieldGet(this, _Runtime_difHandler, "f").resolveDIFValueContainer(difValue);
110
+ if (result instanceof Promise) {
111
+ throw new Error("executeSync cannot return a Promise. Use execute() instead.");
112
+ }
113
+ return result;
114
+ }, _Runtime_getScriptAndValues = function _Runtime_getScriptAndValues(datexScriptOrTemplateStrings, ...values) {
115
+ let datexScript;
116
+ let valuesArray;
117
+ if (typeof datexScriptOrTemplateStrings === "string") {
118
+ datexScript = datexScriptOrTemplateStrings;
119
+ valuesArray = values[0] ?? [];
120
+ }
121
+ else if (Array.isArray(datexScriptOrTemplateStrings)) {
122
+ // if it's a TemplateStringsArray, join the strings and interpolate the values
123
+ datexScript = datexScriptOrTemplateStrings.join("?");
124
+ valuesArray = values;
125
+ }
126
+ else {
127
+ throw new Error("Invalid argument type for executeSync");
128
+ }
129
+ return { datexScript, valuesArray };
130
+ };
@@ -0,0 +1,10 @@
1
+ import * as dntShim from "../_dnt.shims.js";
2
+ export declare class Endpoint {
3
+ #private;
4
+ static endpoints: Map<string, dntShim.WeakRef<Endpoint>>;
5
+ private constructor();
6
+ static registerEndpoint(endpoint: Endpoint): void;
7
+ static get(endpoint: string): Endpoint;
8
+ toString(): string;
9
+ }
10
+ //# sourceMappingURL=special-core-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"special-core-types.d.ts","sourceRoot":"","sources":["../../src/runtime/special-core-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,qBAAa,QAAQ;;IAIjB,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAa;IAErE,OAAO;WAKO,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;WASnC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAatC,QAAQ,IAAI,MAAM;CAG5B"}