flatsql 3.11.1 → 3.12.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.
Files changed (181) hide show
  1. package/README.md +61 -795
  2. package/bin/flatsql.mjs +76 -0
  3. package/cpp/README.md +18 -0
  4. package/cpp/include/flatsql/flatsql.h +162 -0
  5. package/cpp/include/flatsql/flatsql_io.h +159 -0
  6. package/docs/API-3.12.md +126 -0
  7. package/package.json +28 -123
  8. package/wasm/flatsql.wasm +0 -0
  9. package/wasm/index.d.ts +61 -548
  10. package/wasm/index.js +280 -1281
  11. package/wasm/integrity.json +6 -26
  12. package/wasm/runtime/LICENSE.sdk.txt +190 -0
  13. package/wasm/runtime/NOTICE.txt +2 -0
  14. package/wasm/runtime/browser-guest.mjs +1 -0
  15. package/wasm/runtime/browser-host.mjs +1 -0
  16. package/wasm/runtime/node-guest.mjs +2 -0
  17. package/wasm/runtime/node-host.mjs +5 -0
  18. package/wasm/runtime/opfsIoWorker.mjs +1 -0
  19. package/wasm/runtime/wasiThreadBrowserWorker.mjs +1 -0
  20. package/dist/artifacts/index.d.ts +0 -3
  21. package/dist/artifacts/index.d.ts.map +0 -1
  22. package/dist/artifacts/index.js +0 -3
  23. package/dist/artifacts/index.js.map +0 -1
  24. package/dist/artifacts/transport.d.ts +0 -5
  25. package/dist/artifacts/transport.d.ts.map +0 -1
  26. package/dist/artifacts/transport.js +0 -45
  27. package/dist/artifacts/transport.js.map +0 -1
  28. package/dist/artifacts/types.d.ts +0 -34
  29. package/dist/artifacts/types.d.ts.map +0 -1
  30. package/dist/artifacts/types.js +0 -2
  31. package/dist/artifacts/types.js.map +0 -1
  32. package/dist/btree/btree.d.ts +0 -34
  33. package/dist/btree/btree.d.ts.map +0 -1
  34. package/dist/btree/btree.js +0 -234
  35. package/dist/btree/btree.js.map +0 -1
  36. package/dist/btree/index.d.ts +0 -3
  37. package/dist/btree/index.d.ts.map +0 -1
  38. package/dist/btree/index.js +0 -3
  39. package/dist/btree/index.js.map +0 -1
  40. package/dist/btree/types.d.ts +0 -36
  41. package/dist/btree/types.d.ts.map +0 -1
  42. package/dist/btree/types.js +0 -55
  43. package/dist/btree/types.js.map +0 -1
  44. package/dist/cluster/index.d.ts +0 -11
  45. package/dist/cluster/index.d.ts.map +0 -1
  46. package/dist/cluster/index.js +0 -59
  47. package/dist/cluster/index.js.map +0 -1
  48. package/dist/response/artifact.d.ts +0 -4
  49. package/dist/response/artifact.d.ts.map +0 -1
  50. package/dist/response/artifact.js +0 -102
  51. package/dist/response/artifact.js.map +0 -1
  52. package/dist/response/cache-key.d.ts +0 -6
  53. package/dist/response/cache-key.d.ts.map +0 -1
  54. package/dist/response/cache-key.js +0 -114
  55. package/dist/response/cache-key.js.map +0 -1
  56. package/dist/response/index.d.ts +0 -5
  57. package/dist/response/index.d.ts.map +0 -1
  58. package/dist/response/index.js +0 -5
  59. package/dist/response/index.js.map +0 -1
  60. package/dist/response/memory-cache.d.ts +0 -17
  61. package/dist/response/memory-cache.d.ts.map +0 -1
  62. package/dist/response/memory-cache.js +0 -76
  63. package/dist/response/memory-cache.js.map +0 -1
  64. package/dist/response/types.d.ts +0 -57
  65. package/dist/response/types.d.ts.map +0 -1
  66. package/dist/response/types.js +0 -2
  67. package/dist/response/types.js.map +0 -1
  68. package/dist/schema/index.d.ts +0 -3
  69. package/dist/schema/index.d.ts.map +0 -1
  70. package/dist/schema/index.js +0 -3
  71. package/dist/schema/index.js.map +0 -1
  72. package/dist/schema/parser.d.ts +0 -25
  73. package/dist/schema/parser.d.ts.map +0 -1
  74. package/dist/schema/parser.js +0 -474
  75. package/dist/schema/parser.js.map +0 -1
  76. package/dist/schema/types.d.ts +0 -33
  77. package/dist/schema/types.d.ts.map +0 -1
  78. package/dist/schema/types.js +0 -29
  79. package/dist/schema/types.js.map +0 -1
  80. package/dist/standalone/index.d.ts +0 -3
  81. package/dist/standalone/index.d.ts.map +0 -1
  82. package/dist/standalone/index.js +0 -3
  83. package/dist/standalone/index.js.map +0 -1
  84. package/dist/standalone/process-client.d.ts +0 -85
  85. package/dist/standalone/process-client.d.ts.map +0 -1
  86. package/dist/standalone/process-client.js +0 -537
  87. package/dist/standalone/process-client.js.map +0 -1
  88. package/dist/standalone/wasmedge-runner.d.ts +0 -19
  89. package/dist/standalone/wasmedge-runner.d.ts.map +0 -1
  90. package/dist/standalone/wasmedge-runner.js +0 -108
  91. package/dist/standalone/wasmedge-runner.js.map +0 -1
  92. package/dist/storage/index.d.ts +0 -3
  93. package/dist/storage/index.d.ts.map +0 -1
  94. package/dist/storage/index.js +0 -3
  95. package/dist/storage/index.js.map +0 -1
  96. package/dist/storage/stacked-flatbuffers.d.ts +0 -38
  97. package/dist/storage/stacked-flatbuffers.d.ts.map +0 -1
  98. package/dist/storage/stacked-flatbuffers.js +0 -253
  99. package/dist/storage/stacked-flatbuffers.js.map +0 -1
  100. package/dist/storage/types.d.ts +0 -23
  101. package/dist/storage/types.d.ts.map +0 -1
  102. package/dist/storage/types.js +0 -27
  103. package/dist/storage/types.js.map +0 -1
  104. package/dist/stress/aggregate.d.ts +0 -3
  105. package/dist/stress/aggregate.d.ts.map +0 -1
  106. package/dist/stress/aggregate.js +0 -61
  107. package/dist/stress/aggregate.js.map +0 -1
  108. package/dist/stress/docker-compose.d.ts +0 -17
  109. package/dist/stress/docker-compose.d.ts.map +0 -1
  110. package/dist/stress/docker-compose.js +0 -156
  111. package/dist/stress/docker-compose.js.map +0 -1
  112. package/dist/stress/index.d.ts +0 -10
  113. package/dist/stress/index.d.ts.map +0 -1
  114. package/dist/stress/index.js +0 -10
  115. package/dist/stress/index.js.map +0 -1
  116. package/dist/stress/metrics.d.ts +0 -3
  117. package/dist/stress/metrics.d.ts.map +0 -1
  118. package/dist/stress/metrics.js +0 -83
  119. package/dist/stress/metrics.js.map +0 -1
  120. package/dist/stress/native-publish-event-workload.d.ts +0 -3
  121. package/dist/stress/native-publish-event-workload.d.ts.map +0 -1
  122. package/dist/stress/native-publish-event-workload.js +0 -465
  123. package/dist/stress/native-publish-event-workload.js.map +0 -1
  124. package/dist/stress/production-gate.d.ts +0 -4
  125. package/dist/stress/production-gate.d.ts.map +0 -1
  126. package/dist/stress/production-gate.js +0 -12
  127. package/dist/stress/production-gate.js.map +0 -1
  128. package/dist/stress/report.d.ts +0 -3
  129. package/dist/stress/report.d.ts.map +0 -1
  130. package/dist/stress/report.js +0 -174
  131. package/dist/stress/report.js.map +0 -1
  132. package/dist/stress/sds-discovery.d.ts +0 -4
  133. package/dist/stress/sds-discovery.d.ts.map +0 -1
  134. package/dist/stress/sds-discovery.js +0 -40
  135. package/dist/stress/sds-discovery.js.map +0 -1
  136. package/dist/stress/smoke-runner.d.ts +0 -3
  137. package/dist/stress/smoke-runner.d.ts.map +0 -1
  138. package/dist/stress/smoke-runner.js +0 -64
  139. package/dist/stress/smoke-runner.js.map +0 -1
  140. package/dist/stress/types.d.ts +0 -219
  141. package/dist/stress/types.d.ts.map +0 -1
  142. package/dist/stress/types.js +0 -2
  143. package/dist/stress/types.js.map +0 -1
  144. package/dist/stress/workload.d.ts +0 -6
  145. package/dist/stress/workload.d.ts.map +0 -1
  146. package/dist/stress/workload.js +0 -144
  147. package/dist/stress/workload.js.map +0 -1
  148. package/docs/PARTITION-STORE-WASM.md +0 -338
  149. package/docs/PARTITION-STORE.md +0 -2380
  150. package/docs/agents/response-artifacts.md +0 -65
  151. package/docs/response-artifacts.md +0 -86
  152. package/scripts/stress-docker.sh +0 -279
  153. package/sdm/flatsql-spatial.wasm +0 -0
  154. package/sdm/index.d.ts +0 -88
  155. package/sdm/index.js +0 -253
  156. package/sdm/manifest.json +0 -402
  157. package/stress/docker/Dockerfile +0 -11
  158. package/stress/docker/docker-compose.yml +0 -51
  159. package/stress/sds/aggregate.mjs +0 -97
  160. package/stress/sds/run.mjs +0 -105
  161. package/stress/sds/write-compose.mjs +0 -96
  162. package/wasm/flatsql-client.js +0 -280
  163. package/wasm/flatsql-io.d.ts +0 -97
  164. package/wasm/flatsql-io.js +0 -625
  165. package/wasm/flatsql-p4-threads.wasm +0 -0
  166. package/wasm/flatsql-ps-threads.wasm +0 -0
  167. package/wasm/flatsql-wasi-noeh.wasm +0 -0
  168. package/wasm/flatsql-wasi.wasm +0 -0
  169. package/wasm/flatsql.js +0 -2
  170. package/wasm/flatsql.worker.js +0 -209
  171. package/wasm/native/flatsql_wasmedge_runner.cpp +0 -858
  172. package/wasm/ps-node-fault.d.mts +0 -23
  173. package/wasm/ps-node-fault.mjs +0 -381
  174. package/wasm/ps-node-guest.mjs +0 -173
  175. package/wasm/ps-node-host.d.mts +0 -95
  176. package/wasm/ps-node-host.mjs +0 -476
  177. package/wasm/ps-node-imports.mjs +0 -847
  178. package/wasm/ps.d.ts +0 -21
  179. package/wasm/ps.js +0 -75
  180. package/wasm/wasi.d.ts +0 -11
  181. package/wasm/wasi.js +0 -51
@@ -1,474 +0,0 @@
1
- // Schema parser for FlatBuffers IDL and JSON Schema
2
- // Converts to internal table definitions
3
- import { SQLColumnType, fbTypeToSQL } from './types.js';
4
- // Security: Maximum schema source size to prevent DoS
5
- const MAX_SCHEMA_SIZE = 1024 * 1024; // 1MB
6
- // Security: Forbidden keys that could enable prototype pollution
7
- const FORBIDDEN_KEYS = ['__proto__', 'constructor', 'prototype'];
8
- /**
9
- * Safe JSON parse that prevents prototype pollution attacks.
10
- * Throws if the input contains dangerous keys or is too large.
11
- */
12
- function safeJSONParse(source) {
13
- if (source.length > MAX_SCHEMA_SIZE) {
14
- throw new Error(`Schema source exceeds maximum size of ${MAX_SCHEMA_SIZE} bytes`);
15
- }
16
- // Check for prototype pollution attempts in the raw string
17
- for (const key of FORBIDDEN_KEYS) {
18
- if (source.includes(`"${key}"`)) {
19
- throw new Error(`Schema contains forbidden key: ${key}`);
20
- }
21
- }
22
- const parsed = JSON.parse(source);
23
- // Recursively validate the parsed object
24
- validateObject(parsed, 0);
25
- return parsed;
26
- }
27
- /**
28
- * Recursively validate an object for dangerous patterns.
29
- * Limits nesting depth to prevent stack overflow.
30
- */
31
- function validateObject(obj, depth) {
32
- const MAX_DEPTH = 50;
33
- if (depth > MAX_DEPTH) {
34
- throw new Error(`Schema nesting depth exceeds maximum of ${MAX_DEPTH}`);
35
- }
36
- if (obj === null || typeof obj !== 'object') {
37
- return;
38
- }
39
- if (Array.isArray(obj)) {
40
- for (const item of obj) {
41
- validateObject(item, depth + 1);
42
- }
43
- return;
44
- }
45
- for (const key of Object.keys(obj)) {
46
- if (FORBIDDEN_KEYS.includes(key)) {
47
- throw new Error(`Schema contains forbidden key: ${key}`);
48
- }
49
- validateObject(obj[key], depth + 1);
50
- }
51
- }
52
- /**
53
- * Type guard to check if a value is a valid JSON Schema object.
54
- */
55
- function isValidJSONSchema(value) {
56
- if (value === null || typeof value !== 'object') {
57
- return false;
58
- }
59
- const obj = value;
60
- // If type is present, it must be a string
61
- if (obj.type !== undefined && typeof obj.type !== 'string') {
62
- return false;
63
- }
64
- // If title is present, it must be a string
65
- if (obj.title !== undefined && typeof obj.title !== 'string') {
66
- return false;
67
- }
68
- // If properties is present, it must be an object
69
- if (obj.properties !== undefined && (typeof obj.properties !== 'object' || obj.properties === null)) {
70
- return false;
71
- }
72
- return true;
73
- }
74
- function isValidPropertyDef(value) {
75
- if (value === null || typeof value !== 'object') {
76
- return false;
77
- }
78
- const obj = value;
79
- if (obj.type !== undefined && typeof obj.type !== 'string') {
80
- return false;
81
- }
82
- if (obj.items !== undefined) {
83
- if (typeof obj.items !== 'object' || obj.items === null) {
84
- return false;
85
- }
86
- const items = obj.items;
87
- if (items.type !== undefined && typeof items.type !== 'string') {
88
- return false;
89
- }
90
- }
91
- if (obj.$ref !== undefined && typeof obj.$ref !== 'string') {
92
- return false;
93
- }
94
- return true;
95
- }
96
- const REF_PATTERN = /^#\/(?:(?:definitions)|(?:\$defs))\/(.+)$/;
97
- function parseJsonRef(ref) {
98
- const match = REF_PATTERN.exec(ref);
99
- return match ? match[1] : null;
100
- }
101
- function applyJoinTables(parsed, joinRefs) {
102
- const seen = new Set();
103
- for (const ref of joinRefs) {
104
- const target = ref.targetTable;
105
- if (!target)
106
- continue;
107
- const joinName = `${ref.fromTable}_${target}_join`;
108
- if (seen.has(joinName))
109
- continue;
110
- seen.add(joinName);
111
- parsed.tables.push({
112
- name: joinName,
113
- namespace: '',
114
- fields: [
115
- { name: `${ref.fromTable}RowId`, type: 'uint64', isVector: false, defaultValue: undefined, attributes: ['required'] },
116
- { name: `${target}RowId`, type: 'uint64', isVector: false, defaultValue: undefined, attributes: ['required'] },
117
- ],
118
- isStruct: false,
119
- });
120
- }
121
- }
122
- // Parse FlatBuffer IDL schema
123
- export function parseFlatBufferIDL(source) {
124
- const result = {
125
- tables: [],
126
- enums: new Map(),
127
- };
128
- let currentNamespace = '';
129
- const lines = source.split('\n');
130
- let i = 0;
131
- while (i < lines.length) {
132
- const line = lines[i].trim();
133
- // Skip empty lines and comments
134
- if (!line || line.startsWith('//')) {
135
- i++;
136
- continue;
137
- }
138
- // Namespace
139
- const nsMatch = line.match(/^namespace\s+([\w.]+)\s*;/);
140
- if (nsMatch) {
141
- currentNamespace = nsMatch[1];
142
- i++;
143
- continue;
144
- }
145
- // Root type
146
- const rootMatch = line.match(/^root_type\s+(\w+)\s*;/);
147
- if (rootMatch) {
148
- result.rootType = rootMatch[1];
149
- i++;
150
- continue;
151
- }
152
- // Enum
153
- const enumMatch = line.match(/^enum\s+(\w+)\s*:\s*\w+\s*\{(.*)$/);
154
- if (enumMatch) {
155
- const enumName = enumMatch[1];
156
- const values = [];
157
- const addEnumValues = (chunk) => {
158
- for (const part of chunk.split(',')) {
159
- const token = part
160
- .replace(/\/\/.*$/, '')
161
- .trim()
162
- .split('=')[0]
163
- .trim();
164
- if (/^\w+$/.test(token)) {
165
- values.push(token);
166
- }
167
- }
168
- };
169
- // Handle both single-line and multi-line enum bodies.
170
- let remainder = enumMatch[2] ?? '';
171
- while (true) {
172
- const closeIndex = remainder.indexOf('}');
173
- if (closeIndex >= 0) {
174
- addEnumValues(remainder.slice(0, closeIndex));
175
- i++;
176
- break;
177
- }
178
- addEnumValues(remainder);
179
- i++;
180
- if (i >= lines.length) {
181
- break;
182
- }
183
- remainder = lines[i].trim();
184
- }
185
- result.enums.set(enumName, values);
186
- continue;
187
- }
188
- // Table or Struct
189
- const tableMatch = line.match(/^(table|struct)\s+(\w+)\s*\{/);
190
- if (tableMatch) {
191
- const isStruct = tableMatch[1] === 'struct';
192
- const tableName = tableMatch[2];
193
- const fields = [];
194
- i++;
195
- while (i < lines.length) {
196
- const fieldLine = lines[i].trim();
197
- if (fieldLine === '}') {
198
- i++;
199
- break;
200
- }
201
- // Parse field: name: type (attributes) = default;
202
- const fieldMatch = fieldLine.match(/^(\w+)\s*:\s*(\[?\w+\]?)\s*(?:\((.*?)\))?\s*(?:=\s*(.+?))?\s*;/);
203
- if (fieldMatch) {
204
- const isVector = fieldMatch[2].startsWith('[');
205
- const typeName = isVector ? fieldMatch[2].slice(1, -1) : fieldMatch[2];
206
- const attrs = fieldMatch[3] ? fieldMatch[3].split(',').map(a => a.trim()) : [];
207
- const defaultVal = fieldMatch[4];
208
- fields.push({
209
- name: fieldMatch[1],
210
- type: typeName,
211
- isVector,
212
- defaultValue: defaultVal,
213
- attributes: attrs,
214
- });
215
- }
216
- i++;
217
- }
218
- result.tables.push({
219
- name: tableName,
220
- namespace: currentNamespace,
221
- fields,
222
- isStruct,
223
- });
224
- continue;
225
- }
226
- i++;
227
- }
228
- return result;
229
- }
230
- // Parse JSON Schema with security validation
231
- export function parseJSONSchema(source) {
232
- // Security: Use safe JSON parse to prevent prototype pollution
233
- const rawSchema = safeJSONParse(source);
234
- // Security: Validate schema structure
235
- if (!isValidJSONSchema(rawSchema)) {
236
- throw new Error('Invalid JSON Schema: expected an object with valid structure');
237
- }
238
- const schema = rawSchema;
239
- const result = {
240
- tables: [],
241
- enums: new Map(),
242
- };
243
- const joinReferences = [];
244
- // Handle top-level object as a table
245
- if (schema.type === 'object' && schema.properties) {
246
- const tableName = schema.title || 'Root';
247
- const fields = [];
248
- // Security: Use Object.keys instead of Object.entries to avoid prototype chain
249
- const propNames = Object.keys(schema.properties);
250
- for (const propName of propNames) {
251
- // Security: Skip any forbidden keys that might have slipped through
252
- if (FORBIDDEN_KEYS.includes(propName)) {
253
- continue;
254
- }
255
- const propDef = schema.properties[propName];
256
- if (!isValidPropertyDef(propDef)) {
257
- continue; // Skip invalid property definitions
258
- }
259
- const prop = propDef;
260
- let type = 'string';
261
- let isVector = false;
262
- let refTarget = null;
263
- if (typeof prop.$ref === 'string') {
264
- refTarget = parseJsonRef(prop.$ref);
265
- }
266
- if (prop.type === 'integer') {
267
- type = 'int64';
268
- }
269
- else if (prop.type === 'number') {
270
- type = 'float64';
271
- }
272
- else if (prop.type === 'boolean') {
273
- type = 'bool';
274
- }
275
- else if (prop.type === 'string') {
276
- type = 'string';
277
- }
278
- else if (prop.type === 'array') {
279
- isVector = true;
280
- type = jsonTypeToFB(prop.items?.type || 'string');
281
- }
282
- else if (prop.type === 'object') {
283
- // Nested object - will be stored as BLOB (serialized FlatBuffer)
284
- type = propName;
285
- }
286
- if (refTarget) {
287
- type = 'uint64';
288
- isVector = false;
289
- joinReferences.push({ fromTable: tableName, columnName: propName, targetTable: refTarget });
290
- }
291
- // Handle enums
292
- if (prop.enum && Array.isArray(prop.enum)) {
293
- const enumValues = prop.enum.filter((v) => typeof v === 'string');
294
- result.enums.set(propName + 'Enum', enumValues);
295
- type = propName + 'Enum';
296
- }
297
- const attributes = prop.required ? ['required'] : [];
298
- if (refTarget) {
299
- attributes.push('indexed');
300
- }
301
- fields.push({
302
- name: propName,
303
- type,
304
- isVector,
305
- defaultValue: prop.default,
306
- attributes,
307
- });
308
- }
309
- result.tables.push({
310
- name: tableName,
311
- namespace: '',
312
- fields,
313
- isStruct: false,
314
- });
315
- result.rootType = tableName;
316
- }
317
- // Handle definitions (sub-schemas)
318
- const defs = schema.definitions || schema.$defs;
319
- if (defs && typeof defs === 'object') {
320
- const defNames = Object.keys(defs);
321
- for (const defName of defNames) {
322
- // Security: Skip forbidden keys
323
- if (FORBIDDEN_KEYS.includes(defName)) {
324
- continue;
325
- }
326
- const defSchema = defs[defName];
327
- if (!isValidJSONSchema(defSchema)) {
328
- continue;
329
- }
330
- const def = defSchema;
331
- if (def.type === 'object' && def.properties) {
332
- const fields = [];
333
- const defPropNames = Object.keys(def.properties);
334
- for (const propName of defPropNames) {
335
- if (FORBIDDEN_KEYS.includes(propName)) {
336
- continue;
337
- }
338
- const propDef = def.properties[propName];
339
- if (!isValidPropertyDef(propDef)) {
340
- continue;
341
- }
342
- const prop = propDef;
343
- let type = jsonTypeToFB(prop.type || 'string');
344
- let isVector = prop.type === 'array';
345
- let refTarget = null;
346
- if (isVector) {
347
- type = jsonTypeToFB(prop.items?.type || 'string');
348
- }
349
- if (typeof prop.$ref === 'string') {
350
- const parsedRef = parseJsonRef(prop.$ref);
351
- if (parsedRef) {
352
- refTarget = parsedRef;
353
- type = 'uint64';
354
- isVector = false;
355
- joinReferences.push({ fromTable: defName, columnName: propName, targetTable: refTarget });
356
- }
357
- }
358
- const attributes = [];
359
- if (refTarget) {
360
- attributes.push('indexed');
361
- }
362
- fields.push({
363
- name: propName,
364
- type,
365
- isVector,
366
- defaultValue: prop.default,
367
- attributes,
368
- });
369
- }
370
- result.tables.push({
371
- name: defName,
372
- namespace: '',
373
- fields,
374
- isStruct: false,
375
- });
376
- }
377
- }
378
- }
379
- applyJoinTables(result, joinReferences);
380
- return result;
381
- }
382
- function jsonTypeToFB(jsonType) {
383
- switch (jsonType) {
384
- case 'integer': return 'int64';
385
- case 'number': return 'float64';
386
- case 'boolean': return 'bool';
387
- case 'string': return 'string';
388
- default: return 'string';
389
- }
390
- }
391
- // Convert parsed schema to database schema
392
- export function toDBSchema(parsed, schemaName, source) {
393
- const tables = [];
394
- for (const table of parsed.tables) {
395
- const columns = [];
396
- // Add implicit rowid/sequence column
397
- columns.push({
398
- name: '_rowid',
399
- sqlType: SQLColumnType.INTEGER,
400
- flatbufferPath: [],
401
- fbTypeName: 'uint64',
402
- nullable: false,
403
- isPrimaryKey: true,
404
- isIndexed: true,
405
- });
406
- // Add _offset column for FlatBuffer lookup
407
- columns.push({
408
- name: '_offset',
409
- sqlType: SQLColumnType.INTEGER,
410
- flatbufferPath: [],
411
- fbTypeName: 'uint64',
412
- nullable: false,
413
- isPrimaryKey: false,
414
- isIndexed: false,
415
- });
416
- for (const field of table.fields) {
417
- const isRequired = field.attributes?.includes('required') ?? false;
418
- const isKey = field.attributes?.includes('key') ?? false;
419
- const isIndexed = field.attributes?.includes('indexed') ?? isKey;
420
- // Determine SQL type
421
- let sqlType;
422
- if (field.isVector) {
423
- sqlType = SQLColumnType.BLOB;
424
- }
425
- else if (parsed.enums.has(field.type)) {
426
- sqlType = SQLColumnType.INTEGER; // Enums stored as integers
427
- }
428
- else {
429
- sqlType = fbTypeToSQL(field.type);
430
- }
431
- columns.push({
432
- name: field.name,
433
- sqlType,
434
- flatbufferPath: [field.name],
435
- fbTypeName: field.type,
436
- nullable: !isRequired && !table.isStruct,
437
- defaultValue: field.defaultValue,
438
- isPrimaryKey: isKey,
439
- isIndexed,
440
- });
441
- }
442
- tables.push({
443
- name: table.name,
444
- fbTableName: table.name,
445
- fbNamespace: table.namespace,
446
- columns,
447
- primaryKey: ['_rowid'],
448
- indexes: columns.filter(c => c.isIndexed && c.name !== '_rowid').map(c => c.name),
449
- });
450
- }
451
- return {
452
- name: schemaName,
453
- tables,
454
- fbSchemaSource: source,
455
- version: 1,
456
- };
457
- }
458
- // Auto-detect and parse schema
459
- export function parseSchema(source, name = 'default') {
460
- // Security: Check size limit for all schema types
461
- if (source.length > MAX_SCHEMA_SIZE) {
462
- throw new Error(`Schema source exceeds maximum size of ${MAX_SCHEMA_SIZE} bytes`);
463
- }
464
- const trimmed = source.trim();
465
- // Try to detect if it's JSON
466
- if (trimmed.startsWith('{')) {
467
- const parsed = parseJSONSchema(source);
468
- return toDBSchema(parsed, name, source);
469
- }
470
- // Assume FlatBuffer IDL
471
- const parsed = parseFlatBufferIDL(source);
472
- return toDBSchema(parsed, name, source);
473
- }
474
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/schema/parser.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- export declare enum SQLColumnType {
2
- NULL = "NULL",
3
- INTEGER = "INTEGER",
4
- REAL = "REAL",
5
- TEXT = "TEXT",
6
- BLOB = "BLOB"
7
- }
8
- export interface ColumnDef {
9
- name: string;
10
- sqlType: SQLColumnType;
11
- flatbufferPath: string[];
12
- fbTypeName: string;
13
- nullable: boolean;
14
- defaultValue?: string | number | boolean | null;
15
- isPrimaryKey: boolean;
16
- isIndexed: boolean;
17
- }
18
- export interface TableDef {
19
- name: string;
20
- fbTableName: string;
21
- fbNamespace: string;
22
- columns: ColumnDef[];
23
- primaryKey: string[];
24
- indexes: string[];
25
- }
26
- export interface DatabaseSchema {
27
- name: string;
28
- tables: TableDef[];
29
- fbSchemaSource: string;
30
- version: number;
31
- }
32
- export declare function fbTypeToSQL(fbType: string): SQLColumnType;
33
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAEA,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAChD,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAqBzD"}
@@ -1,29 +0,0 @@
1
- // Schema types for FlatBuffers-SQLite
2
- export var SQLColumnType;
3
- (function (SQLColumnType) {
4
- SQLColumnType["NULL"] = "NULL";
5
- SQLColumnType["INTEGER"] = "INTEGER";
6
- SQLColumnType["REAL"] = "REAL";
7
- SQLColumnType["TEXT"] = "TEXT";
8
- SQLColumnType["BLOB"] = "BLOB";
9
- })(SQLColumnType || (SQLColumnType = {}));
10
- // FlatBuffer type to SQL type mapping
11
- export function fbTypeToSQL(fbType) {
12
- const type = fbType.toLowerCase();
13
- // Integer types
14
- if (['bool', 'byte', 'ubyte', 'int8', 'uint8', 'short', 'ushort', 'int16', 'uint16',
15
- 'int', 'uint', 'int32', 'uint32', 'long', 'ulong', 'int64', 'uint64'].includes(type)) {
16
- return SQLColumnType.INTEGER;
17
- }
18
- // Float types
19
- if (['float', 'float32', 'double', 'float64'].includes(type)) {
20
- return SQLColumnType.REAL;
21
- }
22
- // String type
23
- if (type === 'string') {
24
- return SQLColumnType.TEXT;
25
- }
26
- // Default to BLOB for complex types
27
- return SQLColumnType.BLOB;
28
- }
29
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,oCAAmB,CAAA;IACnB,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,8BAAa,CAAA;AACf,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AA6BD,sCAAsC;AACtC,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAElC,gBAAgB;IAChB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC9E,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1F,OAAO,aAAa,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,cAAc;IACd,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,aAAa,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,cAAc;IACd,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,oCAAoC;IACpC,OAAO,aAAa,CAAC,IAAI,CAAC;AAC5B,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './process-client.js';
2
- export * from './wasmedge-runner.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/standalone/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './process-client.js';
2
- export * from './wasmedge-runner.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/standalone/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
@@ -1,85 +0,0 @@
1
- type StandaloneQueryParam = null | boolean | number | string | Uint8Array;
2
- interface QueryResult {
3
- columns: string[];
4
- rows: unknown[][];
5
- }
6
- export interface FlatSQLWasmEdgeProcessRuntimeOptions {
7
- runnerPath: string;
8
- wasmPath?: string;
9
- env?: NodeJS.ProcessEnv;
10
- }
11
- declare class BinaryReader {
12
- private offset;
13
- private readonly data;
14
- constructor(data: Uint8Array);
15
- u8(): number;
16
- u32(): number;
17
- f64(): number;
18
- string(): string;
19
- bytes(): Uint8Array;
20
- private require;
21
- }
22
- declare class FlatSQLWasmEdgeProcess {
23
- private readonly child;
24
- private readonly pending;
25
- private stdout;
26
- private stderr;
27
- private closed;
28
- constructor(options: FlatSQLWasmEdgeProcessRuntimeOptions);
29
- request(payload: Uint8Array): Promise<BinaryReader>;
30
- close(): Promise<void>;
31
- private drainStdout;
32
- private rejectAll;
33
- }
34
- export declare class FlatSQLWasmEdgeProcessRuntime {
35
- private readonly process;
36
- constructor(options: FlatSQLWasmEdgeProcessRuntimeOptions);
37
- createDatabase(schema: string, dbName?: string): Promise<FlatSQLWasmEdgeProcessDatabase>;
38
- close(): Promise<void>;
39
- buildResponseArtifactCacheKey(schemaName: string, schemaVersion: string, sql: string, options?: {
40
- format?: string;
41
- publishEventKey?: string | null;
42
- projection?: readonly string[];
43
- params?: StandaloneQueryParam[];
44
- }): Promise<string>;
45
- }
46
- export declare class FlatSQLWasmEdgeProcessDatabase {
47
- private readonly process;
48
- private handle;
49
- constructor(process: FlatSQLWasmEdgeProcess, handle: number);
50
- destroy(): Promise<void>;
51
- registerFileId(fileId: string, tableName: string): Promise<void>;
52
- enableDemoExtractors(): Promise<void>;
53
- ingest(data: Uint8Array, source?: string | null): Promise<number>;
54
- ingestBuffers(buffers: Uint8Array[], source?: string | null): Promise<number>;
55
- ingestOne(data: Uint8Array, source?: string | null): Promise<number>;
56
- query(sql: string, params?: StandaloneQueryParam[]): Promise<QueryResult>;
57
- queryMany(queries: Array<{
58
- sql: string;
59
- params?: StandaloneQueryParam[];
60
- }>): Promise<QueryResult[]>;
61
- queryRawFlatBufferStream(sql: string, params?: StandaloneQueryParam[]): Promise<Uint8Array>;
62
- registerQueryTemplate(queryId: string, sql: string, cacheable?: boolean): Promise<void>;
63
- queryTemplate(queryId: string, params?: StandaloneQueryParam[]): Promise<QueryResult>;
64
- clearQueryCache(): Promise<void>;
65
- configureQueryCache({ maxEntries, maxRows }: {
66
- maxEntries: number;
67
- maxRows: number;
68
- }): Promise<void>;
69
- getQueryCacheStats(): Promise<{
70
- hits: number;
71
- misses: number;
72
- size: number;
73
- generation: number;
74
- maxEntries: number;
75
- maxRows: number;
76
- }>;
77
- getFlatBufferByIndex(tableName: string, indexName: string, keyParams?: StandaloneQueryParam[]): Promise<Uint8Array | null>;
78
- exportData(): Promise<Uint8Array>;
79
- loadAndRebuild(data: Uint8Array): Promise<void>;
80
- reserveStorageBytes(bytes: number): Promise<void>;
81
- loadAndRebuildFrom(sourceDb: FlatSQLWasmEdgeProcessDatabase): Promise<void>;
82
- }
83
- export declare function createFlatSQLWasmEdgeProcessRuntime(options: FlatSQLWasmEdgeProcessRuntimeOptions): FlatSQLWasmEdgeProcessRuntime;
84
- export {};
85
- //# sourceMappingURL=process-client.d.ts.map