abstract-image 11.0.21 → 11.2.0
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/abstract-image-xml/abstract-image-xml.d.ts +24 -1
- package/lib/abstract-image-xml/abstract-image-xml.d.ts.map +1 -1
- package/lib/abstract-image-xml/abstract-image-xml.js +43 -6
- package/lib/abstract-image-xml/abstract-image-xml.js.map +1 -1
- package/package.json +3 -3
- package/src/abstract-image-xml/abstract-image-xml.ts +58 -11
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
import { AbstractImage } from "../model/abstract-image.js";
|
|
2
2
|
import { XmlElement } from "handlebars-xml";
|
|
3
|
-
|
|
3
|
+
type Result<TError, TValue> = Ok<TValue> | Err<TError>;
|
|
4
|
+
type Ok<TValue> = {
|
|
5
|
+
readonly type: "Ok";
|
|
6
|
+
readonly value: TValue;
|
|
7
|
+
};
|
|
8
|
+
type Err<TError> = {
|
|
9
|
+
readonly type: "Err";
|
|
10
|
+
readonly error: TError;
|
|
11
|
+
};
|
|
12
|
+
export type AbstractImageXmlError = {
|
|
13
|
+
type: "HANDLEBARS_PARSE_ERROR";
|
|
14
|
+
message: string;
|
|
15
|
+
cause?: unknown;
|
|
16
|
+
} | {
|
|
17
|
+
type: "XML_PARSE_ERROR";
|
|
18
|
+
message: string;
|
|
19
|
+
cause?: unknown;
|
|
20
|
+
} | {
|
|
21
|
+
type: "UNKNOWN_ERROR";
|
|
22
|
+
message: string;
|
|
23
|
+
cause?: unknown;
|
|
24
|
+
};
|
|
25
|
+
export declare function abstractImageXml(template: string, data: unknown): Result<AbstractImageXmlError, AbstractImage>;
|
|
4
26
|
export declare function abstractImageOfXml(el: XmlElement): unknown;
|
|
5
27
|
export declare const parsedXsd: readonly XmlElement[];
|
|
28
|
+
export {};
|
|
6
29
|
//# sourceMappingURL=abstract-image-xml.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-image-xml.d.ts","sourceRoot":"","sources":["../../src/abstract-image-xml/abstract-image-xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAgC,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmB1E,
|
|
1
|
+
{"version":3,"file":"abstract-image-xml.d.ts","sourceRoot":"","sources":["../../src/abstract-image-xml/abstract-image-xml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAgC,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmB1E,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AACvD,KAAK,EAAE,CAAC,MAAM,IAAI;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAClE,KAAK,GAAG,CAAC,MAAM,IAAI;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAMhE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC,CA2B9G;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CA6H1D;AAED,eAAO,MAAM,SAAS,uBAAgB,CAAC"}
|
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parsedXsd =
|
|
3
|
+
exports.parsedXsd = void 0;
|
|
4
|
+
exports.abstractImageXml = abstractImageXml;
|
|
4
5
|
exports.abstractImageOfXml = abstractImageOfXml;
|
|
5
6
|
const handlebars_xml_1 = require("handlebars-xml");
|
|
6
7
|
const color_js_1 = require("../model/color.js");
|
|
7
8
|
const abstract_image_xsd_js_1 = require("./abstract-image-xsd.js");
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
function errorMessage(error) {
|
|
10
|
+
return error instanceof Error ? error.message : String(error);
|
|
11
|
+
}
|
|
12
|
+
function abstractImageXml(template, data) {
|
|
13
|
+
try {
|
|
14
|
+
const [parsedXml] = (0, handlebars_xml_1.parseHandlebarsXml)(template, data, {});
|
|
15
|
+
try {
|
|
16
|
+
const abstractImage = abstractImageOfXml(parsedXml);
|
|
17
|
+
return { type: "Ok", value: abstractImage };
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
return {
|
|
21
|
+
type: "Err",
|
|
22
|
+
error: {
|
|
23
|
+
type: "XML_PARSE_ERROR",
|
|
24
|
+
message: errorMessage(error),
|
|
25
|
+
cause: error,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
return {
|
|
32
|
+
type: "Err",
|
|
33
|
+
error: {
|
|
34
|
+
type: "HANDLEBARS_PARSE_ERROR",
|
|
35
|
+
message: errorMessage(error),
|
|
36
|
+
cause: error,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
10
41
|
function abstractImageOfXml(el) {
|
|
11
42
|
const children = Array();
|
|
12
43
|
const childElements = Array();
|
|
@@ -133,17 +164,23 @@ function abstractImageOfXml(el) {
|
|
|
133
164
|
}
|
|
134
165
|
exports.parsedXsd = (0, handlebars_xml_1.parseXsd)(abstract_image_xsd_js_1.xsd);
|
|
135
166
|
function parsePoint(pointString) {
|
|
136
|
-
const [xString, yString] = pointString?.split(" ") ?? [
|
|
167
|
+
const [xString, yString] = (typeof pointString === "number" ? pointString.toString() : pointString)?.split(" ") ?? [
|
|
168
|
+
0, 0,
|
|
169
|
+
];
|
|
137
170
|
const [x, y] = [Number(xString ?? 0), Number(yString ?? 0)];
|
|
138
171
|
return { x: Number.isFinite(x) ? x : 0, y: Number.isFinite(y) ? y : 0 };
|
|
139
172
|
}
|
|
140
173
|
function parsePointsString(numberArrayString) {
|
|
141
|
-
return (numberArrayString
|
|
174
|
+
return ((typeof numberArrayString === "number" ? numberArrayString.toString() : numberArrayString)
|
|
175
|
+
?.split(" ")
|
|
176
|
+
.map((tuple) => {
|
|
142
177
|
const [xString, yString] = tuple.split(",");
|
|
143
178
|
return { x: Number(xString ?? 0), y: Number(yString ?? 0) };
|
|
144
179
|
}) ?? []);
|
|
145
180
|
}
|
|
146
181
|
function parseNumberArrayString(numberArrayString) {
|
|
147
|
-
return numberArrayString
|
|
182
|
+
return ((typeof numberArrayString === "number" ? numberArrayString.toString() : numberArrayString)
|
|
183
|
+
?.split(",")
|
|
184
|
+
.map(Number) ?? []);
|
|
148
185
|
}
|
|
149
186
|
//# sourceMappingURL=abstract-image-xml.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-image-xml.js","sourceRoot":"","sources":["../../src/abstract-image-xml/abstract-image-xml.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"abstract-image-xml.js","sourceRoot":"","sources":["../../src/abstract-image-xml/abstract-image-xml.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.0
|
|
3
|
+
"version": "11.2.0",
|
|
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",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"base64-js": "^1.5.1",
|
|
23
23
|
"fast-xml-parser": "^4.5.0",
|
|
24
24
|
"handlebars": "4.7.8",
|
|
25
|
-
"handlebars-xml": "^0.0
|
|
25
|
+
"handlebars-xml": "^0.1.0"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=17.0.0 <^19.0.0"
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"vite": "^6.0.1",
|
|
35
35
|
"vitest": "^2.1.6"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "ce43bf01b856ef751cf18cb92139230bfcf0904b"
|
|
38
38
|
}
|
|
@@ -18,8 +18,47 @@ import {
|
|
|
18
18
|
import { Point } from "../model/point.js";
|
|
19
19
|
import { xsd } from "./abstract-image-xsd.js";
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
type Result<TError, TValue> = Ok<TValue> | Err<TError>;
|
|
22
|
+
type Ok<TValue> = { readonly type: "Ok"; readonly value: TValue };
|
|
23
|
+
type Err<TError> = { readonly type: "Err"; readonly error: TError };
|
|
24
|
+
|
|
25
|
+
export type AbstractImageXmlError =
|
|
26
|
+
| { type: "HANDLEBARS_PARSE_ERROR"; message: string; cause?: unknown }
|
|
27
|
+
| { type: "XML_PARSE_ERROR"; message: string; cause?: unknown }
|
|
28
|
+
| { type: "UNKNOWN_ERROR"; message: string; cause?: unknown };
|
|
29
|
+
|
|
30
|
+
function errorMessage(error: unknown): string {
|
|
31
|
+
return error instanceof Error ? error.message : String(error);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function abstractImageXml(template: string, data: unknown): Result<AbstractImageXmlError, AbstractImage> {
|
|
35
|
+
try {
|
|
36
|
+
const [parsedXml] = parseHandlebarsXml(template, data, {});
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
const abstractImage = abstractImageOfXml(parsedXml) as AbstractImage;
|
|
40
|
+
return { type: "Ok", value: abstractImage };
|
|
41
|
+
} catch (error) {
|
|
42
|
+
return {
|
|
43
|
+
type: "Err",
|
|
44
|
+
error: {
|
|
45
|
+
type: "XML_PARSE_ERROR",
|
|
46
|
+
message: errorMessage(error),
|
|
47
|
+
cause: error,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
} catch (error) {
|
|
52
|
+
return {
|
|
53
|
+
type: "Err",
|
|
54
|
+
error: {
|
|
55
|
+
type: "HANDLEBARS_PARSE_ERROR",
|
|
56
|
+
message: errorMessage(error),
|
|
57
|
+
cause: error,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
23
62
|
|
|
24
63
|
export function abstractImageOfXml(el: XmlElement): unknown {
|
|
25
64
|
const children = Array<Component>();
|
|
@@ -150,21 +189,29 @@ export function abstractImageOfXml(el: XmlElement): unknown {
|
|
|
150
189
|
|
|
151
190
|
export const parsedXsd = parseXsd(xsd);
|
|
152
191
|
|
|
153
|
-
function parsePoint(pointString: string | undefined): Point {
|
|
154
|
-
const [xString, yString] = pointString?.split(" ") ?? [
|
|
192
|
+
function parsePoint(pointString: string | number | undefined): Point {
|
|
193
|
+
const [xString, yString] = (typeof pointString === "number" ? pointString.toString() : pointString)?.split(" ") ?? [
|
|
194
|
+
0, 0,
|
|
195
|
+
];
|
|
155
196
|
const [x, y] = [Number(xString ?? 0), Number(yString ?? 0)];
|
|
156
197
|
return { x: Number.isFinite(x) ? x : 0, y: Number.isFinite(y) ? y : 0 };
|
|
157
198
|
}
|
|
158
199
|
|
|
159
|
-
function parsePointsString(numberArrayString: string | undefined): Array<Point> {
|
|
200
|
+
function parsePointsString(numberArrayString: string | number | undefined): Array<Point> {
|
|
160
201
|
return (
|
|
161
|
-
numberArrayString
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
202
|
+
(typeof numberArrayString === "number" ? numberArrayString.toString() : numberArrayString)
|
|
203
|
+
?.split(" ")
|
|
204
|
+
.map((tuple): Point => {
|
|
205
|
+
const [xString, yString] = tuple.split(",");
|
|
206
|
+
return { x: Number(xString ?? 0), y: Number(yString ?? 0) };
|
|
207
|
+
}) ?? []
|
|
165
208
|
);
|
|
166
209
|
}
|
|
167
210
|
|
|
168
|
-
function parseNumberArrayString(numberArrayString: string | undefined): ReadonlyArray<number> {
|
|
169
|
-
return
|
|
211
|
+
function parseNumberArrayString(numberArrayString: string | number | undefined): ReadonlyArray<number> {
|
|
212
|
+
return (
|
|
213
|
+
(typeof numberArrayString === "number" ? numberArrayString.toString() : numberArrayString)
|
|
214
|
+
?.split(",")
|
|
215
|
+
.map(Number) ?? []
|
|
216
|
+
);
|
|
170
217
|
}
|