@babylonjs/serializers 9.15.0 → 9.16.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.
@@ -1 +1 @@
1
- {"version":3,"file":"3mf.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/3MF/core/model/3mf.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IFormatter, XmlAttr, XmlName } from \"../xml/xml.interfaces\";\nimport { type IXmlSerializerFormatOptions, NumberFormatter } from \"../xml/xml.serializer.format\";\nimport {\n type I3mfBase,\n type I3mfBaseMaterials,\n type I3mfBuild,\n type I3mfComponent,\n type I3mfComponents,\n type I3mfItem,\n type I3mfMesh,\n type I3mfMetadata,\n type I3mfMetadataGroup,\n type I3mfModel,\n type I3mfObject,\n type I3mfResources,\n type I3mfTriangle,\n type I3mfTriangles,\n type I3mfVertex,\n type I3mfVertices,\n type ST_ColorValue,\n type ST_Number,\n type ST_ResourceID,\n type ST_ResourceIndex,\n type ST_UriReference,\n type IMatrix3d,\n type ST_Matrix3D,\n ST_Unit,\n ThreeDimModelNamespace,\n ST_ObjectType,\n} from \"./3mf.interfaces\";\n\n/**\n *\n */\nexport class Matrix3d implements IMatrix3d {\n /**\n *\n * @returns\n */\n public static Zero() {\n return new Matrix3d([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n }\n /**\n *\n * @param values\n */\n public constructor(public values: ST_Matrix3D) {}\n\n /**\n *\n * @returns\n */\n public toString(): string {\n return this.values.join(\" \");\n }\n}\n\n/**\n *\n */\nexport class MatrixFormatter implements IFormatter<Matrix3d> {\n /**\n *\n */\n _f: NumberFormatter;\n\n public constructor(public o: IXmlSerializerFormatOptions) {\n this._f = new NumberFormatter(o);\n }\n\n public toString(x: Matrix3d): string {\n return x.values.map((v) => this._f.toString(v)).join(\" \");\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"model\" })\nexport class ThreeMfModel implements I3mfModel {\n /**\n *\n */\n public static KnownMeta: Array<string> = [\"Title\", \"Designer\", \"Description\", \"Copyright\", \"LicenseTerms\", \"Rating\", \"CreationDate\", \"ModificationDate\", \"Application\"];\n\n /**\n *\n */\n @XmlAttr({ name: \"unit\" })\n unit: ST_Unit = ST_Unit.millimeter;\n\n /**\n *\n */\n @XmlAttr({ name: \"requiredextensions\" })\n requiredextensions?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"recommendedextensions\" })\n recommendedextensions?: string;\n\n /**\n *\n */\n metadata?: Array<I3mfMetadata>;\n /**\n *\n */\n resources?: I3mfResources;\n /**\n *\n */\n build?: I3mfBuild;\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"meta\" })\nexport class ThreeMfMeta implements I3mfMetadata {\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"preserve\" })\n preserve?: boolean;\n\n /**\n *\n */\n @XmlAttr({ name: \"type\" })\n type?: string;\n\n /**\n *\n */\n value: string;\n\n /**\n *\n * @param name\n * @param value\n * @param preserve\n * @param type\n */\n public constructor(name: string, value: string, preserve?: boolean, type?: string) {\n this.name = name;\n this.value = value;\n this.preserve = preserve;\n this.type = type;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"metadatagroup\" })\nexport class ThreeMfMetadataGroup implements I3mfMetadataGroup {\n /**\n *\n */\n metadata: Array<I3mfMetadata> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"resources\" })\nexport class ThreeMfResources implements I3mfResources {\n /**\n *\n */\n object: Array<I3mfObject> = [];\n /**\n *\n */\n basematerials?: Array<I3mfBaseMaterials>;\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"object\" })\nexport class ThreeMfObject implements I3mfObject {\n /**\n *\n */\n @XmlAttr({ name: \"id\" })\n id: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"type\" })\n type?: ST_ObjectType;\n\n /**\n *\n */\n @XmlAttr({ name: \"thumbnail\" })\n thumbnail?: ST_UriReference;\n\n /**\n *\n */\n @XmlAttr({ name: \"partnumber\" })\n partnumber?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"pid\" })\n pid?: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"pindex\" })\n pindex?: ST_ResourceIndex;\n\n /**\n *\n */\n metadatagroup?: I3mfMetadataGroup;\n\n /**\n *\n */\n content?: I3mfMesh | I3mfComponents;\n\n public constructor(id: ST_ResourceID, type = ST_ObjectType.model) {\n this.id = id;\n this.type = type;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"mesh\" })\nexport class ThreeMfMesh implements I3mfMesh {\n /**\n *\n */\n vertices: I3mfVertices;\n /**\n *\n */\n triangles: I3mfTriangles;\n\n public constructor(vertices?: I3mfVertices, triangles?: I3mfTriangles) {\n this.vertices = vertices ?? new ThreeMfVertices();\n this.triangles = triangles ?? new ThreeMfTriangles();\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"vertices\" })\nexport class ThreeMfVertices implements I3mfVertices {\n /**\n *\n */\n vertex: Array<I3mfVertex> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"vertex\" })\nexport class ThreeMfVertex implements I3mfVertex {\n /**\n *\n */\n @XmlAttr({ name: \"x\" })\n x: ST_Number;\n\n /**\n *\n */\n @XmlAttr({ name: \"y\" })\n y: ST_Number;\n\n /**\n *\n */\n @XmlAttr({ name: \"z\" })\n z: ST_Number;\n\n public constructor(x: ST_Number = 0, y: ST_Number = 0, z: ST_Number = 0) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"triangles\" })\nexport class ThreeMfTriangles implements I3mfTriangles {\n /**\n *\n */\n triangle: Array<I3mfTriangle> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"triangle\" })\nexport class ThreeMfTriangle implements I3mfTriangle {\n /**\n *\n */\n @XmlAttr({ name: \"v1\" })\n v1: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"v2\" })\n v2: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"v3\" })\n v3: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p1\" })\n p1?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p2\" })\n p2?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p3\" })\n p3?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"pid\" })\n pid?: ST_ResourceID;\n\n public constructor(v1: ST_ResourceIndex, v2: ST_ResourceIndex, v3: ST_ResourceIndex) {\n this.v1 = v1;\n this.v2 = v2;\n this.v3 = v3;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"components\" })\nexport class ThreeMfComponents implements I3mfComponents {\n /**\n *\n */\n component: Array<I3mfComponent> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"component\" })\nexport class ThreeMfComponent implements I3mfComponent {\n /**\n *\n */\n @XmlAttr({ name: \"objectid\" })\n objectid: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"transform\", formatter: MatrixFormatter })\n transform?: Matrix3d;\n\n public constructor(objectid: ST_ResourceID, transform?: Matrix3d) {\n this.objectid = objectid;\n this.transform = transform;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"basematerials\" })\nexport class ThreeMfBaseMaterials implements I3mfBaseMaterials {\n /**\n *\n */\n @XmlAttr({ name: \"id\" })\n id: ST_ResourceID;\n\n /**\n *\n */\n base: Array<I3mfBase> = [];\n\n public constructor(id: ST_ResourceID) {\n this.id = id;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"base\" })\nexport class ThreeMfBase implements I3mfBase {\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"displaycolor\" })\n displaycolor: ST_ColorValue;\n\n public constructor(name: string, displaycolor: ST_ColorValue) {\n this.name = name;\n this.displaycolor = displaycolor;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"build\" })\nexport class ThreeMfBuild implements I3mfBuild {\n /**\n *\n */\n item: Array<I3mfItem> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"item\" })\nexport class ThreeMfItem implements I3mfItem {\n /**\n *\n */\n @XmlAttr({ name: \"objectid\" })\n objectid: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"transform\", formatter: MatrixFormatter })\n transform?: Matrix3d;\n\n /**\n *\n */\n @XmlAttr({ name: \"partnumber\" })\n partnumber?: string;\n\n /**\n *\n */\n metadatagroup?: I3mfMetadataGroup;\n\n public constructor(objectid: ST_ResourceID, transform?: Matrix3d, partnumber?: string) {\n this.objectid = objectid;\n this.transform = transform;\n this.partnumber = partnumber;\n }\n}\n"]}
1
+ {"version":3,"file":"3mf.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/3MF/core/model/3mf.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IFormatter, XmlAttr, XmlName } from \"../xml/xml.interfaces\";\nimport { type IXmlSerializerFormatOptions, NumberFormatter } from \"../xml/xml.serializer.format\";\nimport {\n type I3mfBase,\n type I3mfBaseMaterials,\n type I3mfBuild,\n type I3mfComponent,\n type I3mfComponents,\n type I3mfItem,\n type I3mfMesh,\n type I3mfMetadata,\n type I3mfMetadataGroup,\n type I3mfModel,\n type I3mfObject,\n type I3mfResources,\n type I3mfTriangle,\n type I3mfTriangles,\n type I3mfVertex,\n type I3mfVertices,\n type ST_ColorValue,\n type ST_Number,\n type ST_ResourceID,\n type ST_ResourceIndex,\n type ST_UriReference,\n type IMatrix3d,\n type ST_Matrix3D,\n ST_Unit,\n ThreeDimModelNamespace,\n ST_ObjectType,\n} from \"./3mf.interfaces\";\n\n/**\n *\n */\nexport class Matrix3d implements IMatrix3d {\n /**\n *\n * @returns\n */\n public static Zero() {\n return new Matrix3d([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n }\n /**\n *\n * @param values\n */\n public constructor(public values: ST_Matrix3D) {}\n\n /**\n *\n * @returns\n */\n public toString(): string {\n return this.values.join(\" \");\n }\n}\n\n/**\n *\n */\nexport class MatrixFormatter implements IFormatter<Matrix3d> {\n /**\n *\n */\n _f: NumberFormatter;\n\n public constructor(public o: IXmlSerializerFormatOptions) {\n this._f = new NumberFormatter(o);\n }\n\n public toString(x: Matrix3d): string {\n return x.values.map((v) => this._f.toString(v)).join(\" \");\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"model\" })\nexport class ThreeMfModel implements I3mfModel {\n /**\n *\n */\n public static KnownMeta: Array<string> = [\"Title\", \"Designer\", \"Description\", \"Copyright\", \"LicenseTerms\", \"Rating\", \"CreationDate\", \"ModificationDate\", \"Application\"];\n\n /**\n *\n */\n @XmlAttr({ name: \"unit\" })\n unit: ST_Unit = ST_Unit.millimeter;\n\n /**\n *\n */\n @XmlAttr({ name: \"requiredextensions\" })\n requiredextensions?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"recommendedextensions\" })\n recommendedextensions?: string;\n\n /**\n *\n */\n metadata?: Array<I3mfMetadata>;\n /**\n *\n */\n resources?: I3mfResources;\n /**\n *\n */\n build?: I3mfBuild;\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"meta\" })\nexport class ThreeMfMeta implements I3mfMetadata {\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"preserve\" })\n preserve?: boolean;\n\n /**\n *\n */\n @XmlAttr({ name: \"type\" })\n type?: string;\n\n /**\n *\n */\n value: string;\n\n /**\n *\n * @param name\n * @param value\n * @param preserve\n * @param type\n */\n public constructor(name: string, value: string, preserve?: boolean, type?: string) {\n this.name = name;\n this.value = value;\n this.preserve = preserve;\n this.type = type;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"metadatagroup\" })\nexport class ThreeMfMetadataGroup implements I3mfMetadataGroup {\n /**\n *\n */\n metadata: Array<I3mfMetadata> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"resources\" })\nexport class ThreeMfResources implements I3mfResources {\n /**\n *\n */\n object: Array<I3mfObject> = [];\n /**\n *\n */\n basematerials?: Array<I3mfBaseMaterials>;\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"object\" })\nexport class ThreeMfObject implements I3mfObject {\n /**\n *\n */\n @XmlAttr({ name: \"id\" })\n id: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"type\" })\n type?: ST_ObjectType;\n\n /**\n *\n */\n @XmlAttr({ name: \"thumbnail\" })\n thumbnail?: ST_UriReference;\n\n /**\n *\n */\n @XmlAttr({ name: \"partnumber\" })\n partnumber?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"pid\" })\n pid?: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"pindex\" })\n pindex?: ST_ResourceIndex;\n\n /**\n *\n */\n metadatagroup?: I3mfMetadataGroup;\n\n /**\n *\n */\n content?: I3mfMesh | I3mfComponents;\n\n public constructor(id: ST_ResourceID, type = ST_ObjectType.model) {\n this.id = id;\n this.type = type;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"mesh\" })\nexport class ThreeMfMesh implements I3mfMesh {\n /**\n *\n */\n vertices: I3mfVertices;\n /**\n *\n */\n triangles: I3mfTriangles;\n\n public constructor(vertices?: I3mfVertices, triangles?: I3mfTriangles) {\n this.vertices = vertices ?? new ThreeMfVertices();\n this.triangles = triangles ?? new ThreeMfTriangles();\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"vertices\" })\nexport class ThreeMfVertices implements I3mfVertices {\n /**\n *\n */\n vertex: Array<I3mfVertex> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"vertex\" })\nexport class ThreeMfVertex implements I3mfVertex {\n /**\n *\n */\n @XmlAttr({ name: \"x\" })\n x: ST_Number;\n\n /**\n *\n */\n @XmlAttr({ name: \"y\" })\n y: ST_Number;\n\n /**\n *\n */\n @XmlAttr({ name: \"z\" })\n z: ST_Number;\n\n public constructor(x: ST_Number = 0, y: ST_Number = 0, z: ST_Number = 0) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"triangles\" })\nexport class ThreeMfTriangles implements I3mfTriangles {\n /**\n *\n */\n triangle: Array<I3mfTriangle> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"triangle\" })\nexport class ThreeMfTriangle implements I3mfTriangle {\n /**\n *\n */\n @XmlAttr({ name: \"v1\" })\n v1: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"v2\" })\n v2: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"v3\" })\n v3: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p1\" })\n p1?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p2\" })\n p2?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"p3\" })\n p3?: ST_ResourceIndex;\n\n /**\n *\n */\n @XmlAttr({ name: \"pid\" })\n pid?: ST_ResourceID;\n\n public constructor(v1: ST_ResourceIndex, v2: ST_ResourceIndex, v3: ST_ResourceIndex) {\n this.v1 = v1;\n this.v2 = v2;\n this.v3 = v3;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"components\" })\nexport class ThreeMfComponents implements I3mfComponents {\n /**\n *\n */\n component: Array<I3mfComponent> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"component\" })\nexport class ThreeMfComponent implements I3mfComponent {\n /**\n *\n */\n @XmlAttr({ name: \"objectid\" })\n objectid: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"transform\", formatter: MatrixFormatter })\n transform?: Matrix3d;\n\n public constructor(objectid: ST_ResourceID, transform?: Matrix3d) {\n this.objectid = objectid;\n this.transform = transform;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"basematerials\" })\nexport class ThreeMfBaseMaterials implements I3mfBaseMaterials {\n /**\n *\n */\n @XmlAttr({ name: \"id\" })\n id: ST_ResourceID;\n\n /**\n *\n */\n base: Array<I3mfBase> = [];\n\n public constructor(id: ST_ResourceID) {\n this.id = id;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"base\" })\nexport class ThreeMfBase implements I3mfBase {\n /**\n *\n */\n @XmlAttr({ name: \"name\" })\n name: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"displaycolor\" })\n displaycolor: ST_ColorValue;\n\n public constructor(name: string, displaycolor: ST_ColorValue) {\n this.name = name;\n this.displaycolor = displaycolor;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"build\" })\nexport class ThreeMfBuild implements I3mfBuild {\n /**\n *\n */\n item: Array<I3mfItem> = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: ThreeDimModelNamespace, name: \"item\" })\nexport class ThreeMfItem implements I3mfItem {\n /**\n *\n */\n @XmlAttr({ name: \"objectid\" })\n objectid: ST_ResourceID;\n\n /**\n *\n */\n @XmlAttr({ name: \"transform\", formatter: MatrixFormatter })\n transform?: Matrix3d;\n\n /**\n *\n */\n @XmlAttr({ name: \"partnumber\" })\n partnumber?: string;\n\n /**\n *\n */\n metadatagroup?: I3mfMetadataGroup;\n\n public constructor(objectid: ST_ResourceID, transform?: Matrix3d, partnumber?: string) {\n this.objectid = objectid;\n this.transform = transform;\n this.partnumber = partnumber;\n }\n}\n"]}
@@ -1,82 +1,162 @@
1
- import { __decorate } from "@babylonjs/core/tslib.es6.js";
1
+ import { __esDecorate, __runInitializers, __setFunctionName } from "@babylonjs/core/tslib.es6.js";
2
2
  import { XmlAttr, XmlName } from "../xml/xml.interfaces.js";
3
3
  import { OpenXmlContentTypesNamespace, OpenXmlRelationshipsNamespace, } from "./3mf.opc.interfaces.js";
4
4
  /**
5
5
  *
6
6
  */
7
- let ThreeMfContentTypes = class ThreeMfContentTypes {
8
- constructor() {
9
- /**
10
- *
11
- */
12
- this.items = [];
13
- }
14
- };
15
- ThreeMfContentTypes = __decorate([
16
- XmlName({ ns: OpenXmlContentTypesNamespace, name: "Types" })
17
- ], ThreeMfContentTypes);
7
+ let ThreeMfContentTypes = (() => {
8
+ let _classDecorators = [XmlName({ ns: OpenXmlContentTypesNamespace, name: "Types" })];
9
+ let _classDescriptor;
10
+ let _classExtraInitializers = [];
11
+ let _classThis;
12
+ var ThreeMfContentTypes = _classThis = class {
13
+ constructor() {
14
+ /**
15
+ *
16
+ */
17
+ this.items = [];
18
+ }
19
+ };
20
+ __setFunctionName(_classThis, "ThreeMfContentTypes");
21
+ (() => {
22
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
23
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
24
+ ThreeMfContentTypes = _classThis = _classDescriptor.value;
25
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
26
+ __runInitializers(_classThis, _classExtraInitializers);
27
+ })();
28
+ return ThreeMfContentTypes = _classThis;
29
+ })();
18
30
  export { ThreeMfContentTypes };
19
31
  /**
20
32
  *
21
33
  */
22
- let ThreeMfContentType = class ThreeMfContentType {
23
- /**
24
- *
25
- * @param ext
26
- * @param ct
27
- */
28
- constructor(ext, ct) {
29
- this.ext = ext;
30
- this.ct = ct;
31
- }
32
- };
33
- __decorate([
34
- XmlAttr({ name: { ns: OpenXmlContentTypesNamespace, name: "Extension" } })
35
- ], ThreeMfContentType.prototype, "ext", void 0);
36
- __decorate([
37
- XmlAttr({ name: { ns: OpenXmlContentTypesNamespace, name: "ContentType" } })
38
- ], ThreeMfContentType.prototype, "ct", void 0);
39
- ThreeMfContentType = __decorate([
40
- XmlName({ ns: OpenXmlContentTypesNamespace, name: "Default" })
41
- ], ThreeMfContentType);
34
+ let ThreeMfContentType = (() => {
35
+ let _classDecorators = [XmlName({ ns: OpenXmlContentTypesNamespace, name: "Default" })];
36
+ let _classDescriptor;
37
+ let _classExtraInitializers = [];
38
+ let _classThis;
39
+ let _ext_decorators;
40
+ let _ext_initializers = [];
41
+ let _ext_extraInitializers = [];
42
+ let _ct_decorators;
43
+ let _ct_initializers = [];
44
+ let _ct_extraInitializers = [];
45
+ var ThreeMfContentType = _classThis = class {
46
+ /**
47
+ *
48
+ * @param ext
49
+ * @param ct
50
+ */
51
+ constructor(ext, ct) {
52
+ /**
53
+ *
54
+ */
55
+ this.ext = __runInitializers(this, _ext_initializers, void 0);
56
+ /**
57
+ *
58
+ */
59
+ this.ct = (__runInitializers(this, _ext_extraInitializers), __runInitializers(this, _ct_initializers, void 0));
60
+ __runInitializers(this, _ct_extraInitializers);
61
+ this.ext = ext;
62
+ this.ct = ct;
63
+ }
64
+ };
65
+ __setFunctionName(_classThis, "ThreeMfContentType");
66
+ (() => {
67
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
68
+ _ext_decorators = [XmlAttr({ name: { ns: OpenXmlContentTypesNamespace, name: "Extension" } })];
69
+ _ct_decorators = [XmlAttr({ name: { ns: OpenXmlContentTypesNamespace, name: "ContentType" } })];
70
+ __esDecorate(null, null, _ext_decorators, { kind: "field", name: "ext", static: false, private: false, access: { has: obj => "ext" in obj, get: obj => obj.ext, set: (obj, value) => { obj.ext = value; } }, metadata: _metadata }, _ext_initializers, _ext_extraInitializers);
71
+ __esDecorate(null, null, _ct_decorators, { kind: "field", name: "ct", static: false, private: false, access: { has: obj => "ct" in obj, get: obj => obj.ct, set: (obj, value) => { obj.ct = value; } }, metadata: _metadata }, _ct_initializers, _ct_extraInitializers);
72
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
73
+ ThreeMfContentType = _classThis = _classDescriptor.value;
74
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
75
+ __runInitializers(_classThis, _classExtraInitializers);
76
+ })();
77
+ return ThreeMfContentType = _classThis;
78
+ })();
42
79
  export { ThreeMfContentType };
43
80
  /**
44
81
  *
45
82
  */
46
- let ThreeMfRelationships = class ThreeMfRelationships {
47
- constructor() {
48
- /**
49
- *
50
- */
51
- this.items = [];
52
- }
53
- };
54
- ThreeMfRelationships = __decorate([
55
- XmlName({ ns: OpenXmlRelationshipsNamespace, name: "Relationships" })
56
- ], ThreeMfRelationships);
83
+ let ThreeMfRelationships = (() => {
84
+ let _classDecorators = [XmlName({ ns: OpenXmlRelationshipsNamespace, name: "Relationships" })];
85
+ let _classDescriptor;
86
+ let _classExtraInitializers = [];
87
+ let _classThis;
88
+ var ThreeMfRelationships = _classThis = class {
89
+ constructor() {
90
+ /**
91
+ *
92
+ */
93
+ this.items = [];
94
+ }
95
+ };
96
+ __setFunctionName(_classThis, "ThreeMfRelationships");
97
+ (() => {
98
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
99
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
100
+ ThreeMfRelationships = _classThis = _classDescriptor.value;
101
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
102
+ __runInitializers(_classThis, _classExtraInitializers);
103
+ })();
104
+ return ThreeMfRelationships = _classThis;
105
+ })();
57
106
  export { ThreeMfRelationships };
58
107
  /**
59
108
  *
60
109
  */
61
- let ThreeMfRelationship = class ThreeMfRelationship {
62
- constructor(id, type, target) {
63
- this.id = id;
64
- this.type = type;
65
- this.target = target;
66
- }
67
- };
68
- __decorate([
69
- XmlAttr({ name: "Id" })
70
- ], ThreeMfRelationship.prototype, "id", void 0);
71
- __decorate([
72
- XmlAttr({ name: "Type" })
73
- ], ThreeMfRelationship.prototype, "type", void 0);
74
- __decorate([
75
- XmlAttr({ name: "Target" })
76
- ], ThreeMfRelationship.prototype, "target", void 0);
77
- ThreeMfRelationship = __decorate([
78
- XmlName({ ns: OpenXmlRelationshipsNamespace, name: "Relationship" })
79
- ], ThreeMfRelationship);
110
+ let ThreeMfRelationship = (() => {
111
+ let _classDecorators = [XmlName({ ns: OpenXmlRelationshipsNamespace, name: "Relationship" })];
112
+ let _classDescriptor;
113
+ let _classExtraInitializers = [];
114
+ let _classThis;
115
+ let _id_decorators;
116
+ let _id_initializers = [];
117
+ let _id_extraInitializers = [];
118
+ let _type_decorators;
119
+ let _type_initializers = [];
120
+ let _type_extraInitializers = [];
121
+ let _target_decorators;
122
+ let _target_initializers = [];
123
+ let _target_extraInitializers = [];
124
+ var ThreeMfRelationship = _classThis = class {
125
+ constructor(id, type, target) {
126
+ /**
127
+ *
128
+ */
129
+ this.id = __runInitializers(this, _id_initializers, void 0);
130
+ /**
131
+ *
132
+ */
133
+ this.type = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _type_initializers, void 0));
134
+ /**
135
+ *
136
+ */
137
+ this.target = (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _target_initializers, void 0));
138
+ __runInitializers(this, _target_extraInitializers);
139
+ this.id = id;
140
+ this.type = type;
141
+ this.target = target;
142
+ }
143
+ };
144
+ __setFunctionName(_classThis, "ThreeMfRelationship");
145
+ (() => {
146
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
147
+ _id_decorators = [XmlAttr({ name: "Id" })];
148
+ _type_decorators = [XmlAttr({ name: "Type" })];
149
+ _target_decorators = [XmlAttr({ name: "Target" })];
150
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
151
+ __esDecorate(null, null, _type_decorators, { kind: "field", name: "type", static: false, private: false, access: { has: obj => "type" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);
152
+ __esDecorate(null, null, _target_decorators, { kind: "field", name: "target", static: false, private: false, access: { has: obj => "target" in obj, get: obj => obj.target, set: (obj, value) => { obj.target = value; } }, metadata: _metadata }, _target_initializers, _target_extraInitializers);
153
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
154
+ ThreeMfRelationship = _classThis = _classDescriptor.value;
155
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
156
+ __runInitializers(_classThis, _classExtraInitializers);
157
+ })();
158
+ return ThreeMfRelationship = _classThis;
159
+ })();
80
160
  export { ThreeMfRelationship };
81
161
  /**
82
162
  *
@@ -1 +1 @@
1
- {"version":3,"file":"3mf.opc.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/3MF/core/model/3mf.opc.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACH,4BAA4B,EAC5B,6BAA6B,GAMhC,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAAzB;QACH;;WAEG;QACH,UAAK,GAAyB,EAAE,CAAC;IACrC,CAAC;CAAA,CAAA;AALY,mBAAmB;IAD/B,OAAO,CAAC,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;GAChD,mBAAmB,CAK/B;;AAED;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAY3B;;;;OAIG;IACH,YAAmB,GAAW,EAAE,EAAU;QACtC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;CACJ,CAAA;AAhBG;IADC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;+CAC/D;AAKZ;IADC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;8CAClE;AAVF,kBAAkB;IAD9B,OAAO,CAAC,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;GAClD,kBAAkB,CAqB9B;;AAED;;GAEG;AAEI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QACH;;WAEG;QACH,UAAK,GAA0B,EAAE,CAAC;IACtC,CAAC;CAAA,CAAA;AALY,oBAAoB;IADhC,OAAO,CAAC,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;GACzD,oBAAoB,CAKhC;;AAED;;GAEG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAmB5B,YAAY,EAAU,EAAE,IAAY,EAAE,MAAc;QAChD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ,CAAA;AAnBG;IADC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;+CACb;AAMX;IADC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDACZ;AAMd;IADC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;mDACZ;AAjBP,mBAAmB;IAD/B,OAAO,CAAC,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;GACxD,mBAAmB,CAwB/B;;AAED;;GAEG;AACH,MAAM,OAAO,eAAe;IACxB,YACW,YAA8B,EAC9B,aAAgC,EAChC,KAAgB;QAFhB,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,kBAAa,GAAb,aAAa,CAAmB;QAChC,UAAK,GAAL,KAAK,CAAW;IACxB,CAAC;CACP","sourcesContent":["import { XmlAttr, XmlName } from \"../xml/xml.interfaces\";\nimport { type I3mfModel } from \"./3mf.interfaces\";\nimport {\n OpenXmlContentTypesNamespace,\n OpenXmlRelationshipsNamespace,\n type I3mfContentTypes,\n type I3mfContentType,\n type I3mfRelationships,\n type I3mfRelationship,\n type I3mfDocument,\n} from \"./3mf.opc.interfaces\";\n\n/**\n *\n */\n@XmlName({ ns: OpenXmlContentTypesNamespace, name: \"Types\" })\nexport class ThreeMfContentTypes implements I3mfContentTypes {\n /**\n *\n */\n items: ThreeMfContentType[] = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: OpenXmlContentTypesNamespace, name: \"Default\" })\nexport class ThreeMfContentType implements I3mfContentType {\n /**\n *\n */\n @XmlAttr({ name: { ns: OpenXmlContentTypesNamespace, name: \"Extension\" } })\n ext: string;\n /**\n *\n */\n @XmlAttr({ name: { ns: OpenXmlContentTypesNamespace, name: \"ContentType\" } })\n ct: string;\n\n /**\n *\n * @param ext\n * @param ct\n */\n public constructor(ext: string, ct: string) {\n this.ext = ext;\n this.ct = ct;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: OpenXmlRelationshipsNamespace, name: \"Relationships\" })\nexport class ThreeMfRelationships implements I3mfRelationships {\n /**\n *\n */\n items: ThreeMfRelationship[] = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: OpenXmlRelationshipsNamespace, name: \"Relationship\" })\nexport class ThreeMfRelationship implements I3mfRelationship {\n /**\n *\n */\n @XmlAttr({ name: \"Id\" })\n id: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"Type\" })\n type?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"Target\" })\n target?: string;\n\n constructor(id: string, type: string, target: string) {\n this.id = id;\n this.type = type;\n this.target = target;\n }\n}\n\n/**\n *\n */\nexport class ThreeMfDocument implements I3mfDocument {\n public constructor(\n public contentTypes: I3mfContentTypes,\n public relationships: I3mfRelationships,\n public model: I3mfModel\n ) {}\n}\n"]}
1
+ {"version":3,"file":"3mf.opc.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/3MF/core/model/3mf.opc.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACH,4BAA4B,EAC5B,6BAA6B,GAMhC,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;IAEU,mBAAmB;4BAD/B,OAAO,CAAC,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;;;;;YAEzD;;eAEG;YACH,UAAK,GAAyB,EAAE,CAAC;QACrC,CAAC;;;;;QALD,6KAKC;;;QALY,uDAAmB;;;;SAAnB,mBAAmB;AAOhC;;GAEG;IAEU,kBAAkB;4BAD9B,OAAO,CAAC,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;;;;;;;;;;QAa3D;;;;WAIG;QACH,YAAmB,GAAW,EAAE,EAAU;YAhB1C;;eAEG;YAEH,QAAG,sDAAS;YACZ;;eAEG;YAEH,OAAE,wGAAS;;YAQP,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SAChB;;;;;2BAhBA,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;0BAK1E,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,4BAA4B,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;QAJ7E,2JAAA,GAAG,6BAAH,GAAG,iFAAS;QAKZ,wJAAA,EAAE,6BAAF,EAAE,+EAAS;QAVf,6KAqBC;;;QArBY,uDAAkB;;;;SAAlB,kBAAkB;AAuB/B;;GAEG;IAEU,oBAAoB;4BADhC,OAAO,CAAC,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;;;;;YAElE;;eAEG;YACH,UAAK,GAA0B,EAAE,CAAC;QACtC,CAAC;;;;;QALD,6KAKC;;;QALY,uDAAoB;;;;SAApB,oBAAoB;AAOjC;;GAEG;IAEU,mBAAmB;4BAD/B,OAAO,CAAC,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;;;;;;;;;;;;;QAoBjE,YAAY,EAAU,EAAE,IAAY,EAAE,MAAc;YAlBpD;;eAEG;YAEH,OAAE,qDAAS;YAEX;;eAEG;YAEH,SAAI,yGAAU;YAEd;;eAEG;YAEH,WAAM,6GAAU;;YAGZ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACxB;;;;;0BAnBA,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;4BAMvB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8BAMzB,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAX5B,wJAAA,EAAE,6BAAF,EAAE,+EAAS;QAMX,8JAAA,IAAI,6BAAJ,IAAI,mFAAU;QAMd,oKAAA,MAAM,6BAAN,MAAM,uFAAU;QAjBpB,6KAwBC;;;QAxBY,uDAAmB;;;;SAAnB,mBAAmB;AA0BhC;;GAEG;AACH,MAAM,OAAO,eAAe;IACxB,YACW,YAA8B,EAC9B,aAAgC,EAChC,KAAgB;QAFhB,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,kBAAa,GAAb,aAAa,CAAmB;QAChC,UAAK,GAAL,KAAK,CAAW;IACxB,CAAC;CACP","sourcesContent":["import { XmlAttr, XmlName } from \"../xml/xml.interfaces\";\nimport { type I3mfModel } from \"./3mf.interfaces\";\nimport {\n OpenXmlContentTypesNamespace,\n OpenXmlRelationshipsNamespace,\n type I3mfContentTypes,\n type I3mfContentType,\n type I3mfRelationships,\n type I3mfRelationship,\n type I3mfDocument,\n} from \"./3mf.opc.interfaces\";\n\n/**\n *\n */\n@XmlName({ ns: OpenXmlContentTypesNamespace, name: \"Types\" })\nexport class ThreeMfContentTypes implements I3mfContentTypes {\n /**\n *\n */\n items: ThreeMfContentType[] = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: OpenXmlContentTypesNamespace, name: \"Default\" })\nexport class ThreeMfContentType implements I3mfContentType {\n /**\n *\n */\n @XmlAttr({ name: { ns: OpenXmlContentTypesNamespace, name: \"Extension\" } })\n ext: string;\n /**\n *\n */\n @XmlAttr({ name: { ns: OpenXmlContentTypesNamespace, name: \"ContentType\" } })\n ct: string;\n\n /**\n *\n * @param ext\n * @param ct\n */\n public constructor(ext: string, ct: string) {\n this.ext = ext;\n this.ct = ct;\n }\n}\n\n/**\n *\n */\n@XmlName({ ns: OpenXmlRelationshipsNamespace, name: \"Relationships\" })\nexport class ThreeMfRelationships implements I3mfRelationships {\n /**\n *\n */\n items: ThreeMfRelationship[] = [];\n}\n\n/**\n *\n */\n@XmlName({ ns: OpenXmlRelationshipsNamespace, name: \"Relationship\" })\nexport class ThreeMfRelationship implements I3mfRelationship {\n /**\n *\n */\n @XmlAttr({ name: \"Id\" })\n id: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"Type\" })\n type?: string;\n\n /**\n *\n */\n @XmlAttr({ name: \"Target\" })\n target?: string;\n\n constructor(id: string, type: string, target: string) {\n this.id = id;\n this.type = type;\n this.target = target;\n }\n}\n\n/**\n *\n */\nexport class ThreeMfDocument implements I3mfDocument {\n public constructor(\n public contentTypes: I3mfContentTypes,\n public relationships: I3mfRelationships,\n public model: I3mfModel\n ) {}\n}\n"]}
@@ -1,17 +1,46 @@
1
1
  import { type IXmlSerializerFormatOptions } from "./xml.serializer.format.js";
2
- /** */
2
+ /** Describes an XML qualified name with an optional namespace. */
3
3
  export interface IQualifiedName {
4
- /** */
4
+ /** The namespace URI or prefix. */
5
5
  ns?: string;
6
- /** */
6
+ /** The local XML name. */
7
7
  name: string;
8
8
  }
9
- /** */
9
+ /** Provides a fluent interface for writing XML content. */
10
10
  export interface IXmlBuilder {
11
+ /**
12
+ * Writes the XML declaration.
13
+ * @param version defines the XML version
14
+ * @param encoding defines the optional XML encoding
15
+ * @param standalone defines the optional standalone flag
16
+ * @returns the XML builder
17
+ */
11
18
  dec(version: string, encoding?: string, standalone?: boolean): IXmlBuilder;
19
+ /**
20
+ * Writes an XML attribute.
21
+ * @param ns defines the attribute namespace
22
+ * @param n defines the attribute name
23
+ * @param v defines the attribute value
24
+ * @returns the XML builder
25
+ */
12
26
  att(ns: string | null, n: string, v: string): IXmlBuilder;
27
+ /**
28
+ * Writes an XML element.
29
+ * @param ns defines the element namespace
30
+ * @param n defines the element name
31
+ * @returns the XML builder
32
+ */
13
33
  ele(ns: string | null, n: string): IXmlBuilder;
34
+ /**
35
+ * Writes text content.
36
+ * @param txt defines the text to write
37
+ * @returns the XML builder
38
+ */
14
39
  text(txt: string): IXmlBuilder;
40
+ /**
41
+ * Ends the current XML element.
42
+ * @returns the XML builder
43
+ */
15
44
  end(): IXmlBuilder;
16
45
  }
17
46
  /**
@@ -23,10 +52,13 @@ export declare function IsQualifiedName(x: unknown): x is {
23
52
  };
24
53
  export type XmlName = string | IQualifiedName;
25
54
  type FieldKind = "attr" | "elem" | "none";
26
- /**
27
- *
28
- */
55
+ /** Formats values for XML serialization. */
29
56
  export interface IFormatter<T = any> {
57
+ /**
58
+ * Converts a value to its XML string representation.
59
+ * @param value defines the value to format
60
+ * @returns the XML string representation
61
+ */
30
62
  toString(value: T): string;
31
63
  }
32
64
  export type FormatterCtor<T> = new (args: IXmlSerializerFormatOptions) => IFormatter<T>;
@@ -41,12 +73,15 @@ type FieldMeta = {
41
73
  * @param name
42
74
  * @returns
43
75
  */
44
- export declare function XmlName(name: XmlName): (ctor: Function) => void;
76
+ export declare function XmlName(name: XmlName): (ctor: Function, _context: ClassDecoratorContext) => void;
45
77
  /**
46
78
  * tell the serializer to ignore the property
47
79
  * @returns
48
80
  */
49
- export declare function XmlIgnore(): (target: any, prop: string) => void;
81
+ export declare function XmlIgnore(): (_value: unknown, context: {
82
+ name: string | symbol;
83
+ metadata: DecoratorMetadataObject;
84
+ }) => void;
50
85
  /**
51
86
  * tell the serializer to serialize the property as attribute
52
87
  * @returns
@@ -54,7 +89,10 @@ export declare function XmlIgnore(): (target: any, prop: string) => void;
54
89
  export declare function XmlAttr(opts?: {
55
90
  name: XmlName;
56
91
  formatter?: FormatterCtor<any>;
57
- }): (target: any, prop: string) => void;
92
+ }): (_value: unknown, context: {
93
+ name: string | symbol;
94
+ metadata: DecoratorMetadataObject;
95
+ }) => void;
58
96
  /**
59
97
  * tell the serializer to serialize the property as element - this is the default behavior but shoud be
60
98
  * specified when wanted to update the default name of the classe or if the class is not decorated (without \@XmlName)
@@ -62,7 +100,10 @@ export declare function XmlAttr(opts?: {
62
100
  */
63
101
  export declare function XmlElem(opts?: {
64
102
  name: XmlName;
65
- }): (target: any, prop: string) => void;
103
+ }): (_value: unknown, context: {
104
+ name: string | symbol;
105
+ metadata: DecoratorMetadataObject;
106
+ }) => void;
66
107
  /**
67
108
  *
68
109
  * @param obj
@@ -7,16 +7,18 @@ export function IsQualifiedName(x) {
7
7
  }
8
8
  const XML_CLASS_META = Symbol("__xml:meta$__");
9
9
  const XML_CLASS_NAME = Symbol("__xml:name$__");
10
- function AddXmlMeta(target, meta) {
11
- const ctor = target.constructor;
12
- (ctor[XML_CLASS_META] ?? (ctor[XML_CLASS_META] = [])).push(meta);
10
+ function AddXmlMeta(context, meta) {
11
+ if (!Object.prototype.hasOwnProperty.call(context.metadata, XML_CLASS_META)) {
12
+ context.metadata[XML_CLASS_META] = [];
13
+ }
14
+ context.metadata[XML_CLASS_META].push(meta);
13
15
  }
14
16
  /**
15
17
  * @param name
16
18
  * @returns
17
19
  */
18
20
  export function XmlName(name) {
19
- return (ctor) => {
21
+ return (ctor, _context) => {
20
22
  ctor[XML_CLASS_NAME] = name;
21
23
  };
22
24
  }
@@ -25,14 +27,14 @@ export function XmlName(name) {
25
27
  * @returns
26
28
  */
27
29
  export function XmlIgnore() {
28
- return (target, prop) => AddXmlMeta(target, { kind: "none", prop, ignore: true });
30
+ return (_value, context) => AddXmlMeta(context, { kind: "none", prop: String(context.name), ignore: true });
29
31
  }
30
32
  /**
31
33
  * tell the serializer to serialize the property as attribute
32
34
  * @returns
33
35
  */
34
36
  export function XmlAttr(opts) {
35
- return (target, prop) => AddXmlMeta(target, { kind: "attr", prop, ...opts });
37
+ return (_value, context) => AddXmlMeta(context, { kind: "attr", prop: String(context.name), ...opts });
36
38
  }
37
39
  /**
38
40
  * tell the serializer to serialize the property as element - this is the default behavior but shoud be
@@ -40,7 +42,7 @@ export function XmlAttr(opts) {
40
42
  * @returns
41
43
  */
42
44
  export function XmlElem(opts) {
43
- return (target, prop) => AddXmlMeta(target, { kind: "elem", prop, ...opts });
45
+ return (_value, context) => AddXmlMeta(context, { kind: "elem", prop: String(context.name), ...opts });
44
46
  }
45
47
  /**
46
48
  *
@@ -48,7 +50,21 @@ export function XmlElem(opts) {
48
50
  * @returns
49
51
  */
50
52
  export function GetXmlFieldMeta(obj) {
51
- return (obj?.constructor?.[XML_CLASS_META] ?? []);
53
+ const ctor = typeof obj === "function" ? obj : obj?.constructor;
54
+ const metadata = ctor?.[Symbol.metadata];
55
+ if (!metadata) {
56
+ return [];
57
+ }
58
+ // Walk metadata chain to collect all field metadata
59
+ const result = [];
60
+ let currentMeta = metadata;
61
+ while (currentMeta) {
62
+ if (Object.prototype.hasOwnProperty.call(currentMeta, XML_CLASS_META)) {
63
+ result.push(...currentMeta[XML_CLASS_META]);
64
+ }
65
+ currentMeta = Object.getPrototypeOf(currentMeta);
66
+ }
67
+ return result;
52
68
  }
53
69
  /**
54
70
  *
@@ -1 +1 @@
1
- {"version":3,"file":"xml.interfaces.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/3MF/core/xml/xml.interfaces.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IXmlSerializerFormatOptions } from \"./xml.serializer.format\";\r\n\r\n/** */\r\nexport interface IQualifiedName {\r\n /** */\r\n ns?: string;\r\n /** */\r\n name: string;\r\n}\r\n\r\n/** */\r\nexport interface IXmlBuilder {\r\n dec(version: string, encoding?: string, standalone?: boolean): IXmlBuilder;\r\n att(ns: string | null, n: string, v: string): IXmlBuilder;\r\n ele(ns: string | null, n: string): IXmlBuilder;\r\n text(txt: string): IXmlBuilder;\r\n end(): IXmlBuilder;\r\n}\r\n\r\n/**\r\n * @param x\r\n * @returns\r\n */\r\nexport function IsQualifiedName(x: unknown): x is { name: string } {\r\n return typeof (x as any)?.name === \"string\";\r\n}\r\n\r\nexport type XmlName = string | IQualifiedName;\r\n\r\ntype FieldKind = \"attr\" | \"elem\" | \"none\";\r\n\r\n/**\r\n *\r\n */\r\nexport interface IFormatter<T = any> {\r\n toString(value: T): string;\r\n}\r\n\r\nexport type FormatterCtor<T> = new (args: IXmlSerializerFormatOptions) => IFormatter<T>;\r\n\r\ntype FieldMeta = {\r\n kind: FieldKind;\r\n prop: string;\r\n name?: XmlName;\r\n ignore?: boolean;\r\n formatter?: FormatterCtor<any>;\r\n};\r\n\r\nconst XML_CLASS_META = Symbol(\"__xml:meta$__\");\r\nconst XML_CLASS_NAME = Symbol(\"__xml:name$__\");\r\n\r\nfunction AddXmlMeta(target: any, meta: FieldMeta) {\r\n const ctor = target.constructor;\r\n (ctor[XML_CLASS_META] ??= []).push(meta);\r\n}\r\n\r\n/**\r\n * @param name\r\n * @returns\r\n */\r\nexport function XmlName(name: XmlName) {\r\n return (ctor: Function) => {\r\n (ctor as any)[XML_CLASS_NAME] = name;\r\n };\r\n}\r\n\r\n/**\r\n * tell the serializer to ignore the property\r\n * @returns\r\n */\r\nexport function XmlIgnore() {\r\n return (target: any, prop: string) => AddXmlMeta(target, { kind: \"none\", prop, ignore: true });\r\n}\r\n\r\n/**\r\n * tell the serializer to serialize the property as attribute\r\n * @returns\r\n */\r\nexport function XmlAttr(opts?: { name: XmlName; formatter?: FormatterCtor<any> }) {\r\n return (target: any, prop: string) => AddXmlMeta(target, { kind: \"attr\", prop, ...opts });\r\n}\r\n\r\n/**\r\n * tell the serializer to serialize the property as element - this is the default behavior but shoud be\r\n * specified when wanted to update the default name of the classe or if the class is not decorated (without \\@XmlName)\r\n * @returns\r\n */\r\nexport function XmlElem(opts?: { name: XmlName }) {\r\n return (target: any, prop: string) => AddXmlMeta(target, { kind: \"elem\", prop, ...opts });\r\n}\r\n\r\n/**\r\n *\r\n * @param obj\r\n * @returns\r\n */\r\nexport function GetXmlFieldMeta(obj: any): FieldMeta[] {\r\n return (obj?.constructor?.[XML_CLASS_META] ?? []) as FieldMeta[];\r\n}\r\n\r\n/**\r\n *\r\n * @param obj\r\n * @returns\r\n */\r\nexport function GetXmlName(obj: any): XmlName | undefined {\r\n const n = obj?.constructor?.[XML_CLASS_NAME];\r\n return n ? (n as XmlName) : undefined;\r\n}\r\n\r\n/**\r\n *\r\n * @param s\r\n * @returns\r\n */\r\nfunction LooksLikeXmlNcName(s: string): boolean {\r\n // Approximation ASCII de NCName: pas de \":\" et demarre par lettre ou underscore\r\n // Puis lettres/chiffres/underscore/point/tiret.\r\n return /^[A-Za-z_][A-Za-z0-9._-]*$/.test(s);\r\n}\r\n\r\n/**\r\n *\r\n * @param qn\r\n * @returns\r\n */\r\nexport function XmlNameToParts(qn: XmlName): IQualifiedName {\r\n if (IsQualifiedName(qn)) {\r\n return qn;\r\n }\r\n const s = (qn ?? \"\").trim();\r\n if (!s) {\r\n return { name: \"\" };\r\n }\r\n const i = s.indexOf(\":\");\r\n if (i === -1) {\r\n return { name: s };\r\n }\r\n\r\n // Un QName XML ne doit contenir qu un seul \":\".\r\n // Si il y en a plusieurs, on considere que ce n est pas un QName.\r\n if (s.indexOf(\":\", i + 1) !== -1) {\r\n return { name: s };\r\n }\r\n\r\n const prefix = s.slice(0, i);\r\n const local = s.slice(i + 1);\r\n\r\n if (LooksLikeXmlNcName(prefix) && LooksLikeXmlNcName(local)) {\r\n return { ns: prefix, name: local };\r\n }\r\n return { name: s };\r\n}\r\n\r\n/**\r\n *\r\n * @param name\r\n * @param prefix\r\n * @returns\r\n */\r\nexport function ToQualifiedString(name: string, prefix?: string): string {\r\n return prefix ? `${prefix}:${name}` : name;\r\n}\r\n"]}
1
+ {"version":3,"file":"xml.interfaces.js","sourceRoot":"","sources":["../../../../../../dev/serializers/src/3MF/core/xml/xml.interfaces.ts"],"names":[],"mappings":"AAgDA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,CAAU;IACtC,OAAO,OAAQ,CAAS,EAAE,IAAI,KAAK,QAAQ,CAAC;AAChD,CAAC;AA0BD,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAE/C,SAAS,UAAU,CAAC,OAA8C,EAAE,IAAe;IAC/E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;IAC1C,CAAC;IACA,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,IAAa;IACjC,OAAO,CAAC,IAAc,EAAE,QAA+B,EAAE,EAAE;QACtD,IAAY,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACzC,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACrB,OAAO,CAAC,MAAe,EAAE,OAAqE,EAAE,EAAE,CAC9F,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACxF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,IAAwD;IAC5E,OAAO,CAAC,MAAe,EAAE,OAAqE,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAClL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,IAAwB;IAC5C,OAAO,CAAC,MAAe,EAAE,OAAqE,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAClL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAQ;IACpC,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC;IAChE,MAAM,QAAQ,GAAwC,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACd,CAAC;IACD,oDAAoD;IACpD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,WAAW,GAAQ,QAAQ,CAAC;IAChC,OAAO,WAAW,EAAE,CAAC;QACjB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,GAAI,WAAW,CAAC,cAAc,CAAiB,CAAC,CAAC;QACjE,CAAC;QACD,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAAQ;IAC/B,MAAM,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE,CAAC,cAAc,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC,CAAC,CAAE,CAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,CAAS;IACjC,gFAAgF;IAChF,gDAAgD;IAChD,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAAW;IACtC,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,gDAAgD;IAChD,kEAAkE;IAClE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7B,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAe;IAC3D,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC","sourcesContent":["import { type IXmlSerializerFormatOptions } from \"./xml.serializer.format\";\r\n\r\n/** Describes an XML qualified name with an optional namespace. */\r\nexport interface IQualifiedName {\r\n /** The namespace URI or prefix. */\r\n ns?: string;\r\n /** The local XML name. */\r\n name: string;\r\n}\r\n\r\n/** Provides a fluent interface for writing XML content. */\r\nexport interface IXmlBuilder {\r\n /**\r\n * Writes the XML declaration.\r\n * @param version defines the XML version\r\n * @param encoding defines the optional XML encoding\r\n * @param standalone defines the optional standalone flag\r\n * @returns the XML builder\r\n */\r\n dec(version: string, encoding?: string, standalone?: boolean): IXmlBuilder;\r\n /**\r\n * Writes an XML attribute.\r\n * @param ns defines the attribute namespace\r\n * @param n defines the attribute name\r\n * @param v defines the attribute value\r\n * @returns the XML builder\r\n */\r\n att(ns: string | null, n: string, v: string): IXmlBuilder;\r\n /**\r\n * Writes an XML element.\r\n * @param ns defines the element namespace\r\n * @param n defines the element name\r\n * @returns the XML builder\r\n */\r\n ele(ns: string | null, n: string): IXmlBuilder;\r\n /**\r\n * Writes text content.\r\n * @param txt defines the text to write\r\n * @returns the XML builder\r\n */\r\n text(txt: string): IXmlBuilder;\r\n /**\r\n * Ends the current XML element.\r\n * @returns the XML builder\r\n */\r\n end(): IXmlBuilder;\r\n}\r\n\r\n/**\r\n * @param x\r\n * @returns\r\n */\r\nexport function IsQualifiedName(x: unknown): x is { name: string } {\r\n return typeof (x as any)?.name === \"string\";\r\n}\r\n\r\nexport type XmlName = string | IQualifiedName;\r\n\r\ntype FieldKind = \"attr\" | \"elem\" | \"none\";\r\n\r\n/** Formats values for XML serialization. */\r\nexport interface IFormatter<T = any> {\r\n /**\r\n * Converts a value to its XML string representation.\r\n * @param value defines the value to format\r\n * @returns the XML string representation\r\n */\r\n toString(value: T): string;\r\n}\r\n\r\nexport type FormatterCtor<T> = new (args: IXmlSerializerFormatOptions) => IFormatter<T>;\r\n\r\ntype FieldMeta = {\r\n kind: FieldKind;\r\n prop: string;\r\n name?: XmlName;\r\n ignore?: boolean;\r\n formatter?: FormatterCtor<any>;\r\n};\r\n\r\nconst XML_CLASS_META = Symbol(\"__xml:meta$__\");\r\nconst XML_CLASS_NAME = Symbol(\"__xml:name$__\");\r\n\r\nfunction AddXmlMeta(context: { metadata: DecoratorMetadataObject }, meta: FieldMeta) {\r\n if (!Object.prototype.hasOwnProperty.call(context.metadata, XML_CLASS_META)) {\r\n context.metadata[XML_CLASS_META] = [];\r\n }\r\n (context.metadata[XML_CLASS_META] as FieldMeta[]).push(meta);\r\n}\r\n\r\n/**\r\n * @param name\r\n * @returns\r\n */\r\nexport function XmlName(name: XmlName) {\r\n return (ctor: Function, _context: ClassDecoratorContext) => {\r\n (ctor as any)[XML_CLASS_NAME] = name;\r\n };\r\n}\r\n\r\n/**\r\n * tell the serializer to ignore the property\r\n * @returns\r\n */\r\nexport function XmlIgnore() {\r\n return (_value: unknown, context: { name: string | symbol; metadata: DecoratorMetadataObject }) =>\r\n AddXmlMeta(context, { kind: \"none\", prop: String(context.name), ignore: true });\r\n}\r\n\r\n/**\r\n * tell the serializer to serialize the property as attribute\r\n * @returns\r\n */\r\nexport function XmlAttr(opts?: { name: XmlName; formatter?: FormatterCtor<any> }) {\r\n return (_value: unknown, context: { name: string | symbol; metadata: DecoratorMetadataObject }) => AddXmlMeta(context, { kind: \"attr\", prop: String(context.name), ...opts });\r\n}\r\n\r\n/**\r\n * tell the serializer to serialize the property as element - this is the default behavior but shoud be\r\n * specified when wanted to update the default name of the classe or if the class is not decorated (without \\@XmlName)\r\n * @returns\r\n */\r\nexport function XmlElem(opts?: { name: XmlName }) {\r\n return (_value: unknown, context: { name: string | symbol; metadata: DecoratorMetadataObject }) => AddXmlMeta(context, { kind: \"elem\", prop: String(context.name), ...opts });\r\n}\r\n\r\n/**\r\n *\r\n * @param obj\r\n * @returns\r\n */\r\nexport function GetXmlFieldMeta(obj: any): FieldMeta[] {\r\n const ctor = typeof obj === \"function\" ? obj : obj?.constructor;\r\n const metadata: DecoratorMetadataObject | undefined = ctor?.[Symbol.metadata];\r\n if (!metadata) {\r\n return [];\r\n }\r\n // Walk metadata chain to collect all field metadata\r\n const result: FieldMeta[] = [];\r\n let currentMeta: any = metadata;\r\n while (currentMeta) {\r\n if (Object.prototype.hasOwnProperty.call(currentMeta, XML_CLASS_META)) {\r\n result.push(...(currentMeta[XML_CLASS_META] as FieldMeta[]));\r\n }\r\n currentMeta = Object.getPrototypeOf(currentMeta);\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n *\r\n * @param obj\r\n * @returns\r\n */\r\nexport function GetXmlName(obj: any): XmlName | undefined {\r\n const n = obj?.constructor?.[XML_CLASS_NAME];\r\n return n ? (n as XmlName) : undefined;\r\n}\r\n\r\n/**\r\n *\r\n * @param s\r\n * @returns\r\n */\r\nfunction LooksLikeXmlNcName(s: string): boolean {\r\n // Approximation ASCII de NCName: pas de \":\" et demarre par lettre ou underscore\r\n // Puis lettres/chiffres/underscore/point/tiret.\r\n return /^[A-Za-z_][A-Za-z0-9._-]*$/.test(s);\r\n}\r\n\r\n/**\r\n *\r\n * @param qn\r\n * @returns\r\n */\r\nexport function XmlNameToParts(qn: XmlName): IQualifiedName {\r\n if (IsQualifiedName(qn)) {\r\n return qn;\r\n }\r\n const s = (qn ?? \"\").trim();\r\n if (!s) {\r\n return { name: \"\" };\r\n }\r\n const i = s.indexOf(\":\");\r\n if (i === -1) {\r\n return { name: s };\r\n }\r\n\r\n // Un QName XML ne doit contenir qu un seul \":\".\r\n // Si il y en a plusieurs, on considere que ce n est pas un QName.\r\n if (s.indexOf(\":\", i + 1) !== -1) {\r\n return { name: s };\r\n }\r\n\r\n const prefix = s.slice(0, i);\r\n const local = s.slice(i + 1);\r\n\r\n if (LooksLikeXmlNcName(prefix) && LooksLikeXmlNcName(local)) {\r\n return { ns: prefix, name: local };\r\n }\r\n return { name: s };\r\n}\r\n\r\n/**\r\n *\r\n * @param name\r\n * @param prefix\r\n * @returns\r\n */\r\nexport function ToQualifiedString(name: string, prefix?: string): string {\r\n return prefix ? `${prefix}:${name}` : name;\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/serializers",
3
- "version": "9.15.0",
3
+ "version": "9.16.1",
4
4
  "main": "index.js",
5
5
  "module": "index.js",
6
6
  "types": "index.d.ts",
@@ -18,10 +18,10 @@
18
18
  "postcompile": "build-tools -c add-js-to-es6"
19
19
  },
20
20
  "devDependencies": {
21
- "@babylonjs/core": "9.15.0",
21
+ "@babylonjs/core": "9.16.1",
22
22
  "@dev/build-tools": "^1.0.0",
23
23
  "@dev/serializers": "^1.0.0",
24
- "babylonjs-gltf2interface": "9.15.0"
24
+ "babylonjs-gltf2interface": "9.16.1"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "@babylonjs/core": "^9.0.0",