@formata/stof 0.9.6 → 0.9.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.
- package/README.md +54 -25
- package/dist/doc.d.ts +27 -4
- package/dist/doc.d.ts.map +1 -1
- package/dist/doc.js +134 -15
- package/dist/doc.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -173,42 +173,71 @@ if __name__ == "__main__":
|
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
### JavaScript/TypeScript
|
|
176
|
-
Stof is compiled to WebAssembly for embedding in JS, and a [JSR](https://jsr.io/@formata/stof) package is provided.
|
|
177
176
|
|
|
178
|
-
|
|
177
|
+
#### Installation
|
|
178
|
+
```bash
|
|
179
|
+
npm install @formata/stof
|
|
180
|
+
```
|
|
179
181
|
|
|
182
|
+
#### Quick Start
|
|
180
183
|
```typescript
|
|
181
|
-
import { StofDoc } from '@formata/stof';
|
|
182
|
-
const doc = await StofDoc.new();
|
|
184
|
+
import { initStof, StofDoc } from '@formata/stof';
|
|
183
185
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const res = new Map();
|
|
187
|
-
res.set('msg', 'hello, there');
|
|
188
|
-
res.set('nested', await (async (): Promise<string> => 'this is a nested async JS fn (like fetch)')());
|
|
189
|
-
return res;
|
|
190
|
-
}, true);
|
|
186
|
+
// Initialize once at startup
|
|
187
|
+
await initStof();
|
|
191
188
|
|
|
189
|
+
// Create and parse documents
|
|
190
|
+
const doc = new StofDoc();
|
|
192
191
|
doc.parse(`
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
self.field
|
|
192
|
+
name: "Alice"
|
|
193
|
+
age: 30
|
|
194
|
+
fn greet() -> string {
|
|
195
|
+
"Hello, " + self.name
|
|
198
196
|
}
|
|
199
197
|
`);
|
|
200
|
-
const field = await doc.call('main');
|
|
201
|
-
console.log(field);
|
|
202
198
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
208
|
-
42
|
|
209
|
-
*/
|
|
199
|
+
// Call functions and access values
|
|
200
|
+
const greeting = await doc.call('greet');
|
|
201
|
+
console.log(greeting); // "Hello, Alice"
|
|
202
|
+
console.log(doc.get('age')); // 30
|
|
210
203
|
```
|
|
211
204
|
|
|
205
|
+
#### JavaScript Interop
|
|
206
|
+
|
|
207
|
+
Call JavaScript functions from Stof:
|
|
208
|
+
```typescript
|
|
209
|
+
await initStof();
|
|
210
|
+
const doc = new StofDoc();
|
|
211
|
+
|
|
212
|
+
// Register JS functions
|
|
213
|
+
doc.lib('console', 'log', (...args: unknown[]) => console.log(...args));
|
|
214
|
+
doc.lib('fetch', 'get', async (url: string) => {
|
|
215
|
+
const res = await fetch(url);
|
|
216
|
+
return await res.json();
|
|
217
|
+
}, true); // true = async function
|
|
218
|
+
|
|
219
|
+
doc.parse(`
|
|
220
|
+
fn main() {
|
|
221
|
+
const data = await fetch.get("https://api.example.com/data");
|
|
222
|
+
console.log(data);
|
|
223
|
+
}
|
|
224
|
+
`);
|
|
225
|
+
|
|
226
|
+
await doc.call('main');
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
#### Parse & Export
|
|
230
|
+
```typescript
|
|
231
|
+
// Parse from JSON
|
|
232
|
+
doc.parse({ name: "Bob", age: 25 });
|
|
233
|
+
|
|
234
|
+
// Export to different formats
|
|
235
|
+
const json = doc.stringify('json');
|
|
236
|
+
const obj = doc.record(); // JavaScript object
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Supports**: Node.js, Browser, Deno, Bun, Edge runtimes
|
|
240
|
+
|
|
212
241
|
## Research & Exploration
|
|
213
242
|
Stof explores several research areas:
|
|
214
243
|
|
package/dist/doc.d.ts
CHANGED
|
@@ -1,29 +1,43 @@
|
|
|
1
1
|
import { Stof } from './pkg/stof.js';
|
|
2
2
|
export * from './pkg/stof.js';
|
|
3
|
+
/**
|
|
4
|
+
* Auto-initialize Stof WASM for any environment.
|
|
5
|
+
* Detects Node.js vs Browser and loads the WASM file appropriately.
|
|
6
|
+
*/
|
|
7
|
+
export declare function initStof(wasmSource?: string | BufferSource): Promise<unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Check if Stof WASM is initialized.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isStofInitialized(): boolean;
|
|
3
12
|
/**
|
|
4
13
|
* Template function for a document.
|
|
5
14
|
* Stof must be initialized before with `await Doc.initialize()`.
|
|
6
15
|
*/
|
|
7
16
|
export declare function stof(strings: TemplateStringsArray, ...values: unknown[]): StofDoc;
|
|
17
|
+
/**
|
|
18
|
+
* Async template function that auto-initializes.
|
|
19
|
+
*/
|
|
20
|
+
export declare function stofAsync(strings: TemplateStringsArray, ...values: unknown[]): Promise<StofDoc>;
|
|
8
21
|
/**
|
|
9
22
|
* Stof document.
|
|
10
23
|
*/
|
|
11
24
|
export declare class StofDoc {
|
|
12
|
-
|
|
25
|
+
static readonly VERSION = "0.9.6";
|
|
13
26
|
private static initialized?;
|
|
14
|
-
|
|
27
|
+
private static wasmGate;
|
|
15
28
|
stof: Stof;
|
|
16
29
|
/**
|
|
17
30
|
* Initialize Stof WASM.
|
|
31
|
+
* Use initStof() instead for automatic environment detection.
|
|
18
32
|
*/
|
|
19
|
-
static initialize(data?:
|
|
33
|
+
static initialize(data?: BufferSource | string): Promise<unknown>;
|
|
20
34
|
/**
|
|
21
35
|
* Constructor.
|
|
22
36
|
* Make sure to call initalize before using.
|
|
23
37
|
*/
|
|
24
38
|
constructor(stof?: Stof);
|
|
25
39
|
/**
|
|
26
|
-
*
|
|
40
|
+
* Ensure stof is initialized before creating a new instance.
|
|
27
41
|
*/
|
|
28
42
|
static new(): Promise<StofDoc>;
|
|
29
43
|
/**
|
|
@@ -84,6 +98,15 @@ export declare class StofDoc {
|
|
|
84
98
|
* To JS record.
|
|
85
99
|
*/
|
|
86
100
|
record(node?: string | null): Record<string, unknown>;
|
|
101
|
+
/**
|
|
102
|
+
* Free WASM resources.
|
|
103
|
+
* Call this when you're done with the document to prevent memory leaks.
|
|
104
|
+
*/
|
|
105
|
+
dispose(): void;
|
|
106
|
+
/**
|
|
107
|
+
* Create a deep copy of this document.
|
|
108
|
+
*/
|
|
109
|
+
clone(): Promise<StofDoc>;
|
|
87
110
|
/*****************************************************************************
|
|
88
111
|
* Network.
|
|
89
112
|
*****************************************************************************/
|
package/dist/doc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../doc.ts"],"names":[],"mappings":"AAiBA,OAAa,EAAE,IAAI,EAAY,MAAM,eAAe,CAAC;AAErD,cAAc,eAAe,CAAC;AAG9B;;;GAGG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../doc.ts"],"names":[],"mappings":"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"}
|
package/dist/doc.js
CHANGED
|
@@ -17,11 +17,85 @@
|
|
|
17
17
|
import init, { Stof, StofFunc } from './pkg/stof.js';
|
|
18
18
|
// @deno-types="./pkg/stof.d.ts"
|
|
19
19
|
export * from './pkg/stof.js';
|
|
20
|
+
/**
|
|
21
|
+
* Auto-initialize Stof WASM for any environment.
|
|
22
|
+
* Detects Node.js vs Browser and loads the WASM file appropriately.
|
|
23
|
+
*/
|
|
24
|
+
export async function initStof(wasmSource) {
|
|
25
|
+
if (StofDoc['initialized']) {
|
|
26
|
+
return StofDoc['initialized'];
|
|
27
|
+
}
|
|
28
|
+
let wasmData;
|
|
29
|
+
if (wasmSource) {
|
|
30
|
+
// User provided WASM source
|
|
31
|
+
if (typeof wasmSource === 'string') {
|
|
32
|
+
// It's a file path (Node.js only)
|
|
33
|
+
// @ts-ignore - Node.js module, conditionally imported
|
|
34
|
+
const fs = await import('fs');
|
|
35
|
+
wasmData = fs.readFileSync(wasmSource);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
wasmData = wasmSource;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
// Auto-detect environment and load
|
|
43
|
+
// Check for Deno first (it has both process and Deno global)
|
|
44
|
+
// @ts-ignore - Deno global
|
|
45
|
+
const isDeno = typeof Deno !== 'undefined' && typeof Deno.version !== 'undefined';
|
|
46
|
+
// Then check for Node.js
|
|
47
|
+
// @ts-ignore - process is Node.js global
|
|
48
|
+
const isNode = !isDeno && typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
|
|
49
|
+
if (isNode) {
|
|
50
|
+
// @ts-ignore - Node.js modules, conditionally imported
|
|
51
|
+
const fs = await import('fs');
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
const { fileURLToPath } = await import('url');
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
const { dirname, join } = await import('path');
|
|
56
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
57
|
+
const __dirname = dirname(__filename);
|
|
58
|
+
const wasmPath = join(__dirname, './pkg/stof_bg.wasm');
|
|
59
|
+
wasmData = fs.readFileSync(wasmPath);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// Browser/Deno environment - use fetch with import.meta.url
|
|
63
|
+
const wasmUrl = new URL('./pkg/stof_bg.wasm', import.meta.url);
|
|
64
|
+
const response = await fetch(wasmUrl);
|
|
65
|
+
wasmData = await response.arrayBuffer();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return await StofDoc.initialize(wasmData);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check if Stof WASM is initialized.
|
|
72
|
+
*/
|
|
73
|
+
export function isStofInitialized() {
|
|
74
|
+
return StofDoc['initialized'] !== undefined;
|
|
75
|
+
}
|
|
20
76
|
/**
|
|
21
77
|
* Template function for a document.
|
|
22
78
|
* Stof must be initialized before with `await Doc.initialize()`.
|
|
23
79
|
*/
|
|
24
80
|
export function stof(strings, ...values) {
|
|
81
|
+
if (!StofDoc['initialized']) {
|
|
82
|
+
throw new Error('Stof not initialized. Call await initStof() first.');
|
|
83
|
+
}
|
|
84
|
+
const doc = new StofDoc();
|
|
85
|
+
let result = '';
|
|
86
|
+
for (let i = 0; i < strings.length; i++) {
|
|
87
|
+
result += strings[i];
|
|
88
|
+
if (i < values.length)
|
|
89
|
+
result += values[i];
|
|
90
|
+
}
|
|
91
|
+
doc.parse(result);
|
|
92
|
+
return doc;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Async template function that auto-initializes.
|
|
96
|
+
*/
|
|
97
|
+
export async function stofAsync(strings, ...values) {
|
|
98
|
+
await initStof();
|
|
25
99
|
const doc = new StofDoc();
|
|
26
100
|
let result = '';
|
|
27
101
|
for (let i = 0; i < strings.length; i++) {
|
|
@@ -32,16 +106,39 @@ export function stof(strings, ...values) {
|
|
|
32
106
|
doc.parse(result);
|
|
33
107
|
return doc;
|
|
34
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Internal gate to serialize WASM calls.
|
|
111
|
+
* Prevents race conditions and memory issues.
|
|
112
|
+
*/
|
|
113
|
+
class WasmGate {
|
|
114
|
+
constructor() {
|
|
115
|
+
this.tail = Promise.resolve();
|
|
116
|
+
}
|
|
117
|
+
run(fn) {
|
|
118
|
+
const next = this.tail.then(fn, fn);
|
|
119
|
+
this.tail = next.catch(() => { });
|
|
120
|
+
return next;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
35
123
|
/**
|
|
36
124
|
* Stof document.
|
|
37
125
|
*/
|
|
38
126
|
export class StofDoc {
|
|
39
127
|
/**
|
|
40
128
|
* Initialize Stof WASM.
|
|
129
|
+
* Use initStof() instead for automatic environment detection.
|
|
41
130
|
*/
|
|
42
|
-
static
|
|
43
|
-
|
|
44
|
-
|
|
131
|
+
static initialize(data) {
|
|
132
|
+
if (StofDoc.initialized) {
|
|
133
|
+
return StofDoc.initialized;
|
|
134
|
+
}
|
|
135
|
+
if (data) {
|
|
136
|
+
StofDoc.initialized = init({ module_or_path: data });
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
StofDoc.initialized = init();
|
|
140
|
+
}
|
|
141
|
+
return StofDoc.initialized;
|
|
45
142
|
}
|
|
46
143
|
/**
|
|
47
144
|
* Constructor.
|
|
@@ -51,10 +148,10 @@ export class StofDoc {
|
|
|
51
148
|
this.stof = stof;
|
|
52
149
|
}
|
|
53
150
|
/**
|
|
54
|
-
*
|
|
151
|
+
* Ensure stof is initialized before creating a new instance.
|
|
55
152
|
*/
|
|
56
153
|
static async new() {
|
|
57
|
-
await
|
|
154
|
+
await initStof();
|
|
58
155
|
return new StofDoc();
|
|
59
156
|
}
|
|
60
157
|
/**
|
|
@@ -98,7 +195,7 @@ export class StofDoc {
|
|
|
98
195
|
* Will run all #[main] functions by default.
|
|
99
196
|
*/
|
|
100
197
|
async run(attr = 'main') {
|
|
101
|
-
return await this.stof.run(attr);
|
|
198
|
+
return await StofDoc.wasmGate.run(() => this.stof.run(attr));
|
|
102
199
|
}
|
|
103
200
|
/**
|
|
104
201
|
* Run this document with a given set of Stof attributes (synchronously).
|
|
@@ -114,7 +211,7 @@ export class StofDoc {
|
|
|
114
211
|
async call(path, ...args) {
|
|
115
212
|
if (!path.includes('.'))
|
|
116
213
|
path = 'root.' + path; // assume root node if not specified
|
|
117
|
-
return await this.stof.call(path, args);
|
|
214
|
+
return await StofDoc.wasmGate.run(() => this.stof.call(path, args));
|
|
118
215
|
}
|
|
119
216
|
/**
|
|
120
217
|
* Call a specific Stof function by path/name.
|
|
@@ -160,6 +257,24 @@ export class StofDoc {
|
|
|
160
257
|
record(node = null) {
|
|
161
258
|
return JSON.parse(this.stringify('json', node));
|
|
162
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Free WASM resources.
|
|
262
|
+
* Call this when you're done with the document to prevent memory leaks.
|
|
263
|
+
*/
|
|
264
|
+
dispose() {
|
|
265
|
+
if (this.stof && typeof this.stof.free === 'function') {
|
|
266
|
+
this.stof.free();
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Create a deep copy of this document.
|
|
271
|
+
*/
|
|
272
|
+
async clone() {
|
|
273
|
+
const serialized = this.stof.binaryExport('bstf', null);
|
|
274
|
+
const doc = await StofDoc.new();
|
|
275
|
+
doc.stof.binaryImport(serialized, 'bstf', null, 'prod');
|
|
276
|
+
return doc;
|
|
277
|
+
}
|
|
163
278
|
/*****************************************************************************
|
|
164
279
|
* Network.
|
|
165
280
|
*****************************************************************************/
|
|
@@ -180,15 +295,19 @@ export class StofDoc {
|
|
|
180
295
|
* Send this document ('bstf' format) as an HTTP request.
|
|
181
296
|
*/
|
|
182
297
|
async send(url, method = 'POST', bearer, headers = {}) {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
298
|
+
return await StofDoc.wasmGate.run(async () => {
|
|
299
|
+
headers['Content-Type'] = 'application/bstf';
|
|
300
|
+
if (bearer !== undefined)
|
|
301
|
+
headers['Authorization'] = `Bearer ${bearer}`;
|
|
302
|
+
const body = this.stof.binaryExport('bstf', null); // Uint8Array
|
|
303
|
+
return await fetch(url, {
|
|
304
|
+
method,
|
|
305
|
+
headers: headers,
|
|
306
|
+
body
|
|
307
|
+
});
|
|
191
308
|
});
|
|
192
309
|
}
|
|
193
310
|
}
|
|
311
|
+
StofDoc.VERSION = '0.9.6';
|
|
312
|
+
StofDoc.wasmGate = new WasmGate();
|
|
194
313
|
//# sourceMappingURL=doc.js.map
|
package/dist/doc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc.js","sourceRoot":"","sources":["../doc.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AAEF,gCAAgC;AAChC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,gCAAgC;AAChC,cAAc,eAAe,CAAC;AAG9B;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAiB;IACpE,MAAM,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC;AACf,CAAC;AAGD;;GAEG;AACH,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"doc.js","sourceRoot":"","sources":["../doc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@formata/stof",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/doc.js",
|
|
6
6
|
"types": "./dist/doc.d.ts",
|
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
".": {
|
|
9
9
|
"types": "./dist/doc.d.ts",
|
|
10
10
|
"default": "./dist/doc.js"
|
|
11
|
-
}
|
|
11
|
+
},
|
|
12
|
+
"./stof_bg.wasm": "./dist/pkg/stof_bg.wasm"
|
|
12
13
|
},
|
|
14
|
+
"sideEffects": false,
|
|
13
15
|
"files": [
|
|
14
16
|
"dist",
|
|
15
17
|
"README.md",
|