space-data-module-sdk 0.2.0 → 0.2.5

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 (104) hide show
  1. package/README.md +74 -2
  2. package/package.json +10 -3
  3. package/schemas/PluginInvokeRequest.fbs +18 -0
  4. package/schemas/PluginInvokeResponse.fbs +30 -0
  5. package/schemas/PluginManifest.fbs +7 -0
  6. package/schemas/TypedArenaBuffer.fbs +23 -2
  7. package/src/bundle/codec.js +24 -0
  8. package/src/compiler/compileModule.js +274 -106
  9. package/src/compiler/emceptionNode.js +217 -0
  10. package/src/compiler/flatcSupport.js +66 -0
  11. package/src/compiler/invokeGlue.js +884 -0
  12. package/src/compliance/pluginCompliance.js +241 -1
  13. package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts +51 -0
  14. package/src/generated/orbpro/invoke/plugin-invoke-request.d.ts.map +1 -0
  15. package/src/generated/orbpro/invoke/plugin-invoke-request.js +131 -0
  16. package/src/generated/orbpro/invoke/plugin-invoke-request.js.map +1 -0
  17. package/src/generated/orbpro/invoke/plugin-invoke-request.ts +173 -0
  18. package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts +76 -0
  19. package/src/generated/orbpro/invoke/plugin-invoke-response.d.ts.map +1 -0
  20. package/src/generated/orbpro/invoke/plugin-invoke-response.js +184 -0
  21. package/src/generated/orbpro/invoke/plugin-invoke-response.js.map +1 -0
  22. package/src/generated/orbpro/invoke/plugin-invoke-response.ts +243 -0
  23. package/src/generated/orbpro/invoke.d.ts +3 -0
  24. package/src/generated/orbpro/invoke.d.ts.map +1 -0
  25. package/src/generated/orbpro/invoke.js +5 -0
  26. package/src/generated/orbpro/invoke.js.map +1 -0
  27. package/src/generated/orbpro/invoke.ts +6 -0
  28. package/src/generated/orbpro/manifest/accepted-type-set.d.ts +4 -4
  29. package/src/generated/orbpro/manifest/accepted-type-set.d.ts.map +1 -1
  30. package/src/generated/orbpro/manifest/accepted-type-set.js +18 -11
  31. package/src/generated/orbpro/manifest/accepted-type-set.js.map +1 -1
  32. package/src/generated/orbpro/manifest/build-artifact.d.ts +1 -1
  33. package/src/generated/orbpro/manifest/build-artifact.d.ts.map +1 -1
  34. package/src/generated/orbpro/manifest/build-artifact.js +28 -15
  35. package/src/generated/orbpro/manifest/build-artifact.js.map +1 -1
  36. package/src/generated/orbpro/manifest/capability-kind.d.ts +1 -1
  37. package/src/generated/orbpro/manifest/capability-kind.d.ts.map +1 -1
  38. package/src/generated/orbpro/manifest/capability-kind.js +1 -1
  39. package/src/generated/orbpro/manifest/capability-kind.js.map +1 -1
  40. package/src/generated/orbpro/manifest/drain-policy.d.ts.map +1 -1
  41. package/src/generated/orbpro/manifest/drain-policy.js.map +1 -1
  42. package/src/generated/orbpro/manifest/host-capability.d.ts +2 -2
  43. package/src/generated/orbpro/manifest/host-capability.d.ts.map +1 -1
  44. package/src/generated/orbpro/manifest/host-capability.js +19 -11
  45. package/src/generated/orbpro/manifest/host-capability.js.map +1 -1
  46. package/src/generated/orbpro/manifest/invoke-surface.d.ts +8 -0
  47. package/src/generated/orbpro/manifest/invoke-surface.d.ts.map +1 -0
  48. package/src/generated/orbpro/manifest/invoke-surface.js +11 -0
  49. package/src/generated/orbpro/manifest/invoke-surface.js.map +1 -0
  50. package/src/generated/orbpro/manifest/invoke-surface.ts +11 -0
  51. package/src/generated/orbpro/manifest/method-manifest.d.ts +6 -6
  52. package/src/generated/orbpro/manifest/method-manifest.d.ts.map +1 -1
  53. package/src/generated/orbpro/manifest/method-manifest.js +33 -16
  54. package/src/generated/orbpro/manifest/method-manifest.js.map +1 -1
  55. package/src/generated/orbpro/manifest/plugin-family.d.ts.map +1 -1
  56. package/src/generated/orbpro/manifest/plugin-family.js.map +1 -1
  57. package/src/generated/orbpro/manifest/plugin-manifest.d.ts +10 -2
  58. package/src/generated/orbpro/manifest/plugin-manifest.d.ts.map +1 -1
  59. package/src/generated/orbpro/manifest/plugin-manifest.js +48 -9
  60. package/src/generated/orbpro/manifest/plugin-manifest.js.map +1 -1
  61. package/src/generated/orbpro/manifest/plugin-manifest.ts +322 -491
  62. package/src/generated/orbpro/manifest/port-manifest.d.ts +4 -4
  63. package/src/generated/orbpro/manifest/port-manifest.d.ts.map +1 -1
  64. package/src/generated/orbpro/manifest/port-manifest.js +26 -13
  65. package/src/generated/orbpro/manifest/port-manifest.js.map +1 -1
  66. package/src/generated/orbpro/manifest/protocol-spec.d.ts +1 -1
  67. package/src/generated/orbpro/manifest/protocol-spec.d.ts.map +1 -1
  68. package/src/generated/orbpro/manifest/protocol-spec.js +28 -15
  69. package/src/generated/orbpro/manifest/protocol-spec.js.map +1 -1
  70. package/src/generated/orbpro/manifest/timer-spec.d.ts +1 -1
  71. package/src/generated/orbpro/manifest/timer-spec.d.ts.map +1 -1
  72. package/src/generated/orbpro/manifest/timer-spec.js +27 -16
  73. package/src/generated/orbpro/manifest/timer-spec.js.map +1 -1
  74. package/src/generated/orbpro/manifest.d.ts +13 -0
  75. package/src/generated/orbpro/manifest.d.ts.map +1 -0
  76. package/src/generated/orbpro/manifest.js +1 -0
  77. package/src/generated/orbpro/manifest.js.map +1 -0
  78. package/src/generated/orbpro/manifest.ts +16 -0
  79. package/src/generated/orbpro/stream/buffer-mutability.d.ts.map +1 -1
  80. package/src/generated/orbpro/stream/buffer-mutability.js.map +1 -1
  81. package/src/generated/orbpro/stream/buffer-ownership.d.ts.map +1 -1
  82. package/src/generated/orbpro/stream/buffer-ownership.js.map +1 -1
  83. package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts +22 -5
  84. package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts.map +1 -1
  85. package/src/generated/orbpro/stream/flat-buffer-type-ref.js +107 -17
  86. package/src/generated/orbpro/stream/flat-buffer-type-ref.js.map +1 -1
  87. package/src/generated/orbpro/stream/flat-buffer-type-ref.ts +126 -2
  88. package/src/generated/orbpro/stream/payload-wire-format.d.ts +8 -0
  89. package/src/generated/orbpro/stream/payload-wire-format.d.ts.map +1 -0
  90. package/src/generated/orbpro/stream/payload-wire-format.js +11 -0
  91. package/src/generated/orbpro/stream/payload-wire-format.js.map +1 -0
  92. package/src/generated/orbpro/stream/payload-wire-format.ts +11 -0
  93. package/src/generated/orbpro/stream/typed-arena-buffer.d.ts +4 -4
  94. package/src/generated/orbpro/stream/typed-arena-buffer.d.ts.map +1 -1
  95. package/src/generated/orbpro/stream/typed-arena-buffer.js +42 -24
  96. package/src/generated/orbpro/stream/typed-arena-buffer.js.map +1 -1
  97. package/src/index.d.ts +83 -5
  98. package/src/index.js +3 -0
  99. package/src/invoke/codec.js +278 -0
  100. package/src/invoke/index.js +9 -0
  101. package/src/manifest/codec.js +10 -2
  102. package/src/manifest/index.js +5 -2
  103. package/src/manifest/normalize.js +58 -0
  104. package/src/runtime/constants.js +12 -0
@@ -1,9 +1,12 @@
1
1
  export * from "../generated/orbpro/manifest.js";
2
- export { FlatBufferTypeRefT } from "../generated/orbpro/stream/flat-buffer-type-ref.js";
2
+ export { PayloadWireFormat } from "../generated/orbpro/stream/payload-wire-format.js";
3
+ export {
4
+ FlatBufferTypeRefT,
5
+ FlatBufferTypeRefT as PayloadTypeRef,
6
+ } from "../generated/orbpro/stream/flat-buffer-type-ref.js";
3
7
  export { decodePluginManifest, encodePluginManifest } from "./codec.js";
4
8
  export { toEmbeddedPluginManifest } from "./normalize.js";
5
9
  export {
6
10
  generateEmbeddedManifestSource,
7
11
  writeEmbeddedManifestArtifacts,
8
12
  } from "../embeddedManifest.js";
9
-
@@ -4,6 +4,7 @@ import {
4
4
  CapabilityKind,
5
5
  DrainPolicy as ManifestDrainPolicy,
6
6
  HostCapabilityT,
7
+ InvokeSurface,
7
8
  MethodManifestT,
8
9
  PluginFamily,
9
10
  PluginManifestT,
@@ -75,6 +76,11 @@ const capabilityKindByName = Object.freeze({
75
76
  render_hooks: CapabilityKind.RENDER_HOOKS,
76
77
  });
77
78
 
79
+ const invokeSurfaceByName = Object.freeze({
80
+ direct: InvokeSurface.DIRECT,
81
+ command: InvokeSurface.COMMAND,
82
+ });
83
+
78
84
  function normalizeSchemaHash(value) {
79
85
  if (!value) {
80
86
  return [];
@@ -93,6 +99,25 @@ function normalizeSchemaHash(value) {
93
99
  return bytes;
94
100
  }
95
101
 
102
+ function normalizePayloadWireFormat(value) {
103
+ if (value === 1) {
104
+ return "aligned-binary";
105
+ }
106
+ const normalized = String(value ?? "")
107
+ .trim()
108
+ .toLowerCase()
109
+ .replace(/_/g, "-");
110
+ return normalized === "aligned-binary" ? "aligned-binary" : "flatbuffer";
111
+ }
112
+
113
+ function normalizeUnsignedInteger(value, fallback = 0) {
114
+ const normalized = Number(value ?? fallback);
115
+ if (!Number.isFinite(normalized)) {
116
+ return fallback;
117
+ }
118
+ return Math.max(0, Math.trunc(normalized));
119
+ }
120
+
96
121
  function normalizePluginFamily(value) {
97
122
  if (typeof value === "number") {
98
123
  return value;
@@ -125,6 +150,33 @@ function normalizeCapabilityKind(value) {
125
150
  return capabilityKindByName[normalized] ?? null;
126
151
  }
127
152
 
153
+ function normalizeInvokeSurface(value) {
154
+ if (typeof value === "number") {
155
+ return value;
156
+ }
157
+ const normalized = String(value ?? "")
158
+ .trim()
159
+ .toLowerCase();
160
+ return invokeSurfaceByName[normalized] ?? null;
161
+ }
162
+
163
+ function normalizeInvokeSurfaces(value) {
164
+ if (!Array.isArray(value)) {
165
+ return [];
166
+ }
167
+ const seen = new Set();
168
+ const normalized = [];
169
+ for (const entry of value) {
170
+ const surface = normalizeInvokeSurface(entry);
171
+ if (surface === null || seen.has(surface)) {
172
+ continue;
173
+ }
174
+ seen.add(surface);
175
+ normalized.push(surface);
176
+ }
177
+ return normalized;
178
+ }
179
+
128
180
  function toFlatBufferTypeRefT(value = {}) {
129
181
  if (value instanceof FlatBufferTypeRefT) {
130
182
  return value;
@@ -134,6 +186,11 @@ function toFlatBufferTypeRefT(value = {}) {
134
186
  value.fileIdentifier ?? null,
135
187
  normalizeSchemaHash(value.schemaHash),
136
188
  value.acceptsAnyFlatbuffer === true,
189
+ normalizePayloadWireFormat(value.wireFormat),
190
+ value.rootTypeName ?? null,
191
+ normalizeUnsignedInteger(value.fixedStringLength),
192
+ normalizeUnsignedInteger(value.byteLength),
193
+ normalizeUnsignedInteger(value.requiredAlignment),
137
194
  );
138
195
  }
139
196
 
@@ -300,6 +357,7 @@ export function toEmbeddedPluginManifest(input = {}) {
300
357
  ? input.buildArtifacts.map((entry) => toBuildArtifactT(entry))
301
358
  : [],
302
359
  Number(input.abiVersion ?? 1),
360
+ normalizeInvokeSurfaces(input.invokeSurfaces),
303
361
  ),
304
362
  warnings,
305
363
  };
@@ -43,9 +43,21 @@ export const RuntimeTarget = Object.freeze({
43
43
  EDGE: "edge",
44
44
  });
45
45
 
46
+ export const InvokeSurface = Object.freeze({
47
+ DIRECT: "direct",
48
+ COMMAND: "command",
49
+ });
50
+
46
51
  export const DefaultManifestExports = Object.freeze({
47
52
  pluginBytesSymbol: "plugin_get_manifest_flatbuffer",
48
53
  pluginSizeSymbol: "plugin_get_manifest_flatbuffer_size",
49
54
  flowBytesSymbol: "flow_get_manifest_flatbuffer",
50
55
  flowSizeSymbol: "flow_get_manifest_flatbuffer_size",
51
56
  });
57
+
58
+ export const DefaultInvokeExports = Object.freeze({
59
+ invokeSymbol: "plugin_invoke_stream",
60
+ allocSymbol: "plugin_alloc",
61
+ freeSymbol: "plugin_free",
62
+ commandSymbol: "_start",
63
+ });