@vibesdotdev/media 0.0.0-stage → 1.0.0-rc.4

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 (278) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +95 -2
  3. package/dist/analyzers/frame-guard.d.ts +6 -0
  4. package/dist/analyzers/frame-guard.d.ts.map +1 -0
  5. package/dist/analyzers/frame-guard.js +10 -0
  6. package/dist/analyzers/frame-guard.js.map +1 -0
  7. package/dist/analyzers/motion-math.d.ts +66 -0
  8. package/dist/analyzers/motion-math.d.ts.map +1 -0
  9. package/dist/analyzers/motion-math.js +356 -0
  10. package/dist/analyzers/motion-math.js.map +1 -0
  11. package/dist/analyzers/reference-motion-analyzer.impl.d.ts +23 -0
  12. package/dist/analyzers/reference-motion-analyzer.impl.d.ts.map +1 -0
  13. package/dist/analyzers/reference-motion-analyzer.impl.js +69 -0
  14. package/dist/analyzers/reference-motion-analyzer.impl.js.map +1 -0
  15. package/dist/analyzers/reference-motion.descriptor.d.ts +11 -0
  16. package/dist/analyzers/reference-motion.descriptor.d.ts.map +1 -0
  17. package/dist/analyzers/reference-motion.descriptor.js +21 -0
  18. package/dist/analyzers/reference-motion.descriptor.js.map +1 -0
  19. package/dist/capture-client.d.ts +34 -0
  20. package/dist/capture-client.d.ts.map +1 -0
  21. package/dist/capture-client.js +163 -0
  22. package/dist/capture-client.js.map +1 -0
  23. package/dist/config/media.uploads.config.descriptor.d.ts +27 -0
  24. package/dist/config/media.uploads.config.descriptor.d.ts.map +1 -0
  25. package/dist/config/media.uploads.config.descriptor.js +46 -0
  26. package/dist/config/media.uploads.config.descriptor.js.map +1 -0
  27. package/dist/config/uploads.d.ts +11 -0
  28. package/dist/config/uploads.d.ts.map +1 -0
  29. package/dist/config/uploads.js +25 -0
  30. package/dist/config/uploads.js.map +1 -0
  31. package/dist/docs/artifact-references.docs.descriptor.d.ts +4 -0
  32. package/dist/docs/artifact-references.docs.descriptor.d.ts.map +1 -0
  33. package/dist/docs/artifact-references.docs.descriptor.js +69 -0
  34. package/dist/docs/artifact-references.docs.descriptor.js.map +1 -0
  35. package/dist/docs/image-transform.docs.descriptor.d.ts +4 -0
  36. package/dist/docs/image-transform.docs.descriptor.d.ts.map +1 -0
  37. package/dist/docs/image-transform.docs.descriptor.js +52 -0
  38. package/dist/docs/image-transform.docs.descriptor.js.map +1 -0
  39. package/dist/index.d.ts +48 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +49 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/interfaces/capture-provider.d.ts +33 -0
  44. package/dist/interfaces/capture-provider.d.ts.map +1 -0
  45. package/dist/interfaces/capture-provider.js +10 -0
  46. package/dist/interfaces/capture-provider.js.map +1 -0
  47. package/dist/interfaces/image-transformer.d.ts +7 -0
  48. package/dist/interfaces/image-transformer.d.ts.map +1 -0
  49. package/dist/interfaces/image-transformer.js +2 -0
  50. package/dist/interfaces/image-transformer.js.map +1 -0
  51. package/dist/interfaces/index.d.ts +7 -0
  52. package/dist/interfaces/index.d.ts.map +1 -0
  53. package/dist/interfaces/index.js +5 -0
  54. package/dist/interfaces/index.js.map +1 -0
  55. package/dist/interfaces/motion-analyzer.d.ts +55 -0
  56. package/dist/interfaces/motion-analyzer.d.ts.map +1 -0
  57. package/dist/interfaces/motion-analyzer.js +14 -0
  58. package/dist/interfaces/motion-analyzer.js.map +1 -0
  59. package/dist/kinds/capture.d.ts +58 -0
  60. package/dist/kinds/capture.d.ts.map +1 -0
  61. package/dist/kinds/capture.js +34 -0
  62. package/dist/kinds/capture.js.map +1 -0
  63. package/dist/kinds/image-transform.d.ts +91 -0
  64. package/dist/kinds/image-transform.d.ts.map +1 -0
  65. package/dist/kinds/image-transform.js +12 -0
  66. package/dist/kinds/image-transform.js.map +1 -0
  67. package/dist/kinds/index.d.ts +10 -0
  68. package/dist/kinds/index.d.ts.map +1 -0
  69. package/dist/kinds/index.js +7 -0
  70. package/dist/kinds/index.js.map +1 -0
  71. package/dist/kinds/motion.d.ts +57 -0
  72. package/dist/kinds/motion.d.ts.map +1 -0
  73. package/dist/kinds/motion.js +34 -0
  74. package/dist/kinds/motion.js.map +1 -0
  75. package/dist/media.plugin.d.ts +23 -0
  76. package/dist/media.plugin.d.ts.map +1 -0
  77. package/dist/media.plugin.js +48 -0
  78. package/dist/media.plugin.js.map +1 -0
  79. package/dist/schemas/artifact-reference.d.ts +59 -0
  80. package/dist/schemas/artifact-reference.d.ts.map +1 -0
  81. package/dist/schemas/artifact-reference.js +77 -0
  82. package/dist/schemas/artifact-reference.js.map +1 -0
  83. package/dist/schemas/capture-descriptor.d.ts +71 -0
  84. package/dist/schemas/capture-descriptor.d.ts.map +1 -0
  85. package/dist/schemas/capture-descriptor.js +74 -0
  86. package/dist/schemas/capture-descriptor.js.map +1 -0
  87. package/dist/schemas/capture-options.d.ts +51 -0
  88. package/dist/schemas/capture-options.d.ts.map +1 -0
  89. package/dist/schemas/capture-options.js +68 -0
  90. package/dist/schemas/capture-options.js.map +1 -0
  91. package/dist/schemas/capture-parse.d.ts +10 -0
  92. package/dist/schemas/capture-parse.d.ts.map +1 -0
  93. package/dist/schemas/capture-parse.js +30 -0
  94. package/dist/schemas/capture-parse.js.map +1 -0
  95. package/dist/schemas/capture-state.d.ts +77 -0
  96. package/dist/schemas/capture-state.d.ts.map +1 -0
  97. package/dist/schemas/capture-state.js +25 -0
  98. package/dist/schemas/capture-state.js.map +1 -0
  99. package/dist/schemas/image-transform.d.ts +269 -0
  100. package/dist/schemas/image-transform.d.ts.map +1 -0
  101. package/dist/schemas/image-transform.js +161 -0
  102. package/dist/schemas/image-transform.js.map +1 -0
  103. package/dist/schemas/index.d.ts +20 -0
  104. package/dist/schemas/index.d.ts.map +1 -0
  105. package/dist/schemas/index.js +17 -0
  106. package/dist/schemas/index.js.map +1 -0
  107. package/dist/schemas/motion-analysis.d.ts +187 -0
  108. package/dist/schemas/motion-analysis.d.ts.map +1 -0
  109. package/dist/schemas/motion-analysis.js +213 -0
  110. package/dist/schemas/motion-analysis.js.map +1 -0
  111. package/dist/schemas/motion-descriptor.d.ts +53 -0
  112. package/dist/schemas/motion-descriptor.d.ts.map +1 -0
  113. package/dist/schemas/motion-descriptor.js +47 -0
  114. package/dist/schemas/motion-descriptor.js.map +1 -0
  115. package/dist/schemas/motion-frame.d.ts +63 -0
  116. package/dist/schemas/motion-frame.d.ts.map +1 -0
  117. package/dist/schemas/motion-frame.js +86 -0
  118. package/dist/schemas/motion-frame.js.map +1 -0
  119. package/dist/schemas/opaque-id.d.ts +10 -0
  120. package/dist/schemas/opaque-id.d.ts.map +1 -0
  121. package/dist/schemas/opaque-id.js +24 -0
  122. package/dist/schemas/opaque-id.js.map +1 -0
  123. package/dist/schemas/sharing-state.d.ts +43 -0
  124. package/dist/schemas/sharing-state.d.ts.map +1 -0
  125. package/dist/schemas/sharing-state.js +11 -0
  126. package/dist/schemas/sharing-state.js.map +1 -0
  127. package/dist/svelte/CaptureLoader.svelte +29 -0
  128. package/dist/svelte/CaptureLoader.svelte.d.ts +11 -0
  129. package/dist/svelte/CaptureLoader.svelte.d.ts.map +1 -0
  130. package/dist/svelte/CapturePanel.svelte +189 -0
  131. package/dist/svelte/CapturePanel.svelte.d.ts +12 -0
  132. package/dist/svelte/CapturePanel.svelte.d.ts.map +1 -0
  133. package/dist/svelte/MediaUploader.svelte +109 -0
  134. package/dist/svelte/MediaUploader.svelte.d.ts +5 -0
  135. package/dist/svelte/MediaUploader.svelte.d.ts.map +1 -0
  136. package/dist/svelte/capture-parse.d.ts +2 -0
  137. package/dist/svelte/capture-parse.d.ts.map +1 -0
  138. package/dist/svelte/capture-parse.js +1 -0
  139. package/dist/svelte/failure-message.d.ts +2 -0
  140. package/dist/svelte/failure-message.d.ts.map +1 -0
  141. package/dist/svelte/failure-message.js +1 -0
  142. package/dist/svelte/index.d.ts +8 -0
  143. package/dist/svelte/index.d.ts.map +1 -0
  144. package/dist/svelte/index.js +6 -0
  145. package/dist/svelte/runtime-log.d.ts +14 -0
  146. package/dist/svelte/runtime-log.d.ts.map +1 -0
  147. package/dist/svelte/runtime-log.js +19 -0
  148. package/dist/svelte/runtime.d.ts +9 -0
  149. package/dist/svelte/runtime.d.ts.map +1 -0
  150. package/dist/svelte/runtime.js +27 -0
  151. package/dist/svelte/sharing/README.md +38 -0
  152. package/dist/svelte/sharing/components/ShareButton.svelte +57 -0
  153. package/dist/svelte/sharing/components/ShareButton.svelte.d.ts +11 -0
  154. package/dist/svelte/sharing/components/ShareButton.svelte.d.ts.map +1 -0
  155. package/dist/svelte/sharing/components/ShareDialog.svelte +222 -0
  156. package/dist/svelte/sharing/components/ShareDialog.svelte.d.ts +8 -0
  157. package/dist/svelte/sharing/components/ShareDialog.svelte.d.ts.map +1 -0
  158. package/dist/svelte/sharing/components/ShareLoader.svelte +19 -0
  159. package/dist/svelte/sharing/components/ShareLoader.svelte.d.ts +7 -0
  160. package/dist/svelte/sharing/components/ShareLoader.svelte.d.ts.map +1 -0
  161. package/dist/svelte/sharing/index.d.ts +20 -0
  162. package/dist/svelte/sharing/index.d.ts.map +1 -0
  163. package/dist/svelte/sharing/index.js +19 -0
  164. package/dist/svelte/sharing/runtime.d.ts +44 -0
  165. package/dist/svelte/sharing/runtime.d.ts.map +1 -0
  166. package/dist/svelte/sharing/runtime.js +81 -0
  167. package/dist/svelte/sharing/state.svelte.d.ts +28 -0
  168. package/dist/svelte/sharing/state.svelte.d.ts.map +1 -0
  169. package/dist/svelte/sharing/state.svelte.js +101 -0
  170. package/dist/svelte/sharing/styles.css +8 -0
  171. package/dist/svelte/state.svelte.d.ts +38 -0
  172. package/dist/svelte/state.svelte.d.ts.map +1 -0
  173. package/dist/svelte/state.svelte.js +102 -0
  174. package/dist/svelte/styles.css +2 -0
  175. package/dist/svelte/uploader.d.ts +17 -0
  176. package/dist/svelte/uploader.d.ts.map +1 -0
  177. package/dist/svelte/uploader.js +9 -0
  178. package/dist/uploads/adapters/local/index.d.ts +9 -0
  179. package/dist/uploads/adapters/local/index.d.ts.map +1 -0
  180. package/dist/uploads/adapters/local/index.js +12 -0
  181. package/dist/uploads/adapters/local/index.js.map +1 -0
  182. package/dist/uploads/adapters/local/local-storage.descriptor.d.ts +24 -0
  183. package/dist/uploads/adapters/local/local-storage.descriptor.d.ts.map +1 -0
  184. package/dist/uploads/adapters/local/local-storage.descriptor.js +20 -0
  185. package/dist/uploads/adapters/local/local-storage.descriptor.js.map +1 -0
  186. package/dist/uploads/adapters/local/local-storage.impl.d.ts +123 -0
  187. package/dist/uploads/adapters/local/local-storage.impl.d.ts.map +1 -0
  188. package/dist/uploads/adapters/local/local-storage.impl.js +231 -0
  189. package/dist/uploads/adapters/local/local-storage.impl.js.map +1 -0
  190. package/dist/uploads/adapters/local/uploads-adapter-local.plugin.d.ts +9 -0
  191. package/dist/uploads/adapters/local/uploads-adapter-local.plugin.d.ts.map +1 -0
  192. package/dist/uploads/adapters/local/uploads-adapter-local.plugin.js +41 -0
  193. package/dist/uploads/adapters/local/uploads-adapter-local.plugin.js.map +1 -0
  194. package/dist/uploads/client/helper.d.ts +26 -0
  195. package/dist/uploads/client/helper.d.ts.map +1 -0
  196. package/dist/uploads/client/helper.js +27 -0
  197. package/dist/uploads/client/helper.js.map +1 -0
  198. package/dist/uploads/client/index.d.ts +11 -0
  199. package/dist/uploads/client/index.d.ts.map +1 -0
  200. package/dist/uploads/client/index.js +9 -0
  201. package/dist/uploads/client/index.js.map +1 -0
  202. package/dist/uploads/client/sharing-client.d.ts +45 -0
  203. package/dist/uploads/client/sharing-client.d.ts.map +1 -0
  204. package/dist/uploads/client/sharing-client.js +153 -0
  205. package/dist/uploads/client/sharing-client.js.map +1 -0
  206. package/dist/uploads/client/uploads-client.d.ts +200 -0
  207. package/dist/uploads/client/uploads-client.d.ts.map +1 -0
  208. package/dist/uploads/client/uploads-client.js +487 -0
  209. package/dist/uploads/client/uploads-client.js.map +1 -0
  210. package/dist/uploads/docs/uploads.docs.descriptor.d.ts +4 -0
  211. package/dist/uploads/docs/uploads.docs.descriptor.d.ts.map +1 -0
  212. package/dist/uploads/docs/uploads.docs.descriptor.js +65 -0
  213. package/dist/uploads/docs/uploads.docs.descriptor.js.map +1 -0
  214. package/dist/uploads/docs/uploads.share-links.docs.descriptor.d.ts +22 -0
  215. package/dist/uploads/docs/uploads.share-links.docs.descriptor.d.ts.map +1 -0
  216. package/dist/uploads/docs/uploads.share-links.docs.descriptor.js +86 -0
  217. package/dist/uploads/docs/uploads.share-links.docs.descriptor.js.map +1 -0
  218. package/dist/uploads/index.d.ts +12 -0
  219. package/dist/uploads/index.d.ts.map +1 -0
  220. package/dist/uploads/index.js +13 -0
  221. package/dist/uploads/index.js.map +1 -0
  222. package/dist/uploads/schemas/common.d.ts +135 -0
  223. package/dist/uploads/schemas/common.d.ts.map +1 -0
  224. package/dist/uploads/schemas/common.js +152 -0
  225. package/dist/uploads/schemas/common.js.map +1 -0
  226. package/dist/uploads/schemas/forms.d.ts +59 -0
  227. package/dist/uploads/schemas/forms.d.ts.map +1 -0
  228. package/dist/uploads/schemas/forms.js +41 -0
  229. package/dist/uploads/schemas/forms.js.map +1 -0
  230. package/dist/uploads/schemas/index.d.ts +18 -0
  231. package/dist/uploads/schemas/index.d.ts.map +1 -0
  232. package/dist/uploads/schemas/index.js +13 -0
  233. package/dist/uploads/schemas/index.js.map +1 -0
  234. package/dist/uploads/schemas/records.d.ts +81 -0
  235. package/dist/uploads/schemas/records.d.ts.map +1 -0
  236. package/dist/uploads/schemas/records.js +82 -0
  237. package/dist/uploads/schemas/records.js.map +1 -0
  238. package/dist/uploads/schemas/requests.d.ts +32 -0
  239. package/dist/uploads/schemas/requests.d.ts.map +1 -0
  240. package/dist/uploads/schemas/requests.js +30 -0
  241. package/dist/uploads/schemas/requests.js.map +1 -0
  242. package/dist/uploads/schemas/shares.d.ts +67 -0
  243. package/dist/uploads/schemas/shares.d.ts.map +1 -0
  244. package/dist/uploads/schemas/shares.js +39 -0
  245. package/dist/uploads/schemas/shares.js.map +1 -0
  246. package/dist/uploads/server/backend.d.ts +8 -0
  247. package/dist/uploads/server/backend.d.ts.map +1 -0
  248. package/dist/uploads/server/backend.js +11 -0
  249. package/dist/uploads/server/backend.js.map +1 -0
  250. package/dist/uploads/server/config.d.ts +5 -0
  251. package/dist/uploads/server/config.d.ts.map +1 -0
  252. package/dist/uploads/server/config.js +38 -0
  253. package/dist/uploads/server/config.js.map +1 -0
  254. package/dist/uploads/server/service.d.ts +77 -0
  255. package/dist/uploads/server/service.d.ts.map +1 -0
  256. package/dist/uploads/server/service.js +152 -0
  257. package/dist/uploads/server/service.js.map +1 -0
  258. package/dist/uploads/server/storage-client.d.ts +11 -0
  259. package/dist/uploads/server/storage-client.d.ts.map +1 -0
  260. package/dist/uploads/server/storage-client.js +23 -0
  261. package/dist/uploads/server/storage-client.js.map +1 -0
  262. package/dist/uploads/server/storage.d.ts +40 -0
  263. package/dist/uploads/server/storage.d.ts.map +1 -0
  264. package/dist/uploads/server/storage.js +59 -0
  265. package/dist/uploads/server/storage.js.map +1 -0
  266. package/dist/uploads/uploads.plugin.d.ts +11 -0
  267. package/dist/uploads/uploads.plugin.d.ts.map +1 -0
  268. package/dist/uploads/uploads.plugin.js +89 -0
  269. package/dist/uploads/uploads.plugin.js.map +1 -0
  270. package/dist/utils/attempt.d.ts +27 -0
  271. package/dist/utils/attempt.d.ts.map +1 -0
  272. package/dist/utils/attempt.js +39 -0
  273. package/dist/utils/attempt.js.map +1 -0
  274. package/dist/utils/failure-message.d.ts +8 -0
  275. package/dist/utils/failure-message.d.ts.map +1 -0
  276. package/dist/utils/failure-message.js +28 -0
  277. package/dist/utils/failure-message.js.map +1 -0
  278. package/package.json +257 -4
@@ -0,0 +1,101 @@
1
+ import { onDestroy } from 'svelte';
2
+ import { CapabilityError } from '@vibesdotdev/kernel';
3
+ import { getVibesClient, tryGetVibesClient } from '@vibesdotdev/kernel/client';
4
+ import { getRuntimeSvelteContext } from '@vibesdotdev/surface-sveltekit/svelte';
5
+ import { emptySharingEntry } from "../../schemas/sharing-state.js";
6
+ import { attempt } from "../../utils/attempt.js";
7
+ import { failureMessage } from "../failure-message.js";
8
+ import { isLinkActive } from "./runtime.js";
9
+ /** A context-owned reactive projection of the runtime's shared capability. */
10
+ export class SharingState {
11
+ loadRuntime;
12
+ entries = $state.raw({});
13
+ pending = null;
14
+ unsubscribe;
15
+ generation = 0;
16
+ disposed = false;
17
+ constructor(loadRuntime) {
18
+ this.loadRuntime = loadRuntime;
19
+ }
20
+ entry(fileId) { return this.entries[fileId] ?? emptySharingEntry(); }
21
+ links(fileId) { return this.entry(fileId).links; }
22
+ isLoading(fileId) { return this.entry(fileId).loading; }
23
+ error(fileId) { return this.entry(fileId).error; }
24
+ activeLinks(fileId) {
25
+ return this.links(fileId).filter(link => isLinkActive(link))
26
+ .sort((a, b) => b.createdAt.localeCompare(a.createdAt));
27
+ }
28
+ resolveClient() {
29
+ if (this.pending)
30
+ return this.pending;
31
+ const generation = this.generation;
32
+ this.pending = (async () => {
33
+ const runtime = await this.loadRuntime();
34
+ this.assertCurrent(generation);
35
+ const client = tryGetVibesClient('uploads.sharing', runtime)
36
+ ?? await getVibesClient('uploads.sharing', runtime);
37
+ this.assertCurrent(generation);
38
+ this.unsubscribe = client.subscribe(snapshot => {
39
+ if (!this.disposed && generation === this.generation)
40
+ this.entries = snapshot;
41
+ });
42
+ return client;
43
+ })();
44
+ return this.pending;
45
+ }
46
+ assertCurrent(generation) {
47
+ if (this.disposed || generation !== this.generation)
48
+ throw new CapabilityError('Sharing state is disposed.', 'UNAVAILABLE', { reason: 'sharing-state-disposed', retryable: false });
49
+ }
50
+ async init(fileId) {
51
+ if (this.disposed)
52
+ return;
53
+ const generation = this.generation;
54
+ const result = await attempt(async () => {
55
+ const client = await this.resolveClient();
56
+ if (!this.disposed && generation === this.generation)
57
+ await client.init(fileId);
58
+ });
59
+ if (!result.ok && !this.disposed && generation === this.generation) {
60
+ this.entries = { ...this.entries, [fileId]: { ...emptySharingEntry(), loaded: true, error: failureMessage(result.failure, 'Could not load share links.') } };
61
+ this.pending = null;
62
+ }
63
+ }
64
+ async refresh(fileId) {
65
+ if (this.disposed)
66
+ return;
67
+ const generation = this.generation;
68
+ const client = await this.resolveClient();
69
+ if (!this.disposed && generation === this.generation)
70
+ await client.refresh(fileId);
71
+ }
72
+ async create(fileId, options = {}) {
73
+ const generation = this.generation;
74
+ const client = await this.resolveClient();
75
+ this.assertCurrent(generation);
76
+ return client.create(fileId, options);
77
+ }
78
+ async revoke(fileId, shareId) {
79
+ const generation = this.generation;
80
+ const client = await this.resolveClient();
81
+ this.assertCurrent(generation);
82
+ return client.revoke(fileId, shareId);
83
+ }
84
+ dispose() {
85
+ this.disposed = true;
86
+ this.generation++;
87
+ this.unsubscribe?.();
88
+ this.unsubscribe = undefined;
89
+ this.pending = null;
90
+ this.entries = {};
91
+ }
92
+ }
93
+ /** Each consumer releases its projection; the runtime retains shared observations. */
94
+ export function getSharingState() {
95
+ const store = getRuntimeSvelteContext();
96
+ const state = new SharingState(() => store.load());
97
+ onDestroy(() => state.dispose());
98
+ // Activate observation even when this consumer only displays a badge.
99
+ void state.init('');
100
+ return state;
101
+ }
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Tailwind v4 source declaration for consumers — mirrors @vibesdotdev/kit's
3
+ * styles.css pattern. Apps that @import this file get this package's
4
+ * components scanned by their Tailwind build, so utility classes used only
5
+ * inside these components are emitted in the app's CSS bundle (Tailwind
6
+ * never scans node_modules). Paths resolve relative to this file.
7
+ */
8
+ @source "./";
@@ -0,0 +1,38 @@
1
+ import { type VibesRuntime } from '@vibesdotdev/kernel';
2
+ import { type CaptureSessionState, type MediaCaptureEntry } from '../schemas/capture-state.ts';
3
+ export type { MediaCaptureEntry } from '../schemas/capture-state.ts';
4
+ export interface MediaCaptureStateInitOptions {
5
+ providerId?: string;
6
+ runtime: VibesRuntime;
7
+ }
8
+ /** One tree's reactive projection. It owns URLs, never a runtime-global binding. */
9
+ export declare class MediaCaptureState {
10
+ private snapshot;
11
+ captures: MediaCaptureEntry[];
12
+ private session;
13
+ private unsubscribe?;
14
+ private generation;
15
+ private readonly urls;
16
+ get providers(): CaptureSessionState['providers'];
17
+ get sources(): CaptureSessionState['sources'];
18
+ get providerId(): CaptureSessionState['providerId'];
19
+ get sourceId(): CaptureSessionState['sourceId'];
20
+ get selectedCaptureId(): CaptureSessionState['selectedCaptureId'];
21
+ get loading(): CaptureSessionState['loading'];
22
+ get capturing(): CaptureSessionState['capturing'];
23
+ get initialized(): CaptureSessionState['initialized'];
24
+ get error(): CaptureSessionState['error'];
25
+ init(options: MediaCaptureStateInitOptions): Promise<void>;
26
+ selectProvider(id: string): Promise<void>;
27
+ loadSources(): Promise<void>;
28
+ selectSource(id: string | number): void;
29
+ capture(): Promise<void>;
30
+ selectCapture(id: string): void;
31
+ dispose(): void;
32
+ }
33
+ export declare function createMediaCaptureState(): MediaCaptureState;
34
+ /** Legacy entrypoint name, now an explicit factory rather than shared mutable state. */
35
+ export declare const mediaCaptureState: typeof createMediaCaptureState;
36
+ export declare function provideMediaCaptureState(state: () => MediaCaptureState): () => MediaCaptureState;
37
+ export declare function useMediaCaptureState(): MediaCaptureState;
38
+ //# sourceMappingURL=state.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.svelte.d.ts","sourceRoot":"","sources":["../../src/svelte/state.svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAA6B,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAK1H,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,WAAW,4BAA4B;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;CACtB;AAID,oFAAoF;AACpF,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAA6F;IAC7G,QAAQ,EAAE,iBAAiB,EAAE,CAAuC;IACpE,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAElD,IAAI,SAAS,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAoC;IACrF,IAAI,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAkC;IAC/E,IAAI,UAAU,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAqC;IACxF,IAAI,QAAQ,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAmC;IAClF,IAAI,iBAAiB,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAA4C;IAC7G,IAAI,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAkC;IAC/E,IAAI,SAAS,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAoC;IACrF,IAAI,WAAW,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAsC;IAC3F,IAAI,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAgC;IAEnE,IAAI,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ChE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACzC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAE/B,OAAO,IAAI,IAAI;CAWf;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAAoC;AAEhG,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,gCAA0B,CAAC;AAEzD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAEhG;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAMxD"}
@@ -0,0 +1,102 @@
1
+ import { getContext, setContext } from 'svelte';
2
+ import { CapabilityError } from '@vibesdotdev/kernel';
3
+ import { getVibesClient, tryGetVibesClient } from '@vibesdotdev/kernel/client';
4
+ import { CaptureSessionStateSchema } from "../schemas/capture-state.js";
5
+ import { captureMimeType } from "./runtime.js";
6
+ import { attempt } from "../utils/attempt.js";
7
+ import { failureMessage } from "./failure-message.js";
8
+ const CAPTURE_CONTEXT = Symbol('media.capture');
9
+ /** One tree's reactive projection. It owns URLs, never a runtime-global binding. */
10
+ export class MediaCaptureState {
11
+ snapshot = $state.raw(CaptureSessionStateSchema.parse({}));
12
+ captures = $state.raw([]);
13
+ session = null;
14
+ unsubscribe;
15
+ generation = 0;
16
+ urls = new Map();
17
+ get providers() { return this.snapshot.providers; }
18
+ get sources() { return this.snapshot.sources; }
19
+ get providerId() { return this.snapshot.providerId; }
20
+ get sourceId() { return this.snapshot.sourceId; }
21
+ get selectedCaptureId() { return this.snapshot.selectedCaptureId; }
22
+ get loading() { return this.snapshot.loading; }
23
+ get capturing() { return this.snapshot.capturing; }
24
+ get initialized() { return this.snapshot.initialized; }
25
+ get error() { return this.snapshot.error; }
26
+ async init(options) {
27
+ this.dispose();
28
+ const generation = this.generation;
29
+ const resolved = await attempt(async () => {
30
+ const client = tryGetVibesClient('media.capture', options.runtime)
31
+ ?? await getVibesClient('media.capture', options.runtime);
32
+ return client.openSession();
33
+ });
34
+ if (generation !== this.generation) {
35
+ if (resolved.ok)
36
+ resolved.value.dispose();
37
+ return;
38
+ }
39
+ if (!resolved.ok) {
40
+ this.snapshot = { ...this.snapshot, initialized: true, error: failureMessage(resolved.failure, 'Capture is not available.') };
41
+ return;
42
+ }
43
+ const session = resolved.value;
44
+ this.session = session;
45
+ this.unsubscribe = session.subscribe(snapshot => {
46
+ const ids = new Set(snapshot.captures.map(capture => capture.id));
47
+ for (const [id, url] of this.urls) {
48
+ if (!ids.has(id)) {
49
+ URL.revokeObjectURL(url);
50
+ this.urls.delete(id);
51
+ }
52
+ }
53
+ this.captures = snapshot.captures.map(capture => {
54
+ let url = this.urls.get(capture.id);
55
+ if (!url) {
56
+ url = URL.createObjectURL(new Blob([new Uint8Array(capture.data)], { type: captureMimeType(capture.format) }));
57
+ this.urls.set(capture.id, url);
58
+ }
59
+ const entry = {
60
+ id: capture.id, url, format: capture.format, timestamp: capture.timestamp,
61
+ providerId: capture.providerId
62
+ };
63
+ if (capture.sourceId != null)
64
+ entry.sourceId = capture.sourceId;
65
+ return entry;
66
+ });
67
+ this.snapshot = snapshot;
68
+ });
69
+ await session.init(options.providerId);
70
+ }
71
+ selectProvider(id) { return this.session?.selectProvider(id) ?? Promise.resolve(); }
72
+ loadSources() { return this.session?.loadSources() ?? Promise.resolve(); }
73
+ selectSource(id) { this.session?.selectSource(id); }
74
+ capture() { return this.session?.capture() ?? Promise.resolve(); }
75
+ selectCapture(id) { this.session?.selectCapture(id); }
76
+ dispose() {
77
+ this.generation++;
78
+ this.unsubscribe?.();
79
+ this.unsubscribe = undefined;
80
+ this.session?.dispose();
81
+ this.session = null;
82
+ for (const url of this.urls.values())
83
+ URL.revokeObjectURL(url);
84
+ this.urls.clear();
85
+ this.captures = [];
86
+ this.snapshot = CaptureSessionStateSchema.parse({});
87
+ }
88
+ }
89
+ export function createMediaCaptureState() { return new MediaCaptureState(); }
90
+ /** Legacy entrypoint name, now an explicit factory rather than shared mutable state. */
91
+ export const mediaCaptureState = createMediaCaptureState;
92
+ export function provideMediaCaptureState(state) {
93
+ return setContext(CAPTURE_CONTEXT, state);
94
+ }
95
+ export function useMediaCaptureState() {
96
+ const state = getContext(CAPTURE_CONTEXT);
97
+ if (!state)
98
+ throw new CapabilityError('A capture tree or explicit capture state is required.', 'UNAVAILABLE', {
99
+ reason: 'media-capture-tree-required', retryable: false
100
+ });
101
+ return state();
102
+ }
@@ -0,0 +1,2 @@
1
+ /* Tailwind v4 source declaration for consuming applications. */
2
+ @source "./";
@@ -0,0 +1,17 @@
1
+ import * as z from 'zod/v4';
2
+ import type { UploadKind } from '../uploads/schemas/index.ts';
3
+ /** Explicit provenance attached to an upload by a reusable UI surface. */
4
+ export declare const MediaUploaderProvenanceSchema: z.ZodObject<{
5
+ sourceApp: z.ZodString;
6
+ sourceId: z.ZodString;
7
+ }, z.core.$strict>;
8
+ export type MediaUploaderProvenance = z.infer<typeof MediaUploaderProvenanceSchema>;
9
+ export interface MediaUploaderProps extends MediaUploaderProvenance {
10
+ value?: string;
11
+ accept?: string;
12
+ kind?: UploadKind;
13
+ isPublic?: boolean;
14
+ onUploaded?: (url: string) => void;
15
+ }
16
+ export declare function parseMediaUploaderProvenance(value: MediaUploaderProvenance): MediaUploaderProvenance;
17
+ //# sourceMappingURL=uploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../src/svelte/uploader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,0EAA0E;AAC1E,eAAO,MAAM,6BAA6B;;;kBAGxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,4BAA4B,CAC3C,KAAK,EAAE,uBAAuB,GAC5B,uBAAuB,CAEzB"}
@@ -0,0 +1,9 @@
1
+ import * as z from 'zod/v4';
2
+ /** Explicit provenance attached to an upload by a reusable UI surface. */
3
+ export const MediaUploaderProvenanceSchema = z.strictObject({
4
+ sourceApp: z.string().trim().min(1),
5
+ sourceId: z.string().trim().min(1)
6
+ });
7
+ export function parseMediaUploaderProvenance(value) {
8
+ return MediaUploaderProvenanceSchema.parse(value);
9
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Uploads Adapter Local - Exports
3
+ *
4
+ * Local filesystem storage adapter for the uploads/store kind.
5
+ */
6
+ export { uploadsAdapterLocalPlugin, default } from './uploads-adapter-local.plugin.ts';
7
+ export { default as localStorageDescriptor } from './local-storage.descriptor.ts';
8
+ export { LocalStorageService, createLocalStorageService } from './local-storage.impl.ts';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/uploads/adapters/local/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACN,yBAAyB,EACzB,OAAO,EACP,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGlF,OAAO,EACN,mBAAmB,EACnB,yBAAyB,EACzB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Uploads Adapter Local - Exports
3
+ *
4
+ * Local filesystem storage adapter for the uploads/store kind.
5
+ */
6
+ // Plugin
7
+ export { uploadsAdapterLocalPlugin, default } from "./uploads-adapter-local.plugin.js";
8
+ // Descriptor
9
+ export { default as localStorageDescriptor } from "./local-storage.descriptor.js";
10
+ // Implementation
11
+ export { LocalStorageService, createLocalStorageService } from "./local-storage.impl.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/uploads/adapters/local/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,SAAS;AACT,OAAO,EACN,yBAAyB,EACzB,OAAO,EACP,MAAM,mCAAmC,CAAC;AAE3C,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAElF,iBAAiB;AACjB,OAAO,EACN,mBAAmB,EACnB,yBAAyB,EACzB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Local Upload Storage Descriptor
3
+ *
4
+ * Descriptor for the local filesystem storage adapter.
5
+ * Registers as uploads/store with id 'local' for consumer hardware.
6
+ */
7
+ /**
8
+ * Upload store descriptor shape
9
+ */
10
+ export interface UploadStoreDescriptor {
11
+ id: string;
12
+ kind: 'uploads/store';
13
+ name: string;
14
+ description: string;
15
+ tags?: string[];
16
+ hardware: Array<'consumer' | 'cloud'>;
17
+ enabled: boolean;
18
+ }
19
+ /**
20
+ * Local storage descriptor metadata
21
+ */
22
+ declare const descriptor: UploadStoreDescriptor;
23
+ export default descriptor;
24
+ //# sourceMappingURL=local-storage.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-storage.descriptor.d.ts","sourceRoot":"","sources":["../../../../src/uploads/adapters/local/local-storage.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,qBAQjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Local Upload Storage Descriptor
3
+ *
4
+ * Descriptor for the local filesystem storage adapter.
5
+ * Registers as uploads/store with id 'local' for consumer hardware.
6
+ */
7
+ /**
8
+ * Local storage descriptor metadata
9
+ */
10
+ const descriptor = {
11
+ id: 'local',
12
+ kind: 'uploads/store',
13
+ name: 'Local Filesystem Storage',
14
+ description: 'File upload storage using local filesystem. Suitable for consumer deployments.',
15
+ tags: ['uploads', 'storage', 'filesystem', 'local', 'node', 'bun'],
16
+ hardware: ['consumer'], // Node/Bun only, not browser/Cloudflare
17
+ enabled: true
18
+ };
19
+ export default descriptor;
20
+ //# sourceMappingURL=local-storage.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-storage.descriptor.js","sourceRoot":"","sources":["../../../../src/uploads/adapters/local/local-storage.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH;;GAEG;AACH,MAAM,UAAU,GAA0B;IACzC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,gFAAgF;IAC7F,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;IAClE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,wCAAwC;IAChE,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Local Upload Storage Implementation
3
+ *
4
+ * Filesystem-based storage adapter for the uploads/store kind.
5
+ *
6
+ * It reaches the disk only through the runtime's filesystem kind and paths
7
+ * capability, handed in as `host`: the adapter imports no Node module. Every
8
+ * storage path is resolved against the root and must stay inside it, the file
9
+ * extension is allowlisted, and the upload kind maps exactly.
10
+ */
11
+ import type { RuntimePath } from '@vibesdotdev/paths';
12
+ import type { FileSystemAdapterInterface } from '@vibesdotdev/filesystem/interfaces/adapter';
13
+ import { type StorageConfig, type StorageResult, type UploadOptions } from '../../schemas/common.ts';
14
+ export type { StorageConfig, StorageResult, UploadOptions };
15
+ /**
16
+ * Upload storage interface that adapters must implement
17
+ */
18
+ export interface UploadStorage {
19
+ save(options: UploadOptions): Promise<StorageResult>;
20
+ get(storagePath: string): Promise<Buffer | null>;
21
+ delete(storagePath: string): Promise<boolean>;
22
+ getPublicUrl(storagePath: string): string | null;
23
+ getSignedUrl(storagePath: string, expiresSeconds?: number): Promise<string | null>;
24
+ }
25
+ /** What the adapter reads and writes the disk through: the runtime's filesystem kind and paths capability. */
26
+ export interface LocalStorageHost {
27
+ files: FileSystemAdapterInterface;
28
+ path: RuntimePath;
29
+ }
30
+ /**
31
+ * Local filesystem upload storage adapter.
32
+ * Provides save/get/delete operations for file storage on the local filesystem.
33
+ */
34
+ export declare class LocalStorageService implements UploadStorage {
35
+ private readonly host;
36
+ private config;
37
+ private resolvedBasePath;
38
+ /**
39
+ * Create a local storage service.
40
+ *
41
+ * @param config - Partial storage configuration (localPath, etc.)
42
+ * @param workspaceRoot - The bound workspace root (`runtime/workspace-path`);
43
+ * a relative `localPath` resolves against it, never the process cwd.
44
+ * @param host - The runtime's filesystem kind and paths capability.
45
+ */
46
+ constructor(config: Partial<StorageConfig> | undefined, workspaceRoot: string | undefined, host: LocalStorageHost);
47
+ /**
48
+ * Save a file to local storage.
49
+ *
50
+ * @param options - Upload options including buffer, kind, userId, etc.
51
+ * @returns StorageResult with storagePath, size, and backend
52
+ */
53
+ save(input: UploadOptions): Promise<StorageResult>;
54
+ /**
55
+ * Get a file from local storage.
56
+ *
57
+ * @param storagePath - The storage path (e.g., /uploads/media/abc.png)
58
+ * @returns Buffer containing file data, or null if file not found
59
+ * @throws `storage-path-outside-root` when the path leaves the storage root
60
+ */
61
+ get(storagePath: string): Promise<Buffer | null>;
62
+ /**
63
+ * Delete a file from local storage.
64
+ *
65
+ * @param storagePath - The storage path (e.g., /uploads/media/abc.png)
66
+ * @returns true if deleted successfully, false when there was no such file
67
+ * @throws `storage-path-outside-root` when the path leaves the storage root
68
+ */
69
+ delete(storagePath: string): Promise<boolean>;
70
+ /**
71
+ * Get a public URL for a local file.
72
+ *
73
+ * @param storagePath - The storage path
74
+ * @returns The public URL (for local, returns the path itself if it starts with /uploads/), or null if invalid
75
+ */
76
+ getPublicUrl(storagePath: string): string | null;
77
+ /**
78
+ * Get a signed URL for temporary access.
79
+ *
80
+ * For local storage, this always returns null as local files
81
+ * are accessed directly via their public path.
82
+ *
83
+ * @param _storagePath - The storage path (ignored for local)
84
+ * @param _expiresSeconds - Expiration time in seconds (ignored for local)
85
+ * @returns null (local storage does not support signed URLs)
86
+ */
87
+ getSignedUrl(_storagePath: string, _expiresSeconds?: number): Promise<string | null>;
88
+ /**
89
+ * Check if a storage path is a local path.
90
+ *
91
+ * @param storagePath - The storage path to check
92
+ * @returns true if the path starts with /uploads/
93
+ */
94
+ isLocalPath(storagePath: string): boolean;
95
+ /**
96
+ * The subdirectory for an upload kind; a kind that is not one of the known
97
+ * kinds is refused, never stored under a default.
98
+ */
99
+ private getKindPath;
100
+ /**
101
+ * The extension of a stored file: the caller's own extension when it is
102
+ * short, lower-case letters and digits only; else the MIME type's; else `bin`.
103
+ * Nothing from the name but that extension reaches the path.
104
+ */
105
+ private getFileExtension;
106
+ /**
107
+ * Resolve a storage path against the storage root, refusing one that leaves it.
108
+ * Converts /uploads/media/file.png -> <root>/media/file.png.
109
+ * Handles both absolute storage paths and relative paths.
110
+ */
111
+ private confinedPath;
112
+ }
113
+ /**
114
+ * Create a local storage service instance.
115
+ *
116
+ * @param config - Optional storage configuration
117
+ * @param workspaceRoot - The bound workspace root, for a relative `localPath`
118
+ * @param host - The runtime's filesystem kind and paths capability
119
+ * @returns LocalStorageService instance
120
+ */
121
+ export declare function createLocalStorageService(config: Partial<StorageConfig> | undefined, workspaceRoot: string | undefined, host: LocalStorageHost): LocalStorageService;
122
+ export default LocalStorageService;
123
+ //# sourceMappingURL=local-storage.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-storage.impl.d.ts","sourceRoot":"","sources":["../../../../src/uploads/adapters/local/local-storage.impl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAIN,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,yBAAyB,CAAC;AAIjC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrD,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjD,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACnF;AAED,8GAA8G;AAC9G,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,0BAA0B,CAAC;IAClC,IAAI,EAAE,WAAW,CAAC;CAClB;AA6BD;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IAevD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAdtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IAEjC;;;;;;;OAOG;gBAEF,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,EAC1C,aAAa,EAAE,MAAM,GAAG,SAAS,EAChB,IAAI,EAAE,gBAAgB;IAgBxC;;;;;OAKG;IACG,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA6BxD;;;;;;OAMG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQtD;;;;;;OAMG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnD;;;;;OAKG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOhD;;;;;;;;;OASG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIpF;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAMzC;;;OAGG;IACH,OAAO,CAAC,WAAW;IAWnB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAkBpB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,EAC1C,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,IAAI,EAAE,gBAAgB,GACpB,mBAAmB,CAErB;AAGD,eAAe,mBAAmB,CAAC"}