@rcrsr/rill 0.8.0 → 0.8.2

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 (43) hide show
  1. package/README.md +28 -0
  2. package/dist/error-registry.d.ts.map +1 -1
  3. package/dist/error-registry.js +164 -0
  4. package/dist/error-registry.js.map +1 -1
  5. package/dist/ext/crypto/index.d.ts +32 -0
  6. package/dist/ext/crypto/index.d.ts.map +1 -0
  7. package/dist/ext/crypto/index.js +143 -0
  8. package/dist/ext/crypto/index.js.map +1 -0
  9. package/dist/ext/exec/index.d.ts +45 -0
  10. package/dist/ext/exec/index.d.ts.map +1 -0
  11. package/dist/ext/exec/index.js +168 -0
  12. package/dist/ext/exec/index.js.map +1 -0
  13. package/dist/ext/exec/runner.d.ts +62 -0
  14. package/dist/ext/exec/runner.d.ts.map +1 -0
  15. package/dist/ext/exec/runner.js +168 -0
  16. package/dist/ext/exec/runner.js.map +1 -0
  17. package/dist/ext/fetch/index.d.ts +68 -0
  18. package/dist/ext/fetch/index.d.ts.map +1 -0
  19. package/dist/ext/fetch/index.js +259 -0
  20. package/dist/ext/fetch/index.js.map +1 -0
  21. package/dist/ext/fetch/request.d.ts +90 -0
  22. package/dist/ext/fetch/request.d.ts.map +1 -0
  23. package/dist/ext/fetch/request.js +413 -0
  24. package/dist/ext/fetch/request.js.map +1 -0
  25. package/dist/ext/fs/index.d.ts +39 -0
  26. package/dist/ext/fs/index.d.ts.map +1 -0
  27. package/dist/ext/fs/index.js +560 -0
  28. package/dist/ext/fs/index.js.map +1 -0
  29. package/dist/ext/fs/sandbox.d.ts +78 -0
  30. package/dist/ext/fs/sandbox.d.ts.map +1 -0
  31. package/dist/ext/fs/sandbox.js +208 -0
  32. package/dist/ext/fs/sandbox.js.map +1 -0
  33. package/dist/ext/kv/index.d.ts +46 -0
  34. package/dist/ext/kv/index.d.ts.map +1 -0
  35. package/dist/ext/kv/index.js +215 -0
  36. package/dist/ext/kv/index.js.map +1 -0
  37. package/dist/ext/kv/store.d.ts +46 -0
  38. package/dist/ext/kv/store.d.ts.map +1 -0
  39. package/dist/ext/kv/store.js +256 -0
  40. package/dist/ext/kv/store.js.map +1 -0
  41. package/dist/generated/version-data.d.ts +1 -1
  42. package/dist/generated/version-data.js +2 -2
  43. package/package.json +37 -11
@@ -0,0 +1,256 @@
1
+ /**
2
+ * KV Store Implementation
3
+ *
4
+ * Provides JSON-based key-value persistence with schema validation.
5
+ * Lifecycle: Load (read store file) -> Execute (in-memory operations) -> Flush (atomic write on dispose)
6
+ */
7
+ import fs from 'node:fs/promises';
8
+ import path from 'node:path';
9
+ import { RuntimeError } from '../../error-classes.js';
10
+ // ============================================================
11
+ // STORE IMPLEMENTATION
12
+ // ============================================================
13
+ /**
14
+ * Create KV store with JSON persistence.
15
+ *
16
+ * @param config - Store configuration
17
+ * @returns Store operations object
18
+ * @throws RuntimeError if store file is corrupt (EC-25)
19
+ */
20
+ export async function createStore(config) {
21
+ // Apply defaults
22
+ const maxEntries = config.maxEntries ?? 10000;
23
+ const maxValueSize = config.maxValueSize ?? 102400; // 100KB
24
+ const maxStoreSize = config.maxStoreSize ?? 10485760; // 10MB
25
+ const writePolicy = config.writePolicy ?? 'dispose';
26
+ const schema = config.schema;
27
+ // Resolve store path
28
+ const storePath = path.resolve(config.store);
29
+ const storeDir = path.dirname(storePath);
30
+ // Ensure store directory exists
31
+ await fs.mkdir(storeDir, { recursive: true });
32
+ // In-memory data store
33
+ const data = new Map();
34
+ // ============================================================
35
+ // LOAD PHASE
36
+ // ============================================================
37
+ // Load existing store file or initialize with schema defaults
38
+ try {
39
+ const fileContent = await fs.readFile(storePath, 'utf-8');
40
+ const parsed = JSON.parse(fileContent);
41
+ // Validate and load entries
42
+ if (typeof parsed !== 'object' ||
43
+ parsed === null ||
44
+ Array.isArray(parsed)) {
45
+ // EC-25: Store file corrupt
46
+ throw new RuntimeError('RILL-R004', 'state file corrupt — reset or delete to recover', undefined, { path: storePath });
47
+ }
48
+ // Apply schema validation if in declared mode
49
+ if (schema) {
50
+ // Load declared keys with defaults, validate existing values
51
+ for (const [key, schemaEntry] of Object.entries(schema)) {
52
+ if (key in parsed) {
53
+ const value = parsed[key];
54
+ validateType(key, value, schemaEntry.type, storePath);
55
+ data.set(key, value);
56
+ }
57
+ else {
58
+ // Missing key - use default from schema
59
+ data.set(key, schemaEntry.default);
60
+ }
61
+ }
62
+ // Extra keys in file are dropped (not in schema)
63
+ }
64
+ else {
65
+ // Open mode - load all keys
66
+ for (const [key, value] of Object.entries(parsed)) {
67
+ data.set(key, value);
68
+ }
69
+ }
70
+ }
71
+ catch (error) {
72
+ if (error instanceof RuntimeError) {
73
+ throw error; // Re-throw our error
74
+ }
75
+ // Check if file doesn't exist (first run)
76
+ if (error &&
77
+ typeof error === 'object' &&
78
+ 'code' in error &&
79
+ error.code === 'ENOENT') {
80
+ // First run - initialize with schema defaults if declared mode
81
+ if (schema) {
82
+ for (const [key, schemaEntry] of Object.entries(schema)) {
83
+ data.set(key, schemaEntry.default);
84
+ }
85
+ }
86
+ // If open mode and file doesn't exist, data remains empty
87
+ }
88
+ else if (error instanceof SyntaxError) {
89
+ // JSON parse error
90
+ throw new RuntimeError('RILL-R004', 'state file corrupt — reset or delete to recover', undefined, { path: storePath });
91
+ }
92
+ else {
93
+ // Other filesystem error
94
+ throw error;
95
+ }
96
+ }
97
+ // ============================================================
98
+ // HELPERS
99
+ // ============================================================
100
+ /** Calculate size of a value in bytes */
101
+ function calculateValueSize(value) {
102
+ return Buffer.byteLength(JSON.stringify(value), 'utf-8');
103
+ }
104
+ /** Calculate total store size in bytes */
105
+ function calculateStoreSize() {
106
+ const entries = {};
107
+ for (const [key, value] of data.entries()) {
108
+ entries[key] = value;
109
+ }
110
+ return Buffer.byteLength(JSON.stringify(entries), 'utf-8');
111
+ }
112
+ /** Validate value type against schema */
113
+ function validateType(key, value, expectedType, location) {
114
+ let actualType;
115
+ if (typeof value === 'string') {
116
+ actualType = 'string';
117
+ }
118
+ else if (typeof value === 'number') {
119
+ actualType = 'number';
120
+ }
121
+ else if (typeof value === 'boolean') {
122
+ actualType = 'bool';
123
+ }
124
+ else if (Array.isArray(value)) {
125
+ actualType = 'list';
126
+ }
127
+ else if (typeof value === 'object' && value !== null) {
128
+ actualType = 'dict';
129
+ }
130
+ else {
131
+ actualType = typeof value;
132
+ }
133
+ // EC-21: Type mismatch
134
+ if (actualType !== expectedType) {
135
+ throw new RuntimeError('RILL-R004', `key "${key}" expects ${expectedType}, got ${actualType}`, undefined, { key, expectedType, actualType, location });
136
+ }
137
+ }
138
+ // ============================================================
139
+ // OPERATIONS
140
+ // ============================================================
141
+ /** Get value or schema default */
142
+ function get(key) {
143
+ // EC-20: Key not in schema (declared mode)
144
+ if (schema && !(key in schema)) {
145
+ throw new RuntimeError('RILL-R004', `key "${key}" not declared in schema`, undefined, { key });
146
+ }
147
+ return data.get(key);
148
+ }
149
+ /** Set value with validation */
150
+ async function set(key, value) {
151
+ // EC-20: Key not in schema (declared mode)
152
+ if (schema && !(key in schema)) {
153
+ throw new RuntimeError('RILL-R004', `key "${key}" not declared in schema`, undefined, { key });
154
+ }
155
+ // Validate type if in declared mode
156
+ if (schema && key in schema) {
157
+ validateType(key, value, schema[key].type, storePath);
158
+ }
159
+ // EC-22: Value exceeds maxValueSize
160
+ const valueSize = calculateValueSize(value);
161
+ if (valueSize > maxValueSize) {
162
+ throw new RuntimeError('RILL-R004', `value for "${key}" exceeds size limit`, undefined, { key, size: valueSize, max: maxValueSize });
163
+ }
164
+ // EC-24: Max entries exceeded (when adding new key)
165
+ if (!data.has(key) && data.size >= maxEntries) {
166
+ throw new RuntimeError('RILL-R004', `store exceeds entry limit (${data.size + 1} > ${maxEntries})`, undefined, { count: data.size + 1, max: maxEntries });
167
+ }
168
+ // Save old value for rollback (if key exists)
169
+ const oldValue = data.get(key);
170
+ const hadKey = data.has(key);
171
+ // Set value
172
+ data.set(key, value);
173
+ // EC-23: Store exceeds maxStoreSize
174
+ const storeSize = calculateStoreSize();
175
+ if (storeSize > maxStoreSize) {
176
+ // Rollback the set operation
177
+ if (hadKey) {
178
+ data.set(key, oldValue);
179
+ }
180
+ else {
181
+ data.delete(key);
182
+ }
183
+ throw new RuntimeError('RILL-R004', `store exceeds size limit (${storeSize} > ${maxStoreSize})`, undefined, { size: storeSize, max: maxStoreSize });
184
+ }
185
+ // Immediate write if policy is 'immediate'
186
+ if (writePolicy === 'immediate') {
187
+ await flush();
188
+ }
189
+ }
190
+ /** Delete key */
191
+ function deleteKey(key) {
192
+ return data.delete(key);
193
+ }
194
+ /** Get all keys */
195
+ function keys() {
196
+ return Array.from(data.keys());
197
+ }
198
+ /** Check key existence */
199
+ function has(key) {
200
+ return data.has(key);
201
+ }
202
+ /** Clear all keys */
203
+ function clear() {
204
+ data.clear();
205
+ // If in declared mode, restore schema defaults
206
+ if (schema) {
207
+ for (const [key, schemaEntry] of Object.entries(schema)) {
208
+ data.set(key, schemaEntry.default);
209
+ }
210
+ }
211
+ }
212
+ /** Get all entries as dict */
213
+ function getAll() {
214
+ const result = {};
215
+ for (const [key, value] of data.entries()) {
216
+ result[key] = value;
217
+ }
218
+ return result;
219
+ }
220
+ /** Flush data to disk (atomic write) */
221
+ async function flush() {
222
+ const entries = getAll();
223
+ const content = JSON.stringify(entries, null, 2);
224
+ // Atomic write: write to .tmp file, then rename
225
+ const tmpPath = `${storePath}.tmp`;
226
+ try {
227
+ await fs.writeFile(tmpPath, content, 'utf-8');
228
+ await fs.rename(tmpPath, storePath);
229
+ }
230
+ catch (error) {
231
+ // Flush failure - log warning, don't throw (per spec)
232
+ console.warn(`[KV Store] Failed to flush state to ${storePath}:`, error);
233
+ // Clean up tmp file if it exists
234
+ try {
235
+ await fs.unlink(tmpPath);
236
+ }
237
+ catch {
238
+ // Ignore cleanup errors
239
+ }
240
+ }
241
+ }
242
+ // ============================================================
243
+ // RETURN STORE OPERATIONS
244
+ // ============================================================
245
+ return {
246
+ get,
247
+ set,
248
+ delete: deleteKey,
249
+ keys,
250
+ has,
251
+ clear,
252
+ getAll,
253
+ flush,
254
+ };
255
+ }
256
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ext/kv/store.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export interface VersionInfo {
10
10
  /**
11
11
  * Version string from package.json
12
12
  */
13
- export declare const VERSION = "0.8.0";
13
+ export declare const VERSION = "0.8.2";
14
14
  /**
15
15
  * Parsed version components
16
16
  */
@@ -3,14 +3,14 @@
3
3
  /**
4
4
  * Version string from package.json
5
5
  */
6
- export const VERSION = '0.8.0';
6
+ export const VERSION = '0.8.2';
7
7
  /**
8
8
  * Parsed version components
9
9
  */
10
10
  export const VERSION_INFO = {
11
11
  major: 0,
12
12
  minor: 8,
13
- patch: 0,
13
+ patch: 2,
14
14
  prerelease: undefined,
15
15
  };
16
16
  //# sourceMappingURL=version-data.js.map
package/package.json CHANGED
@@ -1,12 +1,38 @@
1
1
  {
2
2
  "name": "@rcrsr/rill",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "Scripting designed for machine-generated code",
5
5
  "license": "MIT",
6
6
  "author": "Andre Bremer",
7
7
  "type": "module",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./ext/fs": {
16
+ "types": "./dist/ext/fs/index.d.ts",
17
+ "default": "./dist/ext/fs/index.js"
18
+ },
19
+ "./ext/fetch": {
20
+ "types": "./dist/ext/fetch/index.d.ts",
21
+ "default": "./dist/ext/fetch/index.js"
22
+ },
23
+ "./ext/exec": {
24
+ "types": "./dist/ext/exec/index.d.ts",
25
+ "default": "./dist/ext/exec/index.js"
26
+ },
27
+ "./ext/kv": {
28
+ "types": "./dist/ext/kv/index.d.ts",
29
+ "default": "./dist/ext/kv/index.js"
30
+ },
31
+ "./ext/crypto": {
32
+ "types": "./dist/ext/crypto/index.d.ts",
33
+ "default": "./dist/ext/crypto/index.js"
34
+ }
35
+ },
10
36
  "keywords": [
11
37
  "rill",
12
38
  "scripting",
@@ -19,24 +45,24 @@
19
45
  "dist",
20
46
  "docs"
21
47
  ],
22
- "scripts": {
23
- "build": "tsx scripts/generate-version.ts && tsx scripts/generate-docs-bundle.ts && tsc --build",
24
- "test": "vitest run",
25
- "test:examples": "tsx ../../scripts/test-examples.ts ../../docs/",
26
- "typecheck": "tsc --noEmit",
27
- "lint": "eslint --config ../../eslint.config.js src/",
28
- "check": "pnpm run build && pnpm run test && pnpm run test:examples && pnpm run lint"
29
- },
30
48
  "repository": {
31
49
  "type": "git",
32
50
  "url": "git+https://github.com/rcrsr/rill.git",
33
51
  "directory": "packages/core"
34
52
  },
35
- "homepage": "https://github.com/rcrsr/rill#readme",
53
+ "homepage": "https://rill.run",
36
54
  "bugs": {
37
55
  "url": "https://github.com/rcrsr/rill/issues"
38
56
  },
39
57
  "publishConfig": {
40
58
  "access": "public"
59
+ },
60
+ "scripts": {
61
+ "build": "tsx scripts/generate-version.ts && tsx scripts/generate-docs-bundle.ts && tsc --build",
62
+ "test": "vitest run",
63
+ "test:examples": "tsx ../../scripts/test-examples.ts ../../docs/",
64
+ "typecheck": "tsc --noEmit",
65
+ "lint": "eslint --config ../../eslint.config.js src/",
66
+ "check": "pnpm run build && pnpm run test && pnpm run test:examples && pnpm run lint"
41
67
  }
42
- }
68
+ }