@e280/quay 0.0.0-15 → 0.0.0-18

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 (57) hide show
  1. package/package.json +6 -4
  2. package/s/cellar/cask.ts +0 -18
  3. package/s/cellar/cellar.test.ts +19 -38
  4. package/s/cellar/cellar.ts +16 -20
  5. package/s/cellar/index.ts +0 -4
  6. package/s/cellar/mammoth.ts +50 -0
  7. package/s/cellar/mammoth.worker.bundle.ts +30 -0
  8. package/s/dom/components/browser/component.ts +1 -1
  9. package/s/genius/parts/hy-tree.ts +10 -9
  10. package/s/logic/group.ts +1 -0
  11. package/s/logic/presets/media/library.ts +57 -12
  12. package/s/logic/presets/media/schema.ts +6 -0
  13. package/x/cellar/cask.d.ts +0 -2
  14. package/x/cellar/cask.js +0 -13
  15. package/x/cellar/cask.js.map +1 -1
  16. package/x/cellar/cellar.d.ts +9 -7
  17. package/x/cellar/cellar.js +17 -22
  18. package/x/cellar/cellar.js.map +1 -1
  19. package/x/cellar/cellar.test.d.ts +2 -3
  20. package/x/cellar/cellar.test.js +19 -35
  21. package/x/cellar/cellar.test.js.map +1 -1
  22. package/x/cellar/index.d.ts +0 -3
  23. package/x/cellar/index.js +0 -3
  24. package/x/cellar/index.js.map +1 -1
  25. package/x/cellar/mammoth.d.ts +23 -0
  26. package/x/cellar/mammoth.js +34 -0
  27. package/x/cellar/mammoth.js.map +1 -0
  28. package/x/cellar/mammoth.worker.bundle.d.ts +1 -0
  29. package/x/cellar/mammoth.worker.bundle.js +20 -0
  30. package/x/cellar/mammoth.worker.bundle.js.map +1 -0
  31. package/x/cellar/mammoth.worker.bundle.min.js +8 -0
  32. package/x/cellar/mammoth.worker.bundle.min.js.map +7 -0
  33. package/x/demo/main.bundle.min.js +43 -43
  34. package/x/demo/main.bundle.min.js.map +4 -4
  35. package/x/dom/components/browser/component.js +1 -1
  36. package/x/dom/components/browser/component.js.map +1 -1
  37. package/x/genius/parts/hy-tree.js +9 -8
  38. package/x/genius/parts/hy-tree.js.map +1 -1
  39. package/x/index.html +2 -2
  40. package/x/logic/group.js +2 -1
  41. package/x/logic/group.js.map +1 -1
  42. package/x/logic/presets/media/library.d.ts +3 -2
  43. package/x/logic/presets/media/library.js +46 -9
  44. package/x/logic/presets/media/library.js.map +1 -1
  45. package/x/logic/presets/media/schema.d.ts +6 -0
  46. package/s/cellar/forklift.ts +0 -9
  47. package/s/cellar/memory-forklift.ts +0 -30
  48. package/s/cellar/opfs-forklift.ts +0 -47
  49. package/x/cellar/forklift.d.ts +0 -7
  50. package/x/cellar/forklift.js +0 -2
  51. package/x/cellar/forklift.js.map +0 -1
  52. package/x/cellar/memory-forklift.d.ts +0 -9
  53. package/x/cellar/memory-forklift.js +0 -22
  54. package/x/cellar/memory-forklift.js.map +0 -1
  55. package/x/cellar/opfs-forklift.d.ts +0 -11
  56. package/x/cellar/opfs-forklift.js +0 -42
  57. package/x/cellar/opfs-forklift.js.map +0 -1
@@ -11,7 +11,7 @@ export const QuayBrowser = shadowElement(() => {
11
11
  const { trail, config } = group;
12
12
  const [viewMode, setViewMode] = useState('tiles');
13
13
  useMount(() => {
14
- const dispose = group.on.upload.sub(() => render());
14
+ const dispose = group.on.refresh.sub(() => render());
15
15
  return () => dispose();
16
16
  });
17
17
  const getItems = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../s/dom/components/browser/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,WAAW,CAAA;AAE1F,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AAEzC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAG9D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,EAAE;IAC7C,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,KAAK,CAAA;IAC7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,OAAO,CAAC,CAAA;IAEtE,QAAQ,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;QACnD,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAgB,CAAA;IAC1F,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;KAE1B,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA;gCACA,CAAC,CAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;;QAE7D,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;;iCAEnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;;;IAG5B,CAAC;;EAEH,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;KAE5B,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA;kBACd,CAAC,CAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;OAChD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;;wBAEb,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;wBACxB,IAAI,CAAC,IAAI;;;IAG7B,CAAC;;EAEH,CAAA;IACD,gBAAgB;IAChB,8CAA8C;IAE9C,OAAO,IAAI,CAAA;;;;mDAIuC,QAAQ,KAAK,OAAO,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;;;;;mDAKzD,QAAQ,KAAK,SAAS,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;;;;;;;IAO5G,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;EAC1D,CAAA;AACF,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../s/dom/components/browser/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,WAAW,CAAA;AAE1F,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AAEzC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAG9D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,EAAE;IAC7C,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,KAAK,CAAA;IAC7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,OAAO,CAAC,CAAA;IAEtE,QAAQ,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;QACpD,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAgB,CAAA;IAC1F,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;KAE1B,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA;gCACA,CAAC,CAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;;QAE7D,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;;iCAEnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;;;IAG5B,CAAC;;EAEH,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;KAE5B,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA;kBACd,CAAC,CAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;OAChD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;;wBAEb,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;wBACxB,IAAI,CAAC,IAAI;;;IAG7B,CAAC;;EAEH,CAAA;IACD,gBAAgB;IAChB,8CAA8C;IAE9C,OAAO,IAAI,CAAA;;;;mDAIuC,QAAQ,KAAK,OAAO,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;;;;;mDAKzD,QAAQ,KAAK,SAAS,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;;;;;;;IAO5G,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;EAC1D,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { collect } from "@e280/kv";
1
+ import { collect } from "@e280/stz";
2
2
  /**
3
3
  * Async hierarchy of nestable items.
4
4
  * - items can have multiple children.
@@ -21,7 +21,7 @@ export class HyTree {
21
21
  }
22
22
  }
23
23
  async gets(...ids) {
24
- const records = await this.records.gets(...ids);
24
+ const records = await this.records.getMany(ids);
25
25
  return records.map(r => {
26
26
  if (!r)
27
27
  return undefined;
@@ -30,12 +30,12 @@ export class HyTree {
30
30
  });
31
31
  }
32
32
  async require(id) {
33
- const record = await this.records.require(id);
33
+ const record = await this.records.need(id);
34
34
  const [parent, children] = record;
35
35
  return { parent, children };
36
36
  }
37
37
  async requires(...ids) {
38
- const records = await this.records.requires(...ids);
38
+ const records = await this.records.needMany(ids);
39
39
  return records.map(([parent, children]) => ({ parent, children }));
40
40
  }
41
41
  /** establish an id as a root with no parents, but ready to accept children */
@@ -61,9 +61,10 @@ export class HyTree {
61
61
  siblings.add(id);
62
62
  }
63
63
  // save all new children
64
- await this.records.sets(...newcomers);
65
- // save updated parent item
66
- await this.records.set(parent, [parentItem.parent, [...siblings]]);
64
+ await this.records.commit([
65
+ ...newcomers.map(([id, record]) => this.records.op.set(id, record)),
66
+ this.records.op.set(parent, [parentItem.parent, [...siblings]]),
67
+ ]);
67
68
  }
68
69
  /** detach this id from its parent in the hierarchy */
69
70
  async detach(id) {
@@ -85,7 +86,7 @@ export class HyTree {
85
86
  await this.detach(id);
86
87
  const tree = await collect(this.crawl(id));
87
88
  const ids = tree.map(({ id }) => id);
88
- await this.records.del(...ids);
89
+ await this.records.commit(ids.map(id => this.records.op.delete(id)));
89
90
  }
90
91
  /** delete absolutely everything */
91
92
  async clear() {
@@ -1 +1 @@
1
- {"version":3,"file":"hy-tree.js","sourceRoot":"","sources":["../../../s/genius/parts/hy-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hy-tree.js","sourceRoot":"","sources":["../../../s/genius/parts/hy-tree.ts"],"names":[],"mappings":"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"}
package/x/index.html CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="stylesheet" href="demo/main.css?v=c15dc8e40513"/>
21
- <script type="module" src="demo/main.bundle.min.js?v=d37865f39fc5"></script>
21
+ <script type="module" src="demo/main.bundle.min.js?v=070c4ac9ec8b"></script>
22
22
 
23
23
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.20.0/cdn/themes/dark.css"/>
24
24
  <!-- loading every shoelace component for now (should be cherry picked instead) -->
@@ -29,7 +29,7 @@
29
29
  <img alt="" src="/assets/favicon.png"/>
30
30
  <div>
31
31
  <h1>Quay</h1>
32
- <span class=version>v0.0.0-15</span>
32
+ <span class=version>v0.0.0-18</span>
33
33
  </div>
34
34
  </header>
35
35
 
package/x/logic/group.js CHANGED
@@ -68,7 +68,8 @@ export class Group {
68
68
  upload(files, folder) {
69
69
  if (!this.permissions(folder).upload)
70
70
  throw new Error("upload permission not granted");
71
- return this.on.upload.pub({ files, target: folder });
71
+ return this.on.upload.pub({ files, target: folder })
72
+ .then(() => this.on.refresh.pub({}));
72
73
  }
73
74
  addFolder(parent) {
74
75
  if (!this.permissions(parent).newFolder)
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../../s/logic/group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../s/logic/group.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { MediaGroup } from "./group.js";
2
2
  import { Cellar } from "../../../cellar/cellar.js";
3
- import { MediaFormat } from "./schema.js";
3
+ import { MediaFormat, MediaProgress } from "./schema.js";
4
4
  import { CodexItem } from "../../aspects/codex/parts/codex-item.js";
5
5
  export type MediaRecord = {
6
6
  hash: string;
@@ -14,6 +14,7 @@ export type MediaRecord = {
14
14
  export declare class MediaLibrary extends MediaGroup {
15
15
  #private;
16
16
  static open(scope?: string): Promise<MediaLibrary>;
17
+ progress: import("@e280/stz").Sub<[MediaProgress]>;
17
18
  cellar: Cellar;
18
19
  constructor();
19
20
  records(): AsyncGenerator<MediaRecord, void, unknown>;
@@ -34,7 +35,7 @@ export declare class MediaLibrary extends MediaGroup {
34
35
  size?: number;
35
36
  };
36
37
  };
37
- }, "file" | "folder"> & CodexItem<{
38
+ }, "folder" | "file"> & CodexItem<{
38
39
  taxon: {
39
40
  icon: import("@e280/sly").Content;
40
41
  };
@@ -1,4 +1,5 @@
1
- import { Kv, StorageDriver } from "@e280/kv";
1
+ import { sub } from "@e280/stz";
2
+ import { Kv, StorageMagazine } from "@e280/kv";
2
3
  import { MediaGroup } from "./group.js";
3
4
  import { Cellar } from "../../../cellar/cellar.js";
4
5
  export class MediaLibrary extends MediaGroup {
@@ -11,6 +12,7 @@ export class MediaLibrary extends MediaGroup {
11
12
  }
12
13
  #objectUrls = new Map();
13
14
  #index;
15
+ progress = sub();
14
16
  cellar = new Cellar();
15
17
  constructor() {
16
18
  super();
@@ -38,11 +40,37 @@ export class MediaLibrary extends MediaGroup {
38
40
  await Promise.all(files.map(file => this.#storeFile(file, parent)));
39
41
  }
40
42
  async #storeFile(file, parent) {
41
- const cask = await this.cellar.save(file);
42
- const existing = await this.#index.get(cask.hash);
43
+ const item = this.#attachPending(file, parent);
44
+ try {
45
+ const hash = await this.cellar.write(trackProgress(file.stream(), loaded => this.progress.pub({ item, loaded, total: file.size })));
46
+ const record = await this.#saveRecord(file, hash);
47
+ item.destroy();
48
+ this.#attachRecord(record, parent);
49
+ return record;
50
+ }
51
+ catch (error) {
52
+ item.destroy();
53
+ this.on.refresh.pub({});
54
+ throw error;
55
+ }
56
+ }
57
+ #attachPending(file, parent) {
58
+ const item = this.config.codex.create("file", {
59
+ label: file.name,
60
+ format: mediaFormat(file.type),
61
+ mime: file.type,
62
+ size: file.size,
63
+ previewUrl: null,
64
+ });
65
+ parent.attach(item);
66
+ this.on.refresh.pub({});
67
+ return item;
68
+ }
69
+ async #saveRecord(file, hash) {
70
+ const existing = await this.#index.get(hash);
43
71
  const now = Date.now();
44
72
  const record = {
45
- hash: cask.hash,
73
+ hash,
46
74
  label: existing?.label ?? file.name,
47
75
  format: mediaFormat(file.type),
48
76
  mime: file.type,
@@ -50,10 +78,9 @@ export class MediaLibrary extends MediaGroup {
50
78
  createdAt: existing?.createdAt ?? now,
51
79
  updatedAt: now,
52
80
  };
53
- await this.#index.set(record.hash, record);
81
+ await this.#index.set(hash, record);
54
82
  if (record.format === "image")
55
- this.#setPreview(record.hash, URL.createObjectURL(file));
56
- this.#attachRecord(record, parent);
83
+ this.#setPreview(hash, URL.createObjectURL(file));
57
84
  return record;
58
85
  }
59
86
  #hashes(items) {
@@ -63,7 +90,7 @@ export class MediaLibrary extends MediaGroup {
63
90
  }
64
91
  async #delete(hashes) {
65
92
  for (const hash of hashes) {
66
- await this.#index.del(hash);
93
+ await this.#index.delete(hash);
67
94
  await this.cellar.delete(hash);
68
95
  this.#revokePreview(hash);
69
96
  }
@@ -121,7 +148,7 @@ function mediaFormat(mime) {
121
148
  function mediaIndex(scope) {
122
149
  const storage = globalThis.localStorage;
123
150
  if (storage)
124
- return new Kv(new StorageDriver(storage))
151
+ return new Kv(new StorageMagazine(storage))
125
152
  .scope("quay.media")
126
153
  .scope(scope);
127
154
  const existing = memoryIndexes.get(scope);
@@ -131,4 +158,14 @@ function mediaIndex(scope) {
131
158
  memoryIndexes.set(scope, index);
132
159
  return index;
133
160
  }
161
+ function trackProgress(readable, onProgress) {
162
+ let loaded = 0;
163
+ return readable.pipeThrough(new TransformStream({
164
+ transform(chunk, controller) {
165
+ loaded += chunk.byteLength;
166
+ onProgress(loaded);
167
+ controller.enqueue(chunk);
168
+ },
169
+ }));
170
+ }
134
171
  //# sourceMappingURL=library.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../s/logic/presets/media/library.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../s/logic/presets/media/library.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Content } from "@e280/sly";
2
2
  import { AsSchema } from "../../aspects/codex/parts/types.js";
3
+ import { CodexItem } from "../../aspects/codex/parts/codex-item.js";
3
4
  export type MediaFormat = "video" | "image" | "audio" | "other";
4
5
  export type MediaSchema = AsSchema<{
5
6
  taxon: {
@@ -19,3 +20,8 @@ export type MediaSchema = AsSchema<{
19
20
  };
20
21
  };
21
22
  }>;
23
+ export type MediaProgress = {
24
+ item: CodexItem<MediaSchema>;
25
+ loaded: number;
26
+ total: number;
27
+ };
@@ -1,9 +0,0 @@
1
-
2
- export type Forklift = {
3
- list(): AsyncIterable<string>
4
- has(label: string): Promise<boolean>
5
- save(label: string, file: Blob): Promise<void>
6
- load(label: string): Promise<Blob>
7
- delete(label: string): Promise<void>
8
- }
9
-
@@ -1,30 +0,0 @@
1
-
2
- import {MapG} from "@e280/stz"
3
- import {Forklift} from "./forklift.js"
4
-
5
- export class MemoryForklift implements Forklift {
6
- #map = new MapG<string, Uint8Array>()
7
-
8
- async *list(): AsyncIterable<string> {
9
- for (const label of this.#map.keys())
10
- yield label
11
- }
12
-
13
- async has(label: string): Promise<boolean> {
14
- return this.#map.has(label)
15
- }
16
-
17
- async save(label: string, file: Blob): Promise<void> {
18
- const bytes = new Uint8Array(await file.arrayBuffer())
19
- this.#map.set(label, bytes)
20
- }
21
-
22
- async load(label: string): Promise<Blob> {
23
- return new Blob([this.#map.require(label)])
24
- }
25
-
26
- async delete(label: string) {
27
- this.#map.delete(label)
28
- }
29
- }
30
-
@@ -1,47 +0,0 @@
1
-
2
- import {Forklift} from "./forklift.js"
3
-
4
- export class OpfsForklift implements Forklift {
5
- static async setup(dirname: string) {
6
- const root = await navigator.storage.getDirectory()
7
- const directory = await root.getDirectoryHandle(dirname, {create: true})
8
- return new this(directory)
9
- }
10
-
11
- constructor(private directory: FileSystemDirectoryHandle) {}
12
-
13
- async *list(): AsyncIterable<string> {
14
- for await (const [name, handle] of this.directory.entries()) {
15
- if (handle.kind === "file")
16
- yield name
17
- }
18
- }
19
-
20
- async has(label: string): Promise<boolean> {
21
- try {
22
- await this.directory.getFileHandle(label)
23
- return true
24
- }
25
- catch (err) {
26
- if ((err as DOMException).name === "NotFoundError") return false
27
- throw err
28
- }
29
- }
30
-
31
- async save(label: string, file: Blob): Promise<void> {
32
- const fileHandle = await this.directory.getFileHandle(label, {create: true})
33
- const writable = await fileHandle.createWritable()
34
- await writable.write(file)
35
- await writable.close()
36
- }
37
-
38
- async load(label: string): Promise<Blob> {
39
- const fileHandle = await this.directory.getFileHandle(label)
40
- return await fileHandle.getFile()
41
- }
42
-
43
- async delete(label: string) {
44
- await this.directory.removeEntry(label)
45
- }
46
- }
47
-
@@ -1,7 +0,0 @@
1
- export type Forklift = {
2
- list(): AsyncIterable<string>;
3
- has(label: string): Promise<boolean>;
4
- save(label: string, file: Blob): Promise<void>;
5
- load(label: string): Promise<Blob>;
6
- delete(label: string): Promise<void>;
7
- };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=forklift.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forklift.js","sourceRoot":"","sources":["../../s/cellar/forklift.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { Forklift } from "./forklift.js";
2
- export declare class MemoryForklift implements Forklift {
3
- #private;
4
- list(): AsyncIterable<string>;
5
- has(label: string): Promise<boolean>;
6
- save(label: string, file: Blob): Promise<void>;
7
- load(label: string): Promise<Blob>;
8
- delete(label: string): Promise<void>;
9
- }
@@ -1,22 +0,0 @@
1
- import { MapG } from "@e280/stz";
2
- export class MemoryForklift {
3
- #map = new MapG();
4
- async *list() {
5
- for (const label of this.#map.keys())
6
- yield label;
7
- }
8
- async has(label) {
9
- return this.#map.has(label);
10
- }
11
- async save(label, file) {
12
- const bytes = new Uint8Array(await file.arrayBuffer());
13
- this.#map.set(label, bytes);
14
- }
15
- async load(label) {
16
- return new Blob([this.#map.require(label)]);
17
- }
18
- async delete(label) {
19
- this.#map.delete(label);
20
- }
21
- }
22
- //# sourceMappingURL=memory-forklift.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-forklift.js","sourceRoot":"","sources":["../../s/cellar/memory-forklift.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAG9B,MAAM,OAAO,cAAc;IAC1B,IAAI,GAAG,IAAI,IAAI,EAAsB,CAAA;IAErC,KAAK,CAAC,CAAC,IAAI;QACV,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACnC,MAAM,KAAK,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,IAAU;QACnC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa;QACvB,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;CACD"}
@@ -1,11 +0,0 @@
1
- import { Forklift } from "./forklift.js";
2
- export declare class OpfsForklift implements Forklift {
3
- private directory;
4
- static setup(dirname: string): Promise<OpfsForklift>;
5
- constructor(directory: FileSystemDirectoryHandle);
6
- list(): AsyncIterable<string>;
7
- has(label: string): Promise<boolean>;
8
- save(label: string, file: Blob): Promise<void>;
9
- load(label: string): Promise<Blob>;
10
- delete(label: string): Promise<void>;
11
- }
@@ -1,42 +0,0 @@
1
- export class OpfsForklift {
2
- directory;
3
- static async setup(dirname) {
4
- const root = await navigator.storage.getDirectory();
5
- const directory = await root.getDirectoryHandle(dirname, { create: true });
6
- return new this(directory);
7
- }
8
- constructor(directory) {
9
- this.directory = directory;
10
- }
11
- async *list() {
12
- for await (const [name, handle] of this.directory.entries()) {
13
- if (handle.kind === "file")
14
- yield name;
15
- }
16
- }
17
- async has(label) {
18
- try {
19
- await this.directory.getFileHandle(label);
20
- return true;
21
- }
22
- catch (err) {
23
- if (err.name === "NotFoundError")
24
- return false;
25
- throw err;
26
- }
27
- }
28
- async save(label, file) {
29
- const fileHandle = await this.directory.getFileHandle(label, { create: true });
30
- const writable = await fileHandle.createWritable();
31
- await writable.write(file);
32
- await writable.close();
33
- }
34
- async load(label) {
35
- const fileHandle = await this.directory.getFileHandle(label);
36
- return await fileHandle.getFile();
37
- }
38
- async delete(label) {
39
- await this.directory.removeEntry(label);
40
- }
41
- }
42
- //# sourceMappingURL=opfs-forklift.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opfs-forklift.js","sourceRoot":"","sources":["../../s/cellar/opfs-forklift.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IAOJ;IANpB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAe;QACjC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;QACxE,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,YAAoB,SAAoC;QAApC,cAAS,GAAT,SAAS,CAA2B;IAAG,CAAC;IAE5D,KAAK,CAAC,CAAC,IAAI;QACV,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;gBACzB,MAAM,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACtB,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACZ,IAAK,GAAoB,CAAC,IAAI,KAAK,eAAe;gBAAE,OAAO,KAAK,CAAA;YAChE,MAAM,GAAG,CAAA;QACV,CAAC;IACF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,IAAU;QACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;QAC5E,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,CAAA;QAClD,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa;QACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5D,OAAO,MAAM,UAAU,CAAC,OAAO,EAAE,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;CACD"}