@elaraai/e3 1.0.76 → 1.0.77
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 +4 -4
- package/dist/src/dataset-file.d.ts +68 -0
- package/dist/src/dataset-file.d.ts.map +1 -0
- package/dist/src/dataset-file.js +159 -0
- package/dist/src/dataset-file.js.map +1 -0
- package/dist/src/export.d.ts.map +1 -1
- package/dist/src/export.js +35 -12
- package/dist/src/export.js.map +1 -1
- package/dist/src/export.spec.js +89 -7
- package/dist/src/export.spec.js.map +1 -1
- package/dist/src/function.spec.js +28 -2
- package/dist/src/function.spec.js.map +1 -1
- package/dist/src/functions-link.spec.js +13 -13
- package/dist/src/functions-link.spec.js.map +1 -1
- package/dist/src/index.d.ts +4 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/input.d.ts +42 -7
- package/dist/src/input.d.ts.map +1 -1
- package/dist/src/input.js +38 -8
- package/dist/src/input.js.map +1 -1
- package/dist/src/open-beast-link.spec.js +3 -3
- package/dist/src/open-beast-link.spec.js.map +1 -1
- package/dist/src/package.d.ts +1 -1
- package/dist/src/package.js +1 -1
- package/dist/src/task.d.ts +27 -5
- package/dist/src/task.d.ts.map +1 -1
- package/dist/src/task.js +38 -6
- package/dist/src/task.js.map +1 -1
- package/dist/src/task.spec.js +71 -23
- package/dist/src/task.spec.js.map +1 -1
- package/dist/src/types.d.ts +21 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -12,11 +12,11 @@ npm install @elaraai/e3
|
|
|
12
12
|
|
|
13
13
|
```typescript
|
|
14
14
|
import e3 from '@elaraai/e3';
|
|
15
|
-
import { StringType, East } from '@elaraai/east';
|
|
15
|
+
import { StringType, East, variant } from '@elaraai/east';
|
|
16
16
|
|
|
17
17
|
// Define input datasets with default values
|
|
18
|
-
const input_name = e3.input('name', StringType, 'World');
|
|
19
|
-
const input_prefix = e3.input('prefix', StringType, 'Hello');
|
|
18
|
+
const input_name = e3.input('name', StringType, variant('value', 'World'));
|
|
19
|
+
const input_prefix = e3.input('prefix', StringType, variant('value', 'Hello'));
|
|
20
20
|
|
|
21
21
|
// Define a task that combines inputs
|
|
22
22
|
const greet = e3.task(
|
|
@@ -53,7 +53,7 @@ This creates a package with:
|
|
|
53
53
|
|
|
54
54
|
## API
|
|
55
55
|
|
|
56
|
-
- `e3.input(name, type, default)` - Define an input dataset
|
|
56
|
+
- `e3.input(name, type, variant('value', default))` - Define an input dataset
|
|
57
57
|
- `e3.task(name, inputs, fn)` - Define a task with East function
|
|
58
58
|
- `e3.package(name, version, task)` - Create a package (dependencies collected automatically)
|
|
59
59
|
- `e3.export(pkg, path)` - Export package to zip file
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { type EastType, type EastTypeValue } from '@elaraai/east';
|
|
6
|
+
import { type DatasetTypeMismatch } from '@elaraai/e3-types';
|
|
7
|
+
/** What a delivered file's header says about it. */
|
|
8
|
+
export interface DatasetFileHeader {
|
|
9
|
+
/** Size in bytes. */
|
|
10
|
+
readonly size: number;
|
|
11
|
+
/** The root type the header declares. */
|
|
12
|
+
readonly typeValue: EastTypeValue;
|
|
13
|
+
/** Segment count, for a collection root; `null` otherwise. */
|
|
14
|
+
readonly segments: number | null;
|
|
15
|
+
/** Element count (pairs for a Dict), for a collection root; `null` otherwise. */
|
|
16
|
+
readonly rows: number | null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Thrown when a delivered file's header does not match the type its
|
|
20
|
+
* destination declares.
|
|
21
|
+
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* `e3-core` re-raises this as a `DatasetTypeMismatchError` once it knows the
|
|
24
|
+
* workspace and the dataset's address; at export time this is what the author
|
|
25
|
+
* sees, naming the input and the file.
|
|
26
|
+
*/
|
|
27
|
+
export declare class DatasetFileTypeMismatchError extends Error {
|
|
28
|
+
readonly file: string;
|
|
29
|
+
readonly mismatch: DatasetTypeMismatch;
|
|
30
|
+
constructor(file: string, mismatch: DatasetTypeMismatch);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Read a beast2 file's declared type and geometry and check it against the
|
|
34
|
+
* type its destination declares.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* A collection destination is checked through the trailing index
|
|
38
|
+
* (`readBeast2Extents`), which also proves the file is pageable and
|
|
39
|
+
* partitionable — that is the at-rest contract for a collection dataset, and a
|
|
40
|
+
* delivery without it could not be carved. Every other root is checked through
|
|
41
|
+
* the header type alone.
|
|
42
|
+
*
|
|
43
|
+
* @param file - Path to the delivered file
|
|
44
|
+
* @param subject - How to name the destination in an error, e.g. `input 'table'`
|
|
45
|
+
* @param declared - The type the destination declares
|
|
46
|
+
* @returns The file's size, wire type and — for a collection — its geometry
|
|
47
|
+
* @throws {DatasetFileTypeMismatchError} When the header's type is not the
|
|
48
|
+
* declared type
|
|
49
|
+
* @throws {Error} When the file is missing, is not a beast2 container, or is a
|
|
50
|
+
* collection with no index or with cross-segment aliasing
|
|
51
|
+
*/
|
|
52
|
+
export declare function readDatasetFileHeader(file: string, subject: string, declared: EastType | EastTypeValue): DatasetFileHeader;
|
|
53
|
+
/**
|
|
54
|
+
* Read the root type a beast2 file's header declares, without reading the file.
|
|
55
|
+
*
|
|
56
|
+
* @remarks
|
|
57
|
+
* Any container version, indexed or not: this is the check for a file that is
|
|
58
|
+
* about to be DECODED (the positional `e3 dataset set`), which accepts every
|
|
59
|
+
* beast2 it can read and refuses a drifted one from its header before paying
|
|
60
|
+
* for the whole read. A file adopted as it stands needs the stricter
|
|
61
|
+
* {@link readDatasetFileHeader}.
|
|
62
|
+
*
|
|
63
|
+
* @param file - Path to the file
|
|
64
|
+
* @returns The root type the file's header declares
|
|
65
|
+
* @throws {Error} When the file cannot be opened or is not a beast2 container
|
|
66
|
+
*/
|
|
67
|
+
export declare function readDatasetFileType(file: string): EastTypeValue;
|
|
68
|
+
//# sourceMappingURL=dataset-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-file.d.ts","sourceRoot":"","sources":["../../src/dataset-file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,EAML,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAsC,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,oDAAoD;AACpD,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;aAEnC,IAAI,EAAE,MAAM;aACZ,QAAQ,EAAE,mBAAmB;gBAD7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,mBAAmB;CAKhD;AAoBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GAAG,aAAa,GACjC,iBAAiB,CAuDnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAO/D"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Reading what a delivered beast2 file declares, without reading the file.
|
|
7
|
+
*
|
|
8
|
+
* A path-initialised input (`e3.input('table', T, variant('file', path))`) is
|
|
9
|
+
* checked twice: once at EXPORT, against the type the package declares, so a
|
|
10
|
+
* schema drift is a build error at the developer's desk; and again at DEPLOY,
|
|
11
|
+
* on the machine that actually has the file. Both checks are this function, so
|
|
12
|
+
* both report a mismatch identically — and both cost two ranged reads rather
|
|
13
|
+
* than the gigabytes the file may hold.
|
|
14
|
+
*
|
|
15
|
+
* It lives in `@elaraai/e3` (not `e3-core`) because the export path is here and
|
|
16
|
+
* `e3-core` depends on this package, not the other way round. It is Node-only
|
|
17
|
+
* (`node:fs`) and therefore NOT on the `@elaraai/e3/browser` entry.
|
|
18
|
+
*
|
|
19
|
+
* @packageDocumentation
|
|
20
|
+
*/
|
|
21
|
+
import { closeSync, fstatSync, openSync, readSync, statSync } from 'node:fs';
|
|
22
|
+
import { isVariant, readBeast2Extents, readBeast2HeaderType, toEastTypeValue, } from '@elaraai/east';
|
|
23
|
+
import { checkDatasetType, isCollectionRoot } from '@elaraai/e3-types';
|
|
24
|
+
/**
|
|
25
|
+
* Thrown when a delivered file's header does not match the type its
|
|
26
|
+
* destination declares.
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* `e3-core` re-raises this as a `DatasetTypeMismatchError` once it knows the
|
|
30
|
+
* workspace and the dataset's address; at export time this is what the author
|
|
31
|
+
* sees, naming the input and the file.
|
|
32
|
+
*/
|
|
33
|
+
export class DatasetFileTypeMismatchError extends Error {
|
|
34
|
+
file;
|
|
35
|
+
mismatch;
|
|
36
|
+
constructor(file, mismatch) {
|
|
37
|
+
super(mismatch.message);
|
|
38
|
+
this.file = file;
|
|
39
|
+
this.mismatch = mismatch;
|
|
40
|
+
this.name = 'DatasetFileTypeMismatchError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Positioned reads over a file. Opened read-only; a delivery is never
|
|
44
|
+
* written to, and its mode and mtime are left alone. */
|
|
45
|
+
function fileRangeReader(fd, size) {
|
|
46
|
+
return {
|
|
47
|
+
size,
|
|
48
|
+
read(offset, length) {
|
|
49
|
+
const out = new Uint8Array(length);
|
|
50
|
+
let done = 0;
|
|
51
|
+
while (done < length) {
|
|
52
|
+
const n = readSync(fd, out, done, length - done, offset + done);
|
|
53
|
+
if (n === 0)
|
|
54
|
+
break;
|
|
55
|
+
done += n;
|
|
56
|
+
}
|
|
57
|
+
return done === length ? out : out.subarray(0, done);
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Read a beast2 file's declared type and geometry and check it against the
|
|
63
|
+
* type its destination declares.
|
|
64
|
+
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* A collection destination is checked through the trailing index
|
|
67
|
+
* (`readBeast2Extents`), which also proves the file is pageable and
|
|
68
|
+
* partitionable — that is the at-rest contract for a collection dataset, and a
|
|
69
|
+
* delivery without it could not be carved. Every other root is checked through
|
|
70
|
+
* the header type alone.
|
|
71
|
+
*
|
|
72
|
+
* @param file - Path to the delivered file
|
|
73
|
+
* @param subject - How to name the destination in an error, e.g. `input 'table'`
|
|
74
|
+
* @param declared - The type the destination declares
|
|
75
|
+
* @returns The file's size, wire type and — for a collection — its geometry
|
|
76
|
+
* @throws {DatasetFileTypeMismatchError} When the header's type is not the
|
|
77
|
+
* declared type
|
|
78
|
+
* @throws {Error} When the file is missing, is not a beast2 container, or is a
|
|
79
|
+
* collection with no index or with cross-segment aliasing
|
|
80
|
+
*/
|
|
81
|
+
export function readDatasetFileHeader(file, subject, declared) {
|
|
82
|
+
let stats;
|
|
83
|
+
try {
|
|
84
|
+
stats = statSync(file);
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
if (err.code === 'ENOENT') {
|
|
88
|
+
throw new Error(`${subject}: no file at ${file}`);
|
|
89
|
+
}
|
|
90
|
+
throw err;
|
|
91
|
+
}
|
|
92
|
+
if (!stats.isFile())
|
|
93
|
+
throw new Error(`${subject}: ${file} is not a file`);
|
|
94
|
+
const fd = openSync(file, 'r');
|
|
95
|
+
try {
|
|
96
|
+
const reader = fileRangeReader(fd, stats.size);
|
|
97
|
+
const declaredValue = isVariant(declared)
|
|
98
|
+
? declared
|
|
99
|
+
: toEastTypeValue(declared);
|
|
100
|
+
let typeValue;
|
|
101
|
+
let segments = null;
|
|
102
|
+
let rows = null;
|
|
103
|
+
if (isCollectionRoot(declaredValue)) {
|
|
104
|
+
let extents;
|
|
105
|
+
try {
|
|
106
|
+
extents = readBeast2Extents(reader);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
throw new Error(`${subject}: ${file} is not a readable indexed beast2 collection — ${err instanceof Error ? err.message : String(err)}`);
|
|
110
|
+
}
|
|
111
|
+
if (!extents.selfContained) {
|
|
112
|
+
throw new Error(`${subject}: ${file} has cross-segment aliasing — a dataset's segments must decode ` +
|
|
113
|
+
`independently, so partitions and paged reads can address them`);
|
|
114
|
+
}
|
|
115
|
+
typeValue = extents.typeValue;
|
|
116
|
+
segments = extents.offsets.length;
|
|
117
|
+
rows = extents.elementCount;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
try {
|
|
121
|
+
typeValue = readBeast2HeaderType(reader);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
throw new Error(`${subject}: ${file} is not a readable beast2 container — ${err instanceof Error ? err.message : String(err)}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const mismatch = checkDatasetType(subject, file, declaredValue, typeValue);
|
|
128
|
+
if (mismatch)
|
|
129
|
+
throw new DatasetFileTypeMismatchError(file, mismatch);
|
|
130
|
+
return { size: stats.size, typeValue, segments, rows };
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
closeSync(fd);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Read the root type a beast2 file's header declares, without reading the file.
|
|
138
|
+
*
|
|
139
|
+
* @remarks
|
|
140
|
+
* Any container version, indexed or not: this is the check for a file that is
|
|
141
|
+
* about to be DECODED (the positional `e3 dataset set`), which accepts every
|
|
142
|
+
* beast2 it can read and refuses a drifted one from its header before paying
|
|
143
|
+
* for the whole read. A file adopted as it stands needs the stricter
|
|
144
|
+
* {@link readDatasetFileHeader}.
|
|
145
|
+
*
|
|
146
|
+
* @param file - Path to the file
|
|
147
|
+
* @returns The root type the file's header declares
|
|
148
|
+
* @throws {Error} When the file cannot be opened or is not a beast2 container
|
|
149
|
+
*/
|
|
150
|
+
export function readDatasetFileType(file) {
|
|
151
|
+
const fd = openSync(file, 'r');
|
|
152
|
+
try {
|
|
153
|
+
return readBeast2HeaderType(fileRangeReader(fd, fstatSync(fd).size));
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
closeSync(fd);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=dataset-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-file.js","sourceRoot":"","sources":["../../src/dataset-file.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,GAIhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAA4B,MAAM,mBAAmB,CAAC;AAcjG;;;;;;;;GAQG;AACH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAEnC;IACA;IAFlB,YACkB,IAAY,EACZ,QAA6B;QAE7C,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAqB;QAG7C,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED;yDACyD;AACzD,SAAS,eAAe,CAAC,EAAU,EAAE,IAAY;IAC/C,OAAO;QACL,IAAI;QACJ,IAAI,CAAC,MAAc,EAAE,MAAc;YACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,GAAG,MAAM,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;gBAChE,IAAI,CAAC,KAAK,CAAC;oBAAE,MAAM;gBACnB,IAAI,IAAI,CAAC,CAAC;YACZ,CAAC;YACD,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,OAAe,EACf,QAAkC;IAElC,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,gBAAgB,CAAC,CAAC;IAE1E,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAkB,SAAS,CAAC,QAAQ,CAAC;YACtD,CAAC,CAAE,QAA0B;YAC7B,CAAC,CAAC,eAAe,CAAC,QAAoB,CAAC,CAAC;QAC1C,IAAI,SAAwB,CAAC;QAC7B,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,IAAI,GAAkB,IAAI,CAAC;QAE/B,IAAI,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,kDACjC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,KAAK,IAAI,iEAAiE;oBACpF,+DAA+D,CAChE,CAAC;YACJ,CAAC;YACD,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC9B,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,yCACjC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QAC3E,IAAI,QAAQ;YAAE,MAAM,IAAI,4BAA4B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAErE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;AACH,CAAC"}
|
package/dist/src/export.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAA6J,KAAK,gBAAgB,EAAqB,MAAM,eAAe,CAAC;AAIpO,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAE1D,OAAO,EAA8C,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,EAAqE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG9H;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAAC,GAAG,CAAC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG,YAAY,CAAC,CAAC;AAExG,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,8GAA8G;IAC9G,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC;CAC9C;AAGD,wBAAsB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4V3I;AAuCD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrE"}
|
package/dist/src/export.js
CHANGED
|
@@ -12,10 +12,12 @@
|
|
|
12
12
|
* - `data/<path>.ref` - per-dataset reference files (beast2 encoded DatasetRef)
|
|
13
13
|
*/
|
|
14
14
|
import * as fs from 'node:fs';
|
|
15
|
+
import * as nodePath from 'node:path';
|
|
15
16
|
import { createHash } from 'node:crypto';
|
|
16
17
|
import yazl from 'yazl';
|
|
17
18
|
import { variant, some, none, encodeBeast2For, encodeEastIR, EastIR, AsyncEastIR, printIdentifier, SortedMap, toEastTypeValue, decodeFunctionManifest, linkImports } from '@elaraai/east';
|
|
18
19
|
import { DatasetRefType, PackageObjectType, TaskObjectType, FunctionObjectType, MutationObjectType, RecordObjectType, encodeDatasetBlob } from '@elaraai/e3-types';
|
|
20
|
+
import { readDatasetFileHeader } from './dataset-file.js';
|
|
19
21
|
import { runnerProvides, runnerToVariant } from './runner.js';
|
|
20
22
|
import { captureEnvironment, captureAutoEnvironment } from './environment-capture.js';
|
|
21
23
|
import { importedFunctions, resolveFunctionManifests } from './functions-resolve.js';
|
|
@@ -81,6 +83,10 @@ export async function export_(pkg, outputPath, options) {
|
|
|
81
83
|
const tasks = new SortedMap(); // name -> task object hash
|
|
82
84
|
const structures = new Map(); // path -> structure (parallel to tree hierarchy)
|
|
83
85
|
const refs = new SortedMap(); // refPath -> DatasetRef
|
|
86
|
+
// Unresolved sources: refPath -> descriptor. A `file` input puts the
|
|
87
|
+
// DESCRIPTOR in the package and leaves its ref unassigned; deploy resolves it
|
|
88
|
+
// on the machine that actually has the bytes.
|
|
89
|
+
const sources = new SortedMap();
|
|
84
90
|
// Resolve environment declarations to content-addressed EnvironmentSpec
|
|
85
91
|
// objects, once per distinct declaration per export run (a project capture
|
|
86
92
|
// shells out to uv/npm — identical declarations must not re-build).
|
|
@@ -173,23 +179,39 @@ export async function export_(pkg, outputPath, options) {
|
|
|
173
179
|
}
|
|
174
180
|
return seg.value;
|
|
175
181
|
}).join('/');
|
|
176
|
-
//
|
|
177
|
-
//
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
// the
|
|
182
|
+
// An input's initial value comes from its SOURCE variant; `default` is
|
|
183
|
+
// the internal inline-value channel (a task's function_ir bundle,
|
|
184
|
+
// record()'s initial state), which is never path-initialised.
|
|
185
|
+
//
|
|
186
|
+
// - `value` and `default` are serialized into the bundle as before —
|
|
187
|
+
// an EastIR / AsyncEastIR bundle through encodeEastIR so its source
|
|
188
|
+
// map survives, everything else through the store path's own encoder
|
|
189
|
+
// (a collection root ships segmented + indexed, so a deployed input is
|
|
190
|
+
// pageable without anyone having to write it first, #584).
|
|
191
|
+
// - `file` records a DESCRIPTOR and leaves the ref unassigned: the
|
|
192
|
+
// bytes never travel in the package. The file is validated here,
|
|
193
|
+
// from its header, so a schema drift is a build error at the
|
|
194
|
+
// developer's desk rather than a decode failure inside a running task.
|
|
195
|
+
const inline = item.default !== undefined ? item.default
|
|
196
|
+
: item.source?.type === 'value' ? item.source.value
|
|
197
|
+
: undefined;
|
|
181
198
|
let datasetRef;
|
|
182
|
-
if (item.
|
|
199
|
+
if (item.source?.type === 'file') {
|
|
200
|
+
// Resolved against the process's cwd exactly as environment capture
|
|
201
|
+
// resolves project paths; an absolute path is used as given.
|
|
202
|
+
const resolved = nodePath.resolve(process.cwd(), item.source.value);
|
|
203
|
+
readDatasetFileHeader(resolved, `input '${item.name}'`, item.type);
|
|
204
|
+
sources.set(refPath, variant('file', { path: resolved }));
|
|
205
|
+
datasetRef = variant('unassigned', null);
|
|
206
|
+
}
|
|
207
|
+
else if (inline !== undefined) {
|
|
183
208
|
let valueData;
|
|
184
|
-
if (
|
|
209
|
+
if (inline instanceof EastIR || inline instanceof AsyncEastIR) {
|
|
185
210
|
const owner = taskOfFunctionIR.get(item);
|
|
186
|
-
valueData = encodeEastIR(link(
|
|
211
|
+
valueData = encodeEastIR(link(inline, owner ? `task "${owner.name}"` : `dataset "${refPath}"`, owner?.runner));
|
|
187
212
|
}
|
|
188
213
|
else {
|
|
189
|
-
|
|
190
|
-
// segmented + indexed, so a deployed input is pageable without
|
|
191
|
-
// anyone having to write it first (#584).
|
|
192
|
-
valueData = encodeDatasetBlob(item.type, item.default);
|
|
214
|
+
valueData = encodeDatasetBlob(item.type, inline);
|
|
193
215
|
}
|
|
194
216
|
const valueHash = addObject(zipfile, Buffer.from(valueData));
|
|
195
217
|
datasetRef = variant('value', { hash: valueHash, versions: new Map() });
|
|
@@ -305,6 +327,7 @@ export async function export_(pkg, outputPath, options) {
|
|
|
305
327
|
},
|
|
306
328
|
functions,
|
|
307
329
|
records,
|
|
330
|
+
sources,
|
|
308
331
|
};
|
|
309
332
|
const packageObjectEncoder = encodeBeast2For(PackageObjectType);
|
|
310
333
|
const packageObjectData = packageObjectEncoder(packageObject);
|
package/dist/src/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/export.ts"],"names":[],"mappings":"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"}
|
package/dist/src/export.spec.js
CHANGED
|
@@ -9,7 +9,7 @@ import * as os from 'node:os';
|
|
|
9
9
|
import * as path from 'node:path';
|
|
10
10
|
import yazl from 'yazl';
|
|
11
11
|
import yauzl from 'yauzl';
|
|
12
|
-
import { East, DictType, IntegerType, StringType, beast2HasIndex, decodeBeast2For, openBeast2PagesFor } from '@elaraai/east';
|
|
12
|
+
import { East, DictType, IntegerType, StringType, beast2HasIndex, decodeBeast2For, encodeBeast2For, encodeBeast2PagedFor, openBeast2PagesFor, variant } from '@elaraai/east';
|
|
13
13
|
import { PackageObjectType, DatasetRefType, EnvironmentSpecType, decodePackageObject, decodeTaskObject, decodeFunctionObject } from '@elaraai/e3-types';
|
|
14
14
|
import { addObject, export_ } from './export.js';
|
|
15
15
|
import { package_ } from './package.js';
|
|
@@ -131,7 +131,7 @@ describe('export_', () => {
|
|
|
131
131
|
assert.strictEqual(packageObject.data.structure.value.size, 0);
|
|
132
132
|
});
|
|
133
133
|
it('exports package with input dataset', async () => {
|
|
134
|
-
const myInput = input('greeting', StringType, 'hello');
|
|
134
|
+
const myInput = input('greeting', StringType, variant('value', 'hello'));
|
|
135
135
|
const pkg = package_('input-pkg', '1.0.0', myInput);
|
|
136
136
|
const zipPath = path.join(tempDir, 'input.zip');
|
|
137
137
|
await export_(pkg, zipPath);
|
|
@@ -165,7 +165,7 @@ describe('export_', () => {
|
|
|
165
165
|
assert.ok(datasetRef.value.hash, 'Missing hash in dataset ref');
|
|
166
166
|
});
|
|
167
167
|
it('produces identical output for same package', async () => {
|
|
168
|
-
const myInput = input('name', StringType, 'world');
|
|
168
|
+
const myInput = input('name', StringType, variant('value', 'world'));
|
|
169
169
|
const pkg = package_('deterministic', '1.0.0', myInput);
|
|
170
170
|
const zipPath1 = path.join(tempDir, 'deterministic1.zip');
|
|
171
171
|
const zipPath2 = path.join(tempDir, 'deterministic2.zip');
|
|
@@ -204,13 +204,13 @@ describe('environment capture on export', () => {
|
|
|
204
204
|
fs.rmSync(outDir, { recursive: true, force: true });
|
|
205
205
|
});
|
|
206
206
|
it('rejects a mutable image reference at definition time', () => {
|
|
207
|
-
const greeting = input('greeting', StringType, 'hi');
|
|
207
|
+
const greeting = input('greeting', StringType, variant('value', 'hi'));
|
|
208
208
|
assert.throws(() => task('bad_env', [greeting], East.function([StringType], StringType, (_$, g) => g), {
|
|
209
209
|
environment: { image: { digest: 'example.com/img:latest' } },
|
|
210
210
|
}), /image reference must be a full digest/);
|
|
211
211
|
});
|
|
212
212
|
it('captures a node environment into the bundle and stamps the task + function', async () => {
|
|
213
|
-
const greeting = input('greeting', StringType, 'hi');
|
|
213
|
+
const greeting = input('greeting', StringType, variant('value', 'hi'));
|
|
214
214
|
const echo = task('echo', [greeting], East.function([StringType], StringType, (_$, g) => g), {
|
|
215
215
|
environment: { node: { project: projectDir } },
|
|
216
216
|
});
|
|
@@ -300,7 +300,7 @@ describe('collection defaults export PAGEABLE', () => {
|
|
|
300
300
|
const rows = new Map();
|
|
301
301
|
for (let i = 0; i < 40; i++)
|
|
302
302
|
rows.set(`u${String(i).padStart(3, '0')}`, BigInt(i));
|
|
303
|
-
const units = input('units', DictType(StringType, IntegerType), rows);
|
|
303
|
+
const units = input('units', DictType(StringType, IntegerType), variant('value', rows));
|
|
304
304
|
const zipPath = path.join(tempDir, 'paged.zip');
|
|
305
305
|
await export_(package_('paged-pkg', '1.0.0', units), zipPath);
|
|
306
306
|
const blob = blobOf(await readZip(zipPath), 'data/inputs/units.ref');
|
|
@@ -311,11 +311,93 @@ describe('collection defaults export PAGEABLE', () => {
|
|
|
311
311
|
assert.ok(pages.segmentCount >= 1);
|
|
312
312
|
});
|
|
313
313
|
it('a scalar default stays unsegmented — only collection roots are paged', async () => {
|
|
314
|
-
const greeting = input('greeting', StringType, 'hello');
|
|
314
|
+
const greeting = input('greeting', StringType, variant('value', 'hello'));
|
|
315
315
|
const zipPath = path.join(tempDir, 'scalar.zip');
|
|
316
316
|
await export_(package_('scalar-pkg', '1.0.0', greeting), zipPath);
|
|
317
317
|
const blob = blobOf(await readZip(zipPath), 'data/inputs/greeting.ref');
|
|
318
318
|
assert.ok(!beast2HasIndex(blob), 'a scalar root must not be segmented');
|
|
319
319
|
});
|
|
320
320
|
});
|
|
321
|
+
describe('path-initialised inputs (source variants)', () => {
|
|
322
|
+
let tempDir;
|
|
323
|
+
const RowsType = DictType(StringType, IntegerType);
|
|
324
|
+
before(async () => {
|
|
325
|
+
tempDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), 'e3-export-sources-'));
|
|
326
|
+
});
|
|
327
|
+
after(async () => {
|
|
328
|
+
await fs.promises.rm(tempDir, { recursive: true });
|
|
329
|
+
});
|
|
330
|
+
/** An indexed delivery of `n` rows at `name` in the temp dir. */
|
|
331
|
+
function delivery(name, n, type = RowsType) {
|
|
332
|
+
const file = path.join(tempDir, name);
|
|
333
|
+
const rows = new Map();
|
|
334
|
+
for (let i = 0; i < n; i++)
|
|
335
|
+
rows.set(`k${String(i).padStart(4, '0')}`, BigInt(i));
|
|
336
|
+
fs.writeFileSync(file, encodeBeast2PagedFor(type, { batchSize: 8 })(rows));
|
|
337
|
+
return file;
|
|
338
|
+
}
|
|
339
|
+
/** The package object of an exported bundle. */
|
|
340
|
+
async function packageObjectOf(zipPath, name) {
|
|
341
|
+
const entries = await readZip(zipPath);
|
|
342
|
+
const ref = entries.get(`packages/${name}/1.0.0`).toString().trim();
|
|
343
|
+
return decodePackageObject(entries.get(`objects/${ref.slice(0, 2)}/${ref.slice(2)}.beast2`));
|
|
344
|
+
}
|
|
345
|
+
it('refuses a third argument that is not a source variant, at definition time', () => {
|
|
346
|
+
assert.throws(() => input('bare', StringType, 'World'), /e3\.input\('bare'\): the third argument is a source — variant\('value', v\) or variant\('file', path\)/);
|
|
347
|
+
assert.throws(() => input('other', StringType, variant('other', 'x')), /the third argument is a source/);
|
|
348
|
+
});
|
|
349
|
+
it('records a file source as a descriptor and leaves the ref unassigned — the bytes stay put', async () => {
|
|
350
|
+
const file = delivery('table.beast2', 40);
|
|
351
|
+
const table = input('table', RowsType, variant('file', file));
|
|
352
|
+
const zipPath = path.join(tempDir, 'file-src.zip');
|
|
353
|
+
await export_(package_('file-src', '1.0.0', table), zipPath);
|
|
354
|
+
const entries = await readZip(zipPath);
|
|
355
|
+
const ref = decodeBeast2For(DatasetRefType)(entries.get('data/inputs/table.ref'));
|
|
356
|
+
assert.strictEqual(ref.type, 'unassigned', 'no value travels in the package');
|
|
357
|
+
const pkg = await packageObjectOf(zipPath, 'file-src');
|
|
358
|
+
const source = pkg.sources.get('inputs/table');
|
|
359
|
+
assert.strictEqual(source?.type, 'file');
|
|
360
|
+
assert.strictEqual(source?.type === 'file' ? source.value.path : '', file);
|
|
361
|
+
// Nothing the size of the delivery entered the bundle.
|
|
362
|
+
const deliverySize = fs.statSync(file).size;
|
|
363
|
+
const objectSizes = [...entries.keys()].filter((k) => k.startsWith('objects/')).map((k) => entries.get(k).length);
|
|
364
|
+
assert.ok(!objectSizes.includes(deliverySize), 'the delivery is not an object in the bundle');
|
|
365
|
+
});
|
|
366
|
+
it('resolves a relative file path against the working directory', async () => {
|
|
367
|
+
const file = delivery('relative.beast2', 8);
|
|
368
|
+
const table = input('rel', RowsType, variant('file', path.relative(process.cwd(), file)));
|
|
369
|
+
const zipPath = path.join(tempDir, 'rel-src.zip');
|
|
370
|
+
await export_(package_('rel-src', '1.0.0', table), zipPath);
|
|
371
|
+
const source = (await packageObjectOf(zipPath, 'rel-src')).sources.get('inputs/rel');
|
|
372
|
+
assert.strictEqual(source?.type === 'file' ? source.value.path : '', file);
|
|
373
|
+
});
|
|
374
|
+
it('refuses a delivery whose type differs from the declared one, naming the input and the field', async () => {
|
|
375
|
+
const Drifted = DictType(StringType, StringType);
|
|
376
|
+
const file = path.join(tempDir, 'drifted.beast2');
|
|
377
|
+
fs.writeFileSync(file, encodeBeast2PagedFor(Drifted, { batchSize: 8 })(new Map([['a', 'x']])));
|
|
378
|
+
const table = input('drifted', RowsType, variant('file', file));
|
|
379
|
+
await assert.rejects(() => export_(package_('drift', '1.0.0', table), path.join(tempDir, 'drift.zip')), (err) => {
|
|
380
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
381
|
+
assert.match(message, /input 'drifted' declares \.Dict/);
|
|
382
|
+
assert.match(message, new RegExp(`but ${file.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')} carries`));
|
|
383
|
+
assert.match(message, /first difference at \[value\]/, 'names where the types diverge');
|
|
384
|
+
return true;
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
it('refuses a missing delivery and a delivery with no paging index', async () => {
|
|
388
|
+
await assert.rejects(() => export_(package_('missing', '1.0.0', input('gone', RowsType, variant('file', path.join(tempDir, 'nope.beast2')))), path.join(tempDir, 'missing.zip')), /input 'gone': no file at/);
|
|
389
|
+
const flat = path.join(tempDir, 'flat.beast2');
|
|
390
|
+
fs.writeFileSync(flat, encodeBeast2For(RowsType)(new Map([['a', 1n]])));
|
|
391
|
+
await assert.rejects(() => export_(package_('flat', '1.0.0', input('flat', RowsType, variant('file', flat))), path.join(tempDir, 'flat.zip')), /input 'flat': .* is not a readable indexed beast2 collection/);
|
|
392
|
+
});
|
|
393
|
+
it('exports a value source exactly as an inline default was', async () => {
|
|
394
|
+
const rows = new Map([['a', 1n], ['b', 2n]]);
|
|
395
|
+
const zipPath = path.join(tempDir, 'value-src.zip');
|
|
396
|
+
await export_(package_('value-src', '1.0.0', input('inline', RowsType, variant('value', rows))), zipPath);
|
|
397
|
+
const entries = await readZip(zipPath);
|
|
398
|
+
const ref = decodeBeast2For(DatasetRefType)(entries.get('data/inputs/inline.ref'));
|
|
399
|
+
assert.strictEqual(ref.type, 'value');
|
|
400
|
+
assert.strictEqual((await packageObjectOf(zipPath, 'value-src')).sources.size, 0);
|
|
401
|
+
});
|
|
402
|
+
});
|
|
321
403
|
//# sourceMappingURL=export.spec.js.map
|