@formata/stof 0.9.14 → 0.9.15

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 CHANGED
@@ -1,101 +1,136 @@
1
- # STOF: Data that carries its own logic
1
+ # Stof: Data + Logic, Anywhere
2
+ ### Standard Transformation and Organization Format
2
3
 
3
- <p align="center">
4
+ <p align="left">
4
5
  <a href="https://docs.stof.dev" style="margin: 3px"><img src="https://img.shields.io/badge/docs-docs.stof.dev-purple?logo=gitbook&logoColor=white"></a>
5
6
  <a href="https://github.com/dev-formata-io/stof" style="margin: 3px"><img src="https://img.shields.io/github/stars/dev-formata-io/stof"></a>
6
7
  <a href="https://github.com/dev-formata-io/stof/actions" style="margin: 3px"><img src="https://img.shields.io/github/actions/workflow/status/dev-formata-io/stof/rust.yml"></a>
8
+ <a href="https://www.npmjs.com/package/@formata/stof"><img src="https://img.shields.io/npm/d18m/%40formata%2Fstof?label=npm%3A%40formata%2Fstof&color=orange"></a>
7
9
  <a href="https://crates.io/crates/stof" style="margin: 3px"><img src="https://img.shields.io/crates/d/stof?label=crate%20downloads&color=aqua"></a>
8
10
  <a href="https://crates.io/crates/stof" style="margin: 3px"><img src="https://img.shields.io/crates/l/stof?color=maroon"></a>
9
11
  </p>
10
12
 
11
- ### Standard Transformation and Organization Format
12
-
13
+ - [Site](https://stof.dev)
13
14
  - [Docs](https://docs.stof.dev)
14
15
  - [Playground](https://play.stof.dev)
15
16
  - [GitHub](https://github.com/dev-formata-io/stof)
16
17
  - [Discord](https://discord.gg/Up5kxdeXZt)
17
- - [Install](https://docs.stof.dev/book/installation)
18
18
 
19
19
  <br/>
20
20
 
21
- ![Alt](https://repobeats.axiom.co/api/embed/efbc3324d289ccfb6d7825c840491d10ea1d5260.svg "Repobeats analytics image")
22
-
23
21
  ## Overview
24
- Send functions + data over APIs, write configs that validate themselves, build data pipelines where transformations travel with the data, store logic + data in a database, etc.
25
-
26
- > Works with JSON, YAML, TOML, etc. - no migration needed.
22
+ Data and logic have always been separate. That makes things hard. Stof puts them together.
27
23
 
28
- > Add/import logic only where required.
24
+ A portable document format where validation, functions, and behavior live alongside the data they belong to, in one document, across any service, language, or runtime.
29
25
 
30
- Treats everything uniformly - fields, functions, PDFs, images, binaries, etc. - as data that can be combined in a single portable document.
26
+ > Works with JSON, YAML, TOML, etc. out of the box for seamless interchange. Add sandboxed logic as data where you need it for immediate eval/transforms.
31
27
 
32
- ### Benefits
33
- - Write data + logic once, use it everywhere (JS, Rust, Python, anywhere your app lives)
34
- - Format-agnostic I/O (works with JSON, YAML, TOML, PDF, binaries, etc.)
35
- - Sandboxed logic + execution in your data (as data)
36
- - Send functions over APIs
37
- - Doesn't need a large ecosystem to work
28
+ > Built with Stof: [Limitr](https://limitr.dev) is an open source pricing and enforcement engine. The entire policy - plans, credits, limits, validation logic - lives in a single Stof document.
38
29
 
39
- ### Example Use-Cases
40
- - Smart configs with validation and logic
41
- - Data interchange with sandboxed execution
42
- - Prompts as human-readable & maintainable data + code
43
- - AI/LLM workflows and model configs
44
- - Data pipelines with built-in processing
45
- - Integration glue between systems
46
- - Self-describing datasets
47
- - ... basically anywhere data meets logic
30
+ ## Define Data and Logic Together - Combine/Split as Needed
31
+ `npm i @formata/stof`
32
+ ```typescript
33
+ import { stofAsync } from '@formata/stof';
48
34
 
49
- ### Sample Stof
50
- Check out the online [playground](https://play.stof.dev) for examples you can play with yourself.
51
- ```rust
52
- #[attributes("optional exec control | metadata | meta-logic")]
53
- // A field on the doc "root" node.
54
- field: 42
55
-
56
- // JSON-like data & function organization
57
- stats: {
58
- // Optional field types & expressions
59
- prompt context: prompt("trees of strings", tag="optional-xml-tag",
60
- prompt("behaves like a tree for workflows & functions"),
61
- prompt("just cast to/from str anywhere strings are needed")
62
- // Std.prompt(..) can take N prompts as sub-prompts
63
- );
35
+ const doc = await stofAsync`{
36
+ json: '{"plans":{"pro":{"label":"Pro","price":{"amount":20},"entitlements":{"ai_chat":{"description":"AI Chat Feature","limit":{"credit":"chat-token","value":100000,"resets":true,"reset_inc":1.0}}}}}}'
37
+ yaml: ''
64
38
 
65
- // Units as types with conversions & casting
66
- cm height: 6ft + 2in
67
- MiB memory: 2MB + 50GiB - 5GB + 1TB
68
- ms ttl: 300s
69
- }
39
+ fn transform() {
40
+ const policy = new {};
41
+ parse(self.json, policy, 'json');
42
+
43
+ policy.plans.pro.price.amount = 50;
44
+ const entitlements = policy.plans.pro.entitlements;
45
+ entitlements.ai_chat.limit.value *= 2;
46
+
47
+ self.yaml = stringify('yaml', policy);
48
+ Std.pln(self.yaml);
49
+ }
50
+ }`;
51
+ doc.lib('Std', 'pln', (...args: unknown[])=>console.log(...args));
70
52
 
71
- #[main]
72
- /// The CLI (and other envs) use the #[main] attribute for which fns to call on run.
73
- fn do_something() {
74
- // Dot separated path navigation of the document (self is the current node/obj)
75
- let gone = self.self_destruction();
76
- assert(gone);
77
-
78
- // async functions, blocks, and expressions always available
79
- async {
80
- const now = Time.now();
81
- loop {
82
- sleep(20ms);
83
- if (Time.diff(now) > 2s) break;
84
- }
53
+ await doc.call('transform');
54
+ ```
55
+ ```bash
56
+ bun run transform.ts
57
+ plans:
58
+ pro:
59
+ label: Pro
60
+ price:
61
+ amount: 50
62
+ entitlements:
63
+ ai_chat:
64
+ description: AI Chat Feature
65
+ limit:
66
+ credit: chat-token
67
+ value: 200000
68
+ resets: true
69
+ reset_inc: 1.0
70
+ ```
71
+
72
+ ## Units & Types
73
+ Rich type system for accuracy and consistency across environments + conversions (time, memory e.g. GB or MiB, temperature, etc.).
74
+
75
+ ```typescript
76
+ import { stofAsync } from '../doc.ts';
77
+
78
+ const doc = await stofAsync`
79
+ #[type]
80
+ Point: {
81
+ meters x: 0
82
+ meters y: 0
83
+
84
+ fn dist(other: Point) -> m {
85
+ Num.sqrt((other.x - self.x).pow(2) + (other.y - self.y).pow(2))
85
86
  }
87
+ }
86
88
 
87
- // partial I/O with any format
88
- pln(stringify("toml", self.stats));
89
+ Point reference: {
90
+ x: 1ft
91
+ y: 2ft
89
92
  }
90
93
 
91
- /**
92
- * A function that removes itself from this document when executed.
93
- */
94
- fn self_destruction() -> bool {
95
- pln(self.field); // Std.pln(..) print line function
96
- drop(this); // "this" is always the last fn on the call stack
97
- true // "return" keyword is optional (no ";")
94
+ fn distance(imported_json: str) -> inches {
95
+ const imported = new {};
96
+ parse(imported_json, imported, 'json');
97
+ (self.reference.dist(imported) as inches).round(2)
98
98
  }
99
+ `;
100
+
101
+ const dist = await doc.call('distance', '{ "x": 3, "y": 4 }');
102
+ console.log(dist); // 170.52
103
+ ```
104
+
105
+ ## Self-Expanding Contexts
106
+ Documents evolve over time. Stof can even parse itself for immediate use in the same call.
107
+
108
+ Small surface area, always sandboxed (wasm + host libs), ultra portable, and quick.
109
+
110
+ ```typescript
111
+ import { stofAsync } from '@formata/stof';
112
+
113
+ const doc = await stofAsync`
114
+ api: {}
115
+
116
+ fn load_api(stof: str) {
117
+ parse(stof, self.api); // parses itself
118
+ }`;
119
+
120
+ const api = `
121
+ name: 'Stof'
122
+ fn message() -> str { 'Hello, ' + self.name ?? 'World' + '!!' }
123
+
124
+ #[main]
125
+ fn main() {
126
+ pln(self.message());
127
+ }`;
128
+
129
+ doc.lib('Std', 'pln', (...args: unknown[])=>console.log(...args));
130
+ await doc.call('load_api', api);
131
+ await doc.run(); // calls #[main] funcs - see docs
132
+
133
+ // Hello, Stof
99
134
  ```
100
135
 
101
136
  ## CLI
@@ -112,13 +147,13 @@ fn say_hi() {
112
147
  Hello, world!
113
148
  ```
114
149
 
115
- ## Embedded Stof
116
- Stof is written in Rust, and is meant to be used wherever you work. Join the project [Discord](https://discord.gg/Up5kxdeXZt) to get involved.
150
+ ## Embedded
151
+ Stof is written in Rust, but use it where you work. Join the project [Discord](https://discord.gg/Up5kxdeXZt) to contribute.
117
152
 
118
153
  ### Rust
119
154
  ``` toml
120
155
  [dependencies]
121
- stof = "0.8.*"
156
+ stof = "0.9.*"
122
157
  ```
123
158
  ```rust
124
159
  use stof::model::Graph;
@@ -141,9 +176,7 @@ fn main() {
141
176
  ```
142
177
 
143
178
  ### Python
144
- Stof is available on [PyPi](https://pypi.org/project/stof). Just `pip install stof` and import the `pystof` module to get started.
145
-
146
- > A few examples are located in the *src/py/examples* folder.
179
+ `pip install stof`
147
180
 
148
181
  ```python
149
182
  from pystof import Doc
@@ -173,11 +206,7 @@ if __name__ == "__main__":
173
206
  ```
174
207
 
175
208
  ### JavaScript/TypeScript
176
-
177
- #### Installation
178
- ```bash
179
- npm install @formata/stof
180
- ```
209
+ `npm i @formata/stof`
181
210
 
182
211
  #### Initialization
183
212
  Stof uses WebAssembly, so make sure to initialize it once.
@@ -197,12 +226,10 @@ import { initStof } from '@formata/stof';
197
226
  import stofWasm from '@formata/stof/wasm';
198
227
  await initStof(await stofWasm());
199
228
  ```
200
-
201
- #### Quick Start
202
229
  ```typescript
203
230
  import { initStof, StofDoc } from '@formata/stof';
204
231
 
205
- // Initialize once at startup
232
+ // Initialize wasm once at startup
206
233
  await initStof();
207
234
 
208
235
  // Create and parse documents
@@ -222,8 +249,6 @@ console.log(doc.get('age')); // 30
222
249
  ```
223
250
 
224
251
  #### JavaScript Interop
225
-
226
- Call JavaScript functions from Stof:
227
252
  ```typescript
228
253
  await initStof();
229
254
  const doc = new StofDoc();
@@ -233,7 +258,7 @@ doc.lib('console', 'log', (...args: unknown[]) => console.log(...args));
233
258
  doc.lib('fetch', 'get', async (url: string) => {
234
259
  const res = await fetch(url);
235
260
  return await res.json();
236
- }, true); // true = async function
261
+ }, true); // true = async function - full support
237
262
 
238
263
  doc.parse(`
239
264
  fn main() {
@@ -257,15 +282,6 @@ const obj = doc.record(); // JavaScript object
257
282
 
258
283
  **Supports**: Node.js, Browser, Deno, Bun, Edge runtimes
259
284
 
260
- ## Research & Exploration
261
- Stof explores several research areas:
262
-
263
- - Practical code mobility at scale with modern type systems
264
- - Security models for distributed computation-as-data
265
- - Performance characteristics of serializable computation vs traditional RPC
266
- - Formal semantics for "code as data" in distributed systems
267
- - Edge computing, data pipelines, and collaborative systems
268
-
269
285
  ## License
270
286
  Apache 2.0. See LICENSE for details.
271
287
 
package/dist/doc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../doc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../doc.ts"],"names":[],"mappings":"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"}
package/dist/doc.js CHANGED
@@ -200,7 +200,8 @@ export class StofDoc {
200
200
  */
201
201
  // deno-lint-ignore ban-types
202
202
  lib(library, name, func, is_async = false) {
203
- this.stof.js_library_function(new StofFunc(library, name, func, is_async));
203
+ const docid = this.stof.docid();
204
+ this.stof.js_library_function(new StofFunc(docid, library, name, func, is_async));
204
205
  }
205
206
  /**
206
207
  * Run this document with a given set of Stof attributes.
package/dist/doc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"doc.js","sourceRoot":"","sources":["../doc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doc.js","sourceRoot":"","sources":["../doc.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,10 @@ export class Stof {
53
53
  * Otherwise, pass an array of arguments as args.
54
54
  */
55
55
  call(path: string, args: any): Promise<any>;
56
+ /**
57
+ * Get the ID of this document as a string.
58
+ */
59
+ docid(): string;
56
60
  /**
57
61
  * Parse Stof into this document, optionally within the specified node (pass null for root node).
58
62
  */
@@ -78,7 +82,11 @@ export class StofFunc {
78
82
  /**
79
83
  * Create a new Stof function from a JS function.
80
84
  */
81
- constructor(library: string, name: string, js_function: any, is_async: boolean);
85
+ constructor(docid: string, library: string, name: string, js_function: any, is_async: boolean);
86
+ /**
87
+ * Doc id for this function.
88
+ */
89
+ docid(): string;
82
90
  }
83
91
 
84
92
  export function start(): void;
@@ -93,6 +101,7 @@ export interface InitOutput {
93
101
  readonly stof_binaryExport: (a: number, b: number, c: number, d: any) => [number, number, number];
94
102
  readonly stof_binaryImport: (a: number, b: any, c: number, d: number, e: any, f: number, g: number) => [number, number, number];
95
103
  readonly stof_call: (a: number, b: number, c: number, d: any) => any;
104
+ readonly stof_docid: (a: number) => [number, number];
96
105
  readonly stof_get: (a: number, b: number, c: number, d: any) => any;
97
106
  readonly stof_js_library_function: (a: number, b: number) => void;
98
107
  readonly stof_new: () => number;
@@ -104,7 +113,8 @@ export interface InitOutput {
104
113
  readonly stof_stringImport: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number) => [number, number, number];
105
114
  readonly stof_sync_call: (a: number, b: number, c: number, d: any) => [number, number, number];
106
115
  readonly stof_sync_run: (a: number, b: any) => [number, number, number, number];
107
- readonly stoffunc_new: (a: number, b: number, c: number, d: number, e: any, f: number) => number;
116
+ readonly stoffunc_docid: (a: number) => [number, number];
117
+ readonly stoffunc_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: any, h: number) => number;
108
118
  readonly wasm_bindgen__convert__closures_____invoke__h53d5cf04cab8438f: (a: number, b: number, c: any) => void;
109
119
  readonly wasm_bindgen__closure__destroy__h72b14ab7db8750ca: (a: number, b: number) => void;
110
120
  readonly wasm_bindgen__convert__closures_____invoke__ha84735728bfe97a9: (a: number, b: number, c: any, d: any) => void;
package/dist/pkg/stof.js CHANGED
@@ -414,6 +414,22 @@ export class Stof {
414
414
  const ret = wasm.stof_call(this.__wbg_ptr, ptr0, len0, args);
415
415
  return ret;
416
416
  }
417
+ /**
418
+ * Get the ID of this document as a string.
419
+ * @returns {string}
420
+ */
421
+ docid() {
422
+ let deferred1_0;
423
+ let deferred1_1;
424
+ try {
425
+ const ret = wasm.stof_docid(this.__wbg_ptr);
426
+ deferred1_0 = ret[0];
427
+ deferred1_1 = ret[1];
428
+ return getStringFromWasm0(ret[0], ret[1]);
429
+ } finally {
430
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
431
+ }
432
+ }
417
433
  /**
418
434
  * Parse Stof into this document, optionally within the specified node (pass null for root node).
419
435
  * @param {string} stof
@@ -494,21 +510,40 @@ export class StofFunc {
494
510
  }
495
511
  /**
496
512
  * Create a new Stof function from a JS function.
513
+ * @param {string} docid
497
514
  * @param {string} library
498
515
  * @param {string} name
499
516
  * @param {any} js_function
500
517
  * @param {boolean} is_async
501
518
  */
502
- constructor(library, name, js_function, is_async) {
503
- const ptr0 = passStringToWasm0(library, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
519
+ constructor(docid, library, name, js_function, is_async) {
520
+ const ptr0 = passStringToWasm0(docid, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
504
521
  const len0 = WASM_VECTOR_LEN;
505
- const ptr1 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
522
+ const ptr1 = passStringToWasm0(library, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
506
523
  const len1 = WASM_VECTOR_LEN;
507
- const ret = wasm.stoffunc_new(ptr0, len0, ptr1, len1, js_function, is_async);
524
+ const ptr2 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
525
+ const len2 = WASM_VECTOR_LEN;
526
+ const ret = wasm.stoffunc_new(ptr0, len0, ptr1, len1, ptr2, len2, js_function, is_async);
508
527
  this.__wbg_ptr = ret >>> 0;
509
528
  StofFuncFinalization.register(this, this.__wbg_ptr, this);
510
529
  return this;
511
530
  }
531
+ /**
532
+ * Doc id for this function.
533
+ * @returns {string}
534
+ */
535
+ docid() {
536
+ let deferred1_0;
537
+ let deferred1_1;
538
+ try {
539
+ const ret = wasm.stoffunc_docid(this.__wbg_ptr);
540
+ deferred1_0 = ret[0];
541
+ deferred1_1 = ret[1];
542
+ return getStringFromWasm0(ret[0], ret[1]);
543
+ } finally {
544
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
545
+ }
546
+ }
512
547
  }
513
548
  if (Symbol.dispose) StofFunc.prototype[Symbol.dispose] = StofFunc.prototype.free;
514
549
 
@@ -980,8 +1015,8 @@ function __wbg_get_imports() {
980
1015
  const ret = BigInt.asUintN(64, arg0);
981
1016
  return ret;
982
1017
  };
983
- imports.wbg.__wbindgen_cast_93726e9b341af21e = function(arg0, arg1) {
984
- // Cast intrinsic for `Closure(Closure { dtor_idx: 7039, function: Function { arguments: [Externref], shim_idx: 7040, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1018
+ imports.wbg.__wbindgen_cast_79b583b6f4ba1f12 = function(arg0, arg1) {
1019
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 7050, function: Function { arguments: [Externref], shim_idx: 7051, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
985
1020
  const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h72b14ab7db8750ca, wasm_bindgen__convert__closures_____invoke__h53d5cf04cab8438f);
986
1021
  return ret;
987
1022
  };
Binary file
@@ -7,6 +7,7 @@ export const start: () => void;
7
7
  export const stof_binaryExport: (a: number, b: number, c: number, d: any) => [number, number, number];
8
8
  export const stof_binaryImport: (a: number, b: any, c: number, d: number, e: any, f: number, g: number) => [number, number, number];
9
9
  export const stof_call: (a: number, b: number, c: number, d: any) => any;
10
+ export const stof_docid: (a: number) => [number, number];
10
11
  export const stof_get: (a: number, b: number, c: number, d: any) => any;
11
12
  export const stof_js_library_function: (a: number, b: number) => void;
12
13
  export const stof_new: () => number;
@@ -18,7 +19,8 @@ export const stof_stringExport: (a: number, b: number, c: number, d: any) => [nu
18
19
  export const stof_stringImport: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number) => [number, number, number];
19
20
  export const stof_sync_call: (a: number, b: number, c: number, d: any) => [number, number, number];
20
21
  export const stof_sync_run: (a: number, b: any) => [number, number, number, number];
21
- export const stoffunc_new: (a: number, b: number, c: number, d: number, e: any, f: number) => number;
22
+ export const stoffunc_docid: (a: number) => [number, number];
23
+ export const stoffunc_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: any, h: number) => number;
22
24
  export const wasm_bindgen__convert__closures_____invoke__h53d5cf04cab8438f: (a: number, b: number, c: any) => void;
23
25
  export const wasm_bindgen__closure__destroy__h72b14ab7db8750ca: (a: number, b: number) => void;
24
26
  export const wasm_bindgen__convert__closures_____invoke__ha84735728bfe97a9: (a: number, b: number, c: any, d: any) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formata/stof",
3
- "version": "0.9.14",
3
+ "version": "0.9.15",
4
4
  "type": "module",
5
5
  "main": "./dist/doc.js",
6
6
  "types": "./dist/doc.d.ts",