@elaraai/e3 1.0.79 → 1.0.81

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 (99) hide show
  1. package/README.md +11 -2
  2. package/dist/src/browser.d.ts +5 -4
  3. package/dist/src/browser.d.ts.map +1 -1
  4. package/dist/src/browser.js +3 -2
  5. package/dist/src/browser.js.map +1 -1
  6. package/dist/src/dataset-file.d.ts +17 -19
  7. package/dist/src/dataset-file.d.ts.map +1 -1
  8. package/dist/src/dataset-file.js +26 -45
  9. package/dist/src/dataset-file.js.map +1 -1
  10. package/dist/src/export.d.ts +2 -3
  11. package/dist/src/export.d.ts.map +1 -1
  12. package/dist/src/export.js +150 -80
  13. package/dist/src/export.js.map +1 -1
  14. package/dist/src/export.spec.js +177 -57
  15. package/dist/src/export.spec.js.map +1 -1
  16. package/dist/src/function.spec.js +29 -58
  17. package/dist/src/function.spec.js.map +1 -1
  18. package/dist/src/functions-link.spec.js +19 -17
  19. package/dist/src/functions-link.spec.js.map +1 -1
  20. package/dist/src/index.d.ts +56 -8
  21. package/dist/src/index.d.ts.map +1 -1
  22. package/dist/src/index.js +11 -4
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/input.d.ts +8 -5
  25. package/dist/src/input.d.ts.map +1 -1
  26. package/dist/src/input.js +8 -5
  27. package/dist/src/input.js.map +1 -1
  28. package/dist/src/migration.d.ts +172 -0
  29. package/dist/src/migration.d.ts.map +1 -0
  30. package/dist/src/migration.js +108 -0
  31. package/dist/src/migration.js.map +1 -0
  32. package/dist/src/migration.spec.d.ts +6 -0
  33. package/dist/src/migration.spec.d.ts.map +1 -0
  34. package/dist/src/migration.spec.js +197 -0
  35. package/dist/src/migration.spec.js.map +1 -0
  36. package/dist/src/mutation-programs.spec.d.ts +6 -0
  37. package/dist/src/mutation-programs.spec.d.ts.map +1 -0
  38. package/dist/src/mutation-programs.spec.js +310 -0
  39. package/dist/src/mutation-programs.spec.js.map +1 -0
  40. package/dist/src/mutation.d.ts +117 -9
  41. package/dist/src/mutation.d.ts.map +1 -1
  42. package/dist/src/mutation.js +104 -46
  43. package/dist/src/mutation.js.map +1 -1
  44. package/dist/src/open-beast-link.spec.js +10 -8
  45. package/dist/src/open-beast-link.spec.js.map +1 -1
  46. package/dist/src/output.d.ts +117 -0
  47. package/dist/src/output.d.ts.map +1 -0
  48. package/dist/src/output.js +119 -0
  49. package/dist/src/output.js.map +1 -0
  50. package/dist/src/package.d.ts +7 -5
  51. package/dist/src/package.d.ts.map +1 -1
  52. package/dist/src/package.js +98 -8
  53. package/dist/src/package.js.map +1 -1
  54. package/dist/src/package.spec.d.ts +6 -0
  55. package/dist/src/package.spec.d.ts.map +1 -0
  56. package/dist/src/package.spec.js +16 -0
  57. package/dist/src/package.spec.js.map +1 -0
  58. package/dist/src/record-guards.d.ts +41 -0
  59. package/dist/src/record-guards.d.ts.map +1 -0
  60. package/dist/src/record-guards.js +44 -0
  61. package/dist/src/record-guards.js.map +1 -0
  62. package/dist/src/record-index.d.ts +129 -0
  63. package/dist/src/record-index.d.ts.map +1 -0
  64. package/dist/src/record-index.js +144 -0
  65. package/dist/src/record-index.js.map +1 -0
  66. package/dist/src/record-index.spec.d.ts +6 -0
  67. package/dist/src/record-index.spec.d.ts.map +1 -0
  68. package/dist/src/record-index.spec.js +160 -0
  69. package/dist/src/record-index.spec.js.map +1 -0
  70. package/dist/src/record-programs.d.ts +128 -0
  71. package/dist/src/record-programs.d.ts.map +1 -0
  72. package/dist/src/record-programs.js +480 -0
  73. package/dist/src/record-programs.js.map +1 -0
  74. package/dist/src/record.d.ts.map +1 -1
  75. package/dist/src/record.js +2 -0
  76. package/dist/src/record.js.map +1 -1
  77. package/dist/src/record.spec.js +71 -13
  78. package/dist/src/record.spec.js.map +1 -1
  79. package/dist/src/runner.d.ts +6 -9
  80. package/dist/src/runner.d.ts.map +1 -1
  81. package/dist/src/runner.js +9 -25
  82. package/dist/src/runner.js.map +1 -1
  83. package/dist/src/runner.spec.js +16 -34
  84. package/dist/src/runner.spec.js.map +1 -1
  85. package/dist/src/sha256.d.ts +7 -4
  86. package/dist/src/sha256.d.ts.map +1 -1
  87. package/dist/src/sha256.js +26 -18
  88. package/dist/src/sha256.js.map +1 -1
  89. package/dist/src/sha256.spec.js +10 -0
  90. package/dist/src/sha256.spec.js.map +1 -1
  91. package/dist/src/task.d.ts +116 -251
  92. package/dist/src/task.d.ts.map +1 -1
  93. package/dist/src/task.js +169 -435
  94. package/dist/src/task.js.map +1 -1
  95. package/dist/src/task.spec.js +174 -489
  96. package/dist/src/task.spec.js.map +1 -1
  97. package/dist/src/types.d.ts +215 -23
  98. package/dist/src/types.d.ts.map +1 -1
  99. package/package.json +4 -4
@@ -6,41 +6,34 @@
6
6
  * Export functionality for e3 packages.
7
7
  *
8
8
  * Exports a package definition to a .zip bundle that can be imported
9
- * into an e3 repository. The bundle is a valid subset of an e3 repository:
10
- * - `packages/<name>/<version>` - ref to package object hash
9
+ * into an e3 repository. The bundle holds a repository's own forms, and the
10
+ * release that exported it:
11
+ * - `release.beast2` - the release of e3 that exported it, a String, first
12
+ * - `packages/<name>/<version>.beast2` - the package ref: the package object's hash, a String
11
13
  * - `objects/<ab>/<cdef...>.beast2` - content-addressed objects
12
- * - `data/<path>.ref` - per-dataset reference files (beast2 encoded DatasetRef)
13
14
  */
14
15
  import * as fs from 'node:fs';
15
16
  import * as nodePath from 'node:path';
16
17
  import { createHash } from 'node:crypto';
17
18
  import yazl from 'yazl';
18
- import { variant, some, none, encodeBeast2For, encodeEastIR, EastIR, AsyncEastIR, printIdentifier, SortedMap, toEastTypeValue, decodeFunctionManifest, linkImports } from '@elaraai/east';
19
- import { DatasetRefType, PackageObjectType, TaskObjectType, FunctionObjectType, MutationObjectType, RecordObjectType, encodeDatasetBlob } from '@elaraai/e3-types';
19
+ import { variant, some, none, BlobType, StringType, encodeBeast2For, encodeEastIR, EastIR, AsyncEastIR, printIdentifier, SortedMap, toEastTypeValue, decodeFunctionManifest, linkImports } from '@elaraai/east';
20
+ import { E3_RELEASE, PackageObjectType, TASK_OBJECT_KIND, TaskObjectType, FunctionObjectType, MigrationObjectType, MutationObjectType, RecordIndexObjectType, RecordObjectType, encodeDatasetBlob } from '@elaraai/e3-types';
21
+ import { buildMutationProgram, hasKeyedDelta, indexBuildProgram, migrationProgram } from './record-programs.js';
20
22
  import { readDatasetFileHeader } from './dataset-file.js';
21
23
  import { runnerProvides, runnerToVariant } from './runner.js';
22
24
  import { captureEnvironment, captureAutoEnvironment } from './environment-capture.js';
23
25
  import { importedFunctions, resolveFunctionManifests } from './functions-resolve.js';
26
+ /** An environment's files ride the object store as beast2 Blobs of their bytes. */
27
+ const encodeFile = encodeBeast2For(BlobType);
24
28
  // Named export_ to avoid conflict with reserved word
25
29
  export async function export_(pkg, outputPath, options) {
26
30
  const onCapture = options?.onEvent === undefined
27
31
  ? undefined
28
32
  : (e) => options.onEvent({ kind: 'capture', ...e });
29
33
  const partialPath = `${outputPath}.partial`;
30
- // The task a function_ir (or a stream task's merge_ir) dataset belongs to
31
- // (e3.task lists them first among the task's inputs), so the dataset's IR
32
- // links against that task's runner.
33
- const taskOfFunctionIR = new Map();
34
- for (const item of pkg.contents) {
35
- if (item.kind === 'task') {
36
- for (const input of item.inputs) {
37
- if (input.name === 'function_ir' || input.name === 'merge_ir')
38
- taskOfFunctionIR.set(input, { name: item.name, runner: item.runner });
39
- }
40
- }
41
- }
42
34
  // Cross-language imports (#628): every East.importFunction in a task's,
43
- // function's or mutation's IR resolves against a manifest and embeds as
35
+ // function's, mutation's, index's or migration's IR resolves against a
36
+ // manifest and embeds as
44
37
  // pure IR — the deployed program needs no exporting language at run
45
38
  // time. The manifests are the ones given, plus one produced here for
46
39
  // every imported package that is a member of this uv or npm workspace
@@ -55,16 +48,30 @@ export async function export_(pkg, outputPath, options) {
55
48
  references.push({ package: name, functions: [...functions], owner, runner });
56
49
  };
57
50
  for (const item of pkg.contents) {
58
- if (item.kind === 'dataset' && (item.default instanceof EastIR || item.default instanceof AsyncEastIR)) {
59
- const owner = taskOfFunctionIR.get(item);
60
- refer(item.default, owner ? `task "${owner.name}"` : `dataset "${item.name}"`, owner?.runner);
61
- }
51
+ if (item.kind !== 'task' || item.body.kind !== 'east')
52
+ continue;
53
+ const owner = `task "${item.name}"`;
54
+ refer(item.body.program, owner, item.runner);
55
+ if (item.outputKind?.kind === 'dict' && item.outputKind.merge !== undefined)
56
+ refer(item.outputKind.merge, owner, item.runner);
57
+ if (item.outputKind?.kind === 'fold')
58
+ refer(item.outputKind.combine, owner, item.runner);
62
59
  }
63
60
  for (const [fname, fdef] of Object.entries(pkg.functions))
64
61
  refer(fdef.body, `function "${fname}"`, fdef.runner);
65
62
  for (const [rname, rdef] of Object.entries(pkg.records)) {
66
- for (const [mname, mdef] of Object.entries(rdef.mutations))
67
- refer(mdef.body, `mutation "${rname}.${mname}"`, mdef.runner);
63
+ for (const [mname, mdef] of Object.entries(rdef.mutations)) {
64
+ if (mdef.body !== undefined)
65
+ refer(mdef.body, `mutation "${rname}.${mname}"`, mdef.runner);
66
+ }
67
+ for (const [iname, idef] of Object.entries(rdef.indexes)) {
68
+ const owner = `index "${rname}.${iname}"`;
69
+ refer(idef.keyFn.toIR(), owner, idef.runner);
70
+ if (idef.valueFn !== undefined)
71
+ refer(idef.valueFn.toIR(), owner, idef.runner);
72
+ }
73
+ for (const step of rdef.migrations)
74
+ refer(step.body, `migration "${rname}.${step.name}"`, step.runner);
68
75
  }
69
76
  const manifests = resolveFunctionManifests(references, explicit, process.cwd(), options?.onEvent === undefined
70
77
  ? undefined
@@ -78,8 +85,10 @@ export async function export_(pkg, outputPath, options) {
78
85
  linked.source_map = bundle.source_map;
79
86
  return linked;
80
87
  };
81
- // Create zip file
88
+ // Create zip file, the release exporting it first, so an import meets it
89
+ // before anything
82
90
  const zipfile = new yazl.ZipFile();
91
+ zipfile.addBuffer(Buffer.from(encodeBeast2For(StringType)(E3_RELEASE)), 'release.beast2', { mtime: DETERMINISTIC_MTIME });
83
92
  // Initialize empty package object that we'll populate as we iterate
84
93
  const tasks = new SortedMap(); // name -> task object hash
85
94
  const structures = new Map(); // path -> structure (parallel to tree hierarchy)
@@ -107,7 +116,7 @@ export async function export_(pkg, outputPath, options) {
107
116
  const environmentHashFor = (decl, runner, owner) => {
108
117
  // An explicit `environment` wins (and is the only path to tools/image).
109
118
  if (decl) {
110
- return cachedEnvHash(`decl:${JSON.stringify(decl)}`, () => captureEnvironment(decl, owner, (blob) => addObject(zipfile, blob), onCapture));
119
+ return cachedEnvHash(`decl:${JSON.stringify(decl)}`, () => captureEnvironment(decl, owner, (file) => addObject(zipfile, Buffer.from(encodeFile(file))), onCapture));
111
120
  }
112
121
  // Otherwise derive it from the runner's `{ custom }` platform references, so
113
122
  // a project split into workspace packages gets per-package change-detection
@@ -120,7 +129,7 @@ export async function export_(pkg, outputPath, options) {
120
129
  if (customs.length === 0)
121
130
  return null;
122
131
  const key = `auto:${runner.runtime}:${[...customs].sort().join(',')}`;
123
- return cachedEnvHash(key, () => captureAutoEnvironment(runner.runtime, customs, process.cwd(), owner, (blob) => addObject(zipfile, blob), onCapture));
132
+ return cachedEnvHash(key, () => captureAutoEnvironment(runner.runtime, customs, process.cwd(), owner, (file) => addObject(zipfile, Buffer.from(encodeFile(file))), onCapture));
124
133
  };
125
134
  const resolveEnvironment = (decl, runner, owner) => {
126
135
  const hash = environmentHashFor(decl, runner, owner);
@@ -156,7 +165,8 @@ export async function export_(pkg, outputPath, options) {
156
165
  structures.set(path, childStructure);
157
166
  }
158
167
  else if (item.kind === "dataset") {
159
- // Datasets: serialize value to object store, write DatasetRef to data/ dir
168
+ // Datasets: the value goes to the object store, and its ref into the
169
+ // package object
160
170
  // Get parent structure
161
171
  const parentPath = item.path.slice(0, -1).map(segment => {
162
172
  if (segment.type !== 'field') {
@@ -181,14 +191,13 @@ export async function export_(pkg, outputPath, options) {
181
191
  return seg.value;
182
192
  }).join('/');
183
193
  // An input's initial value comes from its SOURCE variant; `default` is
184
- // the internal inline-value channel (a task's function_ir bundle,
185
- // record()'s initial state), which is never path-initialised.
194
+ // the internal inline-value channel (record()'s initial state), which
195
+ // is never path-initialised.
186
196
  //
187
- // - `value` and `default` are serialized into the bundle as before —
188
- // an EastIR / AsyncEastIR bundle through encodeEastIR so its source
189
- // map survives, everything else through the store path's own encoder
190
- // (a collection root ships segmented + indexed, so a deployed input is
191
- // pageable without anyone having to write it first, #584).
197
+ // - `value` and `default` are serialized into the bundle through the
198
+ // store path's own encoder (a collection root ships segmented +
199
+ // indexed, so a deployed input is pageable without anyone having to
200
+ // write it first, #584).
192
201
  // - `file` records a DESCRIPTOR and leaves the ref unassigned: the
193
202
  // bytes never travel in the package. The file is validated here,
194
203
  // from its header, so a schema drift is a build error at the
@@ -206,14 +215,10 @@ export async function export_(pkg, outputPath, options) {
206
215
  datasetRef = variant('unassigned', null);
207
216
  }
208
217
  else if (inline !== undefined) {
209
- let valueData;
210
- if (inline instanceof EastIR || inline instanceof AsyncEastIR) {
211
- const owner = taskOfFunctionIR.get(item);
212
- valueData = encodeEastIR(link(inline, owner ? `task "${owner.name}"` : `dataset "${refPath}"`, owner?.runner));
213
- }
214
- else {
215
- valueData = encodeDatasetBlob(item.type, inline);
216
- }
218
+ // A collection root ships as segment objects plus the manifest naming
219
+ // them, exactly as the store's own door writes one, so a deployed
220
+ // input is in the layout before anything writes it.
221
+ const valueData = await encodeDatasetBlob(item.type, inline, (bytes) => Promise.resolve(addObject(zipfile, Buffer.from(bytes))));
217
222
  const valueHash = addObject(zipfile, Buffer.from(valueData));
218
223
  datasetRef = variant('value', { hash: valueHash, versions: new Map() });
219
224
  }
@@ -222,42 +227,56 @@ export async function export_(pkg, outputPath, options) {
222
227
  }
223
228
  // Store ref in the package-level refs map
224
229
  refs.set(refPath, datasetRef);
225
- // Also write DatasetRef to zip as data/<refPath>.ref (for readability/debugging)
226
- const refEncoder = encodeBeast2For(DatasetRefType);
227
- const refData = refEncoder(datasetRef);
228
- zipfile.addBuffer(Buffer.from(refData), `data/${refPath}.ref`, { mtime: DETERMINISTIC_MTIME });
229
230
  // Update structure: add value type with writable flag to parent
230
231
  const typeValue = toEastTypeValue(item.type);
231
232
  parentStructure.value.set(name, variant('value', { type: typeValue, writable: item.writable }));
232
233
  }
233
234
  else if (item.kind === "task") {
234
- // Tasks are serialized and written immediately
235
- // Build input paths from the task definition
236
- // Note: e3.task() includes function_ir in inputs, e3.customTask() does not
237
- const inputPaths = item.inputs.map(input => input.path);
238
- // Serialize command IR — item.command is an EastIR bundle so this
239
- // preserves the source map.
240
- const commandIrData = encodeEastIR(item.command);
241
- const commandIrHash = addObject(zipfile, Buffer.from(commandIrData));
242
- // Build TaskObject
235
+ // Tasks are serialized and written immediately: the program and the
236
+ // functions the output kind folds with are objects of their own, each
237
+ // linked against the task's runner, and the task object names them.
238
+ const owner = `task "${item.name}"`;
239
+ const irObject = (bundle) => addObject(zipfile, Buffer.from(encodeEastIR(link(bundle, owner, item.runner))));
240
+ let outputKind;
241
+ const kind = item.outputKind;
242
+ switch (kind?.kind) {
243
+ case undefined:
244
+ outputKind = variant('value', null);
245
+ break;
246
+ case 'array':
247
+ outputKind = variant('array', null);
248
+ break;
249
+ case 'set':
250
+ outputKind = variant('set', null);
251
+ break;
252
+ case 'dict':
253
+ outputKind = variant('dict', { merge: kind.merge === undefined ? none : some(irObject(kind.merge)) });
254
+ break;
255
+ case 'fold':
256
+ outputKind = variant('fold', {
257
+ zero: addObject(zipfile, Buffer.from(encodeBeast2For(kind.type)(kind.zero))),
258
+ combine: irObject(kind.combine),
259
+ });
260
+ break;
261
+ }
243
262
  const taskObject = {
244
- commandIr: commandIrHash,
245
- inputs: inputPaths,
246
- output: item.output.path,
247
- kind: item.taskKind ? variant('some', item.taskKind) : variant('none', null),
248
- metadata: item.metadata ? variant('some', item.metadata) : variant('none', null),
249
- // Routing metadata (commandIr stays authoritative for execution).
250
- // customTask leaves TaskDef.runner undefined -> opaque custom
251
- // (empty command: the wire field is informational for custom tasks).
263
+ kind: TASK_OBJECT_KIND,
264
+ // A custom task's command builds an argv and calls no function, so it
265
+ // is encoded unlinked.
266
+ body: item.body.kind === 'east'
267
+ ? variant('east', { program: irObject(item.body.program) })
268
+ : variant('command', { commandIr: addObject(zipfile, Buffer.from(encodeEastIR(item.body.command))) }),
269
+ // customTask leaves TaskDef.runner undefined: its command is what
270
+ // runs, so the runner is the custom runtime with an empty command.
252
271
  runner: item.runner ? runnerToVariant(item.runner) : variant('custom', { command: [] }),
272
+ inputs: item.inputs.map((input) => input.kind === 'partition'
273
+ ? { path: input.dataset.path, partition: some({ by: [...input.by] }) }
274
+ : { path: input.path, partition: none }),
275
+ output: { path: item.output.path, kind: outputKind },
276
+ role: item.role,
253
277
  environment: resolveEnvironment(item.environment, item.runner, item.name),
254
278
  };
255
- // Serialize and add to zip
256
- const taskEncoder = encodeBeast2For(TaskObjectType);
257
- const taskData = taskEncoder(taskObject);
258
- const taskHash = addObject(zipfile, Buffer.from(taskData));
259
- // Add to package tasks map
260
- tasks.set(item.name, taskHash);
279
+ tasks.set(item.name, addObject(zipfile, Buffer.from(encodeBeast2For(TaskObjectType)(taskObject))));
261
280
  }
262
281
  else {
263
282
  throw new Error(`Unknown package item kind: ${item.kind}`);
@@ -285,11 +304,14 @@ export async function export_(pkg, outputPath, options) {
285
304
  }
286
305
  // Write record objects. The record's own dataset (initial state value + ref +
287
306
  // writable:false structure leaf) is written by the dataset branch above —
288
- // records are datasets. Here we write the separate RecordObject + its
289
- // MutationObjects, mirroring how functions are written. The genesis commit is
290
- // minted at deploy (writeRecordGenesis) from the initial-state ref.
307
+ // records are datasets. Here we write the separate RecordObject and the
308
+ // mutation, index and migration objects it names, mirroring how functions
309
+ // are written. Deploy mints the record's `$init` commit from the
310
+ // initial-state ref.
291
311
  const records = new SortedMap(); // name -> RecordObject hash
292
312
  const mutationEncoder = encodeBeast2For(MutationObjectType);
313
+ const indexEncoder = encodeBeast2For(RecordIndexObjectType);
314
+ const migrationEncoder = encodeBeast2For(MigrationObjectType);
293
315
  const recordEncoder = encodeBeast2For(RecordObjectType);
294
316
  for (const [rname, rdef] of Object.entries(pkg.records)) {
295
317
  const recordRefPath = rdef.path.map(seg => {
@@ -298,19 +320,68 @@ export async function export_(pkg, outputPath, options) {
298
320
  }
299
321
  return seg.value;
300
322
  }).join('/');
323
+ // A mutation ships its author body AND the program built from it: the
324
+ // program is what runs, and it emits the delta the engine applies. A
325
+ // record whose collection has no delta addressed by key keeps the original
326
+ // protocol — the reducer runs and its whole result is the new state — and
327
+ // says so by naming no program.
301
328
  const mutations = new SortedMap(); // name -> MutationObject hash
302
329
  for (const [mname, mdef] of Object.entries(rdef.mutations)) {
303
- const bodyIrData = encodeEastIR(link(mdef.body, `mutation "${rname}.${mname}"`, mdef.runner));
304
- const bodyIrHash = addObject(zipfile, Buffer.from(bodyIrData));
330
+ const owner = `mutation "${rname}.${mname}"`;
331
+ const programIr = hasKeyedDelta(rdef.type)
332
+ ? addObject(zipfile, Buffer.from(encodeEastIR(link(buildMutationProgram(rdef, mdef), owner, mdef.runner))))
333
+ : '';
334
+ if (mdef.body === undefined && programIr === '') {
335
+ throw new Error(`${owner} has neither a body nor a program to run`);
336
+ }
337
+ const bodyIr = mdef.body === undefined
338
+ ? programIr
339
+ : addObject(zipfile, Buffer.from(encodeEastIR(link(mdef.body, owner, mdef.runner))));
305
340
  const mutObject = {
306
- bodyIr: bodyIrHash,
341
+ bodyIr,
307
342
  argTypes: mdef.argTypes.map((t) => toEastTypeValue(t)),
308
343
  runner: runnerToVariant(mdef.runner),
344
+ form: variant(mdef.form, null),
345
+ programIr,
309
346
  };
310
347
  const mutHash = addObject(zipfile, Buffer.from(mutationEncoder(mutObject)));
311
348
  mutations.set(mname, mutHash);
312
349
  }
313
- const recObject = { path: recordRefPath, mutations };
350
+ // An index ships its declared functions AND the program built from them:
351
+ // what runs is the program, and it is linked and encoded like any body.
352
+ const indexes = new SortedMap(); // name -> RecordIndexObject hash
353
+ for (const [iname, idef] of Object.entries(rdef.indexes)) {
354
+ const owner = `index "${rname}.${iname}"`;
355
+ const irHash = (expr) => addObject(zipfile, Buffer.from(encodeEastIR(link(expr.toIR(), owner, idef.runner))));
356
+ const indexObject = {
357
+ keyIr: irHash(idef.keyFn),
358
+ multi: idef.multi,
359
+ valueIr: idef.valueFn === undefined ? none : some(irHash(idef.valueFn)),
360
+ keyType: toEastTypeValue(idef.keyType),
361
+ valueType: toEastTypeValue(idef.valueType),
362
+ buildIr: addObject(zipfile, Buffer.from(encodeEastIR(link(indexBuildProgram(idef.record.type, idef), owner, idef.runner)))),
363
+ runner: runnerToVariant(idef.runner),
364
+ };
365
+ indexes.set(iname, addObject(zipfile, Buffer.from(indexEncoder(indexObject))));
366
+ }
367
+ // A migration ships its function and, for a step split over the state, the
368
+ // program built from it, which is what runs a piece at a time. A `value`
369
+ // step runs its own function over the whole state, and names no program.
370
+ const migrations = [];
371
+ for (const step of rdef.migrations) {
372
+ const owner = `migration "${rname}.${step.name}"`;
373
+ const irObject = (bundle) => addObject(zipfile, Buffer.from(encodeEastIR(link(bundle, owner, step.runner))));
374
+ const migrationObject = {
375
+ form: variant(step.form, null),
376
+ from: toEastTypeValue(step.from),
377
+ to: toEastTypeValue(step.to),
378
+ bodyIr: irObject(step.body),
379
+ programIr: step.form === 'value' ? '' : irObject(migrationProgram(step)),
380
+ runner: runnerToVariant(step.runner),
381
+ };
382
+ migrations.push({ name: step.name, migration: addObject(zipfile, Buffer.from(migrationEncoder(migrationObject))) });
383
+ }
384
+ const recObject = { path: recordRefPath, mutations, indexes, migrations };
314
385
  const recHash = addObject(zipfile, Buffer.from(recordEncoder(recObject)));
315
386
  records.set(rname, recHash);
316
387
  }
@@ -333,9 +404,8 @@ export async function export_(pkg, outputPath, options) {
333
404
  const packageObjectEncoder = encodeBeast2For(PackageObjectType);
334
405
  const packageObjectData = packageObjectEncoder(packageObject);
335
406
  const packageHash = addObject(zipfile, Buffer.from(packageObjectData));
336
- // Write the package ref at packages/<name>/<version>
337
- const refPath = `packages/${pkg.name}/${pkg.version}`;
338
- zipfile.addBuffer(Buffer.from(packageHash + '\n'), refPath, { mtime: DETERMINISTIC_MTIME });
407
+ // The package ref, as a repository keeps one
408
+ zipfile.addBuffer(Buffer.from(encodeBeast2For(StringType)(packageHash)), `packages/${pkg.name}/${pkg.version}.beast2`, { mtime: DETERMINISTIC_MTIME });
339
409
  // Finalize and write zip to disk
340
410
  await new Promise((resolve, reject) => {
341
411
  const writeStream = fs.createWriteStream(partialPath);
@@ -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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"}