@anvilkit/plugin-asset-manager 0.1.1

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 (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/dist/adapters/data-url.cjs +78 -0
  4. package/dist/adapters/data-url.d.cts +6 -0
  5. package/dist/adapters/data-url.d.cts.map +1 -0
  6. package/dist/adapters/data-url.d.ts +6 -0
  7. package/dist/adapters/data-url.d.ts.map +1 -0
  8. package/dist/adapters/data-url.js +44 -0
  9. package/dist/adapters/extract-image-dimensions.cjs +69 -0
  10. package/dist/adapters/extract-image-dimensions.d.cts +21 -0
  11. package/dist/adapters/extract-image-dimensions.d.cts.map +1 -0
  12. package/dist/adapters/extract-image-dimensions.d.ts +21 -0
  13. package/dist/adapters/extract-image-dimensions.d.ts.map +1 -0
  14. package/dist/adapters/extract-image-dimensions.js +35 -0
  15. package/dist/adapters/in-memory.cjs +62 -0
  16. package/dist/adapters/in-memory.d.cts +3 -0
  17. package/dist/adapters/in-memory.d.cts.map +1 -0
  18. package/dist/adapters/in-memory.d.ts +3 -0
  19. package/dist/adapters/in-memory.d.ts.map +1 -0
  20. package/dist/adapters/in-memory.js +28 -0
  21. package/dist/adapters/s3-presigned.cjs +166 -0
  22. package/dist/adapters/s3-presigned.d.cts +59 -0
  23. package/dist/adapters/s3-presigned.d.cts.map +1 -0
  24. package/dist/adapters/s3-presigned.d.ts +59 -0
  25. package/dist/adapters/s3-presigned.d.ts.map +1 -0
  26. package/dist/adapters/s3-presigned.js +129 -0
  27. package/dist/asset-reference.cjs +38 -0
  28. package/dist/asset-reference.d.cts +10 -0
  29. package/dist/asset-reference.d.cts.map +1 -0
  30. package/dist/asset-reference.d.ts +10 -0
  31. package/dist/asset-reference.d.ts.map +1 -0
  32. package/dist/asset-reference.js +4 -0
  33. package/dist/csp.cjs +83 -0
  34. package/dist/csp.d.cts +45 -0
  35. package/dist/csp.d.cts.map +1 -0
  36. package/dist/csp.d.ts +45 -0
  37. package/dist/csp.d.ts.map +1 -0
  38. package/dist/csp.js +49 -0
  39. package/dist/errors.cjs +58 -0
  40. package/dist/errors.d.cts +15 -0
  41. package/dist/errors.d.cts.map +1 -0
  42. package/dist/errors.d.ts +15 -0
  43. package/dist/errors.d.ts.map +1 -0
  44. package/dist/errors.js +21 -0
  45. package/dist/header-action.cjs +44 -0
  46. package/dist/header-action.d.cts +3 -0
  47. package/dist/header-action.d.cts.map +1 -0
  48. package/dist/header-action.d.ts +3 -0
  49. package/dist/header-action.d.ts.map +1 -0
  50. package/dist/header-action.js +10 -0
  51. package/dist/index.cjs +90 -0
  52. package/dist/index.d.cts +18 -0
  53. package/dist/index.d.cts.map +1 -0
  54. package/dist/index.d.ts +18 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +10 -0
  57. package/dist/infer-kind.cjs +45 -0
  58. package/dist/infer-kind.d.cts +8 -0
  59. package/dist/infer-kind.d.cts.map +1 -0
  60. package/dist/infer-kind.d.ts +8 -0
  61. package/dist/infer-kind.d.ts.map +1 -0
  62. package/dist/infer-kind.js +11 -0
  63. package/dist/plugin.cjs +258 -0
  64. package/dist/plugin.d.cts +9 -0
  65. package/dist/plugin.d.cts.map +1 -0
  66. package/dist/plugin.d.ts +9 -0
  67. package/dist/plugin.d.ts.map +1 -0
  68. package/dist/plugin.js +212 -0
  69. package/dist/registry.cjs +198 -0
  70. package/dist/registry.d.cts +3 -0
  71. package/dist/registry.d.cts.map +1 -0
  72. package/dist/registry.d.ts +3 -0
  73. package/dist/registry.d.ts.map +1 -0
  74. package/dist/registry.js +164 -0
  75. package/dist/resolver.cjs +185 -0
  76. package/dist/resolver.d.cts +10 -0
  77. package/dist/resolver.d.cts.map +1 -0
  78. package/dist/resolver.d.ts +10 -0
  79. package/dist/resolver.d.ts.map +1 -0
  80. package/dist/resolver.js +148 -0
  81. package/dist/retry.cjs +123 -0
  82. package/dist/retry.d.cts +71 -0
  83. package/dist/retry.d.cts.map +1 -0
  84. package/dist/retry.d.ts +71 -0
  85. package/dist/retry.d.ts.map +1 -0
  86. package/dist/retry.js +86 -0
  87. package/dist/studio-asset-source.cjs +211 -0
  88. package/dist/studio-asset-source.d.cts +52 -0
  89. package/dist/studio-asset-source.d.cts.map +1 -0
  90. package/dist/studio-asset-source.d.ts +52 -0
  91. package/dist/studio-asset-source.d.ts.map +1 -0
  92. package/dist/studio-asset-source.js +171 -0
  93. package/dist/testing/index.cjs +66 -0
  94. package/dist/testing/index.d.cts +24 -0
  95. package/dist/testing/index.d.cts.map +1 -0
  96. package/dist/testing/index.d.ts +24 -0
  97. package/dist/testing/index.d.ts.map +1 -0
  98. package/dist/testing/index.js +29 -0
  99. package/dist/types.cjs +18 -0
  100. package/dist/types.d.cts +132 -0
  101. package/dist/types.d.cts.map +1 -0
  102. package/dist/types.d.ts +132 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +0 -0
  105. package/dist/ui/AssetBrowser.cjs +271 -0
  106. package/dist/ui/AssetBrowser.d.cts +45 -0
  107. package/dist/ui/AssetBrowser.d.cts.map +1 -0
  108. package/dist/ui/AssetBrowser.d.ts +45 -0
  109. package/dist/ui/AssetBrowser.d.ts.map +1 -0
  110. package/dist/ui/AssetBrowser.js +237 -0
  111. package/dist/ui/AssetCommandPalette.cjs +135 -0
  112. package/dist/ui/AssetCommandPalette.d.cts +21 -0
  113. package/dist/ui/AssetCommandPalette.d.cts.map +1 -0
  114. package/dist/ui/AssetCommandPalette.d.ts +21 -0
  115. package/dist/ui/AssetCommandPalette.d.ts.map +1 -0
  116. package/dist/ui/AssetCommandPalette.js +101 -0
  117. package/dist/ui/AssetManagerUI.cjs +169 -0
  118. package/dist/ui/AssetManagerUI.d.cts +15 -0
  119. package/dist/ui/AssetManagerUI.d.cts.map +1 -0
  120. package/dist/ui/AssetManagerUI.d.ts +15 -0
  121. package/dist/ui/AssetManagerUI.d.ts.map +1 -0
  122. package/dist/ui/AssetManagerUI.js +135 -0
  123. package/dist/ui/DeleteAssetDialog.cjs +70 -0
  124. package/dist/ui/DeleteAssetDialog.d.cts +22 -0
  125. package/dist/ui/DeleteAssetDialog.d.cts.map +1 -0
  126. package/dist/ui/DeleteAssetDialog.d.ts +22 -0
  127. package/dist/ui/DeleteAssetDialog.d.ts.map +1 -0
  128. package/dist/ui/DeleteAssetDialog.js +36 -0
  129. package/dist/ui/MetadataPanel.cjs +147 -0
  130. package/dist/ui/MetadataPanel.d.cts +21 -0
  131. package/dist/ui/MetadataPanel.d.cts.map +1 -0
  132. package/dist/ui/MetadataPanel.d.ts +21 -0
  133. package/dist/ui/MetadataPanel.d.ts.map +1 -0
  134. package/dist/ui/MetadataPanel.js +113 -0
  135. package/dist/ui/ReplaceAssetDialog.cjs +125 -0
  136. package/dist/ui/ReplaceAssetDialog.d.cts +14 -0
  137. package/dist/ui/ReplaceAssetDialog.d.cts.map +1 -0
  138. package/dist/ui/ReplaceAssetDialog.d.ts +14 -0
  139. package/dist/ui/ReplaceAssetDialog.d.ts.map +1 -0
  140. package/dist/ui/ReplaceAssetDialog.js +91 -0
  141. package/dist/ui/UploadButton.cjs +189 -0
  142. package/dist/ui/UploadButton.d.cts +17 -0
  143. package/dist/ui/UploadButton.d.cts.map +1 -0
  144. package/dist/ui/UploadButton.d.ts +17 -0
  145. package/dist/ui/UploadButton.d.ts.map +1 -0
  146. package/dist/ui/UploadButton.js +155 -0
  147. package/dist/ui/index.cjs +60 -0
  148. package/dist/ui/index.d.cts +15 -0
  149. package/dist/ui/index.d.cts.map +1 -0
  150. package/dist/ui/index.d.ts +15 -0
  151. package/dist/ui/index.d.ts.map +1 -0
  152. package/dist/ui/index.js +7 -0
  153. package/dist/validate-upload-result.cjs +149 -0
  154. package/dist/validate-upload-result.d.cts +9 -0
  155. package/dist/validate-upload-result.d.cts.map +1 -0
  156. package/dist/validate-upload-result.d.ts +9 -0
  157. package/dist/validate-upload-result.d.ts.map +1 -0
  158. package/dist/validate-upload-result.js +115 -0
  159. package/package.json +131 -0
package/dist/csp.d.ts ADDED
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @file CSP advisor — computes the minimum `connect-src` / `img-src` /
3
+ * `media-src` directives a host page needs in order for the
4
+ * configured adapters and their served URLs to load. Pure static
5
+ * derivation; no network or DOM dependencies.
6
+ *
7
+ * The host calls this once at boot with a description of which
8
+ * adapters are wired in, then merges the result into its existing CSP
9
+ * builder.
10
+ *
11
+ * @example
12
+ * const csp = getRequiredCsp({
13
+ * dataUrl: true,
14
+ * s3: { presignEndpoint: "https://uploads.example.com/sign" },
15
+ * });
16
+ * // csp.connectSrc → ["https://uploads.example.com"]
17
+ * // csp.imgSrc → ["data:"]
18
+ * // csp.mediaSrc → ["data:"]
19
+ */
20
+ export interface S3CspOptions {
21
+ /** The presign endpoint configured on `s3PresignedAdapter`. */
22
+ readonly presignEndpoint: string | URL;
23
+ /**
24
+ * Optional public-bucket origin (e.g. `https://cdn.example.com`).
25
+ * If your `publicUrl` returned by the presign service points at a
26
+ * different host than the presign endpoint itself, list it here so
27
+ * the advisor can include it in `img-src` / `media-src`.
28
+ */
29
+ readonly publicHost?: string;
30
+ }
31
+ export interface RequiredCspOptions {
32
+ /** True if `dataUrlUploader` is mounted. Defaults to false. */
33
+ readonly dataUrl?: boolean;
34
+ /** True if `inMemoryUploader` is mounted. Defaults to false. */
35
+ readonly inMemory?: boolean;
36
+ /** Description of any `s3PresignedAdapter` instance(s). */
37
+ readonly s3?: S3CspOptions | readonly S3CspOptions[];
38
+ }
39
+ export interface RequiredCsp {
40
+ readonly connectSrc: readonly string[];
41
+ readonly imgSrc: readonly string[];
42
+ readonly mediaSrc: readonly string[];
43
+ }
44
+ export declare function getRequiredCsp(options?: RequiredCspOptions): RequiredCsp;
45
+ //# sourceMappingURL=csp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csp.d.ts","sourceRoot":"","sources":["../src/csp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,YAAY;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,GAAG,SAAS,YAAY,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,CA4C5E"}
package/dist/csp.js ADDED
@@ -0,0 +1,49 @@
1
+ function getRequiredCsp(options = {}) {
2
+ const connectSrc = new Set();
3
+ const imgSrc = new Set();
4
+ const mediaSrc = new Set();
5
+ if (true === options.dataUrl) {
6
+ imgSrc.add("data:");
7
+ mediaSrc.add("data:");
8
+ }
9
+ if (true === options.inMemory) {
10
+ imgSrc.add("blob:");
11
+ mediaSrc.add("blob:");
12
+ }
13
+ const s3List = Array.isArray(options.s3) ? options.s3 : options.s3 ? [
14
+ options.s3
15
+ ] : [];
16
+ for (const entry of s3List){
17
+ const presignOrigin = parseOrigin(entry.presignEndpoint);
18
+ if (void 0 !== presignOrigin) connectSrc.add(presignOrigin);
19
+ const publicOrigin = void 0 !== entry.publicHost ? parseOrigin(entry.publicHost) : void 0;
20
+ if (void 0 !== publicOrigin) {
21
+ connectSrc.add(publicOrigin);
22
+ imgSrc.add(publicOrigin);
23
+ mediaSrc.add(publicOrigin);
24
+ } else if (void 0 !== presignOrigin) {
25
+ imgSrc.add(presignOrigin);
26
+ mediaSrc.add(presignOrigin);
27
+ }
28
+ }
29
+ return Object.freeze({
30
+ connectSrc: Object.freeze([
31
+ ...connectSrc
32
+ ]),
33
+ imgSrc: Object.freeze([
34
+ ...imgSrc
35
+ ]),
36
+ mediaSrc: Object.freeze([
37
+ ...mediaSrc
38
+ ])
39
+ });
40
+ }
41
+ function parseOrigin(value) {
42
+ const raw = "string" == typeof value ? value : value.toString();
43
+ try {
44
+ return new URL(raw).origin;
45
+ } catch {
46
+ return;
47
+ }
48
+ }
49
+ export { getRequiredCsp };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ AssetResolutionError: ()=>AssetResolutionError,
28
+ AssetValidationError: ()=>AssetValidationError
29
+ });
30
+ class AssetValidationError extends Error {
31
+ code;
32
+ constructor(code, message, options){
33
+ super(message);
34
+ this.name = "AssetValidationError";
35
+ this.code = code;
36
+ if (options && "cause" in options) this.cause = options.cause;
37
+ }
38
+ }
39
+ class AssetResolutionError extends Error {
40
+ assetId;
41
+ code;
42
+ constructor(assetId, code = "ASSET_NOT_FOUND", message = `Could not resolve asset "${assetId}"`, options){
43
+ super(message);
44
+ this.name = "AssetResolutionError";
45
+ this.assetId = assetId;
46
+ this.code = code;
47
+ if (options && "cause" in options) this.cause = options.cause;
48
+ }
49
+ }
50
+ exports.AssetResolutionError = __webpack_exports__.AssetResolutionError;
51
+ exports.AssetValidationError = __webpack_exports__.AssetValidationError;
52
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
53
+ "AssetResolutionError",
54
+ "AssetValidationError"
55
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
56
+ Object.defineProperty(exports, '__esModule', {
57
+ value: true
58
+ });
@@ -0,0 +1,15 @@
1
+ export declare class AssetValidationError extends Error {
2
+ readonly code: string;
3
+ constructor(code: string, message: string, options?: {
4
+ readonly cause?: unknown;
5
+ });
6
+ }
7
+ export type AssetResolutionErrorCode = "ASSET_NOT_FOUND" | "ASSET_URL_REJECTED" | "ASSET_VALIDATION_FAILED";
8
+ export declare class AssetResolutionError extends Error {
9
+ readonly assetId: string;
10
+ readonly code: AssetResolutionErrorCode;
11
+ constructor(assetId: string, code?: AssetResolutionErrorCode, message?: string, options?: {
12
+ readonly cause?: unknown;
13
+ });
14
+ }
15
+ //# sourceMappingURL=errors.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.cts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAUvC;AAED,MAAM,MAAM,wBAAwB,GACjC,iBAAiB,GACjB,oBAAoB,GACpB,yBAAyB,CAAC;AAE7B,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;gBAGvC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,wBAA4C,EAClD,OAAO,SAAyC,EAChD,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAWvC"}
@@ -0,0 +1,15 @@
1
+ export declare class AssetValidationError extends Error {
2
+ readonly code: string;
3
+ constructor(code: string, message: string, options?: {
4
+ readonly cause?: unknown;
5
+ });
6
+ }
7
+ export type AssetResolutionErrorCode = "ASSET_NOT_FOUND" | "ASSET_URL_REJECTED" | "ASSET_VALIDATION_FAILED";
8
+ export declare class AssetResolutionError extends Error {
9
+ readonly assetId: string;
10
+ readonly code: AssetResolutionErrorCode;
11
+ constructor(assetId: string, code?: AssetResolutionErrorCode, message?: string, options?: {
12
+ readonly cause?: unknown;
13
+ });
14
+ }
15
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAUvC;AAED,MAAM,MAAM,wBAAwB,GACjC,iBAAiB,GACjB,oBAAoB,GACpB,yBAAyB,CAAC;AAE7B,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;gBAGvC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,wBAA4C,EAClD,OAAO,SAAyC,EAChD,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAWvC"}
package/dist/errors.js ADDED
@@ -0,0 +1,21 @@
1
+ class AssetValidationError extends Error {
2
+ code;
3
+ constructor(code, message, options){
4
+ super(message);
5
+ this.name = "AssetValidationError";
6
+ this.code = code;
7
+ if (options && "cause" in options) this.cause = options.cause;
8
+ }
9
+ }
10
+ class AssetResolutionError extends Error {
11
+ assetId;
12
+ code;
13
+ constructor(assetId, code = "ASSET_NOT_FOUND", message = `Could not resolve asset "${assetId}"`, options){
14
+ super(message);
15
+ this.name = "AssetResolutionError";
16
+ this.assetId = assetId;
17
+ this.code = code;
18
+ if (options && "cause" in options) this.cause = options.cause;
19
+ }
20
+ }
21
+ export { AssetResolutionError, AssetValidationError };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ uploadAssetAction: ()=>uploadAssetAction
28
+ });
29
+ const uploadAssetAction = {
30
+ id: "asset-manager:upload",
31
+ label: "Upload asset",
32
+ icon: "upload",
33
+ group: "secondary",
34
+ onClick (ctx) {
35
+ ctx.emit("asset-manager:upload-requested");
36
+ }
37
+ };
38
+ exports.uploadAssetAction = __webpack_exports__.uploadAssetAction;
39
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
40
+ "uploadAssetAction"
41
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
42
+ Object.defineProperty(exports, '__esModule', {
43
+ value: true
44
+ });
@@ -0,0 +1,3 @@
1
+ import type { StudioHeaderAction } from "@anvilkit/core/types";
2
+ export declare const uploadAssetAction: StudioHeaderAction;
3
+ //# sourceMappingURL=header-action.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-action.d.cts","sourceRoot":"","sources":["../src/header-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,eAAO,MAAM,iBAAiB,EAAE,kBAQ/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { StudioHeaderAction } from "@anvilkit/core/types";
2
+ export declare const uploadAssetAction: StudioHeaderAction;
3
+ //# sourceMappingURL=header-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-action.d.ts","sourceRoot":"","sources":["../src/header-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,eAAO,MAAM,iBAAiB,EAAE,kBAQ/B,CAAC"}
@@ -0,0 +1,10 @@
1
+ const uploadAssetAction = {
2
+ id: "asset-manager:upload",
3
+ label: "Upload asset",
4
+ icon: "upload",
5
+ group: "secondary",
6
+ onClick (ctx) {
7
+ ctx.emit("asset-manager:upload-requested");
8
+ }
9
+ };
10
+ export { uploadAssetAction };
package/dist/index.cjs ADDED
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ AssetResolutionError: ()=>external_errors_cjs_namespaceObject.AssetResolutionError,
28
+ getRequiredCsp: ()=>external_csp_cjs_namespaceObject.getRequiredCsp,
29
+ inferAssetKind: ()=>external_infer_kind_cjs_namespaceObject.inferAssetKind,
30
+ createIRAssetResolver: ()=>external_resolver_cjs_namespaceObject.createIRAssetResolver,
31
+ resolveAssets: ()=>external_resolver_cjs_namespaceObject.resolveAssets,
32
+ createAssetManagerPlugin: ()=>external_plugin_cjs_namespaceObject.createAssetManagerPlugin,
33
+ AssetValidationError: ()=>external_errors_cjs_namespaceObject.AssetValidationError,
34
+ createAssetRegistry: ()=>external_registry_cjs_namespaceObject.createAssetRegistry,
35
+ uploadAsset: ()=>external_plugin_cjs_namespaceObject.uploadAsset,
36
+ validateUploadResult: ()=>external_validate_upload_result_cjs_namespaceObject.validateUploadResult,
37
+ getAssetRegistry: ()=>external_plugin_cjs_namespaceObject.getAssetRegistry,
38
+ createStudioAssetSource: ()=>external_studio_asset_source_cjs_namespaceObject.createStudioAssetSource,
39
+ inferStudioAssetKind: ()=>external_studio_asset_source_cjs_namespaceObject.inferStudioAssetKind,
40
+ dataUrlUploader: ()=>data_url_cjs_namespaceObject.dataUrlUploader,
41
+ inMemoryUploader: ()=>in_memory_cjs_namespaceObject.inMemoryUploader,
42
+ createAssetReference: ()=>external_plugin_cjs_namespaceObject.createAssetReference
43
+ });
44
+ const data_url_cjs_namespaceObject = require("./adapters/data-url.cjs");
45
+ const in_memory_cjs_namespaceObject = require("./adapters/in-memory.cjs");
46
+ const external_csp_cjs_namespaceObject = require("./csp.cjs");
47
+ const external_errors_cjs_namespaceObject = require("./errors.cjs");
48
+ const external_infer_kind_cjs_namespaceObject = require("./infer-kind.cjs");
49
+ const external_plugin_cjs_namespaceObject = require("./plugin.cjs");
50
+ const external_registry_cjs_namespaceObject = require("./registry.cjs");
51
+ const external_resolver_cjs_namespaceObject = require("./resolver.cjs");
52
+ const external_studio_asset_source_cjs_namespaceObject = require("./studio-asset-source.cjs");
53
+ const external_validate_upload_result_cjs_namespaceObject = require("./validate-upload-result.cjs");
54
+ exports.AssetResolutionError = __webpack_exports__.AssetResolutionError;
55
+ exports.AssetValidationError = __webpack_exports__.AssetValidationError;
56
+ exports.createAssetManagerPlugin = __webpack_exports__.createAssetManagerPlugin;
57
+ exports.createAssetReference = __webpack_exports__.createAssetReference;
58
+ exports.createAssetRegistry = __webpack_exports__.createAssetRegistry;
59
+ exports.createIRAssetResolver = __webpack_exports__.createIRAssetResolver;
60
+ exports.createStudioAssetSource = __webpack_exports__.createStudioAssetSource;
61
+ exports.dataUrlUploader = __webpack_exports__.dataUrlUploader;
62
+ exports.getAssetRegistry = __webpack_exports__.getAssetRegistry;
63
+ exports.getRequiredCsp = __webpack_exports__.getRequiredCsp;
64
+ exports.inMemoryUploader = __webpack_exports__.inMemoryUploader;
65
+ exports.inferAssetKind = __webpack_exports__.inferAssetKind;
66
+ exports.inferStudioAssetKind = __webpack_exports__.inferStudioAssetKind;
67
+ exports.resolveAssets = __webpack_exports__.resolveAssets;
68
+ exports.uploadAsset = __webpack_exports__.uploadAsset;
69
+ exports.validateUploadResult = __webpack_exports__.validateUploadResult;
70
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
71
+ "AssetResolutionError",
72
+ "AssetValidationError",
73
+ "createAssetManagerPlugin",
74
+ "createAssetReference",
75
+ "createAssetRegistry",
76
+ "createIRAssetResolver",
77
+ "createStudioAssetSource",
78
+ "dataUrlUploader",
79
+ "getAssetRegistry",
80
+ "getRequiredCsp",
81
+ "inMemoryUploader",
82
+ "inferAssetKind",
83
+ "inferStudioAssetKind",
84
+ "resolveAssets",
85
+ "uploadAsset",
86
+ "validateUploadResult"
87
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
88
+ Object.defineProperty(exports, '__esModule', {
89
+ value: true
90
+ });
@@ -0,0 +1,18 @@
1
+ export type { DataUrlUploaderOptions } from "./adapters/data-url.js";
2
+ export { dataUrlUploader } from "./adapters/data-url.js";
3
+ export { inMemoryUploader } from "./adapters/in-memory.js";
4
+ export type { RequiredCsp, RequiredCspOptions, S3CspOptions, } from "./csp.js";
5
+ export { getRequiredCsp } from "./csp.js";
6
+ export type { AssetResolutionErrorCode } from "./errors.js";
7
+ export { AssetResolutionError, AssetValidationError, } from "./errors.js";
8
+ export { inferAssetKind } from "./infer-kind.js";
9
+ export { createAssetManagerPlugin, createAssetReference, getAssetRegistry, uploadAsset, } from "./plugin.js";
10
+ export { createAssetRegistry } from "./registry.js";
11
+ export type { CreateIRAssetResolverOptions } from "./resolver.js";
12
+ export { createIRAssetResolver, resolveAssets } from "./resolver.js";
13
+ export type { CreateStudioAssetSourceOptions } from "./studio-asset-source.js";
14
+ export { createStudioAssetSource, inferStudioAssetKind, } from "./studio-asset-source.js";
15
+ export type { AssetKind, AssetManagerOptions, AssetMeta, AssetRegistry, AssetRegistryListener, AssetSearchOptions, AssetSearchPage, UploadAdapter, UploadResult, } from "./types.js";
16
+ export type { ValidateUploadResultOptions } from "./validate-upload-result.js";
17
+ export { validateUploadResult } from "./validate-upload-result.js";
18
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +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,YAAY,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,GACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACN,oBAAoB,EACpB,oBAAoB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrE,YAAY,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EACN,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACX,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,YAAY,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type { DataUrlUploaderOptions } from "./adapters/data-url.js";
2
+ export { dataUrlUploader } from "./adapters/data-url.js";
3
+ export { inMemoryUploader } from "./adapters/in-memory.js";
4
+ export type { RequiredCsp, RequiredCspOptions, S3CspOptions, } from "./csp.js";
5
+ export { getRequiredCsp } from "./csp.js";
6
+ export type { AssetResolutionErrorCode } from "./errors.js";
7
+ export { AssetResolutionError, AssetValidationError, } from "./errors.js";
8
+ export { inferAssetKind } from "./infer-kind.js";
9
+ export { createAssetManagerPlugin, createAssetReference, getAssetRegistry, uploadAsset, } from "./plugin.js";
10
+ export { createAssetRegistry } from "./registry.js";
11
+ export type { CreateIRAssetResolverOptions } from "./resolver.js";
12
+ export { createIRAssetResolver, resolveAssets } from "./resolver.js";
13
+ export type { CreateStudioAssetSourceOptions } from "./studio-asset-source.js";
14
+ export { createStudioAssetSource, inferStudioAssetKind, } from "./studio-asset-source.js";
15
+ export type { AssetKind, AssetManagerOptions, AssetMeta, AssetRegistry, AssetRegistryListener, AssetSearchOptions, AssetSearchPage, UploadAdapter, UploadResult, } from "./types.js";
16
+ export type { ValidateUploadResultOptions } from "./validate-upload-result.js";
17
+ export { validateUploadResult } from "./validate-upload-result.js";
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,YAAY,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,GACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACN,oBAAoB,EACpB,oBAAoB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrE,YAAY,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EACN,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACX,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,YAAY,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ export { dataUrlUploader } from "./adapters/data-url.js";
2
+ export { inMemoryUploader } from "./adapters/in-memory.js";
3
+ export { getRequiredCsp } from "./csp.js";
4
+ export { AssetResolutionError, AssetValidationError } from "./errors.js";
5
+ export { inferAssetKind } from "./infer-kind.js";
6
+ export { createAssetManagerPlugin, createAssetReference, getAssetRegistry, uploadAsset } from "./plugin.js";
7
+ export { createAssetRegistry } from "./registry.js";
8
+ export { createIRAssetResolver, resolveAssets } from "./resolver.js";
9
+ export { createStudioAssetSource, inferStudioAssetKind } from "./studio-asset-source.js";
10
+ export { validateUploadResult } from "./validate-upload-result.js";
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ inferAssetKind: ()=>inferAssetKind
28
+ });
29
+ function inferAssetKind(entry) {
30
+ const mimeType = entry.meta?.mimeType;
31
+ const url = entry.url;
32
+ if (mimeType?.startsWith("image/")) return "image";
33
+ if (mimeType?.startsWith("video/")) return "video";
34
+ if (mimeType?.startsWith("audio/")) return "audio";
35
+ if (mimeType?.startsWith("font/") || /\.(?:woff2?|ttf|otf)(?:$|[?#])/i.test(url)) return "font";
36
+ if ("application/pdf" === mimeType || /\.pdf(?:$|[?#])/i.test(url)) return "document";
37
+ return "other";
38
+ }
39
+ exports.inferAssetKind = __webpack_exports__.inferAssetKind;
40
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
41
+ "inferAssetKind"
42
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
43
+ Object.defineProperty(exports, '__esModule', {
44
+ value: true
45
+ });
@@ -0,0 +1,8 @@
1
+ import type { AssetKind, UploadResult } from "./types.js";
2
+ /**
3
+ * Library-management kind inference. Used by both
4
+ * `AssetRegistry.search` (kind filter) and `inferStudioAssetKind`
5
+ * (sidebar projection) so a single source of truth drives both.
6
+ */
7
+ export declare function inferAssetKind(entry: UploadResult): AssetKind;
8
+ //# sourceMappingURL=infer-kind.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infer-kind.d.cts","sourceRoot":"","sources":["../src/infer-kind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAgB7D"}
@@ -0,0 +1,8 @@
1
+ import type { AssetKind, UploadResult } from "./types.js";
2
+ /**
3
+ * Library-management kind inference. Used by both
4
+ * `AssetRegistry.search` (kind filter) and `inferStudioAssetKind`
5
+ * (sidebar projection) so a single source of truth drives both.
6
+ */
7
+ export declare function inferAssetKind(entry: UploadResult): AssetKind;
8
+ //# sourceMappingURL=infer-kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infer-kind.d.ts","sourceRoot":"","sources":["../src/infer-kind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAgB7D"}
@@ -0,0 +1,11 @@
1
+ function inferAssetKind(entry) {
2
+ const mimeType = entry.meta?.mimeType;
3
+ const url = entry.url;
4
+ if (mimeType?.startsWith("image/")) return "image";
5
+ if (mimeType?.startsWith("video/")) return "video";
6
+ if (mimeType?.startsWith("audio/")) return "audio";
7
+ if (mimeType?.startsWith("font/") || /\.(?:woff2?|ttf|otf)(?:$|[?#])/i.test(url)) return "font";
8
+ if ("application/pdf" === mimeType || /\.pdf(?:$|[?#])/i.test(url)) return "document";
9
+ return "other";
10
+ }
11
+ export { inferAssetKind };