space-data-module-sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +139 -0
  2. package/bin/space-data-module.js +230 -0
  3. package/package.json +40 -0
  4. package/schemas/PluginManifest.fbs +144 -0
  5. package/schemas/TypedArenaBuffer.fbs +78 -0
  6. package/src/auth/canonicalize.js +72 -0
  7. package/src/auth/index.js +10 -0
  8. package/src/auth/permissions.js +190 -0
  9. package/src/compiler/compileModule.js +237 -0
  10. package/src/compiler/index.js +7 -0
  11. package/src/compliance/index.js +56 -0
  12. package/src/compliance/pluginCompliance.js +574 -0
  13. package/src/embeddedManifest.js +124 -0
  14. package/src/generated/orbpro/manifest/accepted-type-set.d.ts +45 -0
  15. package/src/generated/orbpro/manifest/accepted-type-set.d.ts.map +1 -0
  16. package/src/generated/orbpro/manifest/accepted-type-set.js +100 -0
  17. package/src/generated/orbpro/manifest/accepted-type-set.js.map +1 -0
  18. package/src/generated/orbpro/manifest/accepted-type-set.ts +200 -0
  19. package/src/generated/orbpro/manifest/build-artifact.d.ts +41 -0
  20. package/src/generated/orbpro/manifest/build-artifact.d.ts.map +1 -0
  21. package/src/generated/orbpro/manifest/build-artifact.js +105 -0
  22. package/src/generated/orbpro/manifest/build-artifact.js.map +1 -0
  23. package/src/generated/orbpro/manifest/build-artifact.ts +193 -0
  24. package/src/generated/orbpro/manifest/capability-kind.d.ts +17 -0
  25. package/src/generated/orbpro/manifest/capability-kind.d.ts.map +1 -0
  26. package/src/generated/orbpro/manifest/capability-kind.js +20 -0
  27. package/src/generated/orbpro/manifest/capability-kind.js.map +1 -0
  28. package/src/generated/orbpro/manifest/capability-kind.ts +20 -0
  29. package/src/generated/orbpro/manifest/drain-policy.d.ts +9 -0
  30. package/src/generated/orbpro/manifest/drain-policy.d.ts.map +1 -0
  31. package/src/generated/orbpro/manifest/drain-policy.js +12 -0
  32. package/src/generated/orbpro/manifest/drain-policy.js.map +1 -0
  33. package/src/generated/orbpro/manifest/drain-policy.ts +12 -0
  34. package/src/generated/orbpro/manifest/host-capability.d.ts +36 -0
  35. package/src/generated/orbpro/manifest/host-capability.d.ts.map +1 -0
  36. package/src/generated/orbpro/manifest/host-capability.js +91 -0
  37. package/src/generated/orbpro/manifest/host-capability.js.map +1 -0
  38. package/src/generated/orbpro/manifest/host-capability.ts +161 -0
  39. package/src/generated/orbpro/manifest/method-manifest.d.ts +53 -0
  40. package/src/generated/orbpro/manifest/method-manifest.d.ts.map +1 -0
  41. package/src/generated/orbpro/manifest/method-manifest.js +154 -0
  42. package/src/generated/orbpro/manifest/method-manifest.js.map +1 -0
  43. package/src/generated/orbpro/manifest/method-manifest.ts +306 -0
  44. package/src/generated/orbpro/manifest/plugin-family.d.ts +17 -0
  45. package/src/generated/orbpro/manifest/plugin-family.d.ts.map +1 -0
  46. package/src/generated/orbpro/manifest/plugin-family.js +20 -0
  47. package/src/generated/orbpro/manifest/plugin-family.js.map +1 -0
  48. package/src/generated/orbpro/manifest/plugin-family.ts +20 -0
  49. package/src/generated/orbpro/manifest/plugin-manifest.d.ts +85 -0
  50. package/src/generated/orbpro/manifest/plugin-manifest.d.ts.map +1 -0
  51. package/src/generated/orbpro/manifest/plugin-manifest.js +268 -0
  52. package/src/generated/orbpro/manifest/plugin-manifest.js.map +1 -0
  53. package/src/generated/orbpro/manifest/plugin-manifest.ts +562 -0
  54. package/src/generated/orbpro/manifest/port-manifest.d.ts +70 -0
  55. package/src/generated/orbpro/manifest/port-manifest.d.ts.map +1 -0
  56. package/src/generated/orbpro/manifest/port-manifest.js +150 -0
  57. package/src/generated/orbpro/manifest/port-manifest.js.map +1 -0
  58. package/src/generated/orbpro/manifest/port-manifest.ts +284 -0
  59. package/src/generated/orbpro/manifest/protocol-spec.d.ts +41 -0
  60. package/src/generated/orbpro/manifest/protocol-spec.d.ts.map +1 -0
  61. package/src/generated/orbpro/manifest/protocol-spec.js +105 -0
  62. package/src/generated/orbpro/manifest/protocol-spec.js.map +1 -0
  63. package/src/generated/orbpro/manifest/protocol-spec.ts +205 -0
  64. package/src/generated/orbpro/manifest/timer-spec.d.ts +40 -0
  65. package/src/generated/orbpro/manifest/timer-spec.d.ts.map +1 -0
  66. package/src/generated/orbpro/manifest/timer-spec.js +104 -0
  67. package/src/generated/orbpro/manifest/timer-spec.js.map +1 -0
  68. package/src/generated/orbpro/manifest/timer-spec.ts +195 -0
  69. package/src/generated/orbpro/manifest.js +14 -0
  70. package/src/generated/orbpro/stream/buffer-mutability.d.ts +9 -0
  71. package/src/generated/orbpro/stream/buffer-mutability.d.ts.map +1 -0
  72. package/src/generated/orbpro/stream/buffer-mutability.js +12 -0
  73. package/src/generated/orbpro/stream/buffer-mutability.js.map +1 -0
  74. package/src/generated/orbpro/stream/buffer-mutability.ts +12 -0
  75. package/src/generated/orbpro/stream/buffer-ownership.d.ts +10 -0
  76. package/src/generated/orbpro/stream/buffer-ownership.d.ts.map +1 -0
  77. package/src/generated/orbpro/stream/buffer-ownership.js +13 -0
  78. package/src/generated/orbpro/stream/buffer-ownership.js.map +1 -0
  79. package/src/generated/orbpro/stream/buffer-ownership.ts +13 -0
  80. package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts +51 -0
  81. package/src/generated/orbpro/stream/flat-buffer-type-ref.d.ts.map +1 -0
  82. package/src/generated/orbpro/stream/flat-buffer-type-ref.js +115 -0
  83. package/src/generated/orbpro/stream/flat-buffer-type-ref.js.map +1 -0
  84. package/src/generated/orbpro/stream/flat-buffer-type-ref.ts +222 -0
  85. package/src/generated/orbpro/stream/typed-arena-buffer.d.ts +100 -0
  86. package/src/generated/orbpro/stream/typed-arena-buffer.d.ts.map +1 -0
  87. package/src/generated/orbpro/stream/typed-arena-buffer.js +215 -0
  88. package/src/generated/orbpro/stream/typed-arena-buffer.js.map +1 -0
  89. package/src/generated/orbpro/stream/typed-arena-buffer.ts +344 -0
  90. package/src/index.js +8 -0
  91. package/src/manifest/codec.js +40 -0
  92. package/src/manifest/index.js +9 -0
  93. package/src/manifest/normalize.js +275 -0
  94. package/src/runtime/bufferLike.js +28 -0
  95. package/src/runtime/constants.js +34 -0
  96. package/src/standards/index.js +153 -0
  97. package/src/standards/sharedCatalog.js +196 -0
  98. package/src/transport/index.js +8 -0
  99. package/src/transport/pki.js +140 -0
  100. package/src/utils/crypto.js +8 -0
  101. package/src/utils/encoding.js +54 -0
  102. package/src/utils/wasmCrypto.js +70 -0
@@ -0,0 +1,268 @@
1
+ // automatically generated by the FlatBuffers compiler, do not modify
2
+ /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
3
+ import * as flatbuffers from 'flatbuffers';
4
+ import { BuildArtifact } from '../../orbpro/manifest/build-artifact.js';
5
+ import { HostCapability } from '../../orbpro/manifest/host-capability.js';
6
+ import { MethodManifest } from '../../orbpro/manifest/method-manifest.js';
7
+ import { PluginFamily } from '../../orbpro/manifest/plugin-family.js';
8
+ import { ProtocolSpec } from '../../orbpro/manifest/protocol-spec.js';
9
+ import { TimerSpec } from '../../orbpro/manifest/timer-spec.js';
10
+ import { FlatBufferTypeRef } from '../../orbpro/stream/flat-buffer-type-ref.js';
11
+ /**
12
+ * Canonical plugin manifest.
13
+ */
14
+ export class PluginManifest {
15
+ constructor() {
16
+ this.bb = null;
17
+ this.bb_pos = 0;
18
+ }
19
+ __init(i, bb) {
20
+ this.bb_pos = i;
21
+ this.bb = bb;
22
+ return this;
23
+ }
24
+ static getRootAsPluginManifest(bb, obj) {
25
+ return (obj || new PluginManifest()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
26
+ }
27
+ static getSizePrefixedRootAsPluginManifest(bb, obj) {
28
+ bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
29
+ return (obj || new PluginManifest()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
30
+ }
31
+ static bufferHasIdentifier(bb) {
32
+ return bb.__has_identifier('PMAN');
33
+ }
34
+ pluginId(optionalEncoding) {
35
+ const offset = this.bb.__offset(this.bb_pos, 4);
36
+ return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
37
+ }
38
+ name(optionalEncoding) {
39
+ const offset = this.bb.__offset(this.bb_pos, 6);
40
+ return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
41
+ }
42
+ version(optionalEncoding) {
43
+ const offset = this.bb.__offset(this.bb_pos, 8);
44
+ return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
45
+ }
46
+ pluginFamily() {
47
+ const offset = this.bb.__offset(this.bb_pos, 10);
48
+ return offset ? this.bb.readUint8(this.bb_pos + offset) : PluginFamily.ANALYSIS;
49
+ }
50
+ methods(index, obj) {
51
+ const offset = this.bb.__offset(this.bb_pos, 12);
52
+ return offset ? (obj || new MethodManifest()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
53
+ }
54
+ methodsLength() {
55
+ const offset = this.bb.__offset(this.bb_pos, 12);
56
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
57
+ }
58
+ capabilities(index, obj) {
59
+ const offset = this.bb.__offset(this.bb_pos, 14);
60
+ return offset ? (obj || new HostCapability()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
61
+ }
62
+ capabilitiesLength() {
63
+ const offset = this.bb.__offset(this.bb_pos, 14);
64
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
65
+ }
66
+ timers(index, obj) {
67
+ const offset = this.bb.__offset(this.bb_pos, 16);
68
+ return offset ? (obj || new TimerSpec()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
69
+ }
70
+ timersLength() {
71
+ const offset = this.bb.__offset(this.bb_pos, 16);
72
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
73
+ }
74
+ protocols(index, obj) {
75
+ const offset = this.bb.__offset(this.bb_pos, 18);
76
+ return offset ? (obj || new ProtocolSpec()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
77
+ }
78
+ protocolsLength() {
79
+ const offset = this.bb.__offset(this.bb_pos, 18);
80
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
81
+ }
82
+ schemasUsed(index, obj) {
83
+ const offset = this.bb.__offset(this.bb_pos, 20);
84
+ return offset ? (obj || new FlatBufferTypeRef()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
85
+ }
86
+ schemasUsedLength() {
87
+ const offset = this.bb.__offset(this.bb_pos, 20);
88
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
89
+ }
90
+ buildArtifacts(index, obj) {
91
+ const offset = this.bb.__offset(this.bb_pos, 22);
92
+ return offset ? (obj || new BuildArtifact()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
93
+ }
94
+ buildArtifactsLength() {
95
+ const offset = this.bb.__offset(this.bb_pos, 22);
96
+ return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
97
+ }
98
+ abiVersion() {
99
+ const offset = this.bb.__offset(this.bb_pos, 24);
100
+ return offset ? this.bb.readUint32(this.bb_pos + offset) : 1;
101
+ }
102
+ static startPluginManifest(builder) {
103
+ builder.startObject(11);
104
+ }
105
+ static addPluginId(builder, pluginIdOffset) {
106
+ builder.addFieldOffset(0, pluginIdOffset, 0);
107
+ }
108
+ static addName(builder, nameOffset) {
109
+ builder.addFieldOffset(1, nameOffset, 0);
110
+ }
111
+ static addVersion(builder, versionOffset) {
112
+ builder.addFieldOffset(2, versionOffset, 0);
113
+ }
114
+ static addPluginFamily(builder, pluginFamily) {
115
+ builder.addFieldInt8(3, pluginFamily, PluginFamily.ANALYSIS);
116
+ }
117
+ static addMethods(builder, methodsOffset) {
118
+ builder.addFieldOffset(4, methodsOffset, 0);
119
+ }
120
+ static createMethodsVector(builder, data) {
121
+ builder.startVector(4, data.length, 4);
122
+ for (let i = data.length - 1; i >= 0; i--) {
123
+ builder.addOffset(data[i]);
124
+ }
125
+ return builder.endVector();
126
+ }
127
+ static startMethodsVector(builder, numElems) {
128
+ builder.startVector(4, numElems, 4);
129
+ }
130
+ static addCapabilities(builder, capabilitiesOffset) {
131
+ builder.addFieldOffset(5, capabilitiesOffset, 0);
132
+ }
133
+ static createCapabilitiesVector(builder, data) {
134
+ builder.startVector(4, data.length, 4);
135
+ for (let i = data.length - 1; i >= 0; i--) {
136
+ builder.addOffset(data[i]);
137
+ }
138
+ return builder.endVector();
139
+ }
140
+ static startCapabilitiesVector(builder, numElems) {
141
+ builder.startVector(4, numElems, 4);
142
+ }
143
+ static addTimers(builder, timersOffset) {
144
+ builder.addFieldOffset(6, timersOffset, 0);
145
+ }
146
+ static createTimersVector(builder, data) {
147
+ builder.startVector(4, data.length, 4);
148
+ for (let i = data.length - 1; i >= 0; i--) {
149
+ builder.addOffset(data[i]);
150
+ }
151
+ return builder.endVector();
152
+ }
153
+ static startTimersVector(builder, numElems) {
154
+ builder.startVector(4, numElems, 4);
155
+ }
156
+ static addProtocols(builder, protocolsOffset) {
157
+ builder.addFieldOffset(7, protocolsOffset, 0);
158
+ }
159
+ static createProtocolsVector(builder, data) {
160
+ builder.startVector(4, data.length, 4);
161
+ for (let i = data.length - 1; i >= 0; i--) {
162
+ builder.addOffset(data[i]);
163
+ }
164
+ return builder.endVector();
165
+ }
166
+ static startProtocolsVector(builder, numElems) {
167
+ builder.startVector(4, numElems, 4);
168
+ }
169
+ static addSchemasUsed(builder, schemasUsedOffset) {
170
+ builder.addFieldOffset(8, schemasUsedOffset, 0);
171
+ }
172
+ static createSchemasUsedVector(builder, data) {
173
+ builder.startVector(4, data.length, 4);
174
+ for (let i = data.length - 1; i >= 0; i--) {
175
+ builder.addOffset(data[i]);
176
+ }
177
+ return builder.endVector();
178
+ }
179
+ static startSchemasUsedVector(builder, numElems) {
180
+ builder.startVector(4, numElems, 4);
181
+ }
182
+ static addBuildArtifacts(builder, buildArtifactsOffset) {
183
+ builder.addFieldOffset(9, buildArtifactsOffset, 0);
184
+ }
185
+ static createBuildArtifactsVector(builder, data) {
186
+ builder.startVector(4, data.length, 4);
187
+ for (let i = data.length - 1; i >= 0; i--) {
188
+ builder.addOffset(data[i]);
189
+ }
190
+ return builder.endVector();
191
+ }
192
+ static startBuildArtifactsVector(builder, numElems) {
193
+ builder.startVector(4, numElems, 4);
194
+ }
195
+ static addAbiVersion(builder, abiVersion) {
196
+ builder.addFieldInt32(10, abiVersion, 1);
197
+ }
198
+ static endPluginManifest(builder) {
199
+ const offset = builder.endObject();
200
+ builder.requiredField(offset, 4); // plugin_id
201
+ return offset;
202
+ }
203
+ static finishPluginManifestBuffer(builder, offset) {
204
+ builder.finish(offset, 'PMAN');
205
+ }
206
+ static finishSizePrefixedPluginManifestBuffer(builder, offset) {
207
+ builder.finish(offset, 'PMAN', true);
208
+ }
209
+ static createPluginManifest(builder, pluginIdOffset, nameOffset, versionOffset, pluginFamily, methodsOffset, capabilitiesOffset, timersOffset, protocolsOffset, schemasUsedOffset, buildArtifactsOffset, abiVersion) {
210
+ PluginManifest.startPluginManifest(builder);
211
+ PluginManifest.addPluginId(builder, pluginIdOffset);
212
+ PluginManifest.addName(builder, nameOffset);
213
+ PluginManifest.addVersion(builder, versionOffset);
214
+ PluginManifest.addPluginFamily(builder, pluginFamily);
215
+ PluginManifest.addMethods(builder, methodsOffset);
216
+ PluginManifest.addCapabilities(builder, capabilitiesOffset);
217
+ PluginManifest.addTimers(builder, timersOffset);
218
+ PluginManifest.addProtocols(builder, protocolsOffset);
219
+ PluginManifest.addSchemasUsed(builder, schemasUsedOffset);
220
+ PluginManifest.addBuildArtifacts(builder, buildArtifactsOffset);
221
+ PluginManifest.addAbiVersion(builder, abiVersion);
222
+ return PluginManifest.endPluginManifest(builder);
223
+ }
224
+ unpack() {
225
+ return new PluginManifestT(this.pluginId(), this.name(), this.version(), this.pluginFamily(), this.bb.createObjList(this.methods.bind(this), this.methodsLength()), this.bb.createObjList(this.capabilities.bind(this), this.capabilitiesLength()), this.bb.createObjList(this.timers.bind(this), this.timersLength()), this.bb.createObjList(this.protocols.bind(this), this.protocolsLength()), this.bb.createObjList(this.schemasUsed.bind(this), this.schemasUsedLength()), this.bb.createObjList(this.buildArtifacts.bind(this), this.buildArtifactsLength()), this.abiVersion());
226
+ }
227
+ unpackTo(_o) {
228
+ _o.pluginId = this.pluginId();
229
+ _o.name = this.name();
230
+ _o.version = this.version();
231
+ _o.pluginFamily = this.pluginFamily();
232
+ _o.methods = this.bb.createObjList(this.methods.bind(this), this.methodsLength());
233
+ _o.capabilities = this.bb.createObjList(this.capabilities.bind(this), this.capabilitiesLength());
234
+ _o.timers = this.bb.createObjList(this.timers.bind(this), this.timersLength());
235
+ _o.protocols = this.bb.createObjList(this.protocols.bind(this), this.protocolsLength());
236
+ _o.schemasUsed = this.bb.createObjList(this.schemasUsed.bind(this), this.schemasUsedLength());
237
+ _o.buildArtifacts = this.bb.createObjList(this.buildArtifacts.bind(this), this.buildArtifactsLength());
238
+ _o.abiVersion = this.abiVersion();
239
+ }
240
+ }
241
+ export class PluginManifestT {
242
+ constructor(pluginId = null, name = null, version = null, pluginFamily = PluginFamily.ANALYSIS, methods = [], capabilities = [], timers = [], protocols = [], schemasUsed = [], buildArtifacts = [], abiVersion = 1) {
243
+ this.pluginId = pluginId;
244
+ this.name = name;
245
+ this.version = version;
246
+ this.pluginFamily = pluginFamily;
247
+ this.methods = methods;
248
+ this.capabilities = capabilities;
249
+ this.timers = timers;
250
+ this.protocols = protocols;
251
+ this.schemasUsed = schemasUsed;
252
+ this.buildArtifacts = buildArtifacts;
253
+ this.abiVersion = abiVersion;
254
+ }
255
+ pack(builder) {
256
+ const pluginId = (this.pluginId !== null ? builder.createString(this.pluginId) : 0);
257
+ const name = (this.name !== null ? builder.createString(this.name) : 0);
258
+ const version = (this.version !== null ? builder.createString(this.version) : 0);
259
+ const methods = PluginManifest.createMethodsVector(builder, builder.createObjectOffsetList(this.methods));
260
+ const capabilities = PluginManifest.createCapabilitiesVector(builder, builder.createObjectOffsetList(this.capabilities));
261
+ const timers = PluginManifest.createTimersVector(builder, builder.createObjectOffsetList(this.timers));
262
+ const protocols = PluginManifest.createProtocolsVector(builder, builder.createObjectOffsetList(this.protocols));
263
+ const schemasUsed = PluginManifest.createSchemasUsedVector(builder, builder.createObjectOffsetList(this.schemasUsed));
264
+ const buildArtifacts = PluginManifest.createBuildArtifactsVector(builder, builder.createObjectOffsetList(this.buildArtifacts));
265
+ return PluginManifest.createPluginManifest(builder, pluginId, name, version, this.pluginFamily, methods, capabilities, timers, protocols, schemasUsed, buildArtifacts, this.abiVersion);
266
+ }
267
+ }
268
+ //# sourceMappingURL=plugin-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manifest.js","sourceRoot":"","sources":["../../../../../../../../Users/tj/software/OrbPro/packages/plugin-sdk/src/generated/orbpro/manifest/plugin-manifest.ts"],"names":[],"mappings":"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"}