@rcrsr/rill 0.8.0 → 0.8.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.
- package/README.md +28 -0
- package/dist/error-registry.d.ts.map +1 -1
- package/dist/error-registry.js +164 -0
- package/dist/error-registry.js.map +1 -1
- package/dist/ext/crypto/index.d.ts +32 -0
- package/dist/ext/crypto/index.d.ts.map +1 -0
- package/dist/ext/crypto/index.js +143 -0
- package/dist/ext/crypto/index.js.map +1 -0
- package/dist/ext/exec/index.d.ts +45 -0
- package/dist/ext/exec/index.d.ts.map +1 -0
- package/dist/ext/exec/index.js +168 -0
- package/dist/ext/exec/index.js.map +1 -0
- package/dist/ext/exec/runner.d.ts +62 -0
- package/dist/ext/exec/runner.d.ts.map +1 -0
- package/dist/ext/exec/runner.js +168 -0
- package/dist/ext/exec/runner.js.map +1 -0
- package/dist/ext/fetch/index.d.ts +68 -0
- package/dist/ext/fetch/index.d.ts.map +1 -0
- package/dist/ext/fetch/index.js +259 -0
- package/dist/ext/fetch/index.js.map +1 -0
- package/dist/ext/fetch/request.d.ts +90 -0
- package/dist/ext/fetch/request.d.ts.map +1 -0
- package/dist/ext/fetch/request.js +413 -0
- package/dist/ext/fetch/request.js.map +1 -0
- package/dist/ext/fs/index.d.ts +39 -0
- package/dist/ext/fs/index.d.ts.map +1 -0
- package/dist/ext/fs/index.js +560 -0
- package/dist/ext/fs/index.js.map +1 -0
- package/dist/ext/fs/sandbox.d.ts +78 -0
- package/dist/ext/fs/sandbox.d.ts.map +1 -0
- package/dist/ext/fs/sandbox.js +208 -0
- package/dist/ext/fs/sandbox.js.map +1 -0
- package/dist/ext/kv/index.d.ts +46 -0
- package/dist/ext/kv/index.d.ts.map +1 -0
- package/dist/ext/kv/index.js +215 -0
- package/dist/ext/kv/index.js.map +1 -0
- package/dist/ext/kv/store.d.ts +46 -0
- package/dist/ext/kv/store.d.ts.map +1 -0
- package/dist/ext/kv/store.js +256 -0
- package/dist/ext/kv/store.js.map +1 -0
- package/dist/generated/version-data.d.ts +1 -1
- package/dist/generated/version-data.js +2 -2
- 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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"}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Version string from package.json
|
|
5
5
|
*/
|
|
6
|
-
export const VERSION = '0.8.
|
|
6
|
+
export const VERSION = '0.8.1';
|
|
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:
|
|
13
|
+
patch: 1,
|
|
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.
|
|
3
|
+
"version": "0.8.1",
|
|
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://
|
|
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
|
+
}
|