@e280/quay 0.0.0-11 → 0.0.0-13

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 (58) hide show
  1. package/README.md +59 -0
  2. package/package.json +2 -1
  3. package/s/cellar/cask.ts +13 -7
  4. package/s/cellar/cellar.test.ts +20 -18
  5. package/s/cellar/cellar.ts +3 -3
  6. package/s/cellar/forklift.ts +2 -2
  7. package/s/cellar/memory-forklift.ts +4 -3
  8. package/s/cellar/opfs-forklift.ts +4 -6
  9. package/s/dom/components/browser/style.css.ts +30 -30
  10. package/s/dom/components/dropzone/style.css.ts +11 -12
  11. package/s/dom/components/filter/component.ts +2 -2
  12. package/s/dom/components/searchbar/component.ts +5 -2
  13. package/s/dom/components/sort/component.ts +3 -3
  14. package/s/dom/theme.css.ts +28 -0
  15. package/s/dom/views/tree/style.css.ts +9 -9
  16. package/s/logic/aspects/codex/parts/hierarchy.ts +1 -0
  17. package/s/logic/group.ts +5 -3
  18. package/s/logic/presets/media/library.test.ts +41 -14
  19. package/s/logic/presets/media/library.ts +25 -17
  20. package/x/cellar/cask.d.ts +4 -4
  21. package/x/cellar/cask.js +13 -9
  22. package/x/cellar/cask.js.map +1 -1
  23. package/x/cellar/cellar.d.ts +1 -1
  24. package/x/cellar/cellar.js +3 -3
  25. package/x/cellar/cellar.js.map +1 -1
  26. package/x/cellar/cellar.test.js +19 -18
  27. package/x/cellar/cellar.test.js.map +1 -1
  28. package/x/cellar/forklift.d.ts +2 -2
  29. package/x/cellar/memory-forklift.d.ts +2 -2
  30. package/x/cellar/memory-forklift.js +3 -2
  31. package/x/cellar/memory-forklift.js.map +1 -1
  32. package/x/cellar/opfs-forklift.d.ts +2 -2
  33. package/x/cellar/opfs-forklift.js +3 -5
  34. package/x/cellar/opfs-forklift.js.map +1 -1
  35. package/x/demo/main.bundle.min.js +104 -71
  36. package/x/demo/main.bundle.min.js.map +2 -2
  37. package/x/dom/components/browser/style.css.js +30 -29
  38. package/x/dom/components/browser/style.css.js.map +1 -1
  39. package/x/dom/components/dropzone/style.css.js +11 -11
  40. package/x/dom/components/filter/component.js +2 -2
  41. package/x/dom/components/searchbar/component.js +5 -1
  42. package/x/dom/components/searchbar/component.js.map +1 -1
  43. package/x/dom/components/sort/component.js +3 -3
  44. package/x/dom/theme.css.js +28 -0
  45. package/x/dom/theme.css.js.map +1 -1
  46. package/x/dom/views/tree/style.css.js +9 -9
  47. package/x/index.html +2 -2
  48. package/x/logic/aspects/codex/parts/hierarchy.js +1 -0
  49. package/x/logic/aspects/codex/parts/hierarchy.js.map +1 -1
  50. package/x/logic/group.d.ts +3 -3
  51. package/x/logic/group.js +3 -2
  52. package/x/logic/group.js.map +1 -1
  53. package/x/logic/presets/media/library.d.ts +4 -40
  54. package/x/logic/presets/media/library.js +21 -16
  55. package/x/logic/presets/media/library.js.map +1 -1
  56. package/x/logic/presets/media/library.test.d.ts +3 -2
  57. package/x/logic/presets/media/library.test.js +34 -14
  58. package/x/logic/presets/media/library.test.js.map +1 -1
@@ -4,38 +4,39 @@ export default css `
4
4
  .toolbar {
5
5
  display: flex;
6
6
  justify-content: flex-end;
7
- padding: 0.5rem;
7
+ padding: var(--space-sm);
8
8
 
9
9
  sl-button {
10
- background: #0F0F11;
11
- border-radius: 5px;
10
+ background: var(--surface);
11
+ border-radius: var(--radius-small);
12
12
 
13
13
  &[data-active=true] {
14
- background: var(--sl-color-neutral-0);
14
+ background: var(--surface-active);
15
15
  }
16
16
 
17
17
  &::part(base) {
18
18
  display: flex;
19
19
  align-items: center;
20
- height: 30px;
20
+ height: var(--control-height);
21
+ border-radius: var(--radius-small);
21
22
  }
22
23
 
23
24
  &::part(label) {
24
25
  display: flex;
25
- width: 40px;
26
+ width: var(--control-width);
26
27
  }
27
28
  }
28
29
  }
29
30
 
30
31
  .tiles,
31
32
  .details {
32
- padding: 0.5rem;
33
+ padding: var(--space-sm);
33
34
  }
34
35
 
35
36
  .tiles {
36
37
  display: flex;
37
38
  flex-wrap: wrap;
38
- row-gap: 1em;
39
+ row-gap: var(--space-md);
39
40
  width: 100%;
40
41
 
41
42
  .item {
@@ -49,11 +50,11 @@ export default css `
49
50
  display: flex;
50
51
  align-items: center;
51
52
  justify-content: center;
52
- width: 100px;
53
- height: 60px;
54
- border: 2px solid #0D0D0E;
55
- border-radius: 5px;
56
- background: #0F0F11;
53
+ width: var(--quay-browser-thumb-width, 100px);
54
+ height: var(--quay-browser-thumb-height, 60px);
55
+ border: var(--border-width) solid var(--border);
56
+ border-radius: var(--radius-small);
57
+ background: var(--surface);
57
58
  pointer-events: none;
58
59
 
59
60
  img {
@@ -63,14 +64,14 @@ export default css `
63
64
  }
64
65
 
65
66
  .label {
66
- margin-top: 0.5em;
67
+ margin-top: var(--space-xs);
67
68
  max-width: 150px;
68
- font-size: 0.85rem;
69
+ font-size: var(--font-size-sm);
69
70
  text-align: center;
70
71
  white-space: nowrap;
71
72
  overflow: hidden;
72
73
  text-overflow: ellipsis;
73
- color: var(--sl-color-neutral-700);
74
+ color: var(--text-muted);
74
75
  }
75
76
  }
76
77
  }
@@ -78,38 +79,38 @@ export default css `
78
79
  .details {
79
80
  .card {
80
81
  display: flex;
81
- gap: 1rem;
82
- padding: 0.8rem;
83
- border: 2px solid #0D0D0E;
84
- background: #0F0F11;
85
- border-radius: 6px;
86
- margin-bottom: 0.5rem;
82
+ gap: var(--space-md);
83
+ padding: var(--space-sm);
84
+ border: var(--border-width) solid var(--border);
85
+ background: var(--surface);
86
+ border-radius: var(--radius);
87
+ margin-bottom: var(--space-sm);
87
88
  align-items: center;
88
89
 
89
90
  .meta {
90
91
  .name {
91
92
  font-weight: 500;
92
- color: var(--sl-color-neutral-800);
93
+ color: var(--text);
93
94
  }
94
95
  .type {
95
- font-size: 0.75rem;
96
- color: var(--sl-color-neutral-500);
96
+ font-size: var(--font-size-xs);
97
+ color: var(--text-subtle);
97
98
  }
98
99
  }
99
100
  }
100
101
  }
101
102
 
102
103
  sl-icon {
103
- font-size: 2rem;
104
- color: var(--sl-color-neutral-300);
104
+ font-size: var(--icon-size);
105
+ color: var(--icon);
105
106
  }
106
107
 
107
108
  sl-tooltip {
108
109
  --sl-tooltip-arrow-size: 0;
109
110
 
110
111
  &::part(body) {
111
- background: #0D0D0E;
112
- color: var(--sl-color-neutral-700);
112
+ background: var(--border);
113
+ color: var(--text-muted);
113
114
  }
114
115
  }
115
116
 
@@ -1 +1 @@
1
- {"version":3,"file":"style.css.js","sourceRoot":"","sources":["../../../../s/dom/components/browser/style.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHjB,CAAA"}
1
+ {"version":3,"file":"style.css.js","sourceRoot":"","sources":["../../../../s/dom/components/browser/style.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmHjB,CAAA"}
@@ -8,16 +8,16 @@ export default css `
8
8
  align-items: center;
9
9
  justify-content: center;
10
10
  position: relative;
11
- border: 2px dashed var(--sl-color-neutral-300);
12
- border-radius: 6px;
13
- transition: background 0.2s;
11
+ border: var(--border-width) dashed var(--border-muted);
12
+ border-radius: var(--radius);
13
+ transition: background var(--transition), border-color var(--transition), color var(--transition);
14
14
  }
15
15
 
16
16
  .dz-input {
17
17
  width: 100%;
18
18
  height: 100%;
19
- z-index: 999;
20
- font-size: 14px;
19
+ z-index: var(--z-overlay);
20
+ font-size: var(--font-size-sm);
21
21
  cursor: pointer;
22
22
  opacity: 0;
23
23
 
@@ -27,15 +27,15 @@ export default css `
27
27
  }
28
28
 
29
29
  .dropzone:hover {
30
- background: var(--sl-color-gray-50);
30
+ background: var(--surface-hover);
31
31
  }
32
32
 
33
33
  .dropzone[data-hovering] {
34
- background: var(--sl-color-gray-50);
35
- border-color: var(--sl-color-primary-500);
34
+ background: var(--surface-hover);
35
+ border-color: var(--primary);
36
36
 
37
37
  & .dz-info {
38
- color: var(--sl-color-primary-300);
38
+ color: var(--primary-soft);
39
39
  }
40
40
  }
41
41
 
@@ -45,8 +45,8 @@ export default css `
45
45
  flex-direction: column;
46
46
  align-items: center;
47
47
  justify-content: center;
48
- gap: 0.5em;
49
- color: var(--sl-color-neutral-700);
48
+ gap: var(--space-sm);
49
+ color: var(--text-muted);
50
50
  }
51
51
 
52
52
  `;
@@ -7,12 +7,12 @@ export const QuayFilter = shadowElement(() => {
7
7
  const group = findLocalGroup(host);
8
8
  useStyles(themeCss, css `
9
9
  sl-menu {
10
- margin-top: 0.3em;
10
+ margin-top: var(--space-xs);
11
11
 
12
12
  .item {
13
13
  display: flex;
14
14
  align-items: center;
15
- gap: 0.5em;
15
+ gap: var(--space-sm);
16
16
  }
17
17
  }
18
18
  `);
@@ -3,8 +3,12 @@ import { shadowElement, useHost, useStyles } from "@e280/sly";
3
3
  import themeCss from '../../theme.css.js';
4
4
  import { findLocalGroup } from '../../utils/find-local-group.js';
5
5
  const styleCss = css `
6
+ sl-input::part(base) {
7
+ border-radius: var(--radius);
8
+ }
9
+
6
10
  sl-input::part(prefix) {
7
- padding-left: 0.5em;
11
+ padding-left: var(--space-sm);
8
12
  }
9
13
  `;
10
14
  export const QuaySearchbar = shadowElement(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../s/dom/components/searchbar/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAE,GAAG,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,WAAW,CAAA;AAE3D,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AAEzC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAE9D,MAAM,QAAQ,GAAG,GAAG,CAAA;;;;CAInB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,EAAE;IAC/C,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IAElC,OAAO,IAAI,CAAA;;;;;;eAMG,CAAC,CAAc,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAE,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;;;;EAIvF,CAAA;AACF,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../s/dom/components/searchbar/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAE,GAAG,EAAC,MAAM,KAAK,CAAA;AAC7B,OAAO,EAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,WAAW,CAAA;AAE3D,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AAEzC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAE9D,MAAM,QAAQ,GAAG,GAAG,CAAA;;;;;;;;CAQnB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,EAAE;IAC/C,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IAElC,OAAO,IAAI,CAAA;;;;;;eAMG,CAAC,CAAc,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAE,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;;;;EAIvF,CAAA;AACF,CAAC,CAAC,CAAA"}
@@ -7,16 +7,16 @@ export const QuaySort = shadowElement(() => {
7
7
  const group = findLocalGroup(host);
8
8
  useStyles(themeCss, css `
9
9
  sl-button sl-icon {
10
- font-size: 14px;
10
+ font-size: var(--font-size-sm);
11
11
  }
12
12
 
13
13
  sl-menu {
14
- margin-top: 0.3em;
14
+ margin-top: var(--space-xs);
15
15
 
16
16
  .item {
17
17
  display: flex;
18
18
  align-items: center;
19
- gap: 0.5em;
19
+ gap: var(--space-sm);
20
20
  }
21
21
  }
22
22
  `);
@@ -1,6 +1,34 @@
1
1
  import { css } from "lit";
2
2
  export default css `@layer theme, view; @layer theme {
3
3
 
4
+ :host {
5
+ --surface: var(--quay-surface, #0f0f11);
6
+ --surface-active: var(--quay-surface-hover, var(--sl-color-neutral-0, #fff));
7
+ --surface-hover: var(--quay-surface-hover, var(--sl-color-gray-50, #f8f9fa));
8
+ --surface-selected: var(--quay-surface-selected, rgb(0 0 0 / 40%));
9
+ --border: var(--quay-border, #0d0d0e);
10
+ --border-muted: var(--quay-border, var(--sl-color-neutral-300, #d0d0d0));
11
+ --border-width: 1px;
12
+ --text: var(--quay-text, var(--sl-color-neutral-800, #333));
13
+ --text-muted: var(--quay-muted, var(--sl-color-neutral-700, #555));
14
+ --text-subtle: var(--quay-muted, var(--sl-color-neutral-500, #777));
15
+ --icon: var(--quay-muted, var(--sl-color-neutral-300, #d0d0d0));
16
+ --primary: var(--quay-accent, var(--sl-color-primary-500, #0ea5e9));
17
+ --primary-soft: color-mix(in srgb, var(--primary), white 65%);
18
+ --radius: var(--quay-radius, var(--sl-border-radius-medium, 6px));
19
+ --radius-small: var(--sl-border-radius-small, var(--radius));
20
+ --space-xs: var(--sl-spacing-2x-small, 0.3em);
21
+ --space-sm: var(--sl-spacing-x-small, 0.5rem);
22
+ --space-md: var(--sl-spacing-medium, 1rem);
23
+ --font-size-xs: var(--sl-font-size-x-small, 0.75rem);
24
+ --font-size-sm: var(--sl-font-size-small, 0.85rem);
25
+ --control-height: 30px;
26
+ --control-width: 40px;
27
+ --icon-size: 2rem;
28
+ --z-overlay: 999;
29
+ --transition: 0.2s ease;
30
+ }
31
+
4
32
  * {
5
33
  margin: 0;
6
34
  padding: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"theme.css.js","sourceRoot":"","sources":["../../s/dom/theme.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,eAAe,GAAG,CAAA;;;;;;;;EAQhB,CAAA"}
1
+ {"version":3,"file":"theme.css.js","sourceRoot":"","sources":["../../s/dom/theme.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAA;AACvB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoChB,CAAA"}
@@ -6,12 +6,12 @@ sl-tree-item::part(expand-button) {
6
6
  }
7
7
 
8
8
  sl-tree-item::part(base) {
9
- min-height: 30px;
9
+ min-height: var(--control-height);
10
10
  justify-content: center;
11
11
  }
12
12
 
13
13
  sl-icon:is(.item) {
14
- padding: 0.5em;
14
+ padding: var(--space-sm);
15
15
  }
16
16
 
17
17
  sl-tree-item:not([data-type=folder])::part(expand-button) {
@@ -34,11 +34,11 @@ sl-tree-item:not([data-type=folder])::part(expand-button) {
34
34
  }
35
35
 
36
36
  sl-tree-item {
37
- min-height: 30px;
38
- transition: background 0.2s ease, border-radius 0.2s ease;
37
+ min-height: var(--control-height);
38
+ transition: background var(--transition), border-radius var(--transition);
39
39
 
40
40
  ::part(label) {
41
- gap: 0.5em;
41
+ gap: var(--space-sm);
42
42
  }
43
43
 
44
44
  .folder {
@@ -48,15 +48,15 @@ sl-tree-item {
48
48
  }
49
49
 
50
50
  ::part(item--selected) {
51
- background: rgba(0, 0, 0, 0.4);
52
- min-height: 30px;
51
+ background: var(--surface-selected);
52
+ min-height: var(--control-height);
53
53
  }
54
54
 
55
55
  }
56
56
 
57
57
  sl-tree-item[data-hover] {
58
- border-radius: 5px;
59
- background: rgba(0, 0, 0, 0.4);
58
+ border-radius: var(--radius-small);
59
+ background: var(--surface-selected);
60
60
  }
61
61
 
62
62
  `;
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=88c864252033"></script>
21
+ <script type="module" src="demo/main.bundle.min.js?v=e604a4a7dda1"></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-11</span>
32
+ <span class=version>v0.0.0-13</span>
33
33
  </div>
34
34
  </header>
35
35
 
@@ -45,6 +45,7 @@ export class Hierarchy {
45
45
  }
46
46
  /** destroy all relations associated with this id, and all its descendants */
47
47
  destroy(id) {
48
+ this.detach(id);
48
49
  const tree = [...this.crawl(id)];
49
50
  for (const [id] of tree) {
50
51
  this.#children.delete(id);
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../../../../../s/logic/aspects/codex/parts/hierarchy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../../../../../s/logic/aspects/codex/parts/hierarchy.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export declare class Group<Sc extends Schema = any> {
20
20
  target: CodexItem<Sc>;
21
21
  }]>;
22
22
  delete: import("@e280/stz").Sub<[{
23
- item: CodexItem<Sc>;
23
+ items: CodexItem<Sc>[];
24
24
  }]>;
25
25
  rename: import("@e280/stz").Sub<[{
26
26
  item: CodexItem<Sc>;
@@ -43,9 +43,9 @@ export declare class Group<Sc extends Schema = any> {
43
43
  sort(items: CodexItem<Sc>[]): CodexItem<Sc>[];
44
44
  matches(item: CodexItem<Sc>): boolean;
45
45
  move(item: CodexItem<Sc>, target: CodexItem<Sc>): void;
46
- delete(item: CodexItem<Sc>): void;
46
+ delete(item: CodexItem<Sc>): Promise<void>;
47
47
  rename(item: CodexItem<Sc>, newName: string): void;
48
- upload(files: File[], folder: CodexItem<Sc>): void;
48
+ upload(files: File[], folder: CodexItem<Sc>): Promise<void>;
49
49
  addFolder(parent: CodexItem<Sc>): void;
50
50
  components: () => () => /*elided*/ any;
51
51
  }
package/x/logic/group.js CHANGED
@@ -56,8 +56,9 @@ export class Group {
56
56
  delete(item) {
57
57
  if (!this.permissions(item).delete)
58
58
  throw new Error("delete permission not granted");
59
+ const items = [...item.crawl()].map(([item]) => item);
59
60
  item.destroy();
60
- this.on.delete.pub({ item });
61
+ return this.on.delete.pub({ items });
61
62
  }
62
63
  rename(item, newName) {
63
64
  if (!this.permissions(item).rename)
@@ -67,7 +68,7 @@ export class Group {
67
68
  upload(files, folder) {
68
69
  if (!this.permissions(folder).upload)
69
70
  throw new Error("upload permission not granted");
70
- this.on.upload.pub({ files, target: folder });
71
+ return this.on.upload.pub({ files, target: folder });
71
72
  }
72
73
  addFolder(parent) {
73
74
  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":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AAGnC,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAA;AAKjD,MAAM,OAAO,KAAK;IAiBE;IAhBnB,KAAK,CAAe;IACpB,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IACvB,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IAC3B,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IAEzB,EAAE,GAAG;QACJ,SAAS,EAAE,GAAG,EAA6B;QAC3C,IAAI,EAAE,GAAG,EAAkD;QAC3D,MAAM,EAAE,GAAG,EAA8B;QACzC,MAAM,EAAE,GAAG,EAA4C;QACvD,MAAM,EAAE,GAAG,EAA4C;QACvD,MAAM,EAAE,GAAG,EAAuB;QAClC,OAAO,EAAE,GAAG,EAAQ;KACpB,CAAA;IAED,YAAmB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QACzC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACzC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,WAAkD,CAAA;IACtE,CAAC;IAED,WAAW,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,WAAW,CAAC,UAAkB;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;IAED,SAAS,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,CAAC,KAAsB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,CAAC,IAAmB;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,IAAmB,EAAE,MAAqB;QAC9C,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI;YAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAE/C,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAEnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,IAAmB;QACzB,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM;YAChC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAEjD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QAErD,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,OAAe;QAC1C,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM;YAChC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAEjD,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAqB;QAC1C,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;YAClC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAEjD,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAA;IACnD,CAAC;IAED,SAAS,CAAC,MAAqB;QAC9B,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS;YACrC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAErD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAA;IAChC,CAAC;IAED,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAA;CAClC"}
@@ -1,6 +1,7 @@
1
+ import { MediaGroup } from "./group.js";
1
2
  import { Cellar } from "../../../cellar/cellar.js";
2
3
  import { MediaFormat } from "./schema.js";
3
- import { MediaGroup } from "./group.js";
4
+ import { CodexItem } from "../../aspects/codex/parts/codex-item.js";
4
5
  export type MediaRecord = {
5
6
  hash: string;
6
7
  label: string;
@@ -16,44 +17,7 @@ export declare class MediaLibrary extends MediaGroup {
16
17
  cellar: Cellar;
17
18
  constructor();
18
19
  records(): AsyncGenerator<MediaRecord, void, unknown>;
19
- importFiles(files: File[], parent?: import("../../aspects/codex/parts/codex-item.js").CodexItem<{
20
- taxon: {
21
- icon: import("@e280/sly").Content;
22
- };
23
- specimens: {
24
- folder: {
25
- label: string;
26
- };
27
- file: {
28
- label: string;
29
- format: MediaFormat;
30
- previewUrl: string | null;
31
- hash?: string;
32
- mime?: string;
33
- size?: number;
34
- };
35
- };
36
- }, "file" | "folder">): Promise<MediaRecord[]>;
37
- importFile(file: File, parent?: import("../../aspects/codex/parts/codex-item.js").CodexItem<{
38
- taxon: {
39
- icon: import("@e280/sly").Content;
40
- };
41
- specimens: {
42
- folder: {
43
- label: string;
44
- };
45
- file: {
46
- label: string;
47
- format: MediaFormat;
48
- previewUrl: string | null;
49
- hash?: string;
50
- mime?: string;
51
- size?: number;
52
- };
53
- };
54
- }, "file" | "folder">): Promise<MediaRecord>;
55
- remove(hash: string): Promise<void>;
56
- findByHash(hash: string): (import("../../aspects/codex/parts/codex-item.js").CodexItem<{
20
+ findByHash(hash: string): (CodexItem<{
57
21
  taxon: {
58
22
  icon: import("@e280/sly").Content;
59
23
  };
@@ -70,7 +34,7 @@ export declare class MediaLibrary extends MediaGroup {
70
34
  size?: number;
71
35
  };
72
36
  };
73
- }, "file" | "folder"> & import("../../aspects/codex/parts/codex-item.js").CodexItem<{
37
+ }, "file" | "folder"> & CodexItem<{
74
38
  taxon: {
75
39
  icon: import("@e280/sly").Content;
76
40
  };
@@ -1,6 +1,6 @@
1
1
  import { Kv, StorageDriver } from "@e280/kv";
2
- import { Cellar } from "../../../cellar/cellar.js";
3
2
  import { MediaGroup } from "./group.js";
3
+ import { Cellar } from "../../../cellar/cellar.js";
4
4
  export class MediaLibrary extends MediaGroup {
5
5
  static async open(scope = "default") {
6
6
  const group = new this();
@@ -16,7 +16,11 @@ export class MediaLibrary extends MediaGroup {
16
16
  super();
17
17
  this.#index = mediaIndex("default");
18
18
  this.on.upload.sub(({ files, target }) => {
19
- void this.importFiles(files, target);
19
+ return this.#upload(files, target);
20
+ });
21
+ this.on.delete.sub(({ items }) => {
22
+ const hashes = this.#hashes(items);
23
+ return this.#delete(hashes);
20
24
  });
21
25
  }
22
26
  async *records() {
@@ -30,12 +34,11 @@ export class MediaLibrary extends MediaGroup {
30
34
  this.#attachRecord(record, this.config.root);
31
35
  }
32
36
  }
33
- async importFiles(files, parent = this.config.root) {
34
- return Promise.all(files.map(f => this.importFile(f, parent)));
37
+ async #upload(files, parent) {
38
+ await Promise.all(files.map(file => this.#storeFile(file, parent)));
35
39
  }
36
- async importFile(file, parent = this.config.root) {
37
- const bytes = new Uint8Array(await file.arrayBuffer());
38
- const cask = await this.cellar.save(bytes);
40
+ async #storeFile(file, parent) {
41
+ const cask = await this.cellar.save(file);
39
42
  const existing = await this.#index.get(cask.hash);
40
43
  const now = Date.now();
41
44
  const record = {
@@ -53,15 +56,17 @@ export class MediaLibrary extends MediaGroup {
53
56
  this.#attachRecord(record, parent);
54
57
  return record;
55
58
  }
56
- async remove(hash) {
57
- await this.#index.del(hash);
58
- await this.cellar.delete(hash);
59
- const item = this.findByHash(hash);
60
- if (item) {
61
- item.detach();
62
- item.destroy();
59
+ #hashes(items) {
60
+ return items
61
+ .map(item => item.isKind("file") ? item.specimen.hash : undefined)
62
+ .filter((hash) => !!hash);
63
+ }
64
+ async #delete(hashes) {
65
+ for (const hash of hashes) {
66
+ await this.#index.del(hash);
67
+ await this.cellar.delete(hash);
68
+ this.#revokePreview(hash);
63
69
  }
64
- this.#revokePreview(hash);
65
70
  }
66
71
  findByHash(hash) {
67
72
  for (const [item] of this.config.root.crawl()) {
@@ -91,7 +96,7 @@ export class MediaLibrary extends MediaGroup {
91
96
  }
92
97
  async #loadPreview(record) {
93
98
  const cask = await this.cellar.load(record.hash);
94
- const blob = new Blob([cask.bytes], { type: record.mime || "image/*" });
99
+ const blob = new Blob([cask.file], { type: record.mime || "image/*" });
95
100
  return this.#setPreview(record.hash, URL.createObjectURL(blob));
96
101
  }
97
102
  #setPreview(hash, url) {
@@ -1 +1 @@
1
- {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../s/logic/presets/media/library.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,EAAE,EAAE,aAAa,EAAC,MAAM,UAAU,CAAA;AAE1C,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAA;AAEhD,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAYrC,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS;QAClC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;QACxB,KAAK,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAChC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACnB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,MAAM,CAAiB;IAEvB,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAErB;QACC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;QACnC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,EAAE,EAAE;YACtC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,CAAC,OAAO;QACb,IAAI,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnD,MAAM,MAAM,CAAA;IACd,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAClE,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YAChC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC7C,CAAC;IACF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;QACzD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAU,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;QACrD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,MAAM,GAAgB;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI;YACnC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,GAAG;YACrC,SAAS,EAAE,GAAG;SACd,CAAA;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;YAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAClC,OAAO,MAAM,CAAA;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACxB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,EAAE,CAAA;YACb,IAAI,CAAC,OAAO,EAAE,CAAA;QACf,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,UAAU,CAAC,IAAY;QACtB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI;gBACrD,OAAO,IAAI,CAAA;QACb,CAAC;IACF,CAAC;IAED,OAAO;QACN,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC1C,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,aAAa,CAAC,MAAmB,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,QAAQ;YACX,OAAO,QAAQ,CAAA;QAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;SACrD,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAmB;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS,EAAC,CAAC,CAAA;QACrE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,GAAW;QACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC/B,OAAO,GAAG,CAAA;IACX,CAAC;IAED,cAAc,CAAC,IAAY;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,GAAG,EAAE,CAAC;YACT,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;YACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;IACF,CAAC;CACD;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;AACzD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAA;AAExD,SAAS,WAAW,CAAC,IAAY;IAChC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAmB,CAAC,CAAC,CAAC,OAAO,CAAA;AAC9D,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAA;IACvC,IAAI,OAAO;QACV,OAAO,IAAI,EAAE,CAAc,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;aACpD,KAAK,CAAC,YAAY,CAAC;aACnB,KAAK,CAAC,KAAK,CAAC,CAAA;IAEf,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,QAAQ;QACX,OAAO,QAAQ,CAAA;IAEhB,MAAM,KAAK,GAAG,IAAI,EAAE,EAAe,CAAA;IACnC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC/B,OAAO,KAAK,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../s/logic/presets/media/library.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { Science } from "@e280/science";
2
2
  declare const _default: {
3
- "imports files into cellar and index": Science.Test;
3
+ "uploads files into cellar and index": Science.Test;
4
+ "upload respects upload permission": Science.Test;
4
5
  "lists media records": Science.Test;
5
- "removes media records and bytes": Science.Test;
6
+ "deletes media records and bytes": Science.Test;
6
7
  };
7
8
  export default _default;