devextreme-exceljs-fork 4.4.7 → 4.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dx-exceljs-fork.bare.js +445 -541
- package/dist/dx-exceljs-fork.bare.js.map +18 -18
- package/dist/dx-exceljs-fork.bare.min.js +7 -7
- package/dist/dx-exceljs-fork.bare.min.js.map +1 -1
- package/dist/dx-exceljs-fork.js +445 -541
- package/dist/dx-exceljs-fork.js.map +18 -18
- package/dist/dx-exceljs-fork.min.js +6 -6
- package/dist/dx-exceljs-fork.min.js.map +1 -1
- package/dist/es5/csv/csv.js +1 -1
- package/dist/es5/csv/csv.js.map +1 -1
- package/dist/es5/doc/cell.js +5 -5
- package/dist/es5/doc/cell.js.map +1 -1
- package/dist/es5/doc/pivot-table.js +1 -1
- package/dist/es5/doc/pivot-table.js.map +1 -1
- package/dist/es5/doc/range.js +7 -7
- package/dist/es5/doc/range.js.map +1 -1
- package/dist/es5/doc/row.js +1 -1
- package/dist/es5/doc/row.js.map +1 -1
- package/dist/es5/doc/table.js +10 -10
- package/dist/es5/doc/table.js.map +1 -1
- package/dist/es5/doc/worksheet.js +7 -6
- package/dist/es5/doc/worksheet.js.map +1 -1
- package/dist/es5/stream/xlsx/hyperlink-reader.js +26 -49
- package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/sheet-comments-writer.js +6 -6
- package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/sheet-rels-writer.js +6 -5
- package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-reader.js +215 -320
- package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-writer.js +8 -8
- package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-reader.js +265 -341
- package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-writer.js +9 -13
- package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -1
- package/dist/es5/utils/col-cache.js +14 -18
- package/dist/es5/utils/col-cache.js.map +1 -1
- package/dist/es5/utils/copy-style.js +12 -10
- package/dist/es5/utils/copy-style.js.map +1 -1
- package/dist/es5/utils/encryptor.js +1 -1
- package/dist/es5/utils/encryptor.js.map +1 -1
- package/dist/es5/utils/iterate-stream.js +26 -37
- package/dist/es5/utils/iterate-stream.js.map +1 -1
- package/dist/es5/utils/parse-sax.js +34 -67
- package/dist/es5/utils/parse-sax.js.map +1 -1
- package/dist/es5/utils/utils.js +1 -1
- package/dist/es5/utils/utils.js.map +1 -1
- package/dist/es5/utils/xml-stream.js +1 -1
- package/dist/es5/utils/xml-stream.js.map +1 -1
- package/dist/es5/xlsx/xform/base-xform.js +12 -35
- package/dist/es5/xlsx/xform/base-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/book/defined-name-xform.js +2 -2
- package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/book/workbook-xform.js +5 -5
- package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/comment-xform.js +4 -8
- package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +1 -1
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/content-types-xform.js +5 -5
- package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/core-xform.js +2 -2
- package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/relationships-xform.js +2 -2
- package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +1 -1
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/list-xform.js +1 -1
- package/dist/es5/xlsx/xform/list-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js +8 -2
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +3 -7
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +7 -11
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +70 -10
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +1 -1
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cell-xform.js +4 -8
- package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +18 -22
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -2
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +11 -13
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/merges.js +1 -1
- package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/row-xform.js +2 -2
- package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +10 -10
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +2 -2
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/style/border-xform.js +3 -7
- package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js +2 -2
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/filter-column-xform.js +1 -1
- package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/table-xform.js +3 -7
- package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -1
- package/dist/es5/xlsx/xlsx.js +22 -45
- package/dist/es5/xlsx/xlsx.js.map +1 -1
- package/package.json +13 -14
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
3
|
+
const oneDepthCopy = (obj, nestKeys) => ({
|
|
4
|
+
...obj,
|
|
5
|
+
...nestKeys.reduce((memo, key) => {
|
|
6
|
+
if (obj[key]) memo[key] = {
|
|
7
|
+
...obj[key]
|
|
8
|
+
};
|
|
9
|
+
return memo;
|
|
10
|
+
}, {})
|
|
11
|
+
});
|
|
12
12
|
const setIfExists = function (src, dst, key) {
|
|
13
13
|
let nestKeys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
14
14
|
if (src[key]) dst[key] = oneDepthCopy(src[key], nestKeys);
|
|
@@ -17,7 +17,9 @@ const isEmptyObj = obj => Object.keys(obj).length === 0;
|
|
|
17
17
|
const copyStyle = style => {
|
|
18
18
|
if (!style) return style;
|
|
19
19
|
if (isEmptyObj(style)) return {};
|
|
20
|
-
const copied =
|
|
20
|
+
const copied = {
|
|
21
|
+
...style
|
|
22
|
+
};
|
|
21
23
|
setIfExists(style, copied, 'font', ['color']);
|
|
22
24
|
setIfExists(style, copied, 'alignment');
|
|
23
25
|
setIfExists(style, copied, 'protection');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-style.js","names":["oneDepthCopy","obj","nestKeys","
|
|
1
|
+
{"version":3,"file":"copy-style.js","names":["oneDepthCopy","obj","nestKeys","reduce","memo","key","setIfExists","src","dst","arguments","length","undefined","isEmptyObj","Object","keys","copyStyle","style","copied","border","fill","stops","map","s","exports"],"sources":["../../../lib/utils/copy-style.js"],"sourcesContent":["const oneDepthCopy = (obj, nestKeys) => ({\n ...obj,\n ...nestKeys.reduce((memo, key) => {\n if (obj[key]) memo[key] = {...obj[key]};\n return memo;\n }, {}),\n});\n\nconst setIfExists = (src, dst, key, nestKeys = []) => {\n if (src[key]) dst[key] = oneDepthCopy(src[key], nestKeys);\n};\n\nconst isEmptyObj = obj => Object.keys(obj).length === 0;\n\nconst copyStyle = style => {\n if (!style) return style;\n if (isEmptyObj(style)) return {};\n\n const copied = {...style};\n\n setIfExists(style, copied, 'font', ['color']);\n setIfExists(style, copied, 'alignment');\n setIfExists(style, copied, 'protection');\n if (style.border) {\n setIfExists(style, copied, 'border');\n setIfExists(style.border, copied.border, 'top', ['color']);\n setIfExists(style.border, copied.border, 'left', ['color']);\n setIfExists(style.border, copied.border, 'bottom', ['color']);\n setIfExists(style.border, copied.border, 'right', ['color']);\n setIfExists(style.border, copied.border, 'diagonal', ['color']);\n }\n\n if (style.fill) {\n setIfExists(style, copied, 'fill', ['fgColor', 'bgColor', 'center']);\n if (style.fill.stops) {\n copied.fill.stops = style.fill.stops.map(s => oneDepthCopy(s, ['color']));\n }\n }\n\n return copied;\n};\n\nexports.copyStyle = copyStyle;\n"],"mappings":";;AAAA,MAAMA,YAAY,GAAGA,CAACC,GAAG,EAAEC,QAAQ,MAAM;EACvC,GAAGD,GAAG;EACN,GAAGC,QAAQ,CAACC,MAAM,CAAC,CAACC,IAAI,EAAEC,GAAG,KAAK;IAChC,IAAIJ,GAAG,CAACI,GAAG,CAAC,EAAED,IAAI,CAACC,GAAG,CAAC,GAAG;MAAC,GAAGJ,GAAG,CAACI,GAAG;IAAC,CAAC;IACvC,OAAOD,IAAI;EACb,CAAC,EAAE,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAME,WAAW,GAAG,SAAAA,CAACC,GAAG,EAAEC,GAAG,EAAEH,GAAG,EAAoB;EAAA,IAAlBH,QAAQ,GAAAO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAC/C,IAAIF,GAAG,CAACF,GAAG,CAAC,EAAEG,GAAG,CAACH,GAAG,CAAC,GAAGL,YAAY,CAACO,GAAG,CAACF,GAAG,CAAC,EAAEH,QAAQ,CAAC;AAC3D,CAAC;AAED,MAAMU,UAAU,GAAGX,GAAG,IAAIY,MAAM,CAACC,IAAI,CAACb,GAAG,CAAC,CAACS,MAAM,KAAK,CAAC;AAEvD,MAAMK,SAAS,GAAGC,KAAK,IAAI;EACzB,IAAI,CAACA,KAAK,EAAE,OAAOA,KAAK;EACxB,IAAIJ,UAAU,CAACI,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;EAEhC,MAAMC,MAAM,GAAG;IAAC,GAAGD;EAAK,CAAC;EAEzBV,WAAW,CAACU,KAAK,EAAEC,MAAM,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;EAC7CX,WAAW,CAACU,KAAK,EAAEC,MAAM,EAAE,WAAW,CAAC;EACvCX,WAAW,CAACU,KAAK,EAAEC,MAAM,EAAE,YAAY,CAAC;EACxC,IAAID,KAAK,CAACE,MAAM,EAAE;IAChBZ,WAAW,CAACU,KAAK,EAAEC,MAAM,EAAE,QAAQ,CAAC;IACpCX,WAAW,CAACU,KAAK,CAACE,MAAM,EAAED,MAAM,CAACC,MAAM,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;IAC1DZ,WAAW,CAACU,KAAK,CAACE,MAAM,EAAED,MAAM,CAACC,MAAM,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;IAC3DZ,WAAW,CAACU,KAAK,CAACE,MAAM,EAAED,MAAM,CAACC,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7DZ,WAAW,CAACU,KAAK,CAACE,MAAM,EAAED,MAAM,CAACC,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;IAC5DZ,WAAW,CAACU,KAAK,CAACE,MAAM,EAAED,MAAM,CAACC,MAAM,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;EACjE;EAEA,IAAIF,KAAK,CAACG,IAAI,EAAE;IACdb,WAAW,CAACU,KAAK,EAAEC,MAAM,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpE,IAAID,KAAK,CAACG,IAAI,CAACC,KAAK,EAAE;MACpBH,MAAM,CAACE,IAAI,CAACC,KAAK,GAAGJ,KAAK,CAACG,IAAI,CAACC,KAAK,CAACC,GAAG,CAACC,CAAC,IAAItB,YAAY,CAACsB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E;EACF;EAEA,OAAOL,MAAM;AACf,CAAC;AAEDM,OAAO,CAACR,SAAS,GAAGA,SAAS","ignoreList":[]}
|
|
@@ -29,7 +29,7 @@ const Encryptor = {
|
|
|
29
29
|
hashAlgorithm = hashAlgorithm.toLowerCase();
|
|
30
30
|
const hashes = crypto.getHashes();
|
|
31
31
|
if (hashes.indexOf(hashAlgorithm) < 0) {
|
|
32
|
-
throw new Error(
|
|
32
|
+
throw new Error(`Hash algorithm '${hashAlgorithm}' not supported!`);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
// Password must be in unicode buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryptor.js","names":["crypto","require","Encryptor","hash","algorithm","createHash","_len","arguments","length","buffers","Array","_key","update","Buffer","concat","digest","convertPasswordToHash","password","hashAlgorithm","saltValue","spinCount","toLowerCase","hashes","getHashes","indexOf","Error","passwordBuffer","from","key","i","iterator","alloc","writeUInt32LE","toString","randomBytes","size","module","exports"],"sources":["../../../lib/utils/encryptor.js"],"sourcesContent":["'use strict';\n\nconst crypto = require('crypto');\n\nconst Encryptor = {\n /**\n * Calculate a hash of the concatenated buffers with the given algorithm.\n * @param {string} algorithm - The hash algorithm.\n * @returns {Buffer} The hash\n */\n hash(algorithm, ...buffers) {\n const hash = crypto.createHash(algorithm);\n hash.update(Buffer.concat(buffers));\n return hash.digest();\n },\n /**\n * Convert a password into an encryption key\n * @param {string} password - The password\n * @param {string} hashAlgorithm - The hash algoritm\n * @param {string} saltValue - The salt value\n * @param {number} spinCount - The spin count\n * @param {number} keyBits - The length of the key in bits\n * @param {Buffer} blockKey - The block key\n * @returns {Buffer} The encryption key\n */\n convertPasswordToHash(password, hashAlgorithm, saltValue, spinCount) {\n hashAlgorithm = hashAlgorithm.toLowerCase();\n const hashes = crypto.getHashes();\n if (hashes.indexOf(hashAlgorithm) < 0) {\n throw new Error(`Hash algorithm '${hashAlgorithm}' not supported!`);\n }\n\n // Password must be in unicode buffer\n const passwordBuffer = Buffer.from(password, 'utf16le');\n // Generate the initial hash\n let key = this.hash(hashAlgorithm, Buffer.from(saltValue, 'base64'), passwordBuffer);\n // Now regenerate until spin count\n for (let i = 0; i < spinCount; i++) {\n const iterator = Buffer.alloc(4);\n // this is the 'special' element of Excel password hashing\n // that stops us from using crypto.pbkdf2()\n iterator.writeUInt32LE(i, 0);\n key = this.hash(hashAlgorithm, key, iterator);\n }\n return key.toString('base64');\n },\n /**\n * Generates cryptographically strong pseudo-random data.\n * @param size The size argument is a number indicating the number of bytes to generate.\n */\n randomBytes(size) {\n return crypto.randomBytes(size);\n },\n};\nmodule.exports = Encryptor;\n"],"mappings":"AAAA,YAAY;;AAEZ,MAAMA,MAAM,GAAGC,OAAO,CAAC,QAAQ,CAAC;AAEhC,MAAMC,SAAS,GAAG;EAChB;AACF;AACA;AACA;AACA;EACEC,IAAIA,CAACC,SAAS,EAAc;IAC1B,MAAMD,IAAI,GAAGH,MAAM,CAACK,UAAU,CAACD,SAAS,CAAC;IAAC,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EADzBC,OAAO,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAPF,OAAO,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;IAAA;IAExBR,IAAI,CAACS,MAAM,CAACC,MAAM,CAACC,MAAM,CAACL,OAAO,CAAC,CAAC;IACnC,OAAON,IAAI,CAACY,MAAM,CAAC,CAAC;EACtB,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,qBAAqBA,CAACC,QAAQ,EAAEC,aAAa,EAAEC,SAAS,EAAEC,SAAS,EAAE;IACnEF,aAAa,GAAGA,aAAa,CAACG,WAAW,CAAC,CAAC;IAC3C,MAAMC,MAAM,GAAGtB,MAAM,CAACuB,SAAS,CAAC,CAAC;IACjC,IAAID,MAAM,CAACE,OAAO,CAACN,aAAa,CAAC,GAAG,CAAC,EAAE;MACrC,MAAM,IAAIO,KAAK,
|
|
1
|
+
{"version":3,"file":"encryptor.js","names":["crypto","require","Encryptor","hash","algorithm","createHash","_len","arguments","length","buffers","Array","_key","update","Buffer","concat","digest","convertPasswordToHash","password","hashAlgorithm","saltValue","spinCount","toLowerCase","hashes","getHashes","indexOf","Error","passwordBuffer","from","key","i","iterator","alloc","writeUInt32LE","toString","randomBytes","size","module","exports"],"sources":["../../../lib/utils/encryptor.js"],"sourcesContent":["'use strict';\n\nconst crypto = require('crypto');\n\nconst Encryptor = {\n /**\n * Calculate a hash of the concatenated buffers with the given algorithm.\n * @param {string} algorithm - The hash algorithm.\n * @returns {Buffer} The hash\n */\n hash(algorithm, ...buffers) {\n const hash = crypto.createHash(algorithm);\n hash.update(Buffer.concat(buffers));\n return hash.digest();\n },\n /**\n * Convert a password into an encryption key\n * @param {string} password - The password\n * @param {string} hashAlgorithm - The hash algoritm\n * @param {string} saltValue - The salt value\n * @param {number} spinCount - The spin count\n * @param {number} keyBits - The length of the key in bits\n * @param {Buffer} blockKey - The block key\n * @returns {Buffer} The encryption key\n */\n convertPasswordToHash(password, hashAlgorithm, saltValue, spinCount) {\n hashAlgorithm = hashAlgorithm.toLowerCase();\n const hashes = crypto.getHashes();\n if (hashes.indexOf(hashAlgorithm) < 0) {\n throw new Error(`Hash algorithm '${hashAlgorithm}' not supported!`);\n }\n\n // Password must be in unicode buffer\n const passwordBuffer = Buffer.from(password, 'utf16le');\n // Generate the initial hash\n let key = this.hash(hashAlgorithm, Buffer.from(saltValue, 'base64'), passwordBuffer);\n // Now regenerate until spin count\n for (let i = 0; i < spinCount; i++) {\n const iterator = Buffer.alloc(4);\n // this is the 'special' element of Excel password hashing\n // that stops us from using crypto.pbkdf2()\n iterator.writeUInt32LE(i, 0);\n key = this.hash(hashAlgorithm, key, iterator);\n }\n return key.toString('base64');\n },\n /**\n * Generates cryptographically strong pseudo-random data.\n * @param size The size argument is a number indicating the number of bytes to generate.\n */\n randomBytes(size) {\n return crypto.randomBytes(size);\n },\n};\nmodule.exports = Encryptor;\n"],"mappings":"AAAA,YAAY;;AAEZ,MAAMA,MAAM,GAAGC,OAAO,CAAC,QAAQ,CAAC;AAEhC,MAAMC,SAAS,GAAG;EAChB;AACF;AACA;AACA;AACA;EACEC,IAAIA,CAACC,SAAS,EAAc;IAC1B,MAAMD,IAAI,GAAGH,MAAM,CAACK,UAAU,CAACD,SAAS,CAAC;IAAC,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EADzBC,OAAO,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAPF,OAAO,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;IAAA;IAExBR,IAAI,CAACS,MAAM,CAACC,MAAM,CAACC,MAAM,CAACL,OAAO,CAAC,CAAC;IACnC,OAAON,IAAI,CAACY,MAAM,CAAC,CAAC;EACtB,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,qBAAqBA,CAACC,QAAQ,EAAEC,aAAa,EAAEC,SAAS,EAAEC,SAAS,EAAE;IACnEF,aAAa,GAAGA,aAAa,CAACG,WAAW,CAAC,CAAC;IAC3C,MAAMC,MAAM,GAAGtB,MAAM,CAACuB,SAAS,CAAC,CAAC;IACjC,IAAID,MAAM,CAACE,OAAO,CAACN,aAAa,CAAC,GAAG,CAAC,EAAE;MACrC,MAAM,IAAIO,KAAK,CAAC,mBAAmBP,aAAa,kBAAkB,CAAC;IACrE;;IAEA;IACA,MAAMQ,cAAc,GAAGb,MAAM,CAACc,IAAI,CAACV,QAAQ,EAAE,SAAS,CAAC;IACvD;IACA,IAAIW,GAAG,GAAG,IAAI,CAACzB,IAAI,CAACe,aAAa,EAAEL,MAAM,CAACc,IAAI,CAACR,SAAS,EAAE,QAAQ,CAAC,EAAEO,cAAc,CAAC;IACpF;IACA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,SAAS,EAAES,CAAC,EAAE,EAAE;MAClC,MAAMC,QAAQ,GAAGjB,MAAM,CAACkB,KAAK,CAAC,CAAC,CAAC;MAChC;MACA;MACAD,QAAQ,CAACE,aAAa,CAACH,CAAC,EAAE,CAAC,CAAC;MAC5BD,GAAG,GAAG,IAAI,CAACzB,IAAI,CAACe,aAAa,EAAEU,GAAG,EAAEE,QAAQ,CAAC;IAC/C;IACA,OAAOF,GAAG,CAACK,QAAQ,CAAC,QAAQ,CAAC;EAC/B,CAAC;EACD;AACF;AACA;AACA;EACEC,WAAWA,CAACC,IAAI,EAAE;IAChB,OAAOnC,MAAM,CAACkC,WAAW,CAACC,IAAI,CAAC;EACjC;AACF,CAAC;AACDC,MAAM,CAACC,OAAO,GAAGnC,SAAS","ignoreList":[]}
|
|
@@ -1,45 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
stream.on('data', data => contents.push(data));
|
|
12
|
-
let resolveStreamEndedPromise;
|
|
13
|
-
const streamEndedPromise = new Promise(resolve => resolveStreamEndedPromise = resolve);
|
|
14
|
-
let ended = false;
|
|
15
|
-
stream.on('end', () => {
|
|
16
|
-
ended = true;
|
|
17
|
-
resolveStreamEndedPromise();
|
|
18
|
-
});
|
|
19
|
-
let error = false;
|
|
20
|
-
stream.on('error', err => {
|
|
21
|
-
error = err;
|
|
22
|
-
resolveStreamEndedPromise();
|
|
23
|
-
});
|
|
24
|
-
while (!ended || contents.length > 0) {
|
|
25
|
-
if (contents.length === 0) {
|
|
26
|
-
stream.resume();
|
|
27
|
-
// eslint-disable-next-line no-await-in-loop
|
|
28
|
-
yield _awaitAsyncGenerator(Promise.race([once(stream, 'data'), streamEndedPromise]));
|
|
29
|
-
} else {
|
|
30
|
-
stream.pause();
|
|
31
|
-
const data = contents.shift();
|
|
32
|
-
yield data;
|
|
33
|
-
}
|
|
34
|
-
if (error) throw error;
|
|
35
|
-
}
|
|
3
|
+
module.exports = async function* iterateStream(stream) {
|
|
4
|
+
const contents = [];
|
|
5
|
+
stream.on('data', data => contents.push(data));
|
|
6
|
+
let resolveStreamEndedPromise;
|
|
7
|
+
const streamEndedPromise = new Promise(resolve => resolveStreamEndedPromise = resolve);
|
|
8
|
+
let ended = false;
|
|
9
|
+
stream.on('end', () => {
|
|
10
|
+
ended = true;
|
|
36
11
|
resolveStreamEndedPromise();
|
|
37
12
|
});
|
|
38
|
-
|
|
39
|
-
|
|
13
|
+
let error = false;
|
|
14
|
+
stream.on('error', err => {
|
|
15
|
+
error = err;
|
|
16
|
+
resolveStreamEndedPromise();
|
|
17
|
+
});
|
|
18
|
+
while (!ended || contents.length > 0) {
|
|
19
|
+
if (contents.length === 0) {
|
|
20
|
+
stream.resume();
|
|
21
|
+
// eslint-disable-next-line no-await-in-loop
|
|
22
|
+
await Promise.race([once(stream, 'data'), streamEndedPromise]);
|
|
23
|
+
} else {
|
|
24
|
+
stream.pause();
|
|
25
|
+
const data = contents.shift();
|
|
26
|
+
yield data;
|
|
27
|
+
}
|
|
28
|
+
if (error) throw error;
|
|
40
29
|
}
|
|
41
|
-
|
|
42
|
-
}
|
|
30
|
+
resolveStreamEndedPromise();
|
|
31
|
+
};
|
|
43
32
|
function once(eventEmitter, type) {
|
|
44
33
|
// TODO: Use require('events').once when node v10 is dropped
|
|
45
34
|
return new Promise(resolve => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterate-stream.js","names":["module","exports","
|
|
1
|
+
{"version":3,"file":"iterate-stream.js","names":["module","exports","iterateStream","stream","contents","on","data","push","resolveStreamEndedPromise","streamEndedPromise","Promise","resolve","ended","error","err","length","resume","race","once","pause","shift","eventEmitter","type","fired","handler","removeListener","addListener"],"sources":["../../../lib/utils/iterate-stream.js"],"sourcesContent":["module.exports = async function* iterateStream(stream) {\n const contents = [];\n stream.on('data', data => contents.push(data));\n\n let resolveStreamEndedPromise;\n const streamEndedPromise = new Promise(resolve => (resolveStreamEndedPromise = resolve));\n\n let ended = false;\n stream.on('end', () => {\n ended = true;\n resolveStreamEndedPromise();\n });\n\n let error = false;\n stream.on('error', err => {\n error = err;\n resolveStreamEndedPromise();\n });\n\n while (!ended || contents.length > 0) {\n if (contents.length === 0) {\n stream.resume();\n // eslint-disable-next-line no-await-in-loop\n await Promise.race([once(stream, 'data'), streamEndedPromise]);\n } else {\n stream.pause();\n const data = contents.shift();\n yield data;\n }\n if (error) throw error;\n }\n resolveStreamEndedPromise();\n};\n\nfunction once(eventEmitter, type) {\n // TODO: Use require('events').once when node v10 is dropped\n return new Promise(resolve => {\n let fired = false;\n const handler = () => {\n if (!fired) {\n fired = true;\n eventEmitter.removeListener(type, handler);\n resolve();\n }\n };\n eventEmitter.addListener(type, handler);\n });\n}\n"],"mappings":";;AAAAA,MAAM,CAACC,OAAO,GAAG,gBAAgBC,aAAaA,CAACC,MAAM,EAAE;EACrD,MAAMC,QAAQ,GAAG,EAAE;EACnBD,MAAM,CAACE,EAAE,CAAC,MAAM,EAAEC,IAAI,IAAIF,QAAQ,CAACG,IAAI,CAACD,IAAI,CAAC,CAAC;EAE9C,IAAIE,yBAAyB;EAC7B,MAAMC,kBAAkB,GAAG,IAAIC,OAAO,CAACC,OAAO,IAAKH,yBAAyB,GAAGG,OAAQ,CAAC;EAExF,IAAIC,KAAK,GAAG,KAAK;EACjBT,MAAM,CAACE,EAAE,CAAC,KAAK,EAAE,MAAM;IACrBO,KAAK,GAAG,IAAI;IACZJ,yBAAyB,CAAC,CAAC;EAC7B,CAAC,CAAC;EAEF,IAAIK,KAAK,GAAG,KAAK;EACjBV,MAAM,CAACE,EAAE,CAAC,OAAO,EAAES,GAAG,IAAI;IACxBD,KAAK,GAAGC,GAAG;IACXN,yBAAyB,CAAC,CAAC;EAC7B,CAAC,CAAC;EAEF,OAAO,CAACI,KAAK,IAAIR,QAAQ,CAACW,MAAM,GAAG,CAAC,EAAE;IACpC,IAAIX,QAAQ,CAACW,MAAM,KAAK,CAAC,EAAE;MACzBZ,MAAM,CAACa,MAAM,CAAC,CAAC;MACf;MACA,MAAMN,OAAO,CAACO,IAAI,CAAC,CAACC,IAAI,CAACf,MAAM,EAAE,MAAM,CAAC,EAAEM,kBAAkB,CAAC,CAAC;IAChE,CAAC,MAAM;MACLN,MAAM,CAACgB,KAAK,CAAC,CAAC;MACd,MAAMb,IAAI,GAAGF,QAAQ,CAACgB,KAAK,CAAC,CAAC;MAC7B,MAAMd,IAAI;IACZ;IACA,IAAIO,KAAK,EAAE,MAAMA,KAAK;EACxB;EACAL,yBAAyB,CAAC,CAAC;AAC7B,CAAC;AAED,SAASU,IAAIA,CAACG,YAAY,EAAEC,IAAI,EAAE;EAChC;EACA,OAAO,IAAIZ,OAAO,CAACC,OAAO,IAAI;IAC5B,IAAIY,KAAK,GAAG,KAAK;IACjB,MAAMC,OAAO,GAAGA,CAAA,KAAM;MACpB,IAAI,CAACD,KAAK,EAAE;QACVA,KAAK,GAAG,IAAI;QACZF,YAAY,CAACI,cAAc,CAACH,IAAI,EAAEE,OAAO,CAAC;QAC1Cb,OAAO,CAAC,CAAC;MACX;IACF,CAAC;IACDU,YAAY,CAACK,WAAW,CAACJ,IAAI,EAAEE,OAAO,CAAC;EACzC,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); }
|
|
4
|
-
function _wrapAsyncGenerator(e) { return function () { return new AsyncGenerator(e.apply(this, arguments)); }; }
|
|
5
|
-
function AsyncGenerator(e) { var r, t; function resume(r, t) { try { var n = e[r](t), o = n.value, u = o instanceof _OverloadYield; Promise.resolve(u ? o.v : o).then(function (t) { if (u) { var i = "return" === r ? "return" : "next"; if (!o.k || t.done) return resume(i, t); t = e[i](t).value; } settle(n.done ? "return" : "normal", t); }, function (e) { resume("throw", e); }); } catch (e) { settle("throw", e); } } function settle(e, n) { switch (e) { case "return": r.resolve({ value: n, done: !0 }); break; case "throw": r.reject(n); break; default: r.resolve({ value: n, done: !1 }); } (r = r.next) ? resume(r.key, r.arg) : t = null; } this._invoke = function (e, n) { return new Promise(function (o, u) { var i = { key: e, arg: n, resolve: o, reject: u, next: null }; t ? t = t.next = i : (r = t = i, resume(e, n)); }); }, "function" != typeof e.return && (this.return = void 0); }
|
|
6
|
-
AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; }, AsyncGenerator.prototype.next = function (e) { return this._invoke("next", e); }, AsyncGenerator.prototype.throw = function (e) { return this._invoke("throw", e); }, AsyncGenerator.prototype.return = function (e) { return this._invoke("return", e); };
|
|
7
|
-
function _OverloadYield(e, d) { this.v = e, this.k = d; }
|
|
8
|
-
function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
9
|
-
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function (r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function (r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
|
|
10
3
|
const {
|
|
11
4
|
SaxesParser
|
|
12
5
|
} = require('saxes');
|
|
@@ -16,65 +9,39 @@ const {
|
|
|
16
9
|
const {
|
|
17
10
|
bufferToString
|
|
18
11
|
} = require('./browser-buffer-decode');
|
|
19
|
-
module.exports =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
error = err;
|
|
30
|
-
});
|
|
31
|
-
let events = [];
|
|
32
|
-
saxesParser.on('opentag', value => events.push({
|
|
33
|
-
eventType: 'opentag',
|
|
34
|
-
value
|
|
35
|
-
}));
|
|
36
|
-
saxesParser.on('text', value => events.push({
|
|
37
|
-
eventType: 'text',
|
|
38
|
-
value
|
|
39
|
-
}));
|
|
40
|
-
saxesParser.on('closetag', value => events.push({
|
|
41
|
-
eventType: 'closetag',
|
|
42
|
-
value
|
|
43
|
-
}));
|
|
44
|
-
var _iteratorAbruptCompletion = false;
|
|
45
|
-
var _didIteratorError = false;
|
|
46
|
-
var _iteratorError;
|
|
47
|
-
try {
|
|
48
|
-
for (var _iterator = _asyncIterator(iterable), _step; _iteratorAbruptCompletion = !(_step = yield _awaitAsyncGenerator(_iterator.next())).done; _iteratorAbruptCompletion = false) {
|
|
49
|
-
const chunk = _step.value;
|
|
50
|
-
{
|
|
51
|
-
saxesParser.write(bufferToString(chunk));
|
|
52
|
-
// saxesParser.write and saxesParser.on() are synchronous,
|
|
53
|
-
// so we can only reach the below line once all events have been emitted
|
|
54
|
-
if (error) throw error;
|
|
55
|
-
// As a performance optimization, we gather all events instead of passing
|
|
56
|
-
// them one by one, which would cause each event to go through the event queue
|
|
57
|
-
yield events;
|
|
58
|
-
events = [];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
} catch (err) {
|
|
62
|
-
_didIteratorError = true;
|
|
63
|
-
_iteratorError = err;
|
|
64
|
-
} finally {
|
|
65
|
-
try {
|
|
66
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
67
|
-
yield _awaitAsyncGenerator(_iterator.return());
|
|
68
|
-
}
|
|
69
|
-
} finally {
|
|
70
|
-
if (_didIteratorError) {
|
|
71
|
-
throw _iteratorError;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
12
|
+
module.exports = async function* (iterable) {
|
|
13
|
+
// TODO: Remove once node v8 is deprecated
|
|
14
|
+
// Detect and upgrade old streams
|
|
15
|
+
if (iterable.pipe && !iterable[Symbol.asyncIterator]) {
|
|
16
|
+
iterable = iterable.pipe(new PassThrough());
|
|
17
|
+
}
|
|
18
|
+
const saxesParser = new SaxesParser();
|
|
19
|
+
let error;
|
|
20
|
+
saxesParser.on('error', err => {
|
|
21
|
+
error = err;
|
|
75
22
|
});
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
23
|
+
let events = [];
|
|
24
|
+
saxesParser.on('opentag', value => events.push({
|
|
25
|
+
eventType: 'opentag',
|
|
26
|
+
value
|
|
27
|
+
}));
|
|
28
|
+
saxesParser.on('text', value => events.push({
|
|
29
|
+
eventType: 'text',
|
|
30
|
+
value
|
|
31
|
+
}));
|
|
32
|
+
saxesParser.on('closetag', value => events.push({
|
|
33
|
+
eventType: 'closetag',
|
|
34
|
+
value
|
|
35
|
+
}));
|
|
36
|
+
for await (const chunk of iterable) {
|
|
37
|
+
saxesParser.write(bufferToString(chunk));
|
|
38
|
+
// saxesParser.write and saxesParser.on() are synchronous,
|
|
39
|
+
// so we can only reach the below line once all events have been emitted
|
|
40
|
+
if (error) throw error;
|
|
41
|
+
// As a performance optimization, we gather all events instead of passing
|
|
42
|
+
// them one by one, which would cause each event to go through the event queue
|
|
43
|
+
yield events;
|
|
44
|
+
events = [];
|
|
45
|
+
}
|
|
46
|
+
};
|
|
80
47
|
//# sourceMappingURL=parse-sax.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-sax.js","names":["SaxesParser","require","PassThrough","bufferToString","module","exports","
|
|
1
|
+
{"version":3,"file":"parse-sax.js","names":["SaxesParser","require","PassThrough","bufferToString","module","exports","iterable","pipe","Symbol","asyncIterator","saxesParser","error","on","err","events","value","push","eventType","chunk","write"],"sources":["../../../lib/utils/parse-sax.js"],"sourcesContent":["const {SaxesParser} = require('saxes');\nconst {PassThrough} = require('readable-stream');\nconst {bufferToString} = require('./browser-buffer-decode');\n\nmodule.exports = async function* (iterable) {\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old streams\n if (iterable.pipe && !iterable[Symbol.asyncIterator]) {\n iterable = iterable.pipe(new PassThrough());\n }\n const saxesParser = new SaxesParser();\n let error;\n saxesParser.on('error', err => {\n error = err;\n });\n let events = [];\n saxesParser.on('opentag', value => events.push({eventType: 'opentag', value}));\n saxesParser.on('text', value => events.push({eventType: 'text', value}));\n saxesParser.on('closetag', value => events.push({eventType: 'closetag', value}));\n for await (const chunk of iterable) {\n saxesParser.write(bufferToString(chunk));\n // saxesParser.write and saxesParser.on() are synchronous,\n // so we can only reach the below line once all events have been emitted\n if (error) throw error;\n // As a performance optimization, we gather all events instead of passing\n // them one by one, which would cause each event to go through the event queue\n yield events;\n events = [];\n }\n};\n"],"mappings":";;AAAA,MAAM;EAACA;AAAW,CAAC,GAAGC,OAAO,CAAC,OAAO,CAAC;AACtC,MAAM;EAACC;AAAW,CAAC,GAAGD,OAAO,CAAC,iBAAiB,CAAC;AAChD,MAAM;EAACE;AAAc,CAAC,GAAGF,OAAO,CAAC,yBAAyB,CAAC;AAE3DG,MAAM,CAACC,OAAO,GAAG,iBAAiBC,QAAQ,EAAE;EAC1C;EACA;EACA,IAAIA,QAAQ,CAACC,IAAI,IAAI,CAACD,QAAQ,CAACE,MAAM,CAACC,aAAa,CAAC,EAAE;IACpDH,QAAQ,GAAGA,QAAQ,CAACC,IAAI,CAAC,IAAIL,WAAW,CAAC,CAAC,CAAC;EAC7C;EACA,MAAMQ,WAAW,GAAG,IAAIV,WAAW,CAAC,CAAC;EACrC,IAAIW,KAAK;EACTD,WAAW,CAACE,EAAE,CAAC,OAAO,EAAEC,GAAG,IAAI;IAC7BF,KAAK,GAAGE,GAAG;EACb,CAAC,CAAC;EACF,IAAIC,MAAM,GAAG,EAAE;EACfJ,WAAW,CAACE,EAAE,CAAC,SAAS,EAAEG,KAAK,IAAID,MAAM,CAACE,IAAI,CAAC;IAACC,SAAS,EAAE,SAAS;IAAEF;EAAK,CAAC,CAAC,CAAC;EAC9EL,WAAW,CAACE,EAAE,CAAC,MAAM,EAAEG,KAAK,IAAID,MAAM,CAACE,IAAI,CAAC;IAACC,SAAS,EAAE,MAAM;IAAEF;EAAK,CAAC,CAAC,CAAC;EACxEL,WAAW,CAACE,EAAE,CAAC,UAAU,EAAEG,KAAK,IAAID,MAAM,CAACE,IAAI,CAAC;IAACC,SAAS,EAAE,UAAU;IAAEF;EAAK,CAAC,CAAC,CAAC;EAChF,WAAW,MAAMG,KAAK,IAAIZ,QAAQ,EAAE;IAClCI,WAAW,CAACS,KAAK,CAAChB,cAAc,CAACe,KAAK,CAAC,CAAC;IACxC;IACA;IACA,IAAIP,KAAK,EAAE,MAAMA,KAAK;IACtB;IACA;IACA,MAAMG,MAAM;IACZA,MAAM,GAAG,EAAE;EACb;AACF,CAAC","ignoreList":[]}
|
package/dist/es5/utils/utils.js
CHANGED
|
@@ -68,7 +68,7 @@ const utils = {
|
|
|
68
68
|
},
|
|
69
69
|
getRelsPath(filepath) {
|
|
70
70
|
const path = utils.parsePath(filepath);
|
|
71
|
-
return
|
|
71
|
+
return `${path.path}/_rels/${path.name}.rels`;
|
|
72
72
|
},
|
|
73
73
|
xmlEncode(text) {
|
|
74
74
|
const regexResult = xmlDecodeRegex.exec(text);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["fs","require","inherits","cls","superCtor","statics","prototype","super_","Object","keys","forEach","i","defineProperty","getOwnPropertyDescriptor","properties","constructor","value","enumerable","writable","configurable","create","xmlDecodeRegex","utils","nop","promiseImmediate","Promise","resolve","global","setImmediate","setTimeout","dateToExcel","d","date1904","getTime","excelToDate","v","millisecondSinceEpoch","Math","round","Date","parsePath","filepath","last","lastIndexOf","path","substring","name","getRelsPath","concat","xmlEncode","text","regexResult","exec","result","escape","lastIndex","index","length","charCode","charCodeAt","xmlDecode","replace","c","validInt","parseInt","Number","isNaN","isDateFmt","fmt","match","exists","access","constants","F_OK","err","toIsoDateString","dt","toIsoString","subsstr","parseBoolean","range","start","stop","step","arguments","undefined","compareOrder","a","b","toSortedArray","values","Array","from","every","item","isFinite","compareNumbers","sort","objectFromProps","props","reduce","property","module","exports"],"sources":["../../../lib/utils/utils.js"],"sourcesContent":["const fs = require('fs');\n\n// useful stuff\nconst inherits = function(cls, superCtor, statics, prototype) {\n // eslint-disable-next-line no-underscore-dangle\n cls.super_ = superCtor;\n\n if (!prototype) {\n prototype = statics;\n statics = null;\n }\n\n if (statics) {\n Object.keys(statics).forEach(i => {\n Object.defineProperty(cls, i, Object.getOwnPropertyDescriptor(statics, i));\n });\n }\n\n const properties = {\n constructor: {\n value: cls,\n enumerable: false,\n writable: false,\n configurable: true,\n },\n };\n if (prototype) {\n Object.keys(prototype).forEach(i => {\n properties[i] = Object.getOwnPropertyDescriptor(prototype, i);\n });\n }\n\n cls.prototype = Object.create(superCtor.prototype, properties);\n};\n\n// eslint-disable-next-line no-control-regex\nconst xmlDecodeRegex = /[<>&'\"\\x7F\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]/;\nconst utils = {\n nop() {},\n promiseImmediate(value) {\n return new Promise(resolve => {\n if (global.setImmediate) {\n setImmediate(() => {\n resolve(value);\n });\n } else {\n // poorman's setImmediate - must wait at least 1ms\n setTimeout(() => {\n resolve(value);\n }, 1);\n }\n });\n },\n inherits,\n dateToExcel(d, date1904) {\n // eslint-disable-next-line no-mixed-operators\n return 25569 + d.getTime() / (24 * 3600 * 1000) - (date1904 ? 1462 : 0);\n },\n excelToDate(v, date1904) {\n // eslint-disable-next-line no-mixed-operators\n const millisecondSinceEpoch = Math.round((v - 25569 + (date1904 ? 1462 : 0)) * 24 * 3600 * 1000);\n return new Date(millisecondSinceEpoch);\n },\n parsePath(filepath) {\n const last = filepath.lastIndexOf('/');\n return {\n path: filepath.substring(0, last),\n name: filepath.substring(last + 1),\n };\n },\n getRelsPath(filepath) {\n const path = utils.parsePath(filepath);\n return `${path.path}/_rels/${path.name}.rels`;\n },\n xmlEncode(text) {\n const regexResult = xmlDecodeRegex.exec(text);\n if (!regexResult) return text;\n\n let result = '';\n let escape = '';\n let lastIndex = 0;\n let i = regexResult.index;\n for (; i < text.length; i++) {\n const charCode = text.charCodeAt(i);\n switch (charCode) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n case 127:\n escape = '';\n break;\n default: {\n if (charCode <= 31 && (charCode <= 8 || (charCode >= 11 && charCode !== 13))) {\n escape = '';\n break;\n }\n continue;\n }\n }\n if (lastIndex !== i) result += text.substring(lastIndex, i);\n lastIndex = i + 1;\n if (escape) result += escape;\n }\n if (lastIndex !== i) return result + text.substring(lastIndex, i);\n return result;\n },\n xmlDecode(text) {\n return text.replace(/&([a-z]*);/g, c => {\n switch (c) {\n case '<':\n return '<';\n case '>':\n return '>';\n case '&':\n return '&';\n case ''':\n return '\\'';\n case '"':\n return '\"';\n default:\n return c;\n }\n });\n },\n validInt(value) {\n const i = parseInt(value, 10);\n return !Number.isNaN(i) ? i : 0;\n },\n\n isDateFmt(fmt) {\n if (!fmt) {\n return false;\n }\n\n // must remove all chars inside quotes and []\n fmt = fmt.replace(/\\[[^\\]]*]/g, '');\n fmt = fmt.replace(/\"[^\"]*\"/g, '');\n // then check for date formatting chars\n const result = fmt.match(/[ymdhMsb]+/) !== null;\n return result;\n },\n\n fs: {\n exists(path) {\n return new Promise(resolve => {\n fs.access(path, fs.constants.F_OK, err => {\n resolve(!err);\n });\n });\n },\n },\n\n toIsoDateString(dt) {\n return dt.toIsoString().subsstr(0, 10);\n },\n\n parseBoolean(value) {\n return value === true || value === 'true' || value === 1 || value === '1';\n },\n\n *range(start, stop, step = 1) {\n const compareOrder = step > 0 ? (a, b) => a < b : (a, b) => a > b;\n for (let value = start; compareOrder(value, stop); value += step) {\n yield value;\n }\n },\n\n toSortedArray(values) {\n const result = Array.from(values);\n\n // Note: per default, `Array.prototype.sort()` converts values\n // to strings when comparing. Here, if we have numbers, we use\n // numeric sort.\n if (result.every(item => Number.isFinite(item))) {\n const compareNumbers = (a, b) => a - b;\n return result.sort(compareNumbers);\n }\n\n return result.sort();\n },\n\n objectFromProps(props, value = null) {\n // *Note*: Using `reduce` as `Object.fromEntries` requires Node 12+;\n // ExcelJs is >=8.3.0 (as of 2023-10-08).\n // return Object.fromEntries(props.map(property => [property, value]));\n return props.reduce((result, property) => {\n result[property] = value;\n return result;\n }, {});\n },\n};\n\nmodule.exports = utils;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["fs","require","inherits","cls","superCtor","statics","prototype","super_","Object","keys","forEach","i","defineProperty","getOwnPropertyDescriptor","properties","constructor","value","enumerable","writable","configurable","create","xmlDecodeRegex","utils","nop","promiseImmediate","Promise","resolve","global","setImmediate","setTimeout","dateToExcel","d","date1904","getTime","excelToDate","v","millisecondSinceEpoch","Math","round","Date","parsePath","filepath","last","lastIndexOf","path","substring","name","getRelsPath","xmlEncode","text","regexResult","exec","result","escape","lastIndex","index","length","charCode","charCodeAt","xmlDecode","replace","c","validInt","parseInt","Number","isNaN","isDateFmt","fmt","match","exists","access","constants","F_OK","err","toIsoDateString","dt","toIsoString","subsstr","parseBoolean","range","start","stop","step","arguments","undefined","compareOrder","a","b","toSortedArray","values","Array","from","every","item","isFinite","compareNumbers","sort","objectFromProps","props","reduce","property","module","exports"],"sources":["../../../lib/utils/utils.js"],"sourcesContent":["const fs = require('fs');\n\n// useful stuff\nconst inherits = function(cls, superCtor, statics, prototype) {\n // eslint-disable-next-line no-underscore-dangle\n cls.super_ = superCtor;\n\n if (!prototype) {\n prototype = statics;\n statics = null;\n }\n\n if (statics) {\n Object.keys(statics).forEach(i => {\n Object.defineProperty(cls, i, Object.getOwnPropertyDescriptor(statics, i));\n });\n }\n\n const properties = {\n constructor: {\n value: cls,\n enumerable: false,\n writable: false,\n configurable: true,\n },\n };\n if (prototype) {\n Object.keys(prototype).forEach(i => {\n properties[i] = Object.getOwnPropertyDescriptor(prototype, i);\n });\n }\n\n cls.prototype = Object.create(superCtor.prototype, properties);\n};\n\n// eslint-disable-next-line no-control-regex\nconst xmlDecodeRegex = /[<>&'\"\\x7F\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]/;\nconst utils = {\n nop() {},\n promiseImmediate(value) {\n return new Promise(resolve => {\n if (global.setImmediate) {\n setImmediate(() => {\n resolve(value);\n });\n } else {\n // poorman's setImmediate - must wait at least 1ms\n setTimeout(() => {\n resolve(value);\n }, 1);\n }\n });\n },\n inherits,\n dateToExcel(d, date1904) {\n // eslint-disable-next-line no-mixed-operators\n return 25569 + d.getTime() / (24 * 3600 * 1000) - (date1904 ? 1462 : 0);\n },\n excelToDate(v, date1904) {\n // eslint-disable-next-line no-mixed-operators\n const millisecondSinceEpoch = Math.round((v - 25569 + (date1904 ? 1462 : 0)) * 24 * 3600 * 1000);\n return new Date(millisecondSinceEpoch);\n },\n parsePath(filepath) {\n const last = filepath.lastIndexOf('/');\n return {\n path: filepath.substring(0, last),\n name: filepath.substring(last + 1),\n };\n },\n getRelsPath(filepath) {\n const path = utils.parsePath(filepath);\n return `${path.path}/_rels/${path.name}.rels`;\n },\n xmlEncode(text) {\n const regexResult = xmlDecodeRegex.exec(text);\n if (!regexResult) return text;\n\n let result = '';\n let escape = '';\n let lastIndex = 0;\n let i = regexResult.index;\n for (; i < text.length; i++) {\n const charCode = text.charCodeAt(i);\n switch (charCode) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n case 127:\n escape = '';\n break;\n default: {\n if (charCode <= 31 && (charCode <= 8 || (charCode >= 11 && charCode !== 13))) {\n escape = '';\n break;\n }\n continue;\n }\n }\n if (lastIndex !== i) result += text.substring(lastIndex, i);\n lastIndex = i + 1;\n if (escape) result += escape;\n }\n if (lastIndex !== i) return result + text.substring(lastIndex, i);\n return result;\n },\n xmlDecode(text) {\n return text.replace(/&([a-z]*);/g, c => {\n switch (c) {\n case '<':\n return '<';\n case '>':\n return '>';\n case '&':\n return '&';\n case ''':\n return '\\'';\n case '"':\n return '\"';\n default:\n return c;\n }\n });\n },\n validInt(value) {\n const i = parseInt(value, 10);\n return !Number.isNaN(i) ? i : 0;\n },\n\n isDateFmt(fmt) {\n if (!fmt) {\n return false;\n }\n\n // must remove all chars inside quotes and []\n fmt = fmt.replace(/\\[[^\\]]*]/g, '');\n fmt = fmt.replace(/\"[^\"]*\"/g, '');\n // then check for date formatting chars\n const result = fmt.match(/[ymdhMsb]+/) !== null;\n return result;\n },\n\n fs: {\n exists(path) {\n return new Promise(resolve => {\n fs.access(path, fs.constants.F_OK, err => {\n resolve(!err);\n });\n });\n },\n },\n\n toIsoDateString(dt) {\n return dt.toIsoString().subsstr(0, 10);\n },\n\n parseBoolean(value) {\n return value === true || value === 'true' || value === 1 || value === '1';\n },\n\n *range(start, stop, step = 1) {\n const compareOrder = step > 0 ? (a, b) => a < b : (a, b) => a > b;\n for (let value = start; compareOrder(value, stop); value += step) {\n yield value;\n }\n },\n\n toSortedArray(values) {\n const result = Array.from(values);\n\n // Note: per default, `Array.prototype.sort()` converts values\n // to strings when comparing. Here, if we have numbers, we use\n // numeric sort.\n if (result.every(item => Number.isFinite(item))) {\n const compareNumbers = (a, b) => a - b;\n return result.sort(compareNumbers);\n }\n\n return result.sort();\n },\n\n objectFromProps(props, value = null) {\n // *Note*: Using `reduce` as `Object.fromEntries` requires Node 12+;\n // ExcelJs is >=8.3.0 (as of 2023-10-08).\n // return Object.fromEntries(props.map(property => [property, value]));\n return props.reduce((result, property) => {\n result[property] = value;\n return result;\n }, {});\n },\n};\n\nmodule.exports = utils;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ const CLOSE_ANGLE = '>';
|
|
|
9
9
|
const OPEN_ANGLE_SLASH = '</';
|
|
10
10
|
const CLOSE_SLASH_ANGLE = '/>';
|
|
11
11
|
function pushAttribute(xml, name, value) {
|
|
12
|
-
xml.push(
|
|
12
|
+
xml.push(` ${name}="${utils.xmlEncode(value.toString())}"`);
|
|
13
13
|
}
|
|
14
14
|
function pushAttributes(xml, attributes) {
|
|
15
15
|
if (attributes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml-stream.js","names":["_","require","utils","OPEN_ANGLE","CLOSE_ANGLE","OPEN_ANGLE_SLASH","CLOSE_SLASH_ANGLE","pushAttribute","xml","name","value","push","
|
|
1
|
+
{"version":3,"file":"xml-stream.js","names":["_","require","utils","OPEN_ANGLE","CLOSE_ANGLE","OPEN_ANGLE_SLASH","CLOSE_SLASH_ANGLE","pushAttribute","xml","name","value","push","xmlEncode","toString","pushAttributes","attributes","tmp","each","undefined","join","XmlStream","constructor","_xml","_stack","_rollbacks","tos","length","cursor","openXml","docAttributes","openNode","parent","open","leaf","addAttribute","Error","addAttributes","attrs","writeText","text","writeXml","closeNode","node","pop","leafNode","closeAll","addRollback","stack","commit","rollback","r","splice","StdDocAttributes","version","encoding","standalone","module","exports"],"sources":["../../../lib/utils/xml-stream.js"],"sourcesContent":["const _ = require('./under-dash');\n\nconst utils = require('./utils');\n\n// constants\nconst OPEN_ANGLE = '<';\nconst CLOSE_ANGLE = '>';\nconst OPEN_ANGLE_SLASH = '</';\nconst CLOSE_SLASH_ANGLE = '/>';\n\nfunction pushAttribute(xml, name, value) {\n xml.push(` ${name}=\"${utils.xmlEncode(value.toString())}\"`);\n}\nfunction pushAttributes(xml, attributes) {\n if (attributes) {\n const tmp = [];\n _.each(attributes, (value, name) => {\n if (value !== undefined) {\n pushAttribute(tmp, name, value);\n }\n });\n xml.push(tmp.join(''));\n }\n}\n\nclass XmlStream {\n constructor() {\n this._xml = [];\n this._stack = [];\n this._rollbacks = [];\n }\n\n get tos() {\n return this._stack.length ? this._stack[this._stack.length - 1] : undefined;\n }\n\n get cursor() {\n // handy way to track whether anything has been added\n return this._xml.length;\n }\n\n openXml(docAttributes) {\n const xml = this._xml;\n // <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n xml.push('<?xml');\n pushAttributes(xml, docAttributes);\n xml.push('?>\\n');\n }\n\n openNode(name, attributes) {\n const parent = this.tos;\n const xml = this._xml;\n if (parent && this.open) {\n xml.push(CLOSE_ANGLE);\n }\n\n this._stack.push(name);\n\n // start streaming node\n xml.push(OPEN_ANGLE);\n xml.push(name);\n pushAttributes(xml, attributes);\n this.leaf = true;\n this.open = true;\n }\n\n addAttribute(name, value) {\n if (!this.open) {\n throw new Error('Cannot write attributes to node if it is not open');\n }\n if (value !== undefined) {\n pushAttribute(this._xml, name, value);\n }\n }\n\n addAttributes(attrs) {\n if (!this.open) {\n throw new Error('Cannot write attributes to node if it is not open');\n }\n pushAttributes(this._xml, attrs);\n }\n\n writeText(text) {\n const xml = this._xml;\n if (this.open) {\n xml.push(CLOSE_ANGLE);\n this.open = false;\n }\n this.leaf = false;\n xml.push(utils.xmlEncode(text.toString()));\n }\n\n writeXml(xml) {\n if (this.open) {\n this._xml.push(CLOSE_ANGLE);\n this.open = false;\n }\n this.leaf = false;\n this._xml.push(xml);\n }\n\n closeNode() {\n const node = this._stack.pop();\n const xml = this._xml;\n if (this.leaf) {\n xml.push(CLOSE_SLASH_ANGLE);\n } else {\n xml.push(OPEN_ANGLE_SLASH);\n xml.push(node);\n xml.push(CLOSE_ANGLE);\n }\n this.open = false;\n this.leaf = false;\n }\n\n leafNode(name, attributes, text) {\n this.openNode(name, attributes);\n if (text !== undefined) {\n // zeros need to be written\n this.writeText(text);\n }\n this.closeNode();\n }\n\n closeAll() {\n while (this._stack.length) {\n this.closeNode();\n }\n }\n\n addRollback() {\n this._rollbacks.push({\n xml: this._xml.length,\n stack: this._stack.length,\n leaf: this.leaf,\n open: this.open,\n });\n return this.cursor;\n }\n\n commit() {\n this._rollbacks.pop();\n }\n\n rollback() {\n const r = this._rollbacks.pop();\n if (this._xml.length > r.xml) {\n this._xml.splice(r.xml, this._xml.length - r.xml);\n }\n if (this._stack.length > r.stack) {\n this._stack.splice(r.stack, this._stack.length - r.stack);\n }\n this.leaf = r.leaf;\n this.open = r.open;\n }\n\n get xml() {\n this.closeAll();\n return this._xml.join('');\n }\n}\n\nXmlStream.StdDocAttributes = {\n version: '1.0',\n encoding: 'UTF-8',\n standalone: 'yes',\n};\n\nmodule.exports = XmlStream;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
4
|
-
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function (r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function (r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
|
|
5
3
|
const parseSax = require('../../utils/parse-sax');
|
|
6
4
|
const XmlStream = require('../../utils/xml-stream');
|
|
7
5
|
|
|
@@ -56,42 +54,21 @@ class BaseXform {
|
|
|
56
54
|
this.model = Object.assign(this.model || {}, obj);
|
|
57
55
|
}
|
|
58
56
|
async parse(saxParser) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.parseOpen(value);
|
|
72
|
-
} else if (eventType === 'text') {
|
|
73
|
-
this.parseText(value);
|
|
74
|
-
} else if (eventType === 'closetag') {
|
|
75
|
-
if (!this.parseClose(value.name)) {
|
|
76
|
-
return this.model;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
57
|
+
for await (const events of saxParser) {
|
|
58
|
+
for (const {
|
|
59
|
+
eventType,
|
|
60
|
+
value
|
|
61
|
+
} of events) {
|
|
62
|
+
if (eventType === 'opentag') {
|
|
63
|
+
this.parseOpen(value);
|
|
64
|
+
} else if (eventType === 'text') {
|
|
65
|
+
this.parseText(value);
|
|
66
|
+
} else if (eventType === 'closetag') {
|
|
67
|
+
if (!this.parseClose(value.name)) {
|
|
68
|
+
return this.model;
|
|
79
69
|
}
|
|
80
70
|
}
|
|
81
71
|
}
|
|
82
|
-
} catch (err) {
|
|
83
|
-
_didIteratorError = true;
|
|
84
|
-
_iteratorError = err;
|
|
85
|
-
} finally {
|
|
86
|
-
try {
|
|
87
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
88
|
-
await _iterator.return();
|
|
89
|
-
}
|
|
90
|
-
} finally {
|
|
91
|
-
if (_didIteratorError) {
|
|
92
|
-
throw _iteratorError;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
72
|
}
|
|
96
73
|
return this.model;
|
|
97
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-xform.js","names":["parseSax","require","XmlStream","BaseXform","prepare","render","parseOpen","node","parseText","text","parseClose","name","reconcile","model","options","reset","map","Object","values","forEach","xform","mergeModel","obj","assign","parse","saxParser","
|
|
1
|
+
{"version":3,"file":"base-xform.js","names":["parseSax","require","XmlStream","BaseXform","prepare","render","parseOpen","node","parseText","text","parseClose","name","reconcile","model","options","reset","map","Object","values","forEach","xform","mergeModel","obj","assign","parse","saxParser","events","eventType","value","parseStream","stream","xml","toXml","xmlStream","toAttribute","dflt","always","arguments","length","undefined","toString","toStringAttribute","toStringValue","attr","toBoolAttribute","toBoolValue","toIntAttribute","toIntValue","parseInt","toFloatAttribute","toFloatValue","parseFloat","module","exports"],"sources":["../../../../lib/xlsx/xform/base-xform.js"],"sourcesContent":["const parseSax = require('../../utils/parse-sax');\nconst XmlStream = require('../../utils/xml-stream');\n\n/* 'virtual' methods used as a form of documentation */\n/* eslint-disable class-methods-use-this */\n\n// Base class for Xforms\nclass BaseXform {\n // constructor(/* model, name */) {}\n\n // ============================================================\n // Virtual Interface\n prepare(/* model, options */) {\n // optional preparation (mutation) of model so it is ready for write\n }\n\n render(/* xmlStream, model */) {\n // convert model to xml\n }\n\n parseOpen(node) {\n // XML node opened\n }\n\n parseText(text) {\n // chunk of text encountered for current node\n }\n\n parseClose(name) {\n // XML node closed\n }\n\n reconcile(model, options) {\n // optional post-parse step (opposite to prepare)\n }\n\n // ============================================================\n reset() {\n // to make sure parses don't bleed to next iteration\n this.model = null;\n\n // if we have a map - reset them too\n if (this.map) {\n Object.values(this.map).forEach(xform => {\n if (xform instanceof BaseXform) {\n xform.reset();\n } else if (xform.xform) {\n xform.xform.reset();\n }\n });\n }\n }\n\n mergeModel(obj) {\n // set obj's props to this.model\n this.model = Object.assign(this.model || {}, obj);\n }\n\n async parse(saxParser) {\n for await (const events of saxParser) {\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n this.parseOpen(value);\n } else if (eventType === 'text') {\n this.parseText(value);\n } else if (eventType === 'closetag') {\n if (!this.parseClose(value.name)) {\n return this.model;\n }\n }\n }\n }\n return this.model;\n }\n\n async parseStream(stream) {\n return this.parse(parseSax(stream));\n }\n\n get xml() {\n // convenience function to get the xml of this.model\n // useful for manager types that are built during the prepare phase\n return this.toXml(this.model);\n }\n\n toXml(model) {\n const xmlStream = new XmlStream();\n this.render(xmlStream, model);\n return xmlStream.xml;\n }\n\n // ============================================================\n // Useful Utilities\n static toAttribute(value, dflt, always = false) {\n if (value === undefined) {\n if (always) {\n return dflt;\n }\n } else if (always || value !== dflt) {\n return value.toString();\n }\n return undefined;\n }\n\n static toStringAttribute(value, dflt, always = false) {\n return BaseXform.toAttribute(value, dflt, always);\n }\n\n static toStringValue(attr, dflt) {\n return attr === undefined ? dflt : attr;\n }\n\n static toBoolAttribute(value, dflt, always = false) {\n if (value === undefined) {\n if (always) {\n return dflt;\n }\n } else if (always || value !== dflt) {\n return value ? '1' : '0';\n }\n return undefined;\n }\n\n static toBoolValue(attr, dflt) {\n return attr === undefined ? dflt : attr === '1';\n }\n\n static toIntAttribute(value, dflt, always = false) {\n return BaseXform.toAttribute(value, dflt, always);\n }\n\n static toIntValue(attr, dflt) {\n return attr === undefined ? dflt : parseInt(attr, 10);\n }\n\n static toFloatAttribute(value, dflt, always = false) {\n return BaseXform.toAttribute(value, dflt, always);\n }\n\n static toFloatValue(attr, dflt) {\n return attr === undefined ? dflt : parseFloat(attr);\n }\n}\n\nmodule.exports = BaseXform;\n"],"mappings":";;AAAA,MAAMA,QAAQ,GAAGC,OAAO,CAAC,uBAAuB,CAAC;AACjD,MAAMC,SAAS,GAAGD,OAAO,CAAC,wBAAwB,CAAC;;AAEnD;AACA;;AAEA;AACA,MAAME,SAAS,CAAC;EACd;;EAEA;EACA;EACAC,OAAOA,CAAC;EAAA,EAAsB;IAC5B;EAAA;EAGFC,MAAMA,CAAC;EAAA,EAAwB;IAC7B;EAAA;EAGFC,SAASA,CAACC,IAAI,EAAE;IACd;EAAA;EAGFC,SAASA,CAACC,IAAI,EAAE;IACd;EAAA;EAGFC,UAAUA,CAACC,IAAI,EAAE;IACf;EAAA;EAGFC,SAASA,CAACC,KAAK,EAAEC,OAAO,EAAE;IACxB;EAAA;;EAGF;EACAC,KAAKA,CAAA,EAAG;IACN;IACA,IAAI,CAACF,KAAK,GAAG,IAAI;;IAEjB;IACA,IAAI,IAAI,CAACG,GAAG,EAAE;MACZC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACF,GAAG,CAAC,CAACG,OAAO,CAACC,KAAK,IAAI;QACvC,IAAIA,KAAK,YAAYjB,SAAS,EAAE;UAC9BiB,KAAK,CAACL,KAAK,CAAC,CAAC;QACf,CAAC,MAAM,IAAIK,KAAK,CAACA,KAAK,EAAE;UACtBA,KAAK,CAACA,KAAK,CAACL,KAAK,CAAC,CAAC;QACrB;MACF,CAAC,CAAC;IACJ;EACF;EAEAM,UAAUA,CAACC,GAAG,EAAE;IACd;IACA,IAAI,CAACT,KAAK,GAAGI,MAAM,CAACM,MAAM,CAAC,IAAI,CAACV,KAAK,IAAI,CAAC,CAAC,EAAES,GAAG,CAAC;EACnD;EAEA,MAAME,KAAKA,CAACC,SAAS,EAAE;IACrB,WAAW,MAAMC,MAAM,IAAID,SAAS,EAAE;MACpC,KAAK,MAAM;QAACE,SAAS;QAAEC;MAAK,CAAC,IAAIF,MAAM,EAAE;QACvC,IAAIC,SAAS,KAAK,SAAS,EAAE;UAC3B,IAAI,CAACrB,SAAS,CAACsB,KAAK,CAAC;QACvB,CAAC,MAAM,IAAID,SAAS,KAAK,MAAM,EAAE;UAC/B,IAAI,CAACnB,SAAS,CAACoB,KAAK,CAAC;QACvB,CAAC,MAAM,IAAID,SAAS,KAAK,UAAU,EAAE;UACnC,IAAI,CAAC,IAAI,CAACjB,UAAU,CAACkB,KAAK,CAACjB,IAAI,CAAC,EAAE;YAChC,OAAO,IAAI,CAACE,KAAK;UACnB;QACF;MACF;IACF;IACA,OAAO,IAAI,CAACA,KAAK;EACnB;EAEA,MAAMgB,WAAWA,CAACC,MAAM,EAAE;IACxB,OAAO,IAAI,CAACN,KAAK,CAACxB,QAAQ,CAAC8B,MAAM,CAAC,CAAC;EACrC;EAEA,IAAIC,GAAGA,CAAA,EAAG;IACR;IACA;IACA,OAAO,IAAI,CAACC,KAAK,CAAC,IAAI,CAACnB,KAAK,CAAC;EAC/B;EAEAmB,KAAKA,CAACnB,KAAK,EAAE;IACX,MAAMoB,SAAS,GAAG,IAAI/B,SAAS,CAAC,CAAC;IACjC,IAAI,CAACG,MAAM,CAAC4B,SAAS,EAAEpB,KAAK,CAAC;IAC7B,OAAOoB,SAAS,CAACF,GAAG;EACtB;;EAEA;EACA;EACA,OAAOG,WAAWA,CAACN,KAAK,EAAEO,IAAI,EAAkB;IAAA,IAAhBC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAC5C,IAAIT,KAAK,KAAKW,SAAS,EAAE;MACvB,IAAIH,MAAM,EAAE;QACV,OAAOD,IAAI;MACb;IACF,CAAC,MAAM,IAAIC,MAAM,IAAIR,KAAK,KAAKO,IAAI,EAAE;MACnC,OAAOP,KAAK,CAACY,QAAQ,CAAC,CAAC;IACzB;IACA,OAAOD,SAAS;EAClB;EAEA,OAAOE,iBAAiBA,CAACb,KAAK,EAAEO,IAAI,EAAkB;IAAA,IAAhBC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAClD,OAAOlC,SAAS,CAAC+B,WAAW,CAACN,KAAK,EAAEO,IAAI,EAAEC,MAAM,CAAC;EACnD;EAEA,OAAOM,aAAaA,CAACC,IAAI,EAAER,IAAI,EAAE;IAC/B,OAAOQ,IAAI,KAAKJ,SAAS,GAAGJ,IAAI,GAAGQ,IAAI;EACzC;EAEA,OAAOC,eAAeA,CAAChB,KAAK,EAAEO,IAAI,EAAkB;IAAA,IAAhBC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAChD,IAAIT,KAAK,KAAKW,SAAS,EAAE;MACvB,IAAIH,MAAM,EAAE;QACV,OAAOD,IAAI;MACb;IACF,CAAC,MAAM,IAAIC,MAAM,IAAIR,KAAK,KAAKO,IAAI,EAAE;MACnC,OAAOP,KAAK,GAAG,GAAG,GAAG,GAAG;IAC1B;IACA,OAAOW,SAAS;EAClB;EAEA,OAAOM,WAAWA,CAACF,IAAI,EAAER,IAAI,EAAE;IAC7B,OAAOQ,IAAI,KAAKJ,SAAS,GAAGJ,IAAI,GAAGQ,IAAI,KAAK,GAAG;EACjD;EAEA,OAAOG,cAAcA,CAAClB,KAAK,EAAEO,IAAI,EAAkB;IAAA,IAAhBC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAC/C,OAAOlC,SAAS,CAAC+B,WAAW,CAACN,KAAK,EAAEO,IAAI,EAAEC,MAAM,CAAC;EACnD;EAEA,OAAOW,UAAUA,CAACJ,IAAI,EAAER,IAAI,EAAE;IAC5B,OAAOQ,IAAI,KAAKJ,SAAS,GAAGJ,IAAI,GAAGa,QAAQ,CAACL,IAAI,EAAE,EAAE,CAAC;EACvD;EAEA,OAAOM,gBAAgBA,CAACrB,KAAK,EAAEO,IAAI,EAAkB;IAAA,IAAhBC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACjD,OAAOlC,SAAS,CAAC+B,WAAW,CAACN,KAAK,EAAEO,IAAI,EAAEC,MAAM,CAAC;EACnD;EAEA,OAAOc,YAAYA,CAACP,IAAI,EAAER,IAAI,EAAE;IAC9B,OAAOQ,IAAI,KAAKJ,SAAS,GAAGJ,IAAI,GAAGgB,UAAU,CAACR,IAAI,CAAC;EACrD;AACF;AAEAS,MAAM,CAACC,OAAO,GAAGlD,SAAS","ignoreList":[]}
|
|
@@ -59,7 +59,7 @@ function extractRanges(parsedText) {
|
|
|
59
59
|
const quotes = (item.match(/'/g) || []).length;
|
|
60
60
|
if (!quotes) {
|
|
61
61
|
if (quotesOpened) {
|
|
62
|
-
last +=
|
|
62
|
+
last += `${item},`;
|
|
63
63
|
} else if (isValidRange(item)) {
|
|
64
64
|
ranges.push(item);
|
|
65
65
|
}
|
|
@@ -76,7 +76,7 @@ function extractRanges(parsedText) {
|
|
|
76
76
|
last = '';
|
|
77
77
|
} else {
|
|
78
78
|
quotesOpened = true;
|
|
79
|
-
last +=
|
|
79
|
+
last += `${item},`;
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
82
|
return ranges;
|