@elaraai/e3-cloud-files 1.0.93 → 1.0.97

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 (49) hide show
  1. package/README.md +129 -23
  2. package/dist/src/authoring.d.ts +61 -24
  3. package/dist/src/authoring.d.ts.map +1 -1
  4. package/dist/src/authoring.js +92 -48
  5. package/dist/src/authoring.js.map +1 -1
  6. package/dist/src/check/index.d.ts +3 -4
  7. package/dist/src/check/index.d.ts.map +1 -1
  8. package/dist/src/check/index.js +3 -4
  9. package/dist/src/check/index.js.map +1 -1
  10. package/dist/src/check.d.ts +44 -9
  11. package/dist/src/check.d.ts.map +1 -1
  12. package/dist/src/check.js +130 -53
  13. package/dist/src/check.js.map +1 -1
  14. package/dist/src/compat.d.ts +384 -0
  15. package/dist/src/compat.d.ts.map +1 -0
  16. package/dist/src/compat.js +258 -0
  17. package/dist/src/compat.js.map +1 -0
  18. package/dist/src/index.d.ts +12 -9
  19. package/dist/src/index.d.ts.map +1 -1
  20. package/dist/src/index.js +12 -9
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/s3/index.d.ts.map +1 -1
  23. package/dist/src/s3/index.js +34 -12
  24. package/dist/src/s3/index.js.map +1 -1
  25. package/dist/src/storage/index.d.ts +72 -3
  26. package/dist/src/storage/index.d.ts.map +1 -1
  27. package/dist/src/storage/index.js +258 -13
  28. package/dist/src/storage/index.js.map +1 -1
  29. package/dist/src/sync/engine.d.ts +282 -49
  30. package/dist/src/sync/engine.d.ts.map +1 -1
  31. package/dist/src/sync/engine.js +599 -110
  32. package/dist/src/sync/engine.js.map +1 -1
  33. package/dist/src/sync/index.d.ts +3 -2
  34. package/dist/src/sync/index.d.ts.map +1 -1
  35. package/dist/src/sync/index.js +3 -2
  36. package/dist/src/sync/index.js.map +1 -1
  37. package/dist/src/sync/memory.d.ts +67 -12
  38. package/dist/src/sync/memory.d.ts.map +1 -1
  39. package/dist/src/sync/memory.js +248 -18
  40. package/dist/src/sync/memory.js.map +1 -1
  41. package/dist/src/sync/push.d.ts +56 -0
  42. package/dist/src/sync/push.d.ts.map +1 -0
  43. package/dist/src/sync/push.js +205 -0
  44. package/dist/src/sync/push.js.map +1 -0
  45. package/dist/test/typed.examples.d.ts +49 -0
  46. package/dist/test/typed.examples.d.ts.map +1 -0
  47. package/dist/test/typed.examples.js +58 -0
  48. package/dist/test/typed.examples.js.map +1 -0
  49. package/package.json +10 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/sync/push.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * The worked example of typed files and feeds: a price list that
7
+ * arrives as beast2 and is an input of its type with no task in between,
8
+ * and a price book, a record, fed through one of its mutations by each new
9
+ * delta file. `typedFiles` is what a partner drops, written with East's
10
+ * beast2 encoder; `wrongPrices` is a file of another type, and `notBeast2`
11
+ * no beast2 at all, which the examples' tests have refused.
12
+ */
13
+ import { ArrayType, DictType, FloatType, IntegerType, StringType, StructType } from '@elaraai/east';
14
+ import { type FilesManifest } from '../src/index.js';
15
+ export declare const Price: StructType<{
16
+ readonly sku: StringType;
17
+ readonly price: FloatType;
18
+ }>;
19
+ export declare const PriceBook: DictType<StringType, FloatType>;
20
+ /** Where the partners' files are: each workspace binds it to a bucket and prefix. */
21
+ export declare const upload: import("../src/authoring.js").FilesSource;
22
+ /** The price list, as the beast2 value it holds: an input of `Array<Price>`. */
23
+ export declare const prices: import("@elaraai/e3").DatasetDef<ArrayType<StructType<{
24
+ readonly sku: StringType;
25
+ readonly price: FloatType;
26
+ }>>, [import("@elaraai/east").variant<"field", "inputs">, import("@elaraai/east").variant<"field", "prices">]>;
27
+ /** The price book, a record the app's users may edit, and a mutation that loads a delivery into it, each price over its sku's. */
28
+ export declare const priceBook: import("@elaraai/e3").RecordDef<DictType<StringType, FloatType>, [import("@elaraai/east").variant<"field", "records">, import("@elaraai/east").variant<"field", "price_book">]>;
29
+ export declare const loadPrices: import("@elaraai/e3").MutationDef<"load_prices", DictType<StringType, FloatType>, [ArrayType<StructType<{
30
+ readonly sku: StringType;
31
+ readonly price: FloatType;
32
+ }>>]>;
33
+ /** How many prices there are, in the list and the book. */
34
+ export declare const priceSummary: import("@elaraai/e3").TaskDef<IntegerType, [import("@elaraai/east").variant<"field", "tasks">, import("@elaraai/east").variant<"field", "price_summary">, import("@elaraai/east").variant<"field", "output">]>;
35
+ export declare const typedPackage: import("@elaraai/e3").PackageDef<Record<string, unknown>>;
36
+ /** What `e3-cloud files deploy` deploys. */
37
+ declare const typedManifest: FilesManifest;
38
+ export default typedManifest;
39
+ /** The price list: three prices. */
40
+ export declare const priceList: Uint8Array<ArrayBufferLike>;
41
+ /** Sample files, by key under the binding. */
42
+ export declare const typedFiles: ReadonlyMap<string, Uint8Array>;
43
+ /** A second delta, newer. */
44
+ export declare const laterDelta: Uint8Array<ArrayBufferLike>;
45
+ /** A file of another type than the price list's: refused, naming both types. */
46
+ export declare const wrongPrices: Uint8Array<ArrayBufferLike>;
47
+ /** No beast2 at all. */
48
+ export declare const notBeast2: NodeJS.NonSharedUint8Array;
49
+ //# sourceMappingURL=typed.examples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed.examples.d.ts","sourceRoot":"","sources":["../../test/typed.examples.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAQ,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAC;AAE3H,OAAO,EAAS,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAM5D,eAAO,MAAM,KAAK;;;EAAoD,CAAC;AACvE,eAAO,MAAM,SAAS,iCAAkC,CAAC;AAEzD,qFAAqF;AACrF,eAAO,MAAM,MAAM,2CAAyB,CAAC;AAE7C,gFAAgF;AAChF,eAAO,MAAM,MAAM;;;8GAA0E,CAAC;AAE9F,kIAAkI;AAClI,eAAO,MAAM,SAAS,iLAAgD,CAAC;AACvE,eAAO,MAAM,UAAU;;;KAOpB,CAAC;AAEJ,2DAA2D;AAC3D,eAAO,MAAM,YAAY,gNACyG,CAAC;AAEnI,eAAO,MAAM,YAAY,2DAAyD,CAAC;AAOnF,4CAA4C;AAC5C,QAAA,MAAM,aAAa,EAAE,aAAwC,CAAC;AAC9D,eAAe,aAAa,CAAC;AAM7B,oCAAoC;AACpC,eAAO,MAAM,SAAS,6BAA8F,CAAC;AAErH,8CAA8C;AAC9C,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAGrD,CAAC;AAEH,6BAA6B;AAC7B,eAAO,MAAM,UAAU,6BAAkE,CAAC;AAE1F,gFAAgF;AAChF,eAAO,MAAM,WAAW,6BAAuG,CAAC;AAEhI,wBAAwB;AACxB,eAAO,MAAM,SAAS,4BAAkD,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ /**
6
+ * The worked example of typed files and feeds: a price list that
7
+ * arrives as beast2 and is an input of its type with no task in between,
8
+ * and a price book, a record, fed through one of its mutations by each new
9
+ * delta file. `typedFiles` is what a partner drops, written with East's
10
+ * beast2 encoder; `wrongPrices` is a file of another type, and `notBeast2`
11
+ * no beast2 at all, which the examples' tests have refused.
12
+ */
13
+ import { East, ArrayType, DictType, FloatType, IntegerType, StringType, StructType, encodeBeast2For } from '@elaraai/east';
14
+ import e3 from '@elaraai/e3';
15
+ import { Files } from '../src/index.js';
16
+ const RUNNER = { runtime: 'east-c', platforms: ['east-c-std'] };
17
+ // ─── src/package.ts ──────────────────────────────────────────────────────────
18
+ export const Price = StructType({ sku: StringType, price: FloatType });
19
+ export const PriceBook = DictType(StringType, FloatType);
20
+ /** Where the partners' files are: each workspace binds it to a bucket and prefix. */
21
+ export const upload = Files.source('upload');
22
+ /** The price list, as the beast2 value it holds: an input of `Array<Price>`. */
23
+ export const prices = upload.file('prices', { key: 'prices.beast2', type: ArrayType(Price) });
24
+ /** The price book, a record the app's users may edit, and a mutation that loads a delivery into it, each price over its sku's. */
25
+ export const priceBook = e3.record('price_book', PriceBook, new Map());
26
+ export const loadPrices = e3.mutation.reduce('load_prices', priceBook, East.function([PriceBook, ArrayType(Price)], PriceBook, ($, state, rows) => {
27
+ // A copy of the book as it is (a mutation's state is immutable), each delivered price set over its sku's
28
+ const next = $.let(state.copy());
29
+ $.for(rows, ($, row) => {
30
+ $(next.insertOrUpdate(row.sku, row.price, (_$, _existing, delivered) => delivered));
31
+ });
32
+ return next;
33
+ }));
34
+ /** How many prices there are, in the list and the book. */
35
+ export const priceSummary = e3.task('price_summary', [prices, priceBook], East.function([ArrayType(Price), PriceBook], IntegerType, (_$, rows, book) => rows.size().add(book.size())), { runner: RUNNER });
36
+ export const typedPackage = e3.package('typed', '1.0.0', priceSummary, loadPrices);
37
+ // ─── src/files.ts ────────────────────────────────────────────────────────────
38
+ /** Each new delta file, the newest under `deltas/`, loads the price book through the mutation. */
39
+ upload.mutation(loadPrices, { prefix: 'deltas/', include: '*.beast2' });
40
+ /** What `e3-cloud files deploy` deploys. */
41
+ const typedManifest = Files.manifest([upload]);
42
+ export default typedManifest;
43
+ // ─── What a partner drops ───────────────────────────────────────────────────
44
+ const priceFile = encodeBeast2For(ArrayType(Price));
45
+ /** The price list: three prices. */
46
+ export const priceList = priceFile([{ sku: 'A1', price: 1.5 }, { sku: 'B2', price: 2.25 }, { sku: 'C3', price: 9 }]);
47
+ /** Sample files, by key under the binding. */
48
+ export const typedFiles = new Map([
49
+ ['prices.beast2', priceList],
50
+ ['deltas/2026-10-01.beast2', priceFile([{ sku: 'A1', price: 1.75 }])],
51
+ ]);
52
+ /** A second delta, newer. */
53
+ export const laterDelta = priceFile([{ sku: 'A1', price: 1.8 }, { sku: 'D4', price: 4 }]);
54
+ /** A file of another type than the price list's: refused, naming both types. */
55
+ export const wrongPrices = encodeBeast2For(ArrayType(StructType({ id: StringType, qty: IntegerType })))([{ id: 'x', qty: 1n }]);
56
+ /** No beast2 at all. */
57
+ export const notBeast2 = new TextEncoder().encode('sku,price\nA1,1.5\n');
58
+ //# sourceMappingURL=typed.examples.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed.examples.js","sourceRoot":"","sources":["../../test/typed.examples.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/e3-cloud-files",
3
- "version": "1.0.93",
3
+ "version": "1.0.97",
4
4
  "description": "Files for e3 cloud: a solution's inputs that come from files in a bucket, declared in its code and synced on demand, locally and in the cloud",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -26,6 +26,10 @@
26
26
  "types": "./dist/src/s3/index.d.ts",
27
27
  "default": "./dist/src/s3/index.js"
28
28
  },
29
+ "./compat": {
30
+ "types": "./dist/src/compat.d.ts",
31
+ "default": "./dist/src/compat.js"
32
+ },
29
33
  "./examples/*": {
30
34
  "types": "./dist/test/*.examples.d.ts",
31
35
  "default": "./dist/test/*.examples.js"
@@ -53,14 +57,14 @@
53
57
  "node": ">=22.0.0"
54
58
  },
55
59
  "dependencies": {
56
- "@elaraai/e3-types": "1.0.93",
57
- "@elaraai/e3-cloud-types": "1.0.93"
60
+ "@elaraai/e3-types": "1.0.97",
61
+ "@elaraai/e3-cloud-types": "1.0.97"
58
62
  },
59
63
  "peerDependencies": {
60
64
  "@aws-sdk/client-s3": "^3.966.0",
61
- "@elaraai/e3": "1.0.93",
62
- "@elaraai/e3-core": "1.0.93",
63
- "@elaraai/east": "1.0.93"
65
+ "@elaraai/e3": "1.0.97",
66
+ "@elaraai/e3-core": "1.0.97",
67
+ "@elaraai/east": "1.0.97"
64
68
  },
65
69
  "peerDependenciesMeta": {
66
70
  "@aws-sdk/client-s3": {