abstract-image 11.2.0 → 11.2.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.
package/lib/index.d.ts CHANGED
@@ -11,4 +11,5 @@ export * from "./exporters/react-svg-export-image.js";
11
11
  export * from "./exporters/eps-export-image.js";
12
12
  export * from "./abstract-image-xml/index.js";
13
13
  export * from "./stringify-parse.js";
14
+ export * from "./replace-extract-urls.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
package/lib/index.js CHANGED
@@ -27,5 +27,5 @@ __exportStar(require("./exporters/react-svg-export-image.js"), exports);
27
27
  __exportStar(require("./exporters/eps-export-image.js"), exports);
28
28
  __exportStar(require("./abstract-image-xml/index.js"), exports);
29
29
  __exportStar(require("./stringify-parse.js"), exports);
30
- // dummy
30
+ __exportStar(require("./replace-extract-urls.js"), exports);
31
31
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,mDAAiC;AACjC,uDAAqC;AACrC,mDAAiC;AACjC,kDAAgC;AAChC,wDAAsC;AACtC,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,wEAAsD;AACtD,kEAAgD;AAChD,gEAA6C;AAC7C,uDAAoC;AACpC,QAAQ"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,mDAAiC;AACjC,uDAAqC;AACrC,mDAAiC;AACjC,kDAAgC;AAChC,wDAAsC;AACtC,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,wEAAsD;AACtD,kEAAgD;AAChD,gEAA8C;AAC9C,uDAAqC;AACrC,4DAA0C"}
@@ -0,0 +1,4 @@
1
+ import { AbstractImage } from "./model";
2
+ export declare function replaceUrls(abstractImage: AbstractImage, blobs: Record<string, Uint8Array>): AbstractImage;
3
+ export declare function extractUrls(abstractImage: AbstractImage): ReadonlyArray<string>;
4
+ //# sourceMappingURL=replace-extract-urls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-extract-urls.d.ts","sourceRoot":"","sources":["../src/replace-extract-urls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,MAAM,SAAS,CAAC;AAEnD,wBAAgB,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,aAAa,CAE1G;AAoBD,wBAAgB,WAAW,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CA4B/E"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.replaceUrls = replaceUrls;
4
+ exports.extractUrls = extractUrls;
5
+ function replaceUrls(abstractImage, blobs) {
6
+ return { ...abstractImage, components: abstractImage.components.map((c) => componentReplaceUrl(c, blobs)) };
7
+ }
8
+ function componentReplaceUrl(c, blobs) {
9
+ switch (c.type) {
10
+ case "binaryimage": {
11
+ const bytes = c.data.type === "url" ? blobs[c.data.url] : undefined;
12
+ if (bytes) {
13
+ return { ...c, data: { type: "bytes", bytes } };
14
+ }
15
+ return c;
16
+ }
17
+ case "group":
18
+ return { ...c, children: c.children.map((child) => componentReplaceUrl(child, blobs)) };
19
+ case "subimage":
20
+ return { ...c, image: componentReplaceUrl(c.image, blobs) };
21
+ default:
22
+ return c;
23
+ }
24
+ }
25
+ function extractUrls(abstractImage) {
26
+ const urls = Array();
27
+ const stack = abstractImage.components.slice();
28
+ while (stack.length > 0) {
29
+ const c = stack.pop();
30
+ switch (c.type) {
31
+ case "binaryimage": {
32
+ if (c.data.type === "url") {
33
+ urls.push(c.data.url);
34
+ }
35
+ break;
36
+ }
37
+ case "group": {
38
+ for (const child of c.children) {
39
+ stack.push(child);
40
+ }
41
+ break;
42
+ }
43
+ case "subimage":
44
+ stack.push(c.image);
45
+ break;
46
+ default:
47
+ break;
48
+ }
49
+ }
50
+ return urls;
51
+ }
52
+ //# sourceMappingURL=replace-extract-urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-extract-urls.js","sourceRoot":"","sources":["../src/replace-extract-urls.ts"],"names":[],"mappings":";;AAEA,kCAEC;AAoBD,kCA4BC;AAlDD,SAAgB,WAAW,CAAC,aAA4B,EAAE,KAAiC;IACzF,OAAO,EAAE,GAAG,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC9G,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAY,EAAE,KAAiC;IAC1E,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,OAAO;YACV,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1F,KAAK,UAAU;YACb,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAC9D;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,aAA4B;IACtD,MAAM,IAAI,GAAG,KAAK,EAAU,CAAC;IAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAE/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QACvB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,UAAU;gBACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM;YACR;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stringify-parse.d.ts","sourceRoot":"","sources":["../src/stringify-parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAGpE;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAExE;AAED,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,aAAa,CAGnE;AAED,wBAAgB,YAAY,CAAC,iBAAiB,EAAE,aAAa,GAAG,aAAa,CAE5E"}
1
+ {"version":3,"file":"stringify-parse.d.ts","sourceRoot":"","sources":["../src/stringify-parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAGpE;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAExE;AAED,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,aAAa,CAGnE;AAED,wBAAgB,YAAY,CAAC,iBAAiB,EAAE,aAAa,GAAG,aAAa,CAK5E"}
@@ -16,16 +16,18 @@ function parseBase64(stringifiedImage) {
16
16
  return { ...obj, components: (obj.components ?? []).map(componentFromJsonSafe) };
17
17
  }
18
18
  function decodeBase64(safeAbstractImage) {
19
- return { ...safeAbstractImage, components: (safeAbstractImage.components ?? []).map(componentFromJsonSafe) };
19
+ return {
20
+ ...safeAbstractImage,
21
+ components: (safeAbstractImage.components ?? []).map(componentFromJsonSafe),
22
+ };
20
23
  }
21
24
  function componentToJsonSafe(c) {
22
25
  switch (c.type) {
23
26
  case "binaryimage": {
24
- const bi = c;
25
- if (bi.data.type === "bytes") {
26
- return { ...bi, data: { type: "bytes", bytes: toBase64(bi.data.bytes) } };
27
+ if (c.data.type === "bytes") {
28
+ return { ...c, data: { type: "bytes", bytes: toBase64(c.data.bytes) } };
27
29
  }
28
- return bi;
30
+ return c;
29
31
  }
30
32
  case "group":
31
33
  return { ...c, children: c.children.map(componentToJsonSafe) };
@@ -1 +1 @@
1
- {"version":3,"file":"stringify-parse.js","sourceRoot":"","sources":["../src/stringify-parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stringify-parse.js","sourceRoot":"","sources":["../src/stringify-parse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abstract-image",
3
- "version": "11.2.0",
3
+ "version": "11.2.1",
4
4
  "description": "Dynamically create images using code or JSX and render to any format",
5
5
  "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-image",
6
6
  "main": "lib/index.js",
@@ -34,5 +34,5 @@
34
34
  "vite": "^6.0.1",
35
35
  "vitest": "^2.1.6"
36
36
  },
37
- "gitHead": "ce43bf01b856ef751cf18cb92139230bfcf0904b"
37
+ "gitHead": "91b438aff8a691eb39e1eadd8ddb95af7d2bf4b4"
38
38
  }
package/src/index.ts CHANGED
@@ -9,6 +9,6 @@ export * from "./exporters/png-export-image.js";
9
9
  export * from "./exporters/dxf2d-export-image.js";
10
10
  export * from "./exporters/react-svg-export-image.js";
11
11
  export * from "./exporters/eps-export-image.js";
12
- export * from "./abstract-image-xml/index.js"
13
- export * from "./stringify-parse.js"
14
- // dummy
12
+ export * from "./abstract-image-xml/index.js";
13
+ export * from "./stringify-parse.js";
14
+ export * from "./replace-extract-urls.js";
@@ -0,0 +1,53 @@
1
+ import { AbstractImage, Component } from "./model";
2
+
3
+ export function replaceUrls(abstractImage: AbstractImage, blobs: Record<string, Uint8Array>): AbstractImage {
4
+ return { ...abstractImage, components: abstractImage.components.map((c) => componentReplaceUrl(c, blobs)) };
5
+ }
6
+
7
+ function componentReplaceUrl(c: Component, blobs: Record<string, Uint8Array>): any {
8
+ switch (c.type) {
9
+ case "binaryimage": {
10
+ const bytes = c.data.type === "url" ? blobs[c.data.url] : undefined;
11
+ if (bytes) {
12
+ return { ...c, data: { type: "bytes", bytes } };
13
+ }
14
+ return c;
15
+ }
16
+ case "group":
17
+ return { ...c, children: c.children.map((child) => componentReplaceUrl(child, blobs)) };
18
+ case "subimage":
19
+ return { ...c, image: componentReplaceUrl(c.image, blobs) };
20
+ default:
21
+ return c;
22
+ }
23
+ }
24
+
25
+ export function extractUrls(abstractImage: AbstractImage): ReadonlyArray<string> {
26
+ const urls = Array<string>();
27
+ const stack = abstractImage.components.slice();
28
+
29
+ while (stack.length > 0) {
30
+ const c = stack.pop()!;
31
+ switch (c.type) {
32
+ case "binaryimage": {
33
+ if (c.data.type === "url") {
34
+ urls.push(c.data.url);
35
+ }
36
+ break;
37
+ }
38
+ case "group": {
39
+ for (const child of c.children) {
40
+ stack.push(child);
41
+ }
42
+ break;
43
+ }
44
+ case "subimage":
45
+ stack.push(c.image);
46
+ break;
47
+ default:
48
+ break;
49
+ }
50
+ }
51
+
52
+ return urls;
53
+ }
@@ -16,17 +16,19 @@ export function parseBase64(stringifiedImage: string): AbstractImage {
16
16
  }
17
17
 
18
18
  export function decodeBase64(safeAbstractImage: AbstractImage): AbstractImage {
19
- return { ...safeAbstractImage, components: (safeAbstractImage.components ?? []).map(componentFromJsonSafe) } as AbstractImage;
19
+ return {
20
+ ...safeAbstractImage,
21
+ components: (safeAbstractImage.components ?? []).map(componentFromJsonSafe),
22
+ } as AbstractImage;
20
23
  }
21
24
 
22
25
  function componentToJsonSafe(c: Component): any {
23
26
  switch (c.type) {
24
27
  case "binaryimage": {
25
- const bi = c as BinaryImage;
26
- if (bi.data.type === "bytes") {
27
- return { ...bi, data: { type: "bytes", bytes: toBase64(bi.data.bytes) } };
28
+ if (c.data.type === "bytes") {
29
+ return { ...c, data: { type: "bytes", bytes: toBase64(c.data.bytes) } };
28
30
  }
29
- return bi;
31
+ return c;
30
32
  }
31
33
  case "group":
32
34
  return { ...c, children: c.children.map(componentToJsonSafe) };