node-opcua-xml2json 2.96.0 → 2.98.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.
@@ -1,23 +1,23 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./xml2json"), exports);
18
- __exportStar(require("./fragment_cloner"), exports);
19
- __exportStar(require("./xml2json_pojo"), exports);
20
- __exportStar(require("./fragment_cloner_parser"), exports);
21
- __exportStar(require("./extension_object_parser"), exports);
22
- __exportStar(require("./definition_parser"), exports);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./xml2json"), exports);
18
+ __exportStar(require("./fragment_cloner"), exports);
19
+ __exportStar(require("./xml2json_pojo"), exports);
20
+ __exportStar(require("./fragment_cloner_parser"), exports);
21
+ __exportStar(require("./extension_object_parser"), exports);
22
+ __exportStar(require("./definition_parser"), exports);
23
23
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-xml2json",
3
- "version": "2.96.0",
3
+ "version": "2.98.0",
4
4
  "description": "pure nodejs OPCUA SDK - module -xml2json",
5
5
  "main": "dist/source/index.js",
6
6
  "types": "dist/source/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "dependencies": {
15
15
  "ltx": "^3.0.0",
16
16
  "node-opcua-assert": "2.88.0",
17
- "node-opcua-utils": "2.90.1",
17
+ "node-opcua-utils": "2.98.0",
18
18
  "thenify": "^3.3.1",
19
19
  "xml-writer": "^1.7.0"
20
20
  },
@@ -22,8 +22,8 @@
22
22
  "license": "MIT",
23
23
  "devDependencies": {
24
24
  "mocha": "^10.2.0",
25
- "node-opcua-debug": "2.90.1",
26
- "node-opcua-nodesets": "2.96.0",
25
+ "node-opcua-debug": "2.98.0",
26
+ "node-opcua-nodesets": "2.98.0",
27
27
  "should": "^13.2.3"
28
28
  },
29
29
  "repository": {
@@ -39,5 +39,5 @@
39
39
  "internet of things"
40
40
  ],
41
41
  "homepage": "http://node-opcua.github.io/",
42
- "gitHead": "43642e4aaa1ca2a3938b044cc2237544dfff764a"
42
+ "gitHead": "e4d73afdfcccb3491423149d9b9785888f4ebb3c"
43
43
  }
@@ -1,19 +0,0 @@
1
- import { ReaderStateParserLike } from "./xml2json";
2
- declare type UAString = string | null;
3
- declare type NodeIdLike = string | null;
4
- declare type Int32 = number;
5
- declare type UInt32 = number;
6
- declare type UABoolean = boolean;
7
- declare type LocalizedTextLike = string | null;
8
- export interface StructureFieldOptions {
9
- name?: UAString;
10
- description?: (LocalizedTextLike | null);
11
- dataType?: (NodeIdLike | null);
12
- valueRank?: Int32;
13
- arrayDimensions?: UInt32[] | null;
14
- maxStringLength?: UInt32;
15
- isOptional?: UABoolean;
16
- }
17
- export declare const _definitionParser: ReaderStateParserLike;
18
- export declare const definitionReaderStateParser: ReaderStateParserLike;
19
- export {};
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.definitionReaderStateParser = exports._definitionParser = void 0;
4
- //<Definition Name="SomeName">
5
- // <Field Name="Running" Value="0" dataType: [ValueRank="1"]>
6
- // [<Description>text</Description>]
7
- // <Field>
8
- // </Definition>
9
- const node_opcua_assert_1 = require("node-opcua-assert");
10
- exports._definitionParser = {
11
- init(name, attrs) {
12
- (0, node_opcua_assert_1.default)(!this.parent.
13
- nFields || this.parent.definitionFields.length === 0);
14
- this.parent.definitionFields = [];
15
- this.parent.definitionName = attrs.SymbolicName || attrs.Name;
16
- this.array = this.parent.definitionFields;
17
- this.isUnion = attrs.IsUnion === "true" ? true : false;
18
- },
19
- parser: {
20
- Field: {
21
- init() {
22
- this.description = undefined;
23
- },
24
- parser: {
25
- Description: {
26
- finish() {
27
- this.parent.description = this.text;
28
- }
29
- }
30
- },
31
- finish() {
32
- const obj = {
33
- name: this.attrs.Name
34
- };
35
- if (this.attrs.AllowSubtype !== undefined) {
36
- obj.allowSubtype = this.attrs.AllowSubtype === "true";
37
- }
38
- else {
39
- obj.allowSubtype = false;
40
- }
41
- if (this.attrs.DataType !== undefined) {
42
- obj.dataType = this.attrs.DataType;
43
- }
44
- if (this.description) {
45
- obj.description = this.description;
46
- }
47
- if (this.attrs.Value !== undefined) {
48
- obj.value = parseInt(this.attrs.Value, 10);
49
- }
50
- if (this.attrs.ValueRank !== undefined) {
51
- obj.valueRank = parseInt(this.attrs.ValueRank, 10);
52
- }
53
- else {
54
- // when not specified valueRank means Scalar and Scalar is -1
55
- obj.valueRank = -1;
56
- }
57
- if (this.attrs.ArrayDimensions !== undefined) {
58
- obj.arrayDimensions = this.attrs.ArrayDimensions.split(",").map((e) => parseInt(e, 10));
59
- }
60
- obj.isOptional = this.attrs.IsOptional === "true" ? true : false;
61
- if (this.attrs.SymbolicName !== undefined) {
62
- obj.symbolicName = this.attrs.SymbolicName;
63
- }
64
- this.parent.array.push(obj);
65
- }
66
- }
67
- }
68
- };
69
- exports.definitionReaderStateParser = {
70
- parser: {
71
- Definition: exports._definitionParser
72
- },
73
- endElement() {
74
- this._pojo = {
75
- name: this.definitionName,
76
- fields: this.definitionFields
77
- };
78
- }
79
- };
80
- //# sourceMappingURL=definition_parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition_parser.js","sourceRoot":"","sources":["../../source/definition_parser.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import { ReaderState, ReaderStateParserLike } from "./xml2json";
2
- interface Field {
3
- dataType: any;
4
- description?: string;
5
- name: string;
6
- value?: any;
7
- valueRank?: number;
8
- allowSubtype?: boolean;
9
- }
10
- export interface Definition {
11
- name: string;
12
- fields: Field[];
13
- }
14
- export interface DefinitionMap {
15
- findDefinition(name: string): Definition;
16
- }
17
- /**
18
- * @deprecated ( use makeXmlExtensionObjectReader instead)
19
- * @param definitionName
20
- * @param definitionMap
21
- * @param readerMap
22
- * @returns
23
- */
24
- export declare function makeExtensionObjectReader(definitionName: string, definitionMap: DefinitionMap, readerMap: Record<string, ReaderStateParserLike>): ReaderState;
25
- export {};
@@ -1,250 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeExtensionObjectReader = void 0;
4
- const node_opcua_utils_1 = require("node-opcua-utils");
5
- const xml2json_1 = require("./xml2json");
6
- function BasicType_parser(dataType, parseFunc) {
7
- const r = {
8
- init(elementName, attrs) {
9
- this.value = undefined;
10
- },
11
- finish() {
12
- this.value = parseFunc.call(this, this.text);
13
- }
14
- };
15
- const _parser = {};
16
- _parser[dataType] = r;
17
- return _parser;
18
- }
19
- function ListOf(dataType, parseFunc) {
20
- return {
21
- init() {
22
- this.value = [];
23
- },
24
- parser: BasicType_parser(dataType, parseFunc),
25
- finish() {
26
- /** empty */
27
- },
28
- endElement(elementName) {
29
- this.value.push(this.parser[elementName].value);
30
- }
31
- };
32
- }
33
- const localizedTextReader = {
34
- init() {
35
- this.localizedText = {};
36
- },
37
- parser: {
38
- Locale: {
39
- finish() {
40
- this.parent.localizedText = this.parent.localizedText || {};
41
- this.parent.localizedText.locale = this.text.trim();
42
- }
43
- },
44
- Text: {
45
- finish() {
46
- this.parent.localizedText = this.parent.localizedText || {};
47
- this.parent.localizedText.text = this.text.trim();
48
- }
49
- }
50
- },
51
- finish() {
52
- this.value = this.localizedText;
53
- }
54
- };
55
- const partials = {
56
- LocalizedText: localizedTextReader,
57
- String: {
58
- finish() {
59
- this.value = this.text;
60
- }
61
- },
62
- Boolean: {
63
- finish() {
64
- this.value = this.text.toLowerCase() === "true";
65
- }
66
- },
67
- ByteString: {
68
- init() {
69
- this.value = null;
70
- },
71
- finish() {
72
- const base64text = this.text;
73
- const byteString = Buffer.from(base64text, "base64");
74
- this.value = byteString;
75
- }
76
- },
77
- Float: {
78
- finish() {
79
- this.value = parseFloat(this.text);
80
- }
81
- },
82
- Double: {
83
- finish() {
84
- this.value = parseFloat(this.text);
85
- }
86
- },
87
- Int8: {
88
- finish() {
89
- this.value = parseInt(this.text, 10);
90
- }
91
- },
92
- Int16: {
93
- finish() {
94
- this.value = parseInt(this.text, 10);
95
- }
96
- },
97
- Int32: {
98
- finish() {
99
- this.value = parseInt(this.text, 10);
100
- }
101
- },
102
- Int64: {
103
- finish() {
104
- this.value = parseInt(this.text, 10);
105
- }
106
- },
107
- UInt8: {
108
- finish() {
109
- this.value = parseInt(this.text, 10);
110
- }
111
- },
112
- UInt16: {
113
- finish() {
114
- this.value = parseInt(this.text, 10);
115
- }
116
- },
117
- UInt32: {
118
- finish() {
119
- this.value = parseInt(this.text, 10);
120
- }
121
- },
122
- UInt64: {
123
- finish() {
124
- this.value = parseInt(this.text, 10);
125
- }
126
- },
127
- ListOfLocalizedText: {
128
- init() {
129
- this.value = [];
130
- },
131
- parser: { LocalizedText: localizedTextReader },
132
- finish() {
133
- /** empty */
134
- },
135
- endElement() {
136
- this.value.push(this.parser.LocalizedText.value);
137
- }
138
- },
139
- ListOfDouble: ListOf("Double", parseFloat),
140
- ListOfFloat: ListOf("Float", parseFloat),
141
- ListOfInt32: ListOf("Int32", parseInt),
142
- ListOfInt16: ListOf("Int16", parseInt),
143
- ListOfInt8: ListOf("Int8", parseInt),
144
- ListOfUint32: ListOf("Uint32", parseInt),
145
- ListOfUint16: ListOf("Uint16", parseInt),
146
- ListOfUint8: ListOf("Uint8", parseInt)
147
- };
148
- function _clone(a) {
149
- if (typeof a === "string" || typeof a === "number" || typeof a === "boolean") {
150
- return a;
151
- }
152
- if (a instanceof Buffer) {
153
- return Buffer.from(a);
154
- }
155
- if (a instanceof Array) {
156
- return a.map((x) => _clone(x));
157
- }
158
- return Object.assign({}, a);
159
- }
160
- function _makeExtensionObjectReader(definitionName, definitionMap, readerMap) {
161
- // is it a basic type ?
162
- if (Object.prototype.hasOwnProperty.call(partials, definitionName)) {
163
- return partials[definitionName];
164
- }
165
- let reader = readerMap[definitionName];
166
- if (reader) {
167
- return reader;
168
- }
169
- const definition = definitionMap.findDefinition(definitionName);
170
- if (!definition) {
171
- throw new Error("cannot find definition for " + definitionName);
172
- }
173
- reader = {
174
- finish() {
175
- /** empty */
176
- },
177
- parser: {}
178
- };
179
- for (const field of definition.fields) {
180
- const fieldReader = _makeExtensionObjectReader(field.dataType, definitionMap, readerMap);
181
- if (!fieldReader) {
182
- throw new Error(" Cannot find reader for dataType " + field.dataType);
183
- }
184
- if (field.valueRank === undefined || field.valueRank === -1) {
185
- const parser = fieldReader;
186
- if (!parser) {
187
- throw new Error("??? " + field.dataType + " " + field.name);
188
- }
189
- reader.parser[field.name] = {
190
- parser: fieldReader.parser,
191
- // endElement: fieldReader.endElement,
192
- finish() {
193
- const elName = (0, node_opcua_utils_1.lowerFirstLetter)(field.name);
194
- fieldReader.finish.call(this);
195
- this.parent.value = this.parent.value || {};
196
- this.parent.value[elName] = _clone(this.value);
197
- }
198
- };
199
- }
200
- else if (field.valueRank === 1) {
201
- const listReader = {
202
- init() {
203
- this.value = [];
204
- },
205
- parser: {},
206
- finish() {
207
- const elName = (0, node_opcua_utils_1.lowerFirstLetter)(this.name);
208
- this.parent.value = this.parent.value || {};
209
- this.parent.value[elName] = this.value;
210
- this.value = undefined;
211
- },
212
- startElement(name, attrs) {
213
- // empty
214
- },
215
- endElement(element) {
216
- this.value.push(_clone(this.parser[element].value));
217
- }
218
- };
219
- listReader.parser[field.dataType] = fieldReader;
220
- reader.parser[field.name] = listReader;
221
- }
222
- else {
223
- throw new Error("Unsupported ValueRank ! " + field.valueRank);
224
- }
225
- }
226
- // xx const parser: ParserLike = {};
227
- // xx parser[definition.name] = reader;
228
- readerMap[definitionName] = reader;
229
- return reader;
230
- }
231
- /**
232
- * @deprecated ( use makeXmlExtensionObjectReader instead)
233
- * @param definitionName
234
- * @param definitionMap
235
- * @param readerMap
236
- * @returns
237
- */
238
- function makeExtensionObjectReader(definitionName, definitionMap, readerMap) {
239
- const reader1 = {
240
- parser: {},
241
- endElement() {
242
- // console.log(this.parser[definitionName].value);
243
- this._pojo = this.parser[definitionName].value;
244
- }
245
- };
246
- reader1.parser[definitionName] = _makeExtensionObjectReader(definitionName, definitionMap, readerMap);
247
- return new xml2json_1.ReaderState(reader1);
248
- }
249
- exports.makeExtensionObjectReader = makeExtensionObjectReader;
250
- //# sourceMappingURL=extension_object_parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension_object_parser.js","sourceRoot":"","sources":["../../source/extension_object_parser.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { Xml2Json, XmlAttributes, IReaderState } from "./xml2json";
2
- export declare class InternalFragmentClonerReaderState implements IReaderState {
3
- private _xw;
4
- value: any;
5
- initLevel: number;
6
- engine?: Xml2Json;
7
- _on_startElement(level: number, elementName: string, attrs: XmlAttributes): void;
8
- _on_endElement(level: number, elementName: string): void;
9
- _on_init(elementName: string, attrs: XmlAttributes, parent: IReaderState, level: number, engine: Xml2Json): void;
10
- _on_finish(): void;
11
- _on_endElement2(level: number, elementName: string): void;
12
- _on_text(text: string): void;
13
- }
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InternalFragmentClonerReaderState = void 0;
4
- const XMLWriter = require("xml-writer");
5
- class InternalFragmentClonerReaderState {
6
- constructor() {
7
- this._xw = new XMLWriter(true);
8
- this.initLevel = 0;
9
- }
10
- _on_startElement(level, elementName, attrs) {
11
- this._xw.startElement(elementName);
12
- for (const [attName, attValue] of Object.entries(attrs)) {
13
- this._xw.writeAttribute(attName, attValue);
14
- }
15
- }
16
- _on_endElement(level, elementName) {
17
- this._xw.endElement();
18
- if (this.initLevel === level) {
19
- this.value = this._xw.toString();
20
- this.engine._demote(this, this.engine.currentLevel, elementName);
21
- this.engine = undefined;
22
- this._on_finish();
23
- }
24
- }
25
- _on_init(elementName, attrs, parent, level, engine) {
26
- this.engine = engine;
27
- this.initLevel = level;
28
- this._xw = new XMLWriter(true);
29
- this._xw.startElement(elementName);
30
- for (const [attName, attValue] of Object.entries(attrs)) {
31
- this._xw.writeAttribute(attName, attValue);
32
- }
33
- }
34
- _on_finish() {
35
- /** */
36
- }
37
- _on_endElement2(level, elementName) {
38
- /** */
39
- }
40
- _on_text(text) {
41
- this._xw.text(text);
42
- }
43
- }
44
- exports.InternalFragmentClonerReaderState = InternalFragmentClonerReaderState;
45
- //# sourceMappingURL=fragment_cloner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fragment_cloner.js","sourceRoot":"","sources":["../../source/fragment_cloner.ts"],"names":[],"mappings":";;;AAaA,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAExC,MAAa,iCAAiC;IAA9C;QACY,QAAG,GAAc,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtC,cAAS,GAAG,CAAC,CAAC;IAuCzB,CAAC;IApCU,gBAAgB,CAAC,KAAa,EAAE,WAAmB,EAAE,KAAoB;QAC5E,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC9C;IACL,CAAC;IACM,cAAc,CAAC,KAAa,EAAE,WAAmB;QACpD,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;IACL,CAAC;IACM,QAAQ,CAAC,WAAmB,EAAE,KAAoB,EAAE,MAAoB,EAAE,KAAa,EAAE,MAAgB;QAC5G,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC9C;IACL,CAAC;IAEM,UAAU;QACb,MAAM;IACV,CAAC;IAEM,eAAe,CAAC,KAAa,EAAE,WAAmB;QACrD,MAAM;IACV,CAAC;IAEM,QAAQ,CAAC,IAAY;QACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACJ;AA1CD,8EA0CC"}
@@ -1,8 +0,0 @@
1
- import { XmlAttributes } from "./xml2json";
2
- export declare class FragmentClonerParser {
3
- value: any;
4
- private _cloneFragment?;
5
- private engine?;
6
- startElement(elementName: string, attrs: XmlAttributes): void;
7
- finish(): void;
8
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FragmentClonerParser = void 0;
4
- const fragment_cloner_1 = require("./fragment_cloner");
5
- class FragmentClonerParser {
6
- startElement(elementName, attrs) {
7
- this._cloneFragment = new fragment_cloner_1.InternalFragmentClonerReaderState();
8
- this.engine._promote(this._cloneFragment, this.engine.currentLevel, elementName, attrs);
9
- }
10
- finish() {
11
- this.value = this._cloneFragment.value;
12
- this._cloneFragment.value = null;
13
- }
14
- }
15
- exports.FragmentClonerParser = FragmentClonerParser;
16
- //# sourceMappingURL=fragment_cloner_parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fragment_cloner_parser.js","sourceRoot":"","sources":["../../source/fragment_cloner_parser.ts"],"names":[],"mappings":";;;AAAA,uDAAsE;AAGtE,MAAa,oBAAoB;IAQtB,YAAY,CAAC,WAAmB,EAAE,KAAoB;QACzD,IAAI,CAAC,cAAc,GAAG,IAAI,mDAAiC,EAAE,CAAC;QAC9D,IAAI,CAAC,MAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAO,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9F,CAAC;IACM,MAAM;QACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAe,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,cAAe,CAAC,KAAK,GAAG,IAAI,CAAC;IACtC,CAAC;CACJ;AAhBD,oDAgBC"}
@@ -1,6 +0,0 @@
1
- export * from "./xml2json";
2
- export * from "./fragment_cloner";
3
- export * from "./xml2json_pojo";
4
- export * from "./fragment_cloner_parser";
5
- export * from "./extension_object_parser";
6
- export * from "./definition_parser";
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,oDAAkC;AAClC,kDAAgC;AAChC,2DAAyC;AACzC,4DAA0C;AAC1C,sDAAoC"}
@@ -1,10 +0,0 @@
1
- import { Callback, SimpleCallback, Xml2Json } from "../xml2json";
2
- export declare class Xml2JsonFs extends Xml2Json {
3
- /**
4
- * @method parse
5
- * @async
6
- * @param xmlFile - the name of the xml file to parse.
7
- */
8
- parse(xmlFile: string): Promise<any>;
9
- parse(xmlFile: string, callback: Callback<any> | SimpleCallback): void;
10
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Xml2JsonFs = void 0;
4
- const fs = require("fs");
5
- const xml2json_1 = require("../xml2json");
6
- class Xml2JsonFs extends xml2json_1.Xml2Json {
7
- parse(xmlFile, callback) {
8
- if (!callback) {
9
- throw new Error("internal error");
10
- }
11
- const readWholeFile = true;
12
- if (readWholeFile) {
13
- // slightly faster but require more memory ..
14
- fs.readFile(xmlFile, (err, data) => {
15
- if (err) {
16
- return callback(err);
17
- }
18
- if (data[0] === 0xef && data[1] === 0xbb && data[2] === 0xbf) {
19
- data = data.subarray(3);
20
- }
21
- const dataAsString = data.toString();
22
- const parser = this._prepareParser(callback);
23
- parser.write(dataAsString);
24
- parser.end();
25
- });
26
- }
27
- else {
28
- const Bomstrip = require("bomstrip");
29
- const parser = this._prepareParser(callback);
30
- fs.createReadStream(xmlFile, { autoClose: true, encoding: "utf8" }).pipe(new Bomstrip()).pipe(parser);
31
- }
32
- }
33
- }
34
- exports.Xml2JsonFs = Xml2JsonFs;
35
- // tslint:disable:no-var-requires
36
- const thenify = require("thenify");
37
- const opts = { multiArgs: false };
38
- Xml2JsonFs.prototype.parse = thenify.withCallback(Xml2JsonFs.prototype.parse, opts);
39
- //# sourceMappingURL=xml2json_fs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml2json_fs.js","sourceRoot":"","sources":["../../../source/nodejs/xml2json_fs.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,0CAAiE;AAEjE,MAAa,UAAW,SAAQ,mBAAQ;IAQ7B,KAAK,CAAC,OAAe,EAAE,QAAyC;QACnE,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC;QAC3B,IAAI,aAAa,EAAE;YACf,6CAA6C;YAC7C,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAiB,EAAE,IAAY,EAAE,EAAE;gBACrD,IAAI,GAAG,EAAE;oBACL,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACxB;gBACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBAC1D,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC3B;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC3B,MAAM,CAAC,GAAG,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;aAAM;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YAErC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAE7C,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzG;IACL,CAAC;CACJ;AAnCD,gCAmCC;AACD,iCAAiC;AACjC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAClC,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC"}
@@ -1,19 +0,0 @@
1
- import { IReaderState, ReaderStateBase, Xml2Json, XmlAttributes } from "./xml2json";
2
- export declare type withPojoLambda = (name: string, pojo: any) => void;
3
- export declare class ReaderState2 extends ReaderStateBase {
4
- _stack: any;
5
- _pojo: any;
6
- _element: any;
7
- text: string;
8
- _withPojo: withPojoLambda;
9
- private parent?;
10
- private engine?;
11
- private initLevel;
12
- constructor();
13
- _on_init(elementName: string, attrs: XmlAttributes, parent: IReaderState, level: number, engine: Xml2Json): void;
14
- _on_finish(): void;
15
- _on_startElement(level: number, elementName: string, attrs: XmlAttributes): void;
16
- _on_endElement2(level: number, elementName: string): void;
17
- _on_endElement(level: number, elementName: string): void;
18
- _on_text(text: string): void;
19
- }
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReaderState2 = void 0;
4
- const node_opcua_utils_1 = require("node-opcua-utils");
5
- const xml2json_1 = require("./xml2json");
6
- class ReaderState2 extends xml2json_1.ReaderStateBase {
7
- constructor() {
8
- super();
9
- this.initLevel = 0;
10
- this._pojo = {};
11
- this._stack = [];
12
- this._element = {};
13
- this.text = "";
14
- this.parent = undefined;
15
- this._withPojo = (pojo) => {
16
- /* empty */
17
- };
18
- }
19
- _on_init(elementName, attrs, parent, level, engine) {
20
- this.parent = parent;
21
- this.engine = engine;
22
- this.initLevel = level;
23
- if (this._stack.length === 0) {
24
- this._pojo = {};
25
- this._element = this._pojo;
26
- }
27
- }
28
- _on_finish() {
29
- /* empy */
30
- }
31
- _on_startElement(level, elementName, attrs) {
32
- this._stack.push(this._element);
33
- if (elementName.match(/^ListOf/)) {
34
- elementName = elementName.substring(6);
35
- const elName = (0, node_opcua_utils_1.lowerFirstLetter)(elementName);
36
- if (this._element instanceof Array) {
37
- const array = [];
38
- this._element.push(array);
39
- this._element = array;
40
- }
41
- else {
42
- this._element[elName] = [];
43
- this._element = this._element[elName];
44
- }
45
- }
46
- else {
47
- const elName = (0, node_opcua_utils_1.lowerFirstLetter)(elementName);
48
- if (this._element instanceof Array) {
49
- const obj = {};
50
- this._element.push(obj);
51
- this._element = obj;
52
- }
53
- else {
54
- this._element[elName] = {};
55
- this._element = this._element[elName];
56
- }
57
- }
58
- }
59
- _on_endElement2(level, elementName) {
60
- /* empty */
61
- }
62
- _on_endElement(level, elementName) {
63
- this._element = this._stack.pop();
64
- if (this.text.length > 0 && this._element) {
65
- const elName = (0, node_opcua_utils_1.lowerFirstLetter)(elementName);
66
- this._element[elName] = this.text;
67
- // this.engine!._pojo = this._pojo;
68
- }
69
- else {
70
- const elName = (0, node_opcua_utils_1.lowerFirstLetter)(elementName);
71
- if (this.initLevel === level) {
72
- if (this._withPojo) {
73
- if (this.text.length) {
74
- this._withPojo.call(null, elName, this.text);
75
- }
76
- else {
77
- this._withPojo.call(null, elName, this._pojo);
78
- }
79
- }
80
- }
81
- }
82
- this.text = "";
83
- }
84
- _on_text(text) {
85
- this.text = text;
86
- }
87
- }
88
- exports.ReaderState2 = ReaderState2;
89
- //# sourceMappingURL=xml2Json_pojo_tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml2Json_pojo_tools.js","sourceRoot":"","sources":["../../source/xml2Json_pojo_tools.ts"],"names":[],"mappings":"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"}
@@ -1,179 +0,0 @@
1
- /**
2
- * @module node-opcua-xml2json
3
- * node -> see if https://github.com/isaacs/sax-js could be used instead
4
- */
5
- declare const LtxParser: any;
6
- export declare type SimpleCallback = (err?: Error) => void;
7
- export declare type Callback<T> = (err?: Error | null, result?: T) => void;
8
- declare interface LtxParser {
9
- write(str: string): void;
10
- end(): void;
11
- on(eventName: "startElement", eventHandler: (name: string, attrs: XmlAttributes) => void): void;
12
- on(eventName: "endElement", eventHandler: (name: string) => void): void;
13
- on(eventName: "text", eventHandler: (name: string) => void): void;
14
- on(eventName: "close", eventHandler: () => void): void;
15
- }
16
- export interface Parser {
17
- [key: string]: ReaderState;
18
- }
19
- export interface XmlAttributes {
20
- [key: string]: string;
21
- }
22
- export interface ReaderStateParser {
23
- parser?: ParserLike;
24
- init?: (this: IReaderState, name: string, attrs: XmlAttributes, parent: IReaderState, engine: Xml2Json) => void;
25
- finish?: (this: IReaderState) => void;
26
- startElement?: (this: IReaderState, name: string, attrs: XmlAttributes) => void;
27
- endElement?: (this: IReaderState, name: string) => void;
28
- }
29
- export interface ParserLike {
30
- [key: string]: ReaderStateParserLike;
31
- }
32
- export interface ReaderStateParserLike {
33
- parser?: ParserLike;
34
- init?: (this: any, name: string, attrs: XmlAttributes, parent: IReaderState, engine: Xml2Json) => void;
35
- finish?: (this: any) => void;
36
- startElement?: (this: any, name: string, attrs: XmlAttributes) => void;
37
- endElement?: (this: any, name: string) => void;
38
- }
39
- export interface IReaderState {
40
- _on_init(elementName: string, attrs: XmlAttributes, parent: IReaderState, level: number, engine: Xml2Json): void;
41
- _on_finish(): void;
42
- _on_startElement(level: number, elementName: string, attrs: XmlAttributes): void;
43
- _on_endElement(level: number, elementName: string): void;
44
- _on_endElement2(level: number, elementName: string): void;
45
- _on_text(text: string): void;
46
- }
47
- export declare class ReaderStateBase {
48
- }
49
- export interface ReaderStateBase extends IReaderState {
50
- }
51
- /**
52
- * @class ReaderState
53
- * @private
54
- * @param options
55
- * @param [options.parser=null] {map<ReaderState|options}}
56
- * @param [options.init|null]
57
- * @param [options.finish]
58
- * @param [options.startElement]
59
- * @param [options.endElement]
60
- */
61
- export declare class ReaderState extends ReaderStateBase {
62
- _init?: (name: string, attrs: XmlAttributes, parent: IReaderState, engine: Xml2Json) => void;
63
- _finish?: () => void;
64
- _startElement?: (name: string, attrs: XmlAttributes) => void;
65
- _endElement?: (name: string) => void;
66
- parser: any;
67
- attrs?: XmlAttributes;
68
- chunks: any[];
69
- text: string;
70
- name?: string | undefined;
71
- level: number;
72
- currentLevel: number;
73
- engine?: Xml2Json;
74
- parent?: IReaderState;
75
- root?: Xml2Json;
76
- data?: any;
77
- constructor(options: ReaderStateParser | ReaderState);
78
- /**
79
- * @method _on_init
80
- * @param elementName - the name of the element
81
- * @param attrs
82
- * @param parent
83
- * @param level
84
- * @param engine
85
- * @protected
86
- */
87
- _on_init(elementName: string, attrs: XmlAttributes, parent: IReaderState, level: number, engine: Xml2Json): void;
88
- _on_finish(): void;
89
- /**
90
- * @param level
91
- * @param elementName - the name of the element
92
- * @param attrs
93
- * @protected
94
- */
95
- _on_startElement(level: number, elementName: string, attrs: XmlAttributes): void;
96
- _on_endElement2(level: number, elementName: string): void;
97
- /**
98
- * @method _on_endElement
99
- * @protected
100
- */
101
- _on_endElement(level: number, elementName: string): void;
102
- /**
103
- * @method _on_text
104
- * @param text {String} the text found inside the element
105
- * @protected
106
- */
107
- _on_text(text: string): void;
108
- }
109
- /**
110
- * @class Xml2Json
111
- * @param options - the state machine as a ReaderState node.
112
- * @param [options.parser=null] {ReaderState}
113
- * @param [options.init|null]
114
- * @param [options.finish]
115
- * @param [options.startElement]
116
- * @param [options.endElement]
117
- * @constructor
118
- *
119
- * @example
120
- * var parser = new Xml2Json({
121
- * parser: {
122
- * 'person': {
123
- * init: function(name,attrs) {
124
- * this.parent.root.obj = {};
125
- * this.obj = this.parent.root.obj;
126
- * this.obj['name'] = attrs['name'];
127
- * },
128
- * parser: {
129
- * 'address': {
130
- * finish: function(){
131
- * this.parent.obj['address'] = this.text;
132
- * }
133
- * }
134
- * }
135
- * }
136
- * }
137
- * });
138
- *
139
- * var xml_string = "<employees>" +
140
- * " <person name='John'>" +
141
- * " <address>Paris</address>" +
142
- * " </person>" +
143
- * "</employees>";
144
- *
145
- * parser.parseString(xml_string, function() {
146
- * parser.obj.should.eql({name: 'John',address: 'Paris'});
147
- * done();
148
- * });
149
- */
150
- export declare class Xml2Json {
151
- currentLevel: number;
152
- private state_stack;
153
- private current_state;
154
- constructor(options: ReaderStateParser);
155
- parseStringSync(xml_text: string): Record<string, unknown>;
156
- /**
157
- * @deprecated
158
- * @method parseString
159
- * @async
160
- */
161
- parseString(xml_text: string): Promise<any>;
162
- parseString(xml_text: string, callback: Callback<any> | SimpleCallback): void;
163
- /**
164
- * @param new_state
165
- * @param name
166
- * @param attr
167
- * @private
168
- * @internal
169
- */
170
- _promote(new_state: IReaderState, level: number, name?: string, attr?: XmlAttributes): void;
171
- /**
172
- *
173
- * @private
174
- * @internal
175
- */
176
- _demote(cur_state: IReaderState, level: number, elementName: string): void;
177
- protected _prepareParser(callback: Callback<any> | SimpleCallback): LtxParser;
178
- }
179
- export {};
@@ -1,303 +0,0 @@
1
- "use strict";
2
- /**
3
- * @module node-opcua-xml2json
4
- * node -> see if https://github.com/isaacs/sax-js could be used instead
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.Xml2Json = exports.ReaderState = exports.ReaderStateBase = void 0;
8
- // tslint:disable:max-classes-per-file
9
- // tslint:disable:no-var-requires
10
- // tslint:disable:unified-signatures
11
- const node_opcua_assert_1 = require("node-opcua-assert");
12
- const LtxParser = require("ltx/lib/parsers/ltx.js");
13
- /**
14
- * @static
15
- * @private
16
- * @method _coerceParser
17
- * @param parser {map<ReaderState|options>}
18
- * @return {map}
19
- */
20
- function _coerceParser(parser) {
21
- for (const name of Object.keys(parser)) {
22
- if (parser[name] && !(parser[name] instanceof ReaderState)) {
23
- // this is to prevent recursion
24
- const tmp = parser[name];
25
- delete parser[name];
26
- parser[name] = new ReaderState(tmp);
27
- }
28
- }
29
- return parser;
30
- }
31
- class ReaderStateBase {
32
- }
33
- exports.ReaderStateBase = ReaderStateBase;
34
- /**
35
- * @class ReaderState
36
- * @private
37
- * @param options
38
- * @param [options.parser=null] {map<ReaderState|options}}
39
- * @param [options.init|null]
40
- * @param [options.finish]
41
- * @param [options.startElement]
42
- * @param [options.endElement]
43
- */
44
- class ReaderState extends ReaderStateBase {
45
- constructor(options) {
46
- super();
47
- this.chunks = [];
48
- this.text = "";
49
- this.name = "";
50
- this.level = -1;
51
- this.currentLevel = -1;
52
- // ensure options object has only expected properties
53
- options.parser = options.parser || {};
54
- if (!(options instanceof ReaderStateBase)) {
55
- this._init = options.init;
56
- this._finish = options.finish;
57
- this._startElement = options.startElement;
58
- this._endElement = options.endElement;
59
- }
60
- this.parser = _coerceParser(options.parser);
61
- }
62
- /**
63
- * @method _on_init
64
- * @param elementName - the name of the element
65
- * @param attrs
66
- * @param parent
67
- * @param level
68
- * @param engine
69
- * @protected
70
- */
71
- _on_init(elementName, attrs, parent, level, engine) {
72
- this.name = elementName;
73
- this.parent = parent;
74
- this.engine = engine;
75
- this.data = {};
76
- this.level = level;
77
- this.currentLevel = this.level;
78
- this.attrs = attrs;
79
- (0, node_opcua_assert_1.assert)(this.attrs);
80
- if (this._init) {
81
- this._init(elementName, attrs, parent, engine);
82
- }
83
- }
84
- _on_finish() {
85
- if (this._finish) {
86
- this._finish();
87
- }
88
- }
89
- /**
90
- * @param level
91
- * @param elementName - the name of the element
92
- * @param attrs
93
- * @protected
94
- */
95
- _on_startElement(level, elementName, attrs) {
96
- this.currentLevel = level;
97
- // console.log("wxxxx _on_startElement#" + this.name, elementName, this.currentLevel);
98
- this.chunks = [];
99
- this.text = "";
100
- if (this._startElement) {
101
- this._startElement(elementName, attrs);
102
- }
103
- if (this.engine && Object.prototype.hasOwnProperty.call(this.parser, elementName)) {
104
- // console.log("promoting ", elementName, this.level);
105
- this.engine._promote(this.parser[elementName], level, elementName, attrs);
106
- }
107
- }
108
- _on_endElement2(level, elementName) {
109
- if (this._endElement) {
110
- this._endElement(elementName);
111
- }
112
- }
113
- /**
114
- * @method _on_endElement
115
- * @protected
116
- */
117
- _on_endElement(level, elementName) {
118
- // console.log("wxxxx _on_endElement#" + this.name, elementName, level, this.currentLevel);
119
- (0, node_opcua_assert_1.assert)(this.attrs);
120
- this.chunks = this.chunks || [];
121
- if (this.level > level) {
122
- // we end a child element of this node
123
- this._on_endElement2(level, elementName);
124
- }
125
- else if (this.level === level) {
126
- // we received the end event of this node
127
- // we need to finish
128
- this.text = this.chunks.join("");
129
- this.chunks = [];
130
- // this is the end
131
- this._on_finish();
132
- if (this.parent &&
133
- this.parent.parser &&
134
- Object.prototype.hasOwnProperty.call(this.parent.parser, elementName)) {
135
- // console.log("xxx demoting#" + this.name, elementName, this.level);
136
- this.engine._demote(this, level, elementName);
137
- }
138
- }
139
- }
140
- /**
141
- * @method _on_text
142
- * @param text {String} the text found inside the element
143
- * @protected
144
- */
145
- _on_text(text) {
146
- this.chunks = this.chunks || [];
147
- text = text.trim();
148
- if (text.length === 0) {
149
- return;
150
- }
151
- this.chunks.push(text);
152
- }
153
- }
154
- exports.ReaderState = ReaderState;
155
- const regexp = /(([^:]+):)?(.*)/;
156
- function resolve_namespace(name) {
157
- const m = name.match(regexp);
158
- if (!m) {
159
- throw new Error("Invalid match");
160
- }
161
- return {
162
- ns: m[2],
163
- tag: m[3]
164
- };
165
- }
166
- /**
167
- * @class Xml2Json
168
- * @param options - the state machine as a ReaderState node.
169
- * @param [options.parser=null] {ReaderState}
170
- * @param [options.init|null]
171
- * @param [options.finish]
172
- * @param [options.startElement]
173
- * @param [options.endElement]
174
- * @constructor
175
- *
176
- * @example
177
- * var parser = new Xml2Json({
178
- * parser: {
179
- * 'person': {
180
- * init: function(name,attrs) {
181
- * this.parent.root.obj = {};
182
- * this.obj = this.parent.root.obj;
183
- * this.obj['name'] = attrs['name'];
184
- * },
185
- * parser: {
186
- * 'address': {
187
- * finish: function(){
188
- * this.parent.obj['address'] = this.text;
189
- * }
190
- * }
191
- * }
192
- * }
193
- * }
194
- * });
195
- *
196
- * var xml_string = "<employees>" +
197
- * " <person name='John'>" +
198
- * " <address>Paris</address>" +
199
- * " </person>" +
200
- * "</employees>";
201
- *
202
- * parser.parseString(xml_string, function() {
203
- * parser.obj.should.eql({name: 'John',address: 'Paris'});
204
- * done();
205
- * });
206
- */
207
- class Xml2Json {
208
- constructor(options) {
209
- this.currentLevel = 0;
210
- this.state_stack = [];
211
- this.current_state = null;
212
- const state = options instanceof ReaderStateBase ? options : new ReaderState(options);
213
- state.root = this;
214
- this.state_stack = [];
215
- this.current_state = null;
216
- this._promote(state, 0);
217
- }
218
- parseStringSync(xml_text) {
219
- let retValue = {};
220
- const parser = this._prepareParser((err, r) => retValue = r);
221
- parser.write(xml_text);
222
- parser.end();
223
- return retValue;
224
- }
225
- parseString(xml_text, callback) {
226
- const parser = this._prepareParser(callback);
227
- parser.write(xml_text);
228
- parser.end();
229
- }
230
- /**
231
- * @param new_state
232
- * @param name
233
- * @param attr
234
- * @private
235
- * @internal
236
- */
237
- _promote(new_state, level, name, attr) {
238
- attr = attr || {};
239
- this.state_stack.push({
240
- backup: {},
241
- state: this.current_state
242
- });
243
- const parent = this.current_state;
244
- this.current_state = new_state;
245
- this.current_state._on_init(name || "???", attr, parent, level, this);
246
- }
247
- /**
248
- *
249
- * @private
250
- * @internal
251
- */
252
- _demote(cur_state, level, elementName) {
253
- /// assert(this.current_state === cur_state);
254
- const { state, backup } = this.state_stack.pop();
255
- this.current_state = state;
256
- if (this.current_state) {
257
- this.current_state._on_endElement2(level, elementName);
258
- }
259
- }
260
- _prepareParser(callback) {
261
- (0, node_opcua_assert_1.assert)(typeof callback === 'function');
262
- const parser = new LtxParser();
263
- this.currentLevel = 0;
264
- parser.on("startElement", (name, attrs) => {
265
- const tag_ns = resolve_namespace(name);
266
- this.currentLevel += 1;
267
- if (this.current_state) {
268
- this.current_state._on_startElement(this.currentLevel, tag_ns.tag, attrs);
269
- }
270
- });
271
- parser.on("endElement", (name) => {
272
- const tag_ns = resolve_namespace(name);
273
- if (this.current_state) {
274
- this.current_state._on_endElement(this.currentLevel, tag_ns.tag);
275
- }
276
- this.currentLevel -= 1;
277
- if (this.currentLevel === 0) {
278
- parser.emit("close");
279
- }
280
- });
281
- parser.on("text", (text) => {
282
- text = text.trim();
283
- if (text.length === 0) {
284
- return;
285
- }
286
- if (this.current_state) {
287
- this.current_state._on_text(text);
288
- }
289
- });
290
- parser.once("close", () => {
291
- if (callback) {
292
- callback(null, this.current_state._pojo);
293
- }
294
- });
295
- return parser;
296
- }
297
- }
298
- exports.Xml2Json = Xml2Json;
299
- // tslint:disable:no-var-requires
300
- const thenify = require("thenify");
301
- const opts = { multiArgs: false };
302
- Xml2Json.prototype.parseString = thenify.withCallback(Xml2Json.prototype.parseString, opts);
303
- //# sourceMappingURL=xml2json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml2json.js","sourceRoot":"","sources":["../../source/xml2json.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sCAAsC;AACtC,iCAAiC;AACjC,oCAAoC;AAEpC,yDAA2C;AAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAuBpD;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,MAAkB;IACrC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACpC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,EAAE;YACxD,+BAA+B;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;SACvC;KACJ;IACD,OAAO,MAAgB,CAAC;AAC5B,CAAC;AAwCD,MAAa,eAAe;CAAG;AAA/B,0CAA+B;AAE/B;;;;;;;;;GASG;AACH,MAAa,WAAY,SAAQ,eAAe;IAoB5C,YAAY,OAAwC;QAChD,KAAK,EAAE,CAAC;QAbL,WAAM,GAAU,EAAE,CAAC;QACnB,SAAI,GAAG,EAAE,CAAC;QACV,SAAI,GAAI,EAAE,CAAC;QACX,UAAK,GAAG,CAAC,CAAC,CAAC;QACX,iBAAY,GAAG,CAAC,CAAC,CAAC;QAUrB,qDAAqD;QACrD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAEtC,IAAI,CAAC,CAAC,OAAO,YAAY,eAAe,CAAC,EAAE;YACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;SACzC;QAED,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;OAQG;IACI,QAAQ,CAAC,WAAmB,EAAE,KAAoB,EAAE,MAAoB,EAAE,KAAa,EAAE,MAAgB;QAC5G,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAA,0BAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SAClD;IACL,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;IACL,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,KAAa,EAAE,WAAmB,EAAE,KAAoB;QAC5E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,sFAAsF;QAEtF,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;YAC/E,sDAAsD;YACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;SAC7E;IACL,CAAC;IAEM,eAAe,CAAC,KAAa,EAAE,WAAmB;QACrD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SACjC;IACL,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,KAAa,EAAE,WAAmB;QACpD,2FAA2F;QAC3F,IAAA,0BAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE;YACpB,sCAAsC;YACtC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAC5C;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YAC7B,yCAAyC;YACzC,oBAAoB;YACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,kBAAkB;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IACI,IAAI,CAAC,MAAM;gBACV,IAAI,CAAC,MAAc,CAAC,MAAM;gBAC3B,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAE,IAAI,CAAC,MAAc,CAAC,MAAM,EAAE,WAAW,CAAC,EAChF;gBACE,wEAAwE;gBACxE,IAAI,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;aAClD;SACJ;IACL,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,IAAY;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACnB,OAAO;SACV;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACJ;AAvID,kCAuIC;AAED,MAAM,MAAM,GAAG,iBAAiB,CAAC;AAEjC,SAAS,iBAAiB,CAAC,IAAY;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,EAAE;QACJ,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACpC;IACD,OAAO;QACH,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACR,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;KACZ,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAa,QAAQ;IAKjB,YAAY,OAA0B;QAJ/B,iBAAY,GAAG,CAAC,CAAC;QAChB,gBAAW,GAAU,EAAE,CAAC;QACxB,kBAAa,GAAwB,IAAI,CAAC;QAG9C,MAAM,KAAK,GAAG,OAAO,YAAY,eAAe,CAAC,CAAC,CAAE,OAAuB,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QACvG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAGM,eAAe,CAAC,QAAgB;QACnC,IAAI,QAAQ,GAA6B,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAA6B,EAAE,CAA2B,EAAC,EAAE,CAAC,QAAQ,GAAE,CAAC,CAAC,CAAC;QAC/G,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IACpB,CAAC;IAQM,WAAW,CAAC,QAAgB,EAAE,QAAyC;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,EAAE,CAAC;IACjB,CAAC;IACD;;;;;;OAMG;IACI,QAAQ,CAAC,SAAuB,EAAE,KAAa,EAAE,IAAa,EAAE,IAAoB;QACvF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAClB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,IAAI,CAAC,aAAa;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,MAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,SAAuB,EAAE,KAAa,EAAE,WAAmB;QACtE,8CAA8C;QAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAC1D;IACL,CAAC;IAES,cAAc,CAAC,QAAwC;QAC7D,IAAA,0BAAM,EAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,IAAY,EAAE,KAAoB,EAAE,EAAE;YAC7D,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC7E;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC/B,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnB,OAAO;aACV;YACD,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACrC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,QAAQ,EAAE;gBACT,QAAgB,CAAC,IAAI,EAAG,IAAI,CAAC,aAAsB,CAAC,KAAK,CAAC,CAAC;aAC/D;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAxGD,4BAwGC;AAED,iCAAiC;AACjC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAClC,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import { ReaderState, ReaderStateParser, Xml2Json, XmlAttributes } from "./xml2json";
2
- import { withPojoLambda } from "./xml2Json_pojo_tools";
3
- export declare const json_parser: ReaderStateParser;
4
- export declare function startPojo(pThis: ReaderState, elementName: string, attrs: XmlAttributes, withPojo: withPojoLambda): void;
5
- export declare class Xml2JsonPojo extends Xml2Json {
6
- constructor();
7
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Xml2JsonPojo = exports.startPojo = exports.json_parser = void 0;
4
- const xml2json_1 = require("./xml2json");
5
- const xml2Json_pojo_tools_1 = require("./xml2Json_pojo_tools");
6
- const json_extractor = new xml2Json_pojo_tools_1.ReaderState2();
7
- exports.json_parser = {
8
- init(elementName, attrs, parent, engine) {
9
- json_extractor._on_init(elementName, attrs, parent, 0, engine);
10
- },
11
- finish() {
12
- this.parent._pojo = json_extractor._pojo;
13
- }
14
- };
15
- function startPojo(pThis, elementName, attrs, withPojo) {
16
- pThis.engine._promote(json_extractor, pThis.engine.currentLevel, elementName, attrs);
17
- json_extractor._withPojo = (name, pojo) => {
18
- withPojo(name, pojo);
19
- pThis.engine._demote(json_extractor, pThis.engine.currentLevel, elementName);
20
- };
21
- }
22
- exports.startPojo = startPojo;
23
- class Xml2JsonPojo extends xml2json_1.Xml2Json {
24
- constructor() {
25
- super(json_extractor);
26
- }
27
- }
28
- exports.Xml2JsonPojo = Xml2JsonPojo;
29
- //# sourceMappingURL=xml2json_pojo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml2json_pojo.js","sourceRoot":"","sources":["../../source/xml2json_pojo.ts"],"names":[],"mappings":";;;AAAA,yCAAmG;AACnG,+DAAqE;AAErE,MAAM,cAAc,GAAiB,IAAI,kCAAY,EAAE,CAAC;AAC3C,QAAA,WAAW,GAAsB;IAC1C,IAAI,CAAqB,WAAmB,EAAE,KAAoB,EAAE,MAAoB,EAAE,MAAgB;QACtG,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IACD,MAAM;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IAC7C,CAAC;CACJ,CAAC;AAEF,SAAgB,SAAS,CAAC,KAAkB,EAAE,WAAmB,EAAE,KAAoB,EAAE,QAAwB;IAC7G,KAAK,CAAC,MAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,MAAO,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACvF,cAAc,CAAC,SAAS,GAAG,CAAC,IAAY,EAAE,IAAS,EAAE,EAAE;QACnD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrB,KAAK,CAAC,MAAO,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,MAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC,CAAC;AACN,CAAC;AAND,8BAMC;AAED,MAAa,YAAa,SAAQ,mBAAQ;IACtC;QACI,KAAK,CAAC,cAAmC,CAAC,CAAC;IAC/C,CAAC;CACJ;AAJD,oCAIC"}