@anvilkit/plugin-asset-manager 0.1.6 → 0.1.8

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 (251) hide show
  1. package/README.md +28 -20
  2. package/dist/adapters/data-url.d.cts +13 -0
  3. package/dist/adapters/data-url.d.cts.map +1 -1
  4. package/dist/adapters/data-url.d.ts +13 -0
  5. package/dist/adapters/data-url.d.ts.map +1 -1
  6. package/dist/adapters/in-memory.d.cts +8 -1
  7. package/dist/adapters/in-memory.d.cts.map +1 -1
  8. package/dist/adapters/in-memory.d.ts +8 -1
  9. package/dist/adapters/in-memory.d.ts.map +1 -1
  10. package/dist/i18n/entry.cjs +75 -0
  11. package/dist/i18n/entry.d.cts +15 -0
  12. package/dist/i18n/entry.d.cts.map +1 -0
  13. package/dist/i18n/entry.d.ts +15 -0
  14. package/dist/i18n/entry.d.ts.map +1 -0
  15. package/dist/i18n/entry.js +29 -0
  16. package/dist/i18n/provider.cjs +49 -0
  17. package/dist/i18n/provider.d.cts +20 -0
  18. package/dist/i18n/provider.d.cts.map +1 -0
  19. package/dist/i18n/provider.d.ts +20 -0
  20. package/dist/i18n/provider.d.ts.map +1 -0
  21. package/dist/i18n/provider.js +11 -0
  22. package/dist/index.cjs +7 -0
  23. package/dist/index.d.cts +11 -3
  24. package/dist/index.d.cts.map +1 -1
  25. package/dist/index.d.ts +11 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2 -1
  28. package/dist/plugin.cjs +70 -5
  29. package/dist/plugin.d.cts +3 -2
  30. package/dist/plugin.d.cts.map +1 -1
  31. package/dist/plugin.d.ts +3 -2
  32. package/dist/plugin.d.ts.map +1 -1
  33. package/dist/plugin.js +70 -5
  34. package/dist/sources/composite-source.cjs +138 -0
  35. package/dist/sources/composite-source.d.cts +39 -0
  36. package/dist/sources/composite-source.d.cts.map +1 -0
  37. package/dist/sources/composite-source.d.ts +39 -0
  38. package/dist/sources/composite-source.d.ts.map +1 -0
  39. package/dist/sources/composite-source.js +100 -0
  40. package/dist/sources/federated-search.cjs +173 -0
  41. package/dist/sources/federated-search.d.cts +33 -0
  42. package/dist/sources/federated-search.d.cts.map +1 -0
  43. package/dist/sources/federated-search.d.ts +33 -0
  44. package/dist/sources/federated-search.d.ts.map +1 -0
  45. package/dist/sources/federated-search.js +123 -0
  46. package/dist/sources/provider.cjs +18 -0
  47. package/dist/sources/provider.d.cts +51 -0
  48. package/dist/sources/provider.d.cts.map +1 -0
  49. package/dist/sources/provider.d.ts +51 -0
  50. package/dist/sources/provider.d.ts.map +1 -0
  51. package/dist/sources/provider.js +1 -0
  52. package/dist/sources/unsplash/client.cjs +189 -0
  53. package/dist/sources/unsplash/client.d.cts +87 -0
  54. package/dist/sources/unsplash/client.d.cts.map +1 -0
  55. package/dist/sources/unsplash/client.d.ts +87 -0
  56. package/dist/sources/unsplash/client.d.ts.map +1 -0
  57. package/dist/sources/unsplash/client.js +151 -0
  58. package/dist/sources/unsplash/index.cjs +194 -0
  59. package/dist/sources/unsplash/index.d.cts +16 -0
  60. package/dist/sources/unsplash/index.d.cts.map +1 -0
  61. package/dist/sources/unsplash/index.d.ts +16 -0
  62. package/dist/sources/unsplash/index.d.ts.map +1 -0
  63. package/dist/sources/unsplash/index.js +150 -0
  64. package/dist/sources/unsplash/themes.cjs +141 -0
  65. package/dist/sources/unsplash/themes.d.cts +18 -0
  66. package/dist/sources/unsplash/themes.d.cts.map +1 -0
  67. package/dist/sources/unsplash/themes.d.ts +18 -0
  68. package/dist/sources/unsplash/themes.d.ts.map +1 -0
  69. package/dist/sources/unsplash/themes.js +93 -0
  70. package/dist/sources/unsplash/throttle-cache.cjs +86 -0
  71. package/dist/sources/unsplash/throttle-cache.d.cts +25 -0
  72. package/dist/sources/unsplash/throttle-cache.d.cts.map +1 -0
  73. package/dist/sources/unsplash/throttle-cache.d.ts +25 -0
  74. package/dist/sources/unsplash/throttle-cache.d.ts.map +1 -0
  75. package/dist/sources/unsplash/throttle-cache.js +45 -0
  76. package/dist/types/categories.cjs +18 -0
  77. package/dist/types/categories.d.cts +48 -0
  78. package/dist/types/categories.d.cts.map +1 -0
  79. package/dist/types/categories.d.ts +48 -0
  80. package/dist/types/categories.d.ts.map +1 -0
  81. package/dist/types/categories.js +1 -0
  82. package/dist/types/data-source.cjs +18 -0
  83. package/dist/types/data-source.d.cts +59 -0
  84. package/dist/types/data-source.d.cts.map +1 -0
  85. package/dist/types/data-source.d.ts +59 -0
  86. package/dist/types/data-source.d.ts.map +1 -0
  87. package/dist/types/data-source.js +1 -0
  88. package/dist/types/filter.cjs +18 -0
  89. package/dist/types/filter.d.cts +55 -0
  90. package/dist/types/filter.d.cts.map +1 -0
  91. package/dist/types/filter.d.ts +55 -0
  92. package/dist/types/filter.d.ts.map +1 -0
  93. package/dist/types/filter.js +1 -0
  94. package/dist/types/folders.cjs +42 -0
  95. package/dist/types/folders.d.cts +46 -0
  96. package/dist/types/folders.d.cts.map +1 -0
  97. package/dist/types/folders.d.ts +46 -0
  98. package/dist/types/folders.d.ts.map +1 -0
  99. package/dist/types/folders.js +4 -0
  100. package/dist/types/options.cjs +18 -0
  101. package/dist/types/options.d.cts +68 -0
  102. package/dist/types/options.d.cts.map +1 -0
  103. package/dist/types/options.d.ts +68 -0
  104. package/dist/types/options.d.ts.map +1 -0
  105. package/dist/types/options.js +1 -0
  106. package/dist/types/types.d.cts +21 -27
  107. package/dist/types/types.d.cts.map +1 -1
  108. package/dist/types/types.d.ts +21 -27
  109. package/dist/types/types.d.ts.map +1 -1
  110. package/dist/types/unsplash.cjs +18 -0
  111. package/dist/types/unsplash.d.cts +60 -0
  112. package/dist/types/unsplash.d.cts.map +1 -0
  113. package/dist/types/unsplash.d.ts +60 -0
  114. package/dist/types/unsplash.d.ts.map +1 -0
  115. package/dist/types/unsplash.js +1 -0
  116. package/dist/ui/AssetBrowser.cjs +183 -121
  117. package/dist/ui/AssetBrowser.d.cts +12 -1
  118. package/dist/ui/AssetBrowser.d.cts.map +1 -1
  119. package/dist/ui/AssetBrowser.d.ts +12 -1
  120. package/dist/ui/AssetBrowser.d.ts.map +1 -1
  121. package/dist/ui/AssetBrowser.js +183 -121
  122. package/dist/ui/AssetCommandPalette.cjs +20 -18
  123. package/dist/ui/AssetCommandPalette.d.cts.map +1 -1
  124. package/dist/ui/AssetCommandPalette.d.ts.map +1 -1
  125. package/dist/ui/AssetCommandPalette.js +20 -18
  126. package/dist/ui/AssetManagerUI.cjs +31 -17
  127. package/dist/ui/AssetManagerUI.d.cts +19 -3
  128. package/dist/ui/AssetManagerUI.d.cts.map +1 -1
  129. package/dist/ui/AssetManagerUI.d.ts +19 -3
  130. package/dist/ui/AssetManagerUI.d.ts.map +1 -1
  131. package/dist/ui/AssetManagerUI.js +31 -17
  132. package/dist/ui/DeleteAssetDialog.cjs +5 -3
  133. package/dist/ui/DeleteAssetDialog.d.cts.map +1 -1
  134. package/dist/ui/DeleteAssetDialog.d.ts.map +1 -1
  135. package/dist/ui/DeleteAssetDialog.js +5 -3
  136. package/dist/ui/DeleteFolderDialog.cjs +80 -0
  137. package/dist/ui/DeleteFolderDialog.d.cts +11 -0
  138. package/dist/ui/DeleteFolderDialog.d.cts.map +1 -0
  139. package/dist/ui/DeleteFolderDialog.d.ts +11 -0
  140. package/dist/ui/DeleteFolderDialog.d.ts.map +1 -0
  141. package/dist/ui/DeleteFolderDialog.js +42 -0
  142. package/dist/ui/EmptyFolderState.cjs +56 -0
  143. package/dist/ui/EmptyFolderState.d.cts +6 -0
  144. package/dist/ui/EmptyFolderState.d.cts.map +1 -0
  145. package/dist/ui/EmptyFolderState.d.ts +6 -0
  146. package/dist/ui/EmptyFolderState.d.ts.map +1 -0
  147. package/dist/ui/EmptyFolderState.js +18 -0
  148. package/dist/ui/FolderBreadcrumb.cjs +76 -0
  149. package/dist/ui/FolderBreadcrumb.d.cts +9 -0
  150. package/dist/ui/FolderBreadcrumb.d.cts.map +1 -0
  151. package/dist/ui/FolderBreadcrumb.d.ts +9 -0
  152. package/dist/ui/FolderBreadcrumb.d.ts.map +1 -0
  153. package/dist/ui/FolderBreadcrumb.js +38 -0
  154. package/dist/ui/FolderNameDialog.cjs +105 -0
  155. package/dist/ui/FolderNameDialog.d.cts +14 -0
  156. package/dist/ui/FolderNameDialog.d.cts.map +1 -0
  157. package/dist/ui/FolderNameDialog.d.ts +14 -0
  158. package/dist/ui/FolderNameDialog.d.ts.map +1 -0
  159. package/dist/ui/FolderNameDialog.js +67 -0
  160. package/dist/ui/FolderTree.cjs +85 -0
  161. package/dist/ui/FolderTree.d.cts +13 -0
  162. package/dist/ui/FolderTree.d.cts.map +1 -0
  163. package/dist/ui/FolderTree.d.ts +13 -0
  164. package/dist/ui/FolderTree.d.ts.map +1 -0
  165. package/dist/ui/FolderTree.js +44 -0
  166. package/dist/ui/MetadataPanel.cjs +23 -17
  167. package/dist/ui/MetadataPanel.d.cts.map +1 -1
  168. package/dist/ui/MetadataPanel.d.ts.map +1 -1
  169. package/dist/ui/MetadataPanel.js +23 -17
  170. package/dist/ui/MoveTargetPicker.cjs +87 -0
  171. package/dist/ui/MoveTargetPicker.d.cts +16 -0
  172. package/dist/ui/MoveTargetPicker.d.cts.map +1 -0
  173. package/dist/ui/MoveTargetPicker.d.ts +16 -0
  174. package/dist/ui/MoveTargetPicker.d.ts.map +1 -0
  175. package/dist/ui/MoveTargetPicker.js +49 -0
  176. package/dist/ui/ReplaceAssetDialog.cjs +19 -17
  177. package/dist/ui/ReplaceAssetDialog.d.cts +2 -1
  178. package/dist/ui/ReplaceAssetDialog.d.cts.map +1 -1
  179. package/dist/ui/ReplaceAssetDialog.d.ts +2 -1
  180. package/dist/ui/ReplaceAssetDialog.d.ts.map +1 -1
  181. package/dist/ui/ReplaceAssetDialog.js +19 -17
  182. package/dist/ui/UnsplashPanel.cjs +137 -0
  183. package/dist/ui/UnsplashPanel.d.cts +28 -0
  184. package/dist/ui/UnsplashPanel.d.cts.map +1 -0
  185. package/dist/ui/UnsplashPanel.d.ts +28 -0
  186. package/dist/ui/UnsplashPanel.d.ts.map +1 -0
  187. package/dist/ui/UnsplashPanel.js +99 -0
  188. package/dist/ui/UploadButton.cjs +12 -13
  189. package/dist/ui/UploadButton.d.cts +9 -2
  190. package/dist/ui/UploadButton.d.cts.map +1 -1
  191. package/dist/ui/UploadButton.d.ts +9 -2
  192. package/dist/ui/UploadButton.d.ts.map +1 -1
  193. package/dist/ui/UploadButton.js +12 -13
  194. package/dist/ui/index.cjs +41 -0
  195. package/dist/ui/index.d.cts +15 -0
  196. package/dist/ui/index.d.cts.map +1 -1
  197. package/dist/ui/index.d.ts +15 -0
  198. package/dist/ui/index.d.ts.map +1 -1
  199. package/dist/ui/index.js +8 -0
  200. package/dist/utils/data-source.cjs +190 -0
  201. package/dist/utils/data-source.d.cts +63 -0
  202. package/dist/utils/data-source.d.cts.map +1 -0
  203. package/dist/utils/data-source.d.ts +63 -0
  204. package/dist/utils/data-source.d.ts.map +1 -0
  205. package/dist/utils/data-source.js +149 -0
  206. package/dist/utils/errors.cjs +18 -0
  207. package/dist/utils/errors.d.cts +27 -0
  208. package/dist/utils/errors.d.cts.map +1 -1
  209. package/dist/utils/errors.d.ts +27 -0
  210. package/dist/utils/errors.d.ts.map +1 -1
  211. package/dist/utils/errors.js +16 -1
  212. package/dist/utils/folders.cjs +335 -0
  213. package/dist/utils/folders.d.cts +54 -0
  214. package/dist/utils/folders.d.cts.map +1 -0
  215. package/dist/utils/folders.d.ts +54 -0
  216. package/dist/utils/folders.d.ts.map +1 -0
  217. package/dist/utils/folders.js +297 -0
  218. package/dist/utils/header-action.cjs +1 -1
  219. package/dist/utils/header-action.d.cts.map +1 -1
  220. package/dist/utils/header-action.d.ts.map +1 -1
  221. package/dist/utils/header-action.js +1 -1
  222. package/dist/utils/registry.cjs +38 -12
  223. package/dist/utils/registry.d.cts +29 -1
  224. package/dist/utils/registry.d.cts.map +1 -1
  225. package/dist/utils/registry.d.ts +29 -1
  226. package/dist/utils/registry.d.ts.map +1 -1
  227. package/dist/utils/registry.js +31 -11
  228. package/dist/utils/resolver.cjs +5 -4
  229. package/dist/utils/resolver.d.cts.map +1 -1
  230. package/dist/utils/resolver.d.ts.map +1 -1
  231. package/dist/utils/resolver.js +5 -4
  232. package/dist/utils/studio-asset-source.cjs +13 -4
  233. package/dist/utils/studio-asset-source.d.cts +6 -1
  234. package/dist/utils/studio-asset-source.d.cts.map +1 -1
  235. package/dist/utils/studio-asset-source.d.ts +6 -1
  236. package/dist/utils/studio-asset-source.d.ts.map +1 -1
  237. package/dist/utils/studio-asset-source.js +9 -3
  238. package/dist/utils/validate-upload-result.d.cts +2 -1
  239. package/dist/utils/validate-upload-result.d.cts.map +1 -1
  240. package/dist/utils/validate-upload-result.d.ts +2 -1
  241. package/dist/utils/validate-upload-result.d.ts.map +1 -1
  242. package/dist/version.cjs +1 -1
  243. package/dist/version.d.cts +1 -1
  244. package/dist/version.d.ts +1 -1
  245. package/dist/version.js +1 -1
  246. package/i18n/messages/en.json +99 -0
  247. package/i18n/messages/ja.json +99 -0
  248. package/i18n/messages/ko.json +99 -0
  249. package/i18n/messages/zh.json +99 -0
  250. package/meta/config.json +1 -1
  251. package/package.json +19 -8
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @anvilkit/plugin-asset-manager
2
2
 
3
- > **Alpha (`0.1.6`).** Public surface may still shift before `v1.0`. Bundle budgets enforced in CI: headless ≤ 6 KB gzip, UI subpath ≤ 12 KB gzip.
3
+ > **Alpha (`0.1.8`).** Public surface may still shift before `v1.0`. Bundle budgets enforced in CI: headless entry 8 KB gzip, UI subpath ≤ 12 KB gzip, Unsplash subpath ≤ 4 KB gzip.
4
4
 
5
5
  Headless asset manager plugin for Anvilkit Studio. The host provides the upload backend; the plugin handles validation, registration, search, IR-time resolution, CSP guidance, and (optionally) a React UI for the upload + browse experience. Designed for pluggable production backends (S3, GCS, custom HTTP) with strict trust-boundary enforcement on every adapter response.
6
6
 
@@ -15,34 +15,36 @@ Non-optional peers: `react >=19.0.0`, `react-dom >=19.0.0`, `@puckeditor/core ^0
15
15
  Subpath imports:
16
16
 
17
17
  - `@anvilkit/plugin-asset-manager` — plugin factory, validation, adapters, CSP advisor, errors.
18
- - `@anvilkit/plugin-asset-manager/ui` — React UI components.
18
+ - `@anvilkit/plugin-asset-manager/ui` — React UI components (browser + folders + Unsplash panel).
19
19
  - `@anvilkit/plugin-asset-manager/retry` — generic `RetryableError` + `withRetry()`.
20
20
  - `@anvilkit/plugin-asset-manager/adapters/s3` — production `s3PresignedAdapter`.
21
+ - `@anvilkit/plugin-asset-manager/providers/unsplash` — the lazy, dependency-free Unsplash provider.
21
22
  - `@anvilkit/plugin-asset-manager/testing` — fixtures for downstream plugin tests.
22
23
 
23
24
  ## Quickstart
24
25
 
25
26
  ```ts
26
- import {
27
- createAssetManagerPlugin,
28
- dataUrlUploader,
29
- } from "@anvilkit/plugin-asset-manager";
27
+ import { createAssetManagerPlugin } from "@anvilkit/plugin-asset-manager";
30
28
  import { Studio } from "@anvilkit/core";
31
29
 
32
- const assetManager = createAssetManagerPlugin({
33
- uploader: dataUrlUploader(),
34
- });
30
+ // Zero-config: an in-memory library with folders enabled. Every option is optional.
31
+ const assetManager = createAssetManagerPlugin();
35
32
 
36
33
  <Studio puckConfig={puckConfig} plugins={[assetManager]} />;
37
34
  ```
38
35
 
39
- `dataUrlUploader` is dev-only — files are converted to in-memory `data:` URLs (1 MB cap by default). For production, swap in `s3PresignedAdapter` or a custom `UploadAdapter`.
36
+ For real uploads pass an `uploader`. `dataUrlUploader` is dev-only — files are converted to in-memory `data:` URLs (1 MB cap by default). For production, swap in `s3PresignedAdapter` or a custom `UploadAdapter`. The default Studio sidebar's **Images** rail renders the library, folder breadcrumb/tree, source tabs and (when configured) the Unsplash picker with no extra wiring.
40
37
 
41
38
  ## Core features
42
39
 
43
40
  - **Pluggable upload adapters** — `dataUrlUploader`, `inMemoryUploader`, and `s3PresignedAdapter` ship in-box; custom adapters implement the `UploadAdapter` function signature.
44
41
  - **Strict trust model** — every adapter response is validated through `validateUploadResult`: scheme allowlist, path-traversal guard, IDN homoglyph guard. `javascript:` / `vbscript:` are hard-blocked. `data:` is opt-in.
45
42
  - **In-memory asset registry** — search (`query` / `kinds` / `tags`), opaque cursor pagination, auto-derived tags, rename / retag / replace / delete.
43
+ - **Zero required config** — `createAssetManagerPlugin()` (no args) yields a working in-memory library with folders; wire only the `dataSource` operations you need.
44
+ - **Folders** — tree management (create / rename / move / remove with reparent-or-cascade); membership is library metadata, never IR, so moves never change a rendered page.
45
+ - **Host-backed data source** — optional async `AssetDataSource` (list returns assets + folder tree); per-plane fallback to the in-memory default for omitted methods.
46
+ - **Unsplash** — built-in, lazy, proxy-first source with multiple themes, attribution + mandatory download-trigger; never enters the headless chunk.
47
+ - **Categories & faceted filtering** — kind / tags / folder / source axes (AND-composed) plus host-defined categories & facets; federates across sources with a composite cursor.
46
48
  - **IR-time resolution** — `createIRAssetResolver` + `resolveAssets` turn `asset://<id>` references into validated URLs at export / render time.
47
49
  - **CSP advisor** — `getRequiredCsp` computes the minimum `connect-src` / `img-src` / `media-src` directives the configured adapters need.
48
50
  - **Production-ready S3 adapter** — `s3PresignedAdapter` POST-then-PUT with exponential-backoff retry on 5xx + network failures (4xx fails fast).
@@ -57,14 +59,20 @@ const assetManager = createAssetManagerPlugin({
57
59
  function createAssetManagerPlugin(options: AssetManagerOptions): StudioPlugin;
58
60
  ```
59
61
 
60
- | Field | Type | Default | Purpose |
61
- | --------------------------- | ---------------------------------------------- | ---------- | ------------------------------------------------------------------------- |
62
- | `uploader` | `UploadAdapter` | _required_ | Upload backend. |
63
- | `maxFileSize` | `number` | none | Bytes. Enforced before the adapter runs. |
64
- | `acceptedMimeTypes` | `readonly string[]` | none | Allowlist. Enforced before the adapter runs. |
65
- | `dataUrlAllowlistOptIn` | `boolean` | `false` | When `true`, `data:` URLs are valid output. |
66
- | `allowMixedScriptHostnames` | `boolean` | `false` | When `true`, hostnames mixing Latin with a confusable script are allowed. |
67
- | `getThumbnail` | `(entry: UploadResult) => string \| undefined` | none | Optional override for the displayed thumbnail. |
62
+ | Field | Type | Default | Purpose |
63
+ | --------------------------- | ---------------------------------------------- | --------- | ---------------------------------------------------------------------------- |
64
+ | `uploader` | `UploadAdapter` | in-memory | Binary ingest backend (optional; defaults to an in-memory uploader). |
65
+ | `dataSource` | `AssetDataSource` | in-memory | Host-backed catalog (list / remove / replace / rename / move + folders). |
66
+ | `folders` | `boolean \| FolderOptions` | `true` | Folder management; `false` for a flat library, or `{ maxDepth, allowMove }`. |
67
+ | `providers` | `readonly AssetSourceProvider[]` | `[]` | Extra read-only sources, federated alongside the local library. |
68
+ | `unsplash` | `UnsplashSourceOptions` | none | Built-in Unsplash source (proxy-first; no bundled key). |
69
+ | `categories` | `readonly AssetCategory[]` | none | Saved-view chips beside the kind filters. |
70
+ | `facets` | `readonly AssetFacetDefinition[]` | none | Custom faceted filters (local `valueOf` or remote). |
71
+ | `maxFileSize` | `number` | none | Bytes. Enforced before the adapter runs. |
72
+ | `acceptedMimeTypes` | `readonly string[]` | none | Allowlist. Enforced before the adapter runs. |
73
+ | `dataUrlAllowlistOptIn` | `boolean` | `false` | When `true`, `data:` URLs are valid output. |
74
+ | `allowMixedScriptHostnames` | `boolean` | `false` | When `true`, hostnames mixing Latin with a confusable script are allowed. |
75
+ | `getThumbnail` | `(entry: UploadResult) => string \| undefined` | none | Optional override for the displayed thumbnail. |
68
76
 
69
77
  ### Imperative API on the plugin context
70
78
 
@@ -95,8 +103,8 @@ interface UploadResult {
95
103
 
96
104
  | Adapter | Use case | Notes |
97
105
  | -------------------------- | ---------- | ---------------------------------------------------------------------------------------------------- |
98
- | `dataUrlUploader(opts?)` | Dev, demos | `maxBytes` default 1 MB. Extracts image dimensions. |
99
- | `inMemoryUploader()` | Tests | Stores files in memory with `blob:` URLs. |
106
+ | `dataUrlUploader(opts?)` | Dev, demos | `maxBytes` default 1 MB — bounds the **raw** file; the emitted base64 `data:` URL is ~33% larger and is held in memory + embedded inline in the IR/export. Extracts image dimensions. |
107
+ | `inMemoryUploader()` | Tests | Stores files in memory with `blob:` URLs. The object URLs are **never revoked** (no delete hook), so long upload/delete churn leaks — dev/test only. |
100
108
  | `s3PresignedAdapter(opts)` | Production | POST `{ name, type, size }` to `presignEndpoint`; PUT file to returned `url`. Retries 5xx + network. |
101
109
 
102
110
  `s3PresignedAdapter` options:
@@ -1,6 +1,19 @@
1
1
  import type { UploadAdapter } from "../types/types.js";
2
2
  export interface DataUrlUploaderOptions {
3
+ /**
4
+ * Maximum **raw file size** in bytes (default 1 MB). This bounds the input
5
+ * file, NOT the emitted `data:` URL: base64 encoding inflates the payload
6
+ * ~4/3, so a file at the cap becomes a ~1.33× larger string that is held in
7
+ * memory and embedded inline in the registry / IR / exported page (C3). Size
8
+ * the cap for the *encoded* footprint your target can carry.
9
+ */
3
10
  readonly maxBytes?: number;
4
11
  }
12
+ /**
13
+ * Dev/demo upload adapter that inlines the file as a `data:` URL. The result is
14
+ * self-contained (no host backend) but ~33% larger than the raw bytes once
15
+ * base64-encoded — see {@link DataUrlUploaderOptions.maxBytes}. Not for
16
+ * production; use `s3PresignedAdapter` or a custom `UploadAdapter` there.
17
+ */
5
18
  export declare function dataUrlUploader(options?: DataUrlUploaderOptions): UploadAdapter;
6
19
  //# sourceMappingURL=data-url.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-url.d.cts","sourceRoot":"","sources":["../../src/adapters/data-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAIrE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID,wBAAgB,eAAe,CAC9B,OAAO,GAAE,sBAA2B,GAClC,aAAa,CA+Bf"}
1
+ {"version":3,"file":"data-url.d.cts","sourceRoot":"","sources":["../../src/adapters/data-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAIrE,MAAM,WAAW,sBAAsB;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,OAAO,GAAE,sBAA2B,GAClC,aAAa,CA+Bf"}
@@ -1,6 +1,19 @@
1
1
  import type { UploadAdapter } from "../types/types.js";
2
2
  export interface DataUrlUploaderOptions {
3
+ /**
4
+ * Maximum **raw file size** in bytes (default 1 MB). This bounds the input
5
+ * file, NOT the emitted `data:` URL: base64 encoding inflates the payload
6
+ * ~4/3, so a file at the cap becomes a ~1.33× larger string that is held in
7
+ * memory and embedded inline in the registry / IR / exported page (C3). Size
8
+ * the cap for the *encoded* footprint your target can carry.
9
+ */
3
10
  readonly maxBytes?: number;
4
11
  }
12
+ /**
13
+ * Dev/demo upload adapter that inlines the file as a `data:` URL. The result is
14
+ * self-contained (no host backend) but ~33% larger than the raw bytes once
15
+ * base64-encoded — see {@link DataUrlUploaderOptions.maxBytes}. Not for
16
+ * production; use `s3PresignedAdapter` or a custom `UploadAdapter` there.
17
+ */
5
18
  export declare function dataUrlUploader(options?: DataUrlUploaderOptions): UploadAdapter;
6
19
  //# sourceMappingURL=data-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-url.d.ts","sourceRoot":"","sources":["../../src/adapters/data-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAIrE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID,wBAAgB,eAAe,CAC9B,OAAO,GAAE,sBAA2B,GAClC,aAAa,CA+Bf"}
1
+ {"version":3,"file":"data-url.d.ts","sourceRoot":"","sources":["../../src/adapters/data-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAIrE,MAAM,WAAW,sBAAsB;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,OAAO,GAAE,sBAA2B,GAClC,aAAa,CA+Bf"}
@@ -3,7 +3,14 @@ import type { UploadAdapter } from "../types/types.js";
3
3
  * In-memory upload adapter for demos and tests. Returns a `blob:` URL
4
4
  * that the consumer renders directly, so the object URL intentionally
5
5
  * lives for the page lifetime — it cannot be revoked while the asset is
6
- * still referenced. Not for production use.
6
+ * still referenced.
7
+ *
8
+ * Lifecycle caveat (C4): this is a stateless factory with no delete hook, so a
9
+ * `blob:` URL is never `URL.revokeObjectURL`-d — including when its asset is
10
+ * removed from the registry. Each upload pins its `File` in memory until the
11
+ * page unloads, so a long session that churns through many upload/delete cycles
12
+ * leaks. Acceptable for its dev/test purpose; use a real backend (e.g.
13
+ * `s3PresignedAdapter`) in production.
7
14
  */
8
15
  export declare function inMemoryUploader(): UploadAdapter;
9
16
  //# sourceMappingURL=in-memory.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.d.cts","sourceRoot":"","sources":["../../src/adapters/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CA8BhD"}
1
+ {"version":3,"file":"in-memory.d.cts","sourceRoot":"","sources":["../../src/adapters/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAGrE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CA8BhD"}
@@ -3,7 +3,14 @@ import type { UploadAdapter } from "../types/types.js";
3
3
  * In-memory upload adapter for demos and tests. Returns a `blob:` URL
4
4
  * that the consumer renders directly, so the object URL intentionally
5
5
  * lives for the page lifetime — it cannot be revoked while the asset is
6
- * still referenced. Not for production use.
6
+ * still referenced.
7
+ *
8
+ * Lifecycle caveat (C4): this is a stateless factory with no delete hook, so a
9
+ * `blob:` URL is never `URL.revokeObjectURL`-d — including when its asset is
10
+ * removed from the registry. Each upload pins its `File` in memory until the
11
+ * page unloads, so a long session that churns through many upload/delete cycles
12
+ * leaks. Acceptable for its dev/test purpose; use a real backend (e.g.
13
+ * `s3PresignedAdapter`) in production.
7
14
  */
8
15
  export declare function inMemoryUploader(): UploadAdapter;
9
16
  //# sourceMappingURL=in-memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/adapters/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CA8BhD"}
1
+ {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/adapters/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAGrE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CA8BhD"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ ASSET_MANAGER_ENTRY: ()=>ASSET_MANAGER_ENTRY
41
+ });
42
+ const en_json_namespaceObject = require("../../i18n/messages/en.json");
43
+ var en_json_default = /*#__PURE__*/ __webpack_require__.n(en_json_namespaceObject);
44
+ const LOCALE_PACKS = {
45
+ zh: ()=>import("../../i18n/messages/zh.json", {
46
+ with: {
47
+ type: "json"
48
+ }
49
+ }),
50
+ ja: ()=>import("../../i18n/messages/ja.json", {
51
+ with: {
52
+ type: "json"
53
+ }
54
+ }),
55
+ ko: ()=>import("../../i18n/messages/ko.json", {
56
+ with: {
57
+ type: "json"
58
+ }
59
+ })
60
+ };
61
+ const ASSET_MANAGER_ENTRY = {
62
+ namespace: "assetManager",
63
+ en: en_json_default(),
64
+ loadMessages: async (locale)=>{
65
+ const pack = LOCALE_PACKS[locale];
66
+ return void 0 === pack ? {} : (await pack()).default;
67
+ }
68
+ };
69
+ exports.ASSET_MANAGER_ENTRY = __webpack_exports__.ASSET_MANAGER_ENTRY;
70
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
71
+ "ASSET_MANAGER_ENTRY"
72
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
73
+ Object.defineProperty(exports, '__esModule', {
74
+ value: true
75
+ });
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @file The `assetManager` registry entry (pure data — no React).
3
+ *
4
+ * Message content lives in `messages/<locale>.json`; English ships inline
5
+ * and other locales lazy-load. Kept separate from `provider.tsx` so the
6
+ * headless `register()` can import {@link ASSET_MANAGER_ENTRY} without
7
+ * pulling the React `EditorI18nProvider` into the headless entry chunk.
8
+ */
9
+ import type { RegistryEntry } from "@anvilkit/core/i18n";
10
+ import enMessages from "../../i18n/messages/en.json";
11
+ /** The registry entry contributed to the catalog (core prepends `studio.*`). */
12
+ export declare const ASSET_MANAGER_ENTRY: RegistryEntry;
13
+ /** Exact key union for the `AnvilkitMessages` augmentation. */
14
+ export type AssetManagerMessageKey = keyof typeof enMessages;
15
+ //# sourceMappingURL=entry.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.cts","sourceRoot":"","sources":["../../src/i18n/entry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,OAAO,UAAU,MAAM,6BAA6B,CAAuB;AAW3E,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,EAAE,aAOjC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @file The `assetManager` registry entry (pure data — no React).
3
+ *
4
+ * Message content lives in `messages/<locale>.json`; English ships inline
5
+ * and other locales lazy-load. Kept separate from `provider.tsx` so the
6
+ * headless `register()` can import {@link ASSET_MANAGER_ENTRY} without
7
+ * pulling the React `EditorI18nProvider` into the headless entry chunk.
8
+ */
9
+ import type { RegistryEntry } from "@anvilkit/core/i18n";
10
+ import enMessages from "../../i18n/messages/en.json";
11
+ /** The registry entry contributed to the catalog (core prepends `studio.*`). */
12
+ export declare const ASSET_MANAGER_ENTRY: RegistryEntry;
13
+ /** Exact key union for the `AnvilkitMessages` augmentation. */
14
+ export type AssetManagerMessageKey = keyof typeof enMessages;
15
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/i18n/entry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,OAAO,UAAU,MAAM,6BAA6B,CAAuB;AAW3E,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,EAAE,aAOjC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,29 @@
1
+ import en from "../../i18n/messages/en.json" with {
2
+ type: "json"
3
+ };
4
+ const LOCALE_PACKS = {
5
+ zh: ()=>import("../../i18n/messages/zh.json", {
6
+ with: {
7
+ type: "json"
8
+ }
9
+ }),
10
+ ja: ()=>import("../../i18n/messages/ja.json", {
11
+ with: {
12
+ type: "json"
13
+ }
14
+ }),
15
+ ko: ()=>import("../../i18n/messages/ko.json", {
16
+ with: {
17
+ type: "json"
18
+ }
19
+ })
20
+ };
21
+ const ASSET_MANAGER_ENTRY = {
22
+ namespace: "assetManager",
23
+ en: en,
24
+ loadMessages: async (locale)=>{
25
+ const pack = LOCALE_PACKS[locale];
26
+ return void 0 === pack ? {} : (await pack()).default;
27
+ }
28
+ };
29
+ export { ASSET_MANAGER_ENTRY };
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ AssetManagerI18nProvider: ()=>AssetManagerI18nProvider
32
+ });
33
+ const i18n_namespaceObject = require("@anvilkit/core/i18n");
34
+ const external_react_namespaceObject = require("react");
35
+ const external_entry_cjs_namespaceObject = require("./entry.cjs");
36
+ function AssetManagerI18nProvider({ children }) {
37
+ return /*#__PURE__*/ external_react_namespaceObject.createElement(i18n_namespaceObject.EditorI18nProvider, {
38
+ entries: [
39
+ external_entry_cjs_namespaceObject.ASSET_MANAGER_ENTRY
40
+ ]
41
+ }, children);
42
+ }
43
+ exports.AssetManagerI18nProvider = __webpack_exports__.AssetManagerI18nProvider;
44
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
45
+ "AssetManagerI18nProvider"
46
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
47
+ Object.defineProperty(exports, '__esModule', {
48
+ value: true
49
+ });
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file Standalone `assetManager` i18n provider + the `AnvilkitMessages`
3
+ * type augmentation.
4
+ *
5
+ * {@link AssetManagerI18nProvider} wraps the standalone `./ui` subpath
6
+ * (mounted outside `<Studio>`) so its `useMsg("assetManager.*")` calls
7
+ * resolve. Standalone mounts default to English; locale switching is a
8
+ * Studio (in-chrome) feature. In-chrome usage needs no wrapper —
9
+ * `register()` already contributes {@link ASSET_MANAGER_ENTRY}.
10
+ */
11
+ import type { ReactNode } from "react";
12
+ import { type AssetManagerMessageKey } from "./entry.js";
13
+ export declare function AssetManagerI18nProvider({ children, }: {
14
+ readonly children: ReactNode;
15
+ }): ReactNode;
16
+ declare module "@anvilkit/core/i18n" {
17
+ interface AnvilkitMessages extends Record<AssetManagerMessageKey, string> {
18
+ }
19
+ }
20
+ //# sourceMappingURL=provider.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.cts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAuB,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE9E,wBAAgB,wBAAwB,CAAC,EACxC,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC7B,GAAG,SAAS,CAMZ;AAGD,OAAO,QAAQ,qBAAqB,CAAC;IACpC,UAAU,gBAAiB,SAAQ,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC;KAAG;CAC5E"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file Standalone `assetManager` i18n provider + the `AnvilkitMessages`
3
+ * type augmentation.
4
+ *
5
+ * {@link AssetManagerI18nProvider} wraps the standalone `./ui` subpath
6
+ * (mounted outside `<Studio>`) so its `useMsg("assetManager.*")` calls
7
+ * resolve. Standalone mounts default to English; locale switching is a
8
+ * Studio (in-chrome) feature. In-chrome usage needs no wrapper —
9
+ * `register()` already contributes {@link ASSET_MANAGER_ENTRY}.
10
+ */
11
+ import type { ReactNode } from "react";
12
+ import { type AssetManagerMessageKey } from "./entry.js";
13
+ export declare function AssetManagerI18nProvider({ children, }: {
14
+ readonly children: ReactNode;
15
+ }): ReactNode;
16
+ declare module "@anvilkit/core/i18n" {
17
+ interface AnvilkitMessages extends Record<AssetManagerMessageKey, string> {
18
+ }
19
+ }
20
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAuB,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE9E,wBAAgB,wBAAwB,CAAC,EACxC,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC7B,GAAG,SAAS,CAMZ;AAGD,OAAO,QAAQ,qBAAqB,CAAC;IACpC,UAAU,gBAAiB,SAAQ,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC;KAAG;CAC5E"}
@@ -0,0 +1,11 @@
1
+ import { EditorI18nProvider } from "@anvilkit/core/i18n";
2
+ import { ASSET_MANAGER_ENTRY } from "./entry.js";
3
+ import * as __rspack_external_react from "react";
4
+ function AssetManagerI18nProvider({ children }) {
5
+ return /*#__PURE__*/ __rspack_external_react.createElement(EditorI18nProvider, {
6
+ entries: [
7
+ ASSET_MANAGER_ENTRY
8
+ ]
9
+ }, children);
10
+ }
11
+ export { AssetManagerI18nProvider };
package/dist/index.cjs CHANGED
@@ -29,6 +29,7 @@ var __webpack_exports__ = {};
29
29
  __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
31
  AssetResolutionError: ()=>errors_cjs_namespaceObject.AssetResolutionError,
32
+ AssetSourceError: ()=>errors_cjs_namespaceObject.AssetSourceError,
32
33
  AssetValidationError: ()=>errors_cjs_namespaceObject.AssetValidationError,
33
34
  createAssetManagerPlugin: ()=>external_plugin_cjs_namespaceObject.createAssetManagerPlugin,
34
35
  createAssetReference: ()=>external_plugin_cjs_namespaceObject.createAssetReference,
@@ -42,12 +43,14 @@ __webpack_require__.d(__webpack_exports__, {
42
43
  inferAssetKind: ()=>infer_kind_cjs_namespaceObject.inferAssetKind,
43
44
  inferStudioAssetKind: ()=>studio_asset_source_cjs_namespaceObject.inferStudioAssetKind,
44
45
  resolveAssets: ()=>resolver_cjs_namespaceObject.resolveAssets,
46
+ resolveFolderId: ()=>folders_cjs_namespaceObject.resolveFolderId,
45
47
  uploadAsset: ()=>external_plugin_cjs_namespaceObject.uploadAsset,
46
48
  validateUploadResult: ()=>validate_upload_result_cjs_namespaceObject.validateUploadResult
47
49
  });
48
50
  const data_url_cjs_namespaceObject = require("./adapters/data-url.cjs");
49
51
  const in_memory_cjs_namespaceObject = require("./adapters/in-memory.cjs");
50
52
  const external_plugin_cjs_namespaceObject = require("./plugin.cjs");
53
+ const folders_cjs_namespaceObject = require("./types/folders.cjs");
51
54
  const csp_cjs_namespaceObject = require("./utils/csp.cjs");
52
55
  const errors_cjs_namespaceObject = require("./utils/errors.cjs");
53
56
  const infer_kind_cjs_namespaceObject = require("./utils/infer-kind.cjs");
@@ -56,6 +59,7 @@ const resolver_cjs_namespaceObject = require("./utils/resolver.cjs");
56
59
  const studio_asset_source_cjs_namespaceObject = require("./utils/studio-asset-source.cjs");
57
60
  const validate_upload_result_cjs_namespaceObject = require("./utils/validate-upload-result.cjs");
58
61
  exports.AssetResolutionError = __webpack_exports__.AssetResolutionError;
62
+ exports.AssetSourceError = __webpack_exports__.AssetSourceError;
59
63
  exports.AssetValidationError = __webpack_exports__.AssetValidationError;
60
64
  exports.createAssetManagerPlugin = __webpack_exports__.createAssetManagerPlugin;
61
65
  exports.createAssetReference = __webpack_exports__.createAssetReference;
@@ -69,10 +73,12 @@ exports.inMemoryUploader = __webpack_exports__.inMemoryUploader;
69
73
  exports.inferAssetKind = __webpack_exports__.inferAssetKind;
70
74
  exports.inferStudioAssetKind = __webpack_exports__.inferStudioAssetKind;
71
75
  exports.resolveAssets = __webpack_exports__.resolveAssets;
76
+ exports.resolveFolderId = __webpack_exports__.resolveFolderId;
72
77
  exports.uploadAsset = __webpack_exports__.uploadAsset;
73
78
  exports.validateUploadResult = __webpack_exports__.validateUploadResult;
74
79
  for(var __rspack_i in __webpack_exports__)if (-1 === [
75
80
  "AssetResolutionError",
81
+ "AssetSourceError",
76
82
  "AssetValidationError",
77
83
  "createAssetManagerPlugin",
78
84
  "createAssetReference",
@@ -86,6 +92,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
86
92
  "inferAssetKind",
87
93
  "inferStudioAssetKind",
88
94
  "resolveAssets",
95
+ "resolveFolderId",
89
96
  "uploadAsset",
90
97
  "validateUploadResult"
91
98
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
package/dist/index.d.cts CHANGED
@@ -2,11 +2,19 @@ export type { DataUrlUploaderOptions } from "./adapters/data-url.js";
2
2
  export { dataUrlUploader } from "./adapters/data-url.js";
3
3
  export { inMemoryUploader } from "./adapters/in-memory.js";
4
4
  export { createAssetManagerPlugin, createAssetReference, getAssetRegistry, uploadAsset, } from "./plugin.js";
5
- export type { AssetKind, AssetManagerOptions, AssetMeta, AssetRegistry, AssetRegistryListener, AssetSearchOptions, AssetSearchPage, UploadAdapter, UploadAdapterOptions, UploadResult, } from "./types/types.js";
5
+ export type { AssetSourceCapabilities, AssetSourceProvider, AssetTheme, } from "./sources/provider.js";
6
+ export type { AssetCategory, AssetFacetDefinition, AssetFacetOption, } from "./types/categories.js";
7
+ export type { AssetDataSource, AssetSourceStatus, ReplacePayload, } from "./types/data-source.js";
8
+ export type { AssetFilter, AssetListPage, AssetSort, AssetSortField, AssetSourceId, } from "./types/filter.js";
9
+ export type { AssetFolder, FolderId, FolderOptions } from "./types/folders.js";
10
+ export { resolveFolderId } from "./types/folders.js";
11
+ export type { AssetManagerOptions } from "./types/options.js";
12
+ export type { AssetKind, AssetMeta, AssetRegistry, AssetRegistryListener, AssetSearchOptions, AssetSearchPage, UploadAdapter, UploadAdapterOptions, UploadResult, } from "./types/types.js";
13
+ export type { UnsplashSourceOptions, UnsplashTheme, UnsplashThemeConfig, } from "./types/unsplash.js";
6
14
  export type { RequiredCsp, RequiredCspOptions, S3CspOptions, } from "./utils/csp.js";
7
15
  export { getRequiredCsp } from "./utils/csp.js";
8
- export type { AssetResolutionErrorCode } from "./utils/errors.js";
9
- export { AssetResolutionError, AssetValidationError } from "./utils/errors.js";
16
+ export type { AssetResolutionErrorCode, AssetSourceErrorCode, } from "./utils/errors.js";
17
+ export { AssetResolutionError, AssetSourceError, AssetValidationError, } from "./utils/errors.js";
10
18
  export { inferAssetKind } from "./utils/infer-kind.js";
11
19
  export { createAssetRegistry } from "./utils/registry.js";
12
20
  export type { CreateIRAssetResolverOptions } from "./utils/resolver.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EACN,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,uBAAuB,EACvB,mBAAmB,EACnB,UAAU,GACV,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,GACd,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,GACb,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACX,SAAS,EACT,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACX,qBAAqB,EACrB,aAAa,EACb,mBAAmB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EACX,wBAAwB,EACxB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EACN,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,11 +2,19 @@ export type { DataUrlUploaderOptions } from "./adapters/data-url.js";
2
2
  export { dataUrlUploader } from "./adapters/data-url.js";
3
3
  export { inMemoryUploader } from "./adapters/in-memory.js";
4
4
  export { createAssetManagerPlugin, createAssetReference, getAssetRegistry, uploadAsset, } from "./plugin.js";
5
- export type { AssetKind, AssetManagerOptions, AssetMeta, AssetRegistry, AssetRegistryListener, AssetSearchOptions, AssetSearchPage, UploadAdapter, UploadAdapterOptions, UploadResult, } from "./types/types.js";
5
+ export type { AssetSourceCapabilities, AssetSourceProvider, AssetTheme, } from "./sources/provider.js";
6
+ export type { AssetCategory, AssetFacetDefinition, AssetFacetOption, } from "./types/categories.js";
7
+ export type { AssetDataSource, AssetSourceStatus, ReplacePayload, } from "./types/data-source.js";
8
+ export type { AssetFilter, AssetListPage, AssetSort, AssetSortField, AssetSourceId, } from "./types/filter.js";
9
+ export type { AssetFolder, FolderId, FolderOptions } from "./types/folders.js";
10
+ export { resolveFolderId } from "./types/folders.js";
11
+ export type { AssetManagerOptions } from "./types/options.js";
12
+ export type { AssetKind, AssetMeta, AssetRegistry, AssetRegistryListener, AssetSearchOptions, AssetSearchPage, UploadAdapter, UploadAdapterOptions, UploadResult, } from "./types/types.js";
13
+ export type { UnsplashSourceOptions, UnsplashTheme, UnsplashThemeConfig, } from "./types/unsplash.js";
6
14
  export type { RequiredCsp, RequiredCspOptions, S3CspOptions, } from "./utils/csp.js";
7
15
  export { getRequiredCsp } from "./utils/csp.js";
8
- export type { AssetResolutionErrorCode } from "./utils/errors.js";
9
- export { AssetResolutionError, AssetValidationError } from "./utils/errors.js";
16
+ export type { AssetResolutionErrorCode, AssetSourceErrorCode, } from "./utils/errors.js";
17
+ export { AssetResolutionError, AssetSourceError, AssetValidationError, } from "./utils/errors.js";
10
18
  export { inferAssetKind } from "./utils/infer-kind.js";
11
19
  export { createAssetRegistry } from "./utils/registry.js";
12
20
  export type { CreateIRAssetResolverOptions } from "./utils/resolver.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EACN,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,uBAAuB,EACvB,mBAAmB,EACnB,UAAU,GACV,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,GACd,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,GACb,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACX,SAAS,EACT,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACX,qBAAqB,EACrB,aAAa,EACb,mBAAmB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EACX,wBAAwB,EACxB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EACN,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  export { dataUrlUploader } from "./adapters/data-url.js";
2
2
  export { inMemoryUploader } from "./adapters/in-memory.js";
3
3
  export { createAssetManagerPlugin, createAssetReference, getAssetRegistry, uploadAsset } from "./plugin.js";
4
+ export { resolveFolderId } from "./types/folders.js";
4
5
  export { getRequiredCsp } from "./utils/csp.js";
5
- export { AssetResolutionError, AssetValidationError } from "./utils/errors.js";
6
+ export { AssetResolutionError, AssetSourceError, AssetValidationError } from "./utils/errors.js";
6
7
  export { inferAssetKind } from "./utils/infer-kind.js";
7
8
  export { createAssetRegistry } from "./utils/registry.js";
8
9
  export { createIRAssetResolver, resolveAssets } from "./utils/resolver.js";