devextreme-exceljs-fork 4.4.7 → 4.4.9
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/README.md +1 -1
- package/README_zh.md +1 -1
- package/dist/dx-exceljs-fork.bare.js +15848 -20465
- package/dist/dx-exceljs-fork.bare.js.map +317 -361
- package/dist/dx-exceljs-fork.bare.min.js +9 -9
- package/dist/dx-exceljs-fork.bare.min.js.map +1 -1
- package/dist/dx-exceljs-fork.js +16431 -21034
- package/dist/dx-exceljs-fork.js.map +489 -533
- package/dist/dx-exceljs-fork.min.js +9 -9
- 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/dx-exceljs-fork.browser.js +1 -1
- package/dist/es5/dx-exceljs-fork.browser.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/browser-buffer-decode.js +1 -1
- package/dist/es5/utils/browser-buffer-decode.js.map +1 -1
- package/dist/es5/utils/browser-buffer-encode.js +1 -1
- package/dist/es5/utils/browser-buffer-encode.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 +10 -5
- 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/lib/dx-exceljs-fork.browser.js +1 -1
- package/lib/utils/browser-buffer-decode.js +1 -1
- package/lib/utils/browser-buffer-encode.js +1 -1
- package/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +12 -3
- package/package.json +35 -35
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-column-xform.js","names":["BaseXform","require","ListXform","CustomFilterXform","FilterXform","FilterColumnXform","constructor","map","customFilters","tag","count","empty","childXform","filters","prepare","model","options","colId","index","toString","render","xmlStream","openNode","hiddenButton","filterButton","closeNode","leafNode","parseOpen","node","parser","attributes","name","Error","
|
|
1
|
+
{"version":3,"file":"filter-column-xform.js","names":["BaseXform","require","ListXform","CustomFilterXform","FilterXform","FilterColumnXform","constructor","map","customFilters","tag","count","empty","childXform","filters","prepare","model","options","colId","index","toString","render","xmlStream","openNode","hiddenButton","filterButton","closeNode","leafNode","parseOpen","node","parser","attributes","name","Error","JSON","stringify","parseText","parseClose","undefined","module","exports"],"sources":["../../../../../lib/xlsx/xform/table/filter-column-xform.js"],"sourcesContent":["const BaseXform = require('../base-xform');\nconst ListXform = require('../list-xform');\n\nconst CustomFilterXform = require('./custom-filter-xform');\nconst FilterXform = require('./filter-xform');\n\nclass FilterColumnXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n customFilters: new ListXform({\n tag: 'customFilters',\n count: false,\n empty: true,\n childXform: new CustomFilterXform(),\n }),\n filters: new ListXform({\n tag: 'filters',\n count: false,\n empty: true,\n childXform: new FilterXform(),\n }),\n };\n }\n\n get tag() {\n return 'filterColumn';\n }\n\n prepare(model, options) {\n model.colId = options.index.toString();\n }\n\n render(xmlStream, model) {\n if (model.customFilters) {\n xmlStream.openNode(this.tag, {\n colId: model.colId,\n hiddenButton: model.filterButton ? '0' : '1',\n });\n\n this.map.customFilters.render(xmlStream, model.customFilters);\n\n xmlStream.closeNode();\n return true;\n }\n xmlStream.leafNode(this.tag, {\n colId: model.colId,\n hiddenButton: model.filterButton ? '0' : '1',\n });\n return true;\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n const {attributes} = node;\n switch (node.name) {\n case this.tag:\n this.model = {\n filterButton: attributes.hiddenButton === '0',\n };\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parseOpen(node);\n return true;\n }\n throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model.customFilters = this.map.customFilters.model;\n return false;\n default:\n // could be some unrecognised tags\n return true;\n }\n }\n}\n\nmodule.exports = FilterColumnXform;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
7
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
3
|
const XmlStream = require('../../../utils/xml-stream');
|
|
9
4
|
const BaseXform = require('../base-xform');
|
|
10
5
|
const ListXform = require('../list-xform');
|
|
@@ -34,7 +29,8 @@ class TableXform extends BaseXform {
|
|
|
34
29
|
}
|
|
35
30
|
render(xmlStream, model) {
|
|
36
31
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
37
|
-
xmlStream.openNode(this.tag,
|
|
32
|
+
xmlStream.openNode(this.tag, {
|
|
33
|
+
...TableXform.TABLE_ATTRIBUTES,
|
|
38
34
|
id: model.id,
|
|
39
35
|
name: model.name,
|
|
40
36
|
displayName: model.displayName || model.name,
|
|
@@ -42,7 +38,7 @@ class TableXform extends BaseXform {
|
|
|
42
38
|
totalsRowCount: model.totalsRow ? '1' : undefined,
|
|
43
39
|
totalsRowShown: model.totalsRow ? undefined : '1',
|
|
44
40
|
headerRowCount: model.headerRow ? '1' : '0'
|
|
45
|
-
})
|
|
41
|
+
});
|
|
46
42
|
this.map.autoFilter.render(xmlStream, model);
|
|
47
43
|
this.map.tableColumns.render(xmlStream, model.columns);
|
|
48
44
|
this.map.tableStyleInfo.render(xmlStream, model.style);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-xform.js","names":["XmlStream","require","BaseXform","ListXform","AutoFilterXform","TableColumnXform","TableStyleInfoXform","TableXform","constructor","map","autoFilter","tableColumns","tag","count","empty","childXform","tableStyleInfo","prepare","model","options","columns","render","xmlStream","openXml","StdDocAttributes","openNode","
|
|
1
|
+
{"version":3,"file":"table-xform.js","names":["XmlStream","require","BaseXform","ListXform","AutoFilterXform","TableColumnXform","TableStyleInfoXform","TableXform","constructor","map","autoFilter","tableColumns","tag","count","empty","childXform","tableStyleInfo","prepare","model","options","columns","render","xmlStream","openXml","StdDocAttributes","openNode","TABLE_ATTRIBUTES","id","name","displayName","ref","tableRef","totalsRowCount","totalsRow","undefined","totalsRowShown","headerRowCount","headerRow","style","closeNode","parseOpen","node","parser","attributes","reset","parseText","text","parseClose","autoFilterRef","forEach","column","index","filterButton","reconcile","dxfId","styles","getDxfStyle","xmlns","module","exports"],"sources":["../../../../../lib/xlsx/xform/table/table-xform.js"],"sourcesContent":["const XmlStream = require('../../../utils/xml-stream');\n\nconst BaseXform = require('../base-xform');\nconst ListXform = require('../list-xform');\n\nconst AutoFilterXform = require('./auto-filter-xform');\nconst TableColumnXform = require('./table-column-xform');\nconst TableStyleInfoXform = require('./table-style-info-xform');\n\nclass TableXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n autoFilter: new AutoFilterXform(),\n tableColumns: new ListXform({\n tag: 'tableColumns',\n count: true,\n empty: true,\n childXform: new TableColumnXform(),\n }),\n tableStyleInfo: new TableStyleInfoXform(),\n };\n }\n\n prepare(model, options) {\n this.map.autoFilter.prepare(model);\n this.map.tableColumns.prepare(model.columns, options);\n }\n\n get tag() {\n return 'table';\n }\n\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n xmlStream.openNode(this.tag, {\n ...TableXform.TABLE_ATTRIBUTES,\n id: model.id,\n name: model.name,\n displayName: model.displayName || model.name,\n ref: model.tableRef,\n totalsRowCount: model.totalsRow ? '1' : undefined,\n totalsRowShown: model.totalsRow ? undefined : '1',\n headerRowCount: model.headerRow ? '1' : '0',\n });\n\n this.map.autoFilter.render(xmlStream, model);\n this.map.tableColumns.render(xmlStream, model.columns);\n this.map.tableStyleInfo.render(xmlStream, model.style);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n const {name, attributes} = node;\n switch (name) {\n case this.tag:\n this.reset();\n this.model = {\n name: attributes.name,\n displayName: attributes.displayName || attributes.name,\n tableRef: attributes.ref,\n totalsRow: attributes.totalsRowCount === '1',\n headerRow: attributes.headerRowCount === '1',\n };\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model.columns = this.map.tableColumns.model;\n if (this.map.autoFilter.model) {\n this.model.autoFilterRef = this.map.autoFilter.model.autoFilterRef;\n this.map.autoFilter.model.columns.forEach((column, index) => {\n this.model.columns[index].filterButton = column.filterButton;\n });\n }\n this.model.style = this.map.tableStyleInfo.model;\n return false;\n default:\n // could be some unrecognised tags\n return true;\n }\n }\n\n reconcile(model, options) {\n // fetch the dfxs from styles\n model.columns.forEach(column => {\n if (column.dxfId !== undefined) {\n column.style = options.styles.getDxfStyle(column.dxfId);\n }\n });\n }\n}\n\nTableXform.TABLE_ATTRIBUTES = {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n 'xmlns:mc': 'http://schemas.openxmlformats.org/markup-compatibility/2006',\n 'mc:Ignorable': 'xr xr3',\n 'xmlns:xr': 'http://schemas.microsoft.com/office/spreadsheetml/2014/revision',\n 'xmlns:xr3': 'http://schemas.microsoft.com/office/spreadsheetml/2016/revision3',\n // 'xr:uid': '{00000000-000C-0000-FFFF-FFFF00000000}',\n};\n\nmodule.exports = TableXform;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/es5/xlsx/xlsx.js
CHANGED
|
@@ -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 fs = require('fs');
|
|
6
4
|
const JSZip = require('jszip');
|
|
7
5
|
const {
|
|
@@ -53,7 +51,7 @@ class XLSX {
|
|
|
53
51
|
|
|
54
52
|
async readFile(filename, options) {
|
|
55
53
|
if (!(await utils.fs.exists(filename))) {
|
|
56
|
-
throw new Error(
|
|
54
|
+
throw new Error(`File not found: ${filename}`);
|
|
57
55
|
}
|
|
58
56
|
const stream = fs.createReadStream(filename);
|
|
59
57
|
try {
|
|
@@ -154,12 +152,12 @@ class XLSX {
|
|
|
154
152
|
async _processCommentEntry(stream, model, name) {
|
|
155
153
|
const xform = new CommentsXform();
|
|
156
154
|
const comments = await xform.parseStream(stream);
|
|
157
|
-
model.comments[
|
|
155
|
+
model.comments[`../${name}.xml`] = comments;
|
|
158
156
|
}
|
|
159
157
|
async _processTableEntry(stream, model, name) {
|
|
160
158
|
const xform = new TableXform();
|
|
161
159
|
const table = await xform.parseStream(stream);
|
|
162
|
-
model.tables[
|
|
160
|
+
model.tables[`../tables/${name}.xml`] = table;
|
|
163
161
|
}
|
|
164
162
|
async _processWorksheetRelsEntry(stream, model, sheetNo) {
|
|
165
163
|
const xform = new RelationshipsXform();
|
|
@@ -206,7 +204,7 @@ class XLSX {
|
|
|
206
204
|
async _processVmlDrawingEntry(entry, model, name) {
|
|
207
205
|
const xform = new VmlNotesXform();
|
|
208
206
|
const vmlDrawing = await xform.parseStream(entry);
|
|
209
|
-
model.vmlDrawings[
|
|
207
|
+
model.vmlDrawings[`../drawings/${name}.vml`] = vmlDrawing;
|
|
210
208
|
}
|
|
211
209
|
async _processThemeEntry(entry, model, name) {
|
|
212
210
|
await new Promise((resolve, reject) => {
|
|
@@ -235,29 +233,8 @@ class XLSX {
|
|
|
235
233
|
stream = stream.pipe(new PassThrough());
|
|
236
234
|
}
|
|
237
235
|
const chunks = [];
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
var _iteratorError;
|
|
241
|
-
try {
|
|
242
|
-
for (var _iterator = _asyncIterator(stream), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {
|
|
243
|
-
const chunk = _step.value;
|
|
244
|
-
{
|
|
245
|
-
chunks.push(chunk);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
} catch (err) {
|
|
249
|
-
_didIteratorError = true;
|
|
250
|
-
_iteratorError = err;
|
|
251
|
-
} finally {
|
|
252
|
-
try {
|
|
253
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
254
|
-
await _iterator.return();
|
|
255
|
-
}
|
|
256
|
-
} finally {
|
|
257
|
-
if (_didIteratorError) {
|
|
258
|
-
throw _iteratorError;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
236
|
+
for await (const chunk of stream) {
|
|
237
|
+
chunks.push(chunk);
|
|
261
238
|
}
|
|
262
239
|
return this.load(Buffer.concat(chunks), options);
|
|
263
240
|
}
|
|
@@ -420,7 +397,7 @@ class XLSX {
|
|
|
420
397
|
async addMedia(zip, model) {
|
|
421
398
|
await Promise.all(model.media.map(async medium => {
|
|
422
399
|
if (medium.type === 'image') {
|
|
423
|
-
const filename =
|
|
400
|
+
const filename = `xl/media/${medium.name}.${medium.extension}`;
|
|
424
401
|
if (medium.filename) {
|
|
425
402
|
const data = await fsReadFileAsync(medium.filename);
|
|
426
403
|
return zip.append(data, {
|
|
@@ -455,11 +432,11 @@ class XLSX {
|
|
|
455
432
|
drawingXform.prepare(drawing, {});
|
|
456
433
|
let xml = drawingXform.toXml(drawing);
|
|
457
434
|
zip.append(xml, {
|
|
458
|
-
name:
|
|
435
|
+
name: `xl/drawings/${drawing.name}.xml`
|
|
459
436
|
});
|
|
460
437
|
xml = relsXform.toXml(drawing.rels);
|
|
461
438
|
zip.append(xml, {
|
|
462
|
-
name:
|
|
439
|
+
name: `xl/drawings/_rels/${drawing.name}.xml.rels`
|
|
463
440
|
});
|
|
464
441
|
}
|
|
465
442
|
});
|
|
@@ -474,7 +451,7 @@ class XLSX {
|
|
|
474
451
|
tableXform.prepare(table, {});
|
|
475
452
|
const tableXml = tableXform.toXml(table);
|
|
476
453
|
zip.append(tableXml, {
|
|
477
|
-
name:
|
|
454
|
+
name: `xl/tables/${table.target}`
|
|
478
455
|
});
|
|
479
456
|
});
|
|
480
457
|
});
|
|
@@ -571,7 +548,7 @@ class XLSX {
|
|
|
571
548
|
};
|
|
572
549
|
Object.keys(themes).forEach(name => {
|
|
573
550
|
const xml = themes[name];
|
|
574
|
-
const path =
|
|
551
|
+
const path = `xl/theme/${name}.xml`;
|
|
575
552
|
zip.append(xml, {
|
|
576
553
|
name: path
|
|
577
554
|
});
|
|
@@ -599,24 +576,24 @@ class XLSX {
|
|
|
599
576
|
async addWorkbookRels(zip, model) {
|
|
600
577
|
let count = 1;
|
|
601
578
|
const relationships = [{
|
|
602
|
-
Id:
|
|
579
|
+
Id: `rId${count++}`,
|
|
603
580
|
Type: XLSX.RelType.Styles,
|
|
604
581
|
Target: 'styles.xml'
|
|
605
582
|
}, {
|
|
606
|
-
Id:
|
|
583
|
+
Id: `rId${count++}`,
|
|
607
584
|
Type: XLSX.RelType.Theme,
|
|
608
585
|
Target: 'theme/theme1.xml'
|
|
609
586
|
}];
|
|
610
587
|
if (model.sharedStrings.count) {
|
|
611
588
|
relationships.push({
|
|
612
|
-
Id:
|
|
589
|
+
Id: `rId${count++}`,
|
|
613
590
|
Type: XLSX.RelType.SharedStrings,
|
|
614
591
|
Target: 'sharedStrings.xml'
|
|
615
592
|
});
|
|
616
593
|
}
|
|
617
594
|
if ((model.pivotTables || []).length) {
|
|
618
595
|
const pivotTable = model.pivotTables[0];
|
|
619
|
-
pivotTable.rId =
|
|
596
|
+
pivotTable.rId = `rId${count++}`;
|
|
620
597
|
relationships.push({
|
|
621
598
|
Id: pivotTable.rId,
|
|
622
599
|
Type: XLSX.RelType.PivotCacheDefinition,
|
|
@@ -624,11 +601,11 @@ class XLSX {
|
|
|
624
601
|
});
|
|
625
602
|
}
|
|
626
603
|
model.worksheets.forEach(worksheet => {
|
|
627
|
-
worksheet.rId =
|
|
604
|
+
worksheet.rId = `rId${count++}`;
|
|
628
605
|
relationships.push({
|
|
629
606
|
Id: worksheet.rId,
|
|
630
607
|
Type: XLSX.RelType.Worksheet,
|
|
631
|
-
Target:
|
|
608
|
+
Target: `worksheets/sheet${worksheet.id}.xml`
|
|
632
609
|
});
|
|
633
610
|
});
|
|
634
611
|
const xform = new RelationshipsXform();
|
|
@@ -672,25 +649,25 @@ class XLSX {
|
|
|
672
649
|
let xmlStream = new XmlStream();
|
|
673
650
|
worksheetXform.render(xmlStream, worksheet);
|
|
674
651
|
zip.append(xmlStream.xml, {
|
|
675
|
-
name:
|
|
652
|
+
name: `xl/worksheets/sheet${worksheet.id}.xml`
|
|
676
653
|
});
|
|
677
654
|
if (worksheet.rels && worksheet.rels.length) {
|
|
678
655
|
xmlStream = new XmlStream();
|
|
679
656
|
relationshipsXform.render(xmlStream, worksheet.rels);
|
|
680
657
|
zip.append(xmlStream.xml, {
|
|
681
|
-
name:
|
|
658
|
+
name: `xl/worksheets/_rels/sheet${worksheet.id}.xml.rels`
|
|
682
659
|
});
|
|
683
660
|
}
|
|
684
661
|
if (worksheet.comments.length > 0) {
|
|
685
662
|
xmlStream = new XmlStream();
|
|
686
663
|
commentsXform.render(xmlStream, worksheet);
|
|
687
664
|
zip.append(xmlStream.xml, {
|
|
688
|
-
name:
|
|
665
|
+
name: `xl/comments${worksheet.id}.xml`
|
|
689
666
|
});
|
|
690
667
|
xmlStream = new XmlStream();
|
|
691
668
|
vmlNotesXform.render(xmlStream, worksheet);
|
|
692
669
|
zip.append(xmlStream.xml, {
|
|
693
|
-
name:
|
|
670
|
+
name: `xl/drawings/vmlDrawing${worksheet.id}.vml`
|
|
694
671
|
});
|
|
695
672
|
}
|
|
696
673
|
});
|
|
@@ -738,7 +715,7 @@ class XLSX {
|
|
|
738
715
|
// assign unique filenames to tables
|
|
739
716
|
worksheet.tables.forEach(table => {
|
|
740
717
|
tableCount++;
|
|
741
|
-
table.target =
|
|
718
|
+
table.target = `table${tableCount}.xml`;
|
|
742
719
|
table.id = tableCount;
|
|
743
720
|
model.tables.push(table);
|
|
744
721
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xlsx.js","names":["fs","require","JSZip","PassThrough","ZipStream","StreamBuf","utils","XmlStream","bufferToString","StylesXform","CoreXform","SharedStringsXform","RelationshipsXform","ContentTypesXform","AppXform","WorkbookXform","WorksheetXform","DrawingXform","TableXform","PivotCacheRecordsXform","PivotCacheDefinitionXform","PivotTableXform","CommentsXform","VmlNotesXform","theme1Xml","fsReadFileAsync","filename","options","Promise","resolve","reject","readFile","error","data","XLSX","constructor","workbook","exists","Error","concat","stream","createReadStream","read","close","parseRels","xform","parseStream","parseWorkbook","parseSharedStrings","reconcile","model","workbookXform","worksheetXform","drawingXform","tableXform","drawingOptions","media","mediaIndex","Object","keys","drawings","forEach","name","drawing","drawingRel","drawingRels","rels","reduce","o","rel","Id","anchors","anchor","hyperlinks","picture","rId","hyperlink","Target","tableOptions","styles","values","tables","table","sheetOptions","sharedStrings","date1904","properties","comments","vmlDrawings","worksheets","worksheet","relationships","worksheetRels","sheetNo","worksheetHash","globalRels","workbookRels","sheetDefs","_processWorksheetEntry","path","push","_processCommentEntry","_processTableEntry","_processWorksheetRelsEntry","_processMediaEntry","entry","lastDot","lastIndexOf","extension","substr","streamBuf","on","length","medium","type","buffer","toBuffer","pipe","_processDrawingEntry","_processDrawingRelsEntry","_processVmlDrawingEntry","vmlDrawing","_processThemeEntry","themes","toString","createInputStream","Symbol","asyncIterator","chunks","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_asyncIterator","_step","next","done","chunk","value","err","return","load","Buffer","base64","from","zip","loadAsync","files","dir","entryName","match","write","async","writableObjectMode","readableObjectMode","content","process","browser","chunkSize","i","substring","end","sheets","definedNames","views","calcProperties","appXform","appProperties","company","manager","coreXform","coreProperties","assign","addMedia","all","map","append","dataimg64","indexOf","addDrawings","relsXform","prepare","xml","toXml","addTables","tableXml","target","addPivotTables","pivotTables","pivotTable","pivotCacheRecordsXform","pivotCacheDefinitionXform","pivotTableXform","Type","RelType","PivotCacheRecords","PivotCacheDefinition","addContentTypes","addApp","addCore","addThemes","theme1","addOfficeRels","OfficeDocument","CoreProperties","ExtenderProperties","addWorkbookRels","count","Styles","Theme","SharedStrings","Worksheet","id","addSharedStrings","addStyles","addWorkbook","addWorksheets","relationshipsXform","commentsXform","vmlNotesXform","xmlStream","render","_finalize","finalize","prepareModel","creator","lastModifiedBy","created","Date","modified","useSharedStrings","undefined","useStyles","Mock","worksheetOptions","drawingsCount","commentRefs","tableCount","ZipWriter","writeFile","createWriteStream","then","catch","writeBuffer","module","exports"],"sources":["../../../lib/xlsx/xlsx.js"],"sourcesContent":["const fs = require('fs');\nconst JSZip = require('jszip');\nconst {PassThrough} = require('readable-stream');\nconst ZipStream = require('../utils/zip-stream');\nconst StreamBuf = require('../utils/stream-buf');\n\nconst utils = require('../utils/utils');\nconst XmlStream = require('../utils/xml-stream');\nconst {bufferToString} = require('../utils/browser-buffer-decode');\n\nconst StylesXform = require('./xform/style/styles-xform');\n\nconst CoreXform = require('./xform/core/core-xform');\nconst SharedStringsXform = require('./xform/strings/shared-strings-xform');\nconst RelationshipsXform = require('./xform/core/relationships-xform');\nconst ContentTypesXform = require('./xform/core/content-types-xform');\nconst AppXform = require('./xform/core/app-xform');\nconst WorkbookXform = require('./xform/book/workbook-xform');\nconst WorksheetXform = require('./xform/sheet/worksheet-xform');\nconst DrawingXform = require('./xform/drawing/drawing-xform');\nconst TableXform = require('./xform/table/table-xform');\nconst PivotCacheRecordsXform = require('./xform/pivot-table/pivot-cache-records-xform');\nconst PivotCacheDefinitionXform = require('./xform/pivot-table/pivot-cache-definition-xform');\nconst PivotTableXform = require('./xform/pivot-table/pivot-table-xform');\nconst CommentsXform = require('./xform/comment/comments-xform');\nconst VmlNotesXform = require('./xform/comment/vml-notes-xform');\n\nconst theme1Xml = require('./xml/theme1');\n\nfunction fsReadFileAsync(filename, options) {\n return new Promise((resolve, reject) => {\n fs.readFile(filename, options, (error, data) => {\n if (error) {\n reject(error);\n } else {\n resolve(data);\n }\n });\n });\n}\n\nclass XLSX {\n constructor(workbook) {\n this.workbook = workbook;\n }\n\n // ===============================================================================\n // Workbook\n // =========================================================================\n // Read\n\n async readFile(filename, options) {\n if (!(await utils.fs.exists(filename))) {\n throw new Error(`File not found: ${filename}`);\n }\n const stream = fs.createReadStream(filename);\n try {\n const workbook = await this.read(stream, options);\n stream.close();\n return workbook;\n } catch (error) {\n stream.close();\n throw error;\n }\n }\n\n parseRels(stream) {\n const xform = new RelationshipsXform();\n return xform.parseStream(stream);\n }\n\n parseWorkbook(stream) {\n const xform = new WorkbookXform();\n return xform.parseStream(stream);\n }\n\n parseSharedStrings(stream) {\n const xform = new SharedStringsXform();\n return xform.parseStream(stream);\n }\n\n reconcile(model, options) {\n const workbookXform = new WorkbookXform();\n const worksheetXform = new WorksheetXform(options);\n const drawingXform = new DrawingXform();\n const tableXform = new TableXform();\n\n workbookXform.reconcile(model);\n\n // reconcile drawings with their rels\n const drawingOptions = {\n media: model.media,\n mediaIndex: model.mediaIndex,\n };\n Object.keys(model.drawings).forEach(name => {\n const drawing = model.drawings[name];\n const drawingRel = model.drawingRels[name];\n if (drawingRel) {\n drawingOptions.rels = drawingRel.reduce((o, rel) => {\n o[rel.Id] = rel;\n return o;\n }, {});\n (drawing.anchors || []).forEach(anchor => {\n const hyperlinks = anchor.picture && anchor.picture.hyperlinks;\n if (hyperlinks && drawingOptions.rels[hyperlinks.rId]) {\n hyperlinks.hyperlink = drawingOptions.rels[hyperlinks.rId].Target;\n delete hyperlinks.rId;\n }\n });\n drawingXform.reconcile(drawing, drawingOptions);\n }\n });\n\n // reconcile tables with the default styles\n const tableOptions = {\n styles: model.styles,\n };\n Object.values(model.tables).forEach(table => {\n tableXform.reconcile(table, tableOptions);\n });\n\n const sheetOptions = {\n styles: model.styles,\n sharedStrings: model.sharedStrings,\n media: model.media,\n mediaIndex: model.mediaIndex,\n date1904: model.properties && model.properties.date1904,\n drawings: model.drawings,\n comments: model.comments,\n tables: model.tables,\n vmlDrawings: model.vmlDrawings,\n };\n model.worksheets.forEach(worksheet => {\n worksheet.relationships = model.worksheetRels[worksheet.sheetNo];\n worksheetXform.reconcile(worksheet, sheetOptions);\n });\n\n // delete unnecessary parts\n delete model.worksheetHash;\n delete model.worksheetRels;\n delete model.globalRels;\n delete model.sharedStrings;\n delete model.workbookRels;\n delete model.sheetDefs;\n delete model.styles;\n delete model.mediaIndex;\n delete model.drawings;\n delete model.drawingRels;\n delete model.vmlDrawings;\n }\n\n async _processWorksheetEntry(stream, model, sheetNo, options, path) {\n const xform = new WorksheetXform(options);\n const worksheet = await xform.parseStream(stream);\n worksheet.sheetNo = sheetNo;\n model.worksheetHash[path] = worksheet;\n model.worksheets.push(worksheet);\n }\n\n async _processCommentEntry(stream, model, name) {\n const xform = new CommentsXform();\n const comments = await xform.parseStream(stream);\n model.comments[`../${name}.xml`] = comments;\n }\n\n async _processTableEntry(stream, model, name) {\n const xform = new TableXform();\n const table = await xform.parseStream(stream);\n model.tables[`../tables/${name}.xml`] = table;\n }\n\n async _processWorksheetRelsEntry(stream, model, sheetNo) {\n const xform = new RelationshipsXform();\n const relationships = await xform.parseStream(stream);\n model.worksheetRels[sheetNo] = relationships;\n }\n\n async _processMediaEntry(entry, model, filename) {\n const lastDot = filename.lastIndexOf('.');\n // if we can't determine extension, ignore it\n if (lastDot >= 1) {\n const extension = filename.substr(lastDot + 1);\n const name = filename.substr(0, lastDot);\n await new Promise((resolve, reject) => {\n const streamBuf = new StreamBuf();\n streamBuf.on('finish', () => {\n model.mediaIndex[filename] = model.media.length;\n model.mediaIndex[name] = model.media.length;\n const medium = {\n type: 'image',\n name,\n extension,\n buffer: streamBuf.toBuffer(),\n };\n model.media.push(medium);\n resolve();\n });\n entry.on('error', error => {\n reject(error);\n });\n entry.pipe(streamBuf);\n });\n }\n }\n\n async _processDrawingEntry(entry, model, name) {\n const xform = new DrawingXform();\n const drawing = await xform.parseStream(entry);\n model.drawings[name] = drawing;\n }\n\n async _processDrawingRelsEntry(entry, model, name) {\n const xform = new RelationshipsXform();\n const relationships = await xform.parseStream(entry);\n model.drawingRels[name] = relationships;\n }\n\n async _processVmlDrawingEntry(entry, model, name) {\n const xform = new VmlNotesXform();\n const vmlDrawing = await xform.parseStream(entry);\n model.vmlDrawings[`../drawings/${name}.vml`] = vmlDrawing;\n }\n\n async _processThemeEntry(entry, model, name) {\n await new Promise((resolve, reject) => {\n // TODO: stream entry into buffer and store the xml in the model.themes[]\n const stream = new StreamBuf();\n entry.on('error', reject);\n stream.on('error', reject);\n stream.on('finish', () => {\n model.themes[name] = stream.read().toString();\n resolve();\n });\n entry.pipe(stream);\n });\n }\n\n /**\n * @deprecated since version 4.0. You should use `#read` instead. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\n */\n createInputStream() {\n throw new Error(\n '`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md'\n );\n }\n\n async read(stream, options) {\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old streams\n if (!stream[Symbol.asyncIterator] && stream.pipe) {\n stream = stream.pipe(new PassThrough());\n }\n const chunks = [];\n for await (const chunk of stream) {\n chunks.push(chunk);\n }\n return this.load(Buffer.concat(chunks), options);\n }\n\n async load(data, options) {\n let buffer;\n if (options && options.base64) {\n buffer = Buffer.from(data.toString(), 'base64');\n } else {\n buffer = data;\n }\n\n const model = {\n worksheets: [],\n worksheetHash: {},\n worksheetRels: [],\n themes: {},\n media: [],\n mediaIndex: {},\n drawings: {},\n drawingRels: {},\n comments: {},\n tables: {},\n vmlDrawings: {},\n };\n\n const zip = await JSZip.loadAsync(buffer);\n for (const entry of Object.values(zip.files)) {\n /* eslint-disable no-await-in-loop */\n if (!entry.dir) {\n let entryName = entry.name;\n if (entryName[0] === '/') {\n entryName = entryName.substr(1);\n }\n let stream;\n if (\n entryName.match(/xl\\/media\\//) ||\n // themes are not parsed as stream\n entryName.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/)\n ) {\n stream = new PassThrough();\n stream.write(await entry.async('nodebuffer'));\n } else {\n // use object mode to avoid buffer-string convention\n stream = new PassThrough({\n writableObjectMode: true,\n readableObjectMode: true,\n });\n let content;\n // https://www.npmjs.com/package/process\n if (process.browser) {\n // running in browser, use TextDecoder if possible\n content = bufferToString(await entry.async('nodebuffer'));\n } else {\n // running in node.js\n content = await entry.async('string');\n }\n const chunkSize = 16 * 1024;\n for (let i = 0; i < content.length; i += chunkSize) {\n stream.write(content.substring(i, i + chunkSize));\n }\n }\n stream.end();\n switch (entryName) {\n case '_rels/.rels':\n model.globalRels = await this.parseRels(stream);\n break;\n\n case 'xl/workbook.xml': {\n const workbook = await this.parseWorkbook(stream);\n model.sheets = workbook.sheets;\n model.definedNames = workbook.definedNames;\n model.views = workbook.views;\n model.properties = workbook.properties;\n model.calcProperties = workbook.calcProperties;\n break;\n }\n\n case 'xl/_rels/workbook.xml.rels':\n model.workbookRels = await this.parseRels(stream);\n break;\n\n case 'xl/sharedStrings.xml':\n model.sharedStrings = new SharedStringsXform();\n await model.sharedStrings.parseStream(stream);\n break;\n\n case 'xl/styles.xml':\n model.styles = new StylesXform();\n await model.styles.parseStream(stream);\n break;\n\n case 'docProps/app.xml': {\n const appXform = new AppXform();\n const appProperties = await appXform.parseStream(stream);\n model.company = appProperties.company;\n model.manager = appProperties.manager;\n break;\n }\n\n case 'docProps/core.xml': {\n const coreXform = new CoreXform();\n const coreProperties = await coreXform.parseStream(stream);\n Object.assign(model, coreProperties);\n break;\n }\n\n default: {\n let match = entryName.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);\n if (match) {\n await this._processWorksheetEntry(stream, model, match[1], options, entryName);\n break;\n }\n match = entryName.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/);\n if (match) {\n await this._processWorksheetRelsEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/);\n if (match) {\n await this._processThemeEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/media\\/([a-zA-Z0-9]+[.][a-zA-Z0-9]{3,4})$/);\n if (match) {\n await this._processMediaEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/([a-zA-Z0-9]+)[.]xml/);\n if (match) {\n await this._processDrawingEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/(comments\\d+)[.]xml/);\n if (match) {\n await this._processCommentEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/tables\\/(table\\d+)[.]xml/);\n if (match) {\n await this._processTableEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/_rels\\/([a-zA-Z0-9]+)[.]xml[.]rels/);\n if (match) {\n await this._processDrawingRelsEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/(vmlDrawing\\d+)[.]vml/);\n if (match) {\n await this._processVmlDrawingEntry(stream, model, match[1]);\n break;\n }\n }\n }\n }\n }\n\n this.reconcile(model, options);\n\n // apply model\n this.workbook.model = model;\n return this.workbook;\n }\n\n // =========================================================================\n // Write\n\n async addMedia(zip, model) {\n await Promise.all(\n model.media.map(async medium => {\n if (medium.type === 'image') {\n const filename = `xl/media/${medium.name}.${medium.extension}`;\n if (medium.filename) {\n const data = await fsReadFileAsync(medium.filename);\n return zip.append(data, {name: filename});\n }\n if (medium.buffer) {\n return zip.append(medium.buffer, {name: filename});\n }\n if (medium.base64) {\n const dataimg64 = medium.base64;\n const content = dataimg64.substring(dataimg64.indexOf(',') + 1);\n return zip.append(content, {name: filename, base64: true});\n }\n }\n throw new Error('Unsupported media');\n })\n );\n }\n\n addDrawings(zip, model) {\n const drawingXform = new DrawingXform();\n const relsXform = new RelationshipsXform();\n\n model.worksheets.forEach(worksheet => {\n const {drawing} = worksheet;\n if (drawing) {\n drawingXform.prepare(drawing, {});\n let xml = drawingXform.toXml(drawing);\n zip.append(xml, {name: `xl/drawings/${drawing.name}.xml`});\n\n xml = relsXform.toXml(drawing.rels);\n zip.append(xml, {name: `xl/drawings/_rels/${drawing.name}.xml.rels`});\n }\n });\n }\n\n addTables(zip, model) {\n const tableXform = new TableXform();\n\n model.worksheets.forEach(worksheet => {\n const {tables} = worksheet;\n tables.forEach(table => {\n tableXform.prepare(table, {});\n const tableXml = tableXform.toXml(table);\n zip.append(tableXml, {name: `xl/tables/${table.target}`});\n });\n });\n }\n\n addPivotTables(zip, model) {\n if (!model.pivotTables.length) return;\n\n const pivotTable = model.pivotTables[0];\n\n const pivotCacheRecordsXform = new PivotCacheRecordsXform();\n const pivotCacheDefinitionXform = new PivotCacheDefinitionXform();\n const pivotTableXform = new PivotTableXform();\n const relsXform = new RelationshipsXform();\n\n // pivot cache records\n // --------------------------------------------------\n // copy of the source data.\n //\n // Note: cells in the columns of the source data which are part\n // of the \"rows\" or \"columns\" of the pivot table configuration are\n // replaced by references to their __cache field__ identifiers.\n // See \"pivot cache definition\" below.\n\n let xml = pivotCacheRecordsXform.toXml(pivotTable);\n zip.append(xml, {name: 'xl/pivotCache/pivotCacheRecords1.xml'});\n\n // pivot cache definition\n // --------------------------------------------------\n // cache source (source data):\n // ref=\"A1:E7\" on sheet=\"Sheet1\"\n // cache fields:\n // - 0: \"A\" (a1, a2, a3)\n // - 1: \"B\" (b1, b2)\n // - ...\n\n xml = pivotCacheDefinitionXform.toXml(pivotTable);\n zip.append(xml, {name: 'xl/pivotCache/pivotCacheDefinition1.xml'});\n\n xml = relsXform.toXml([\n {\n Id: 'rId1',\n Type: XLSX.RelType.PivotCacheRecords,\n Target: 'pivotCacheRecords1.xml',\n },\n ]);\n zip.append(xml, {name: 'xl/pivotCache/_rels/pivotCacheDefinition1.xml.rels'});\n\n // pivot tables (on destination worksheet)\n // --------------------------------------------------\n // location: ref=\"A3:E15\"\n // pivotFields\n // rowFields and rowItems\n // colFields and colItems\n // dataFields\n // pivotTableStyleInfo\n\n xml = pivotTableXform.toXml(pivotTable);\n zip.append(xml, {name: 'xl/pivotTables/pivotTable1.xml'});\n\n xml = relsXform.toXml([\n {\n Id: 'rId1',\n Type: XLSX.RelType.PivotCacheDefinition,\n Target: '../pivotCache/pivotCacheDefinition1.xml',\n },\n ]);\n zip.append(xml, {name: 'xl/pivotTables/_rels/pivotTable1.xml.rels'});\n }\n\n async addContentTypes(zip, model) {\n const xform = new ContentTypesXform();\n const xml = xform.toXml(model);\n zip.append(xml, {name: '[Content_Types].xml'});\n }\n\n async addApp(zip, model) {\n const xform = new AppXform();\n const xml = xform.toXml(model);\n zip.append(xml, {name: 'docProps/app.xml'});\n }\n\n async addCore(zip, model) {\n const coreXform = new CoreXform();\n zip.append(coreXform.toXml(model), {name: 'docProps/core.xml'});\n }\n\n async addThemes(zip, model) {\n const themes = model.themes || {theme1: theme1Xml};\n Object.keys(themes).forEach(name => {\n const xml = themes[name];\n const path = `xl/theme/${name}.xml`;\n zip.append(xml, {name: path});\n });\n }\n\n async addOfficeRels(zip) {\n const xform = new RelationshipsXform();\n const xml = xform.toXml([\n {Id: 'rId1', Type: XLSX.RelType.OfficeDocument, Target: 'xl/workbook.xml'},\n {Id: 'rId2', Type: XLSX.RelType.CoreProperties, Target: 'docProps/core.xml'},\n {Id: 'rId3', Type: XLSX.RelType.ExtenderProperties, Target: 'docProps/app.xml'},\n ]);\n zip.append(xml, {name: '_rels/.rels'});\n }\n\n async addWorkbookRels(zip, model) {\n let count = 1;\n const relationships = [\n {Id: `rId${count++}`, Type: XLSX.RelType.Styles, Target: 'styles.xml'},\n {Id: `rId${count++}`, Type: XLSX.RelType.Theme, Target: 'theme/theme1.xml'},\n ];\n if (model.sharedStrings.count) {\n relationships.push({\n Id: `rId${count++}`,\n Type: XLSX.RelType.SharedStrings,\n Target: 'sharedStrings.xml',\n });\n }\n if ((model.pivotTables || []).length) {\n const pivotTable = model.pivotTables[0];\n pivotTable.rId = `rId${count++}`;\n relationships.push({\n Id: pivotTable.rId,\n Type: XLSX.RelType.PivotCacheDefinition,\n Target: 'pivotCache/pivotCacheDefinition1.xml',\n });\n }\n model.worksheets.forEach(worksheet => {\n worksheet.rId = `rId${count++}`;\n relationships.push({\n Id: worksheet.rId,\n Type: XLSX.RelType.Worksheet,\n Target: `worksheets/sheet${worksheet.id}.xml`,\n });\n });\n const xform = new RelationshipsXform();\n const xml = xform.toXml(relationships);\n zip.append(xml, {name: 'xl/_rels/workbook.xml.rels'});\n }\n\n async addSharedStrings(zip, model) {\n if (model.sharedStrings && model.sharedStrings.count) {\n zip.append(model.sharedStrings.xml, {name: 'xl/sharedStrings.xml'});\n }\n }\n\n async addStyles(zip, model) {\n const {xml} = model.styles;\n if (xml) {\n zip.append(xml, {name: 'xl/styles.xml'});\n }\n }\n\n async addWorkbook(zip, model) {\n const xform = new WorkbookXform();\n zip.append(xform.toXml(model), {name: 'xl/workbook.xml'});\n }\n\n async addWorksheets(zip, model) {\n // preparation phase\n const worksheetXform = new WorksheetXform();\n const relationshipsXform = new RelationshipsXform();\n const commentsXform = new CommentsXform();\n const vmlNotesXform = new VmlNotesXform();\n\n // write sheets\n model.worksheets.forEach(worksheet => {\n let xmlStream = new XmlStream();\n worksheetXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/worksheets/sheet${worksheet.id}.xml`});\n\n if (worksheet.rels && worksheet.rels.length) {\n xmlStream = new XmlStream();\n relationshipsXform.render(xmlStream, worksheet.rels);\n zip.append(xmlStream.xml, {name: `xl/worksheets/_rels/sheet${worksheet.id}.xml.rels`});\n }\n\n if (worksheet.comments.length > 0) {\n xmlStream = new XmlStream();\n commentsXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/comments${worksheet.id}.xml`});\n\n xmlStream = new XmlStream();\n vmlNotesXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/drawings/vmlDrawing${worksheet.id}.vml`});\n }\n });\n }\n\n _finalize(zip) {\n return new Promise((resolve, reject) => {\n zip.on('finish', () => {\n resolve(this);\n });\n zip.on('error', reject);\n zip.finalize();\n });\n }\n\n prepareModel(model, options) {\n // ensure following properties have sane values\n model.creator = model.creator || 'ExcelJS';\n model.lastModifiedBy = model.lastModifiedBy || 'ExcelJS';\n model.created = model.created || new Date();\n model.modified = model.modified || new Date();\n\n model.useSharedStrings = options.useSharedStrings !== undefined ? options.useSharedStrings : true;\n model.useStyles = options.useStyles !== undefined ? options.useStyles : true;\n\n // Manage the shared strings\n model.sharedStrings = new SharedStringsXform();\n\n // add a style manager to handle cell formats, fonts, etc.\n model.styles = model.useStyles ? new StylesXform(true) : new StylesXform.Mock();\n\n // prepare all of the things before the render\n const workbookXform = new WorkbookXform();\n const worksheetXform = new WorksheetXform();\n\n workbookXform.prepare(model);\n\n const worksheetOptions = {\n sharedStrings: model.sharedStrings,\n styles: model.styles,\n date1904: model.properties.date1904,\n drawingsCount: 0,\n media: model.media,\n };\n worksheetOptions.drawings = model.drawings = [];\n worksheetOptions.commentRefs = model.commentRefs = [];\n let tableCount = 0;\n model.tables = [];\n model.worksheets.forEach(worksheet => {\n // assign unique filenames to tables\n worksheet.tables.forEach(table => {\n tableCount++;\n table.target = `table${tableCount}.xml`;\n table.id = tableCount;\n model.tables.push(table);\n });\n\n worksheetXform.prepare(worksheet, worksheetOptions);\n });\n\n // TODO: workbook drawing list\n }\n\n async write(stream, options) {\n options = options || {};\n const {model} = this.workbook;\n const zip = new ZipStream.ZipWriter(options.zip);\n zip.pipe(stream);\n\n this.prepareModel(model, options);\n\n // render\n await this.addContentTypes(zip, model);\n await this.addOfficeRels(zip, model);\n await this.addWorkbookRels(zip, model);\n await this.addWorksheets(zip, model);\n await this.addSharedStrings(zip, model); // always after worksheets\n await this.addDrawings(zip, model);\n await this.addTables(zip, model);\n await this.addPivotTables(zip, model);\n await Promise.all([this.addThemes(zip, model), this.addStyles(zip, model)]);\n await this.addMedia(zip, model);\n await Promise.all([this.addApp(zip, model), this.addCore(zip, model)]);\n await this.addWorkbook(zip, model);\n return this._finalize(zip);\n }\n\n writeFile(filename, options) {\n const stream = fs.createWriteStream(filename);\n\n return new Promise((resolve, reject) => {\n stream.on('finish', () => {\n resolve();\n });\n stream.on('error', error => {\n reject(error);\n });\n\n this.write(stream, options)\n .then(() => {\n stream.end();\n })\n .catch(err => {\n reject(err);\n });\n });\n }\n\n async writeBuffer(options) {\n const stream = new StreamBuf();\n await this.write(stream, options);\n return stream.read();\n }\n}\n\nXLSX.RelType = require('./rel-type');\n\nmodule.exports = XLSX;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"xlsx.js","names":["fs","require","JSZip","PassThrough","ZipStream","StreamBuf","utils","XmlStream","bufferToString","StylesXform","CoreXform","SharedStringsXform","RelationshipsXform","ContentTypesXform","AppXform","WorkbookXform","WorksheetXform","DrawingXform","TableXform","PivotCacheRecordsXform","PivotCacheDefinitionXform","PivotTableXform","CommentsXform","VmlNotesXform","theme1Xml","fsReadFileAsync","filename","options","Promise","resolve","reject","readFile","error","data","XLSX","constructor","workbook","exists","Error","stream","createReadStream","read","close","parseRels","xform","parseStream","parseWorkbook","parseSharedStrings","reconcile","model","workbookXform","worksheetXform","drawingXform","tableXform","drawingOptions","media","mediaIndex","Object","keys","drawings","forEach","name","drawing","drawingRel","drawingRels","rels","reduce","o","rel","Id","anchors","anchor","hyperlinks","picture","rId","hyperlink","Target","tableOptions","styles","values","tables","table","sheetOptions","sharedStrings","date1904","properties","comments","vmlDrawings","worksheets","worksheet","relationships","worksheetRels","sheetNo","worksheetHash","globalRels","workbookRels","sheetDefs","_processWorksheetEntry","path","push","_processCommentEntry","_processTableEntry","_processWorksheetRelsEntry","_processMediaEntry","entry","lastDot","lastIndexOf","extension","substr","streamBuf","on","length","medium","type","buffer","toBuffer","pipe","_processDrawingEntry","_processDrawingRelsEntry","_processVmlDrawingEntry","vmlDrawing","_processThemeEntry","themes","toString","createInputStream","Symbol","asyncIterator","chunks","chunk","load","Buffer","concat","base64","from","zip","loadAsync","files","dir","entryName","match","write","async","writableObjectMode","readableObjectMode","content","process","browser","chunkSize","i","substring","end","sheets","definedNames","views","calcProperties","appXform","appProperties","company","manager","coreXform","coreProperties","assign","addMedia","all","map","append","dataimg64","indexOf","addDrawings","relsXform","prepare","xml","toXml","addTables","tableXml","target","addPivotTables","pivotTables","pivotTable","pivotCacheRecordsXform","pivotCacheDefinitionXform","pivotTableXform","Type","RelType","PivotCacheRecords","PivotCacheDefinition","addContentTypes","addApp","addCore","addThemes","theme1","addOfficeRels","OfficeDocument","CoreProperties","ExtenderProperties","addWorkbookRels","count","Styles","Theme","SharedStrings","Worksheet","id","addSharedStrings","addStyles","addWorkbook","addWorksheets","relationshipsXform","commentsXform","vmlNotesXform","xmlStream","render","_finalize","finalize","prepareModel","creator","lastModifiedBy","created","Date","modified","useSharedStrings","undefined","useStyles","Mock","worksheetOptions","drawingsCount","commentRefs","tableCount","ZipWriter","writeFile","createWriteStream","then","catch","err","writeBuffer","module","exports"],"sources":["../../../lib/xlsx/xlsx.js"],"sourcesContent":["const fs = require('fs');\nconst JSZip = require('jszip');\nconst {PassThrough} = require('readable-stream');\nconst ZipStream = require('../utils/zip-stream');\nconst StreamBuf = require('../utils/stream-buf');\n\nconst utils = require('../utils/utils');\nconst XmlStream = require('../utils/xml-stream');\nconst {bufferToString} = require('../utils/browser-buffer-decode');\n\nconst StylesXform = require('./xform/style/styles-xform');\n\nconst CoreXform = require('./xform/core/core-xform');\nconst SharedStringsXform = require('./xform/strings/shared-strings-xform');\nconst RelationshipsXform = require('./xform/core/relationships-xform');\nconst ContentTypesXform = require('./xform/core/content-types-xform');\nconst AppXform = require('./xform/core/app-xform');\nconst WorkbookXform = require('./xform/book/workbook-xform');\nconst WorksheetXform = require('./xform/sheet/worksheet-xform');\nconst DrawingXform = require('./xform/drawing/drawing-xform');\nconst TableXform = require('./xform/table/table-xform');\nconst PivotCacheRecordsXform = require('./xform/pivot-table/pivot-cache-records-xform');\nconst PivotCacheDefinitionXform = require('./xform/pivot-table/pivot-cache-definition-xform');\nconst PivotTableXform = require('./xform/pivot-table/pivot-table-xform');\nconst CommentsXform = require('./xform/comment/comments-xform');\nconst VmlNotesXform = require('./xform/comment/vml-notes-xform');\n\nconst theme1Xml = require('./xml/theme1');\n\nfunction fsReadFileAsync(filename, options) {\n return new Promise((resolve, reject) => {\n fs.readFile(filename, options, (error, data) => {\n if (error) {\n reject(error);\n } else {\n resolve(data);\n }\n });\n });\n}\n\nclass XLSX {\n constructor(workbook) {\n this.workbook = workbook;\n }\n\n // ===============================================================================\n // Workbook\n // =========================================================================\n // Read\n\n async readFile(filename, options) {\n if (!(await utils.fs.exists(filename))) {\n throw new Error(`File not found: ${filename}`);\n }\n const stream = fs.createReadStream(filename);\n try {\n const workbook = await this.read(stream, options);\n stream.close();\n return workbook;\n } catch (error) {\n stream.close();\n throw error;\n }\n }\n\n parseRels(stream) {\n const xform = new RelationshipsXform();\n return xform.parseStream(stream);\n }\n\n parseWorkbook(stream) {\n const xform = new WorkbookXform();\n return xform.parseStream(stream);\n }\n\n parseSharedStrings(stream) {\n const xform = new SharedStringsXform();\n return xform.parseStream(stream);\n }\n\n reconcile(model, options) {\n const workbookXform = new WorkbookXform();\n const worksheetXform = new WorksheetXform(options);\n const drawingXform = new DrawingXform();\n const tableXform = new TableXform();\n\n workbookXform.reconcile(model);\n\n // reconcile drawings with their rels\n const drawingOptions = {\n media: model.media,\n mediaIndex: model.mediaIndex,\n };\n Object.keys(model.drawings).forEach(name => {\n const drawing = model.drawings[name];\n const drawingRel = model.drawingRels[name];\n if (drawingRel) {\n drawingOptions.rels = drawingRel.reduce((o, rel) => {\n o[rel.Id] = rel;\n return o;\n }, {});\n (drawing.anchors || []).forEach(anchor => {\n const hyperlinks = anchor.picture && anchor.picture.hyperlinks;\n if (hyperlinks && drawingOptions.rels[hyperlinks.rId]) {\n hyperlinks.hyperlink = drawingOptions.rels[hyperlinks.rId].Target;\n delete hyperlinks.rId;\n }\n });\n drawingXform.reconcile(drawing, drawingOptions);\n }\n });\n\n // reconcile tables with the default styles\n const tableOptions = {\n styles: model.styles,\n };\n Object.values(model.tables).forEach(table => {\n tableXform.reconcile(table, tableOptions);\n });\n\n const sheetOptions = {\n styles: model.styles,\n sharedStrings: model.sharedStrings,\n media: model.media,\n mediaIndex: model.mediaIndex,\n date1904: model.properties && model.properties.date1904,\n drawings: model.drawings,\n comments: model.comments,\n tables: model.tables,\n vmlDrawings: model.vmlDrawings,\n };\n model.worksheets.forEach(worksheet => {\n worksheet.relationships = model.worksheetRels[worksheet.sheetNo];\n worksheetXform.reconcile(worksheet, sheetOptions);\n });\n\n // delete unnecessary parts\n delete model.worksheetHash;\n delete model.worksheetRels;\n delete model.globalRels;\n delete model.sharedStrings;\n delete model.workbookRels;\n delete model.sheetDefs;\n delete model.styles;\n delete model.mediaIndex;\n delete model.drawings;\n delete model.drawingRels;\n delete model.vmlDrawings;\n }\n\n async _processWorksheetEntry(stream, model, sheetNo, options, path) {\n const xform = new WorksheetXform(options);\n const worksheet = await xform.parseStream(stream);\n worksheet.sheetNo = sheetNo;\n model.worksheetHash[path] = worksheet;\n model.worksheets.push(worksheet);\n }\n\n async _processCommentEntry(stream, model, name) {\n const xform = new CommentsXform();\n const comments = await xform.parseStream(stream);\n model.comments[`../${name}.xml`] = comments;\n }\n\n async _processTableEntry(stream, model, name) {\n const xform = new TableXform();\n const table = await xform.parseStream(stream);\n model.tables[`../tables/${name}.xml`] = table;\n }\n\n async _processWorksheetRelsEntry(stream, model, sheetNo) {\n const xform = new RelationshipsXform();\n const relationships = await xform.parseStream(stream);\n model.worksheetRels[sheetNo] = relationships;\n }\n\n async _processMediaEntry(entry, model, filename) {\n const lastDot = filename.lastIndexOf('.');\n // if we can't determine extension, ignore it\n if (lastDot >= 1) {\n const extension = filename.substr(lastDot + 1);\n const name = filename.substr(0, lastDot);\n await new Promise((resolve, reject) => {\n const streamBuf = new StreamBuf();\n streamBuf.on('finish', () => {\n model.mediaIndex[filename] = model.media.length;\n model.mediaIndex[name] = model.media.length;\n const medium = {\n type: 'image',\n name,\n extension,\n buffer: streamBuf.toBuffer(),\n };\n model.media.push(medium);\n resolve();\n });\n entry.on('error', error => {\n reject(error);\n });\n entry.pipe(streamBuf);\n });\n }\n }\n\n async _processDrawingEntry(entry, model, name) {\n const xform = new DrawingXform();\n const drawing = await xform.parseStream(entry);\n model.drawings[name] = drawing;\n }\n\n async _processDrawingRelsEntry(entry, model, name) {\n const xform = new RelationshipsXform();\n const relationships = await xform.parseStream(entry);\n model.drawingRels[name] = relationships;\n }\n\n async _processVmlDrawingEntry(entry, model, name) {\n const xform = new VmlNotesXform();\n const vmlDrawing = await xform.parseStream(entry);\n model.vmlDrawings[`../drawings/${name}.vml`] = vmlDrawing;\n }\n\n async _processThemeEntry(entry, model, name) {\n await new Promise((resolve, reject) => {\n // TODO: stream entry into buffer and store the xml in the model.themes[]\n const stream = new StreamBuf();\n entry.on('error', reject);\n stream.on('error', reject);\n stream.on('finish', () => {\n model.themes[name] = stream.read().toString();\n resolve();\n });\n entry.pipe(stream);\n });\n }\n\n /**\n * @deprecated since version 4.0. You should use `#read` instead. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\n */\n createInputStream() {\n throw new Error(\n '`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md'\n );\n }\n\n async read(stream, options) {\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old streams\n if (!stream[Symbol.asyncIterator] && stream.pipe) {\n stream = stream.pipe(new PassThrough());\n }\n const chunks = [];\n for await (const chunk of stream) {\n chunks.push(chunk);\n }\n return this.load(Buffer.concat(chunks), options);\n }\n\n async load(data, options) {\n let buffer;\n if (options && options.base64) {\n buffer = Buffer.from(data.toString(), 'base64');\n } else {\n buffer = data;\n }\n\n const model = {\n worksheets: [],\n worksheetHash: {},\n worksheetRels: [],\n themes: {},\n media: [],\n mediaIndex: {},\n drawings: {},\n drawingRels: {},\n comments: {},\n tables: {},\n vmlDrawings: {},\n };\n\n const zip = await JSZip.loadAsync(buffer);\n for (const entry of Object.values(zip.files)) {\n /* eslint-disable no-await-in-loop */\n if (!entry.dir) {\n let entryName = entry.name;\n if (entryName[0] === '/') {\n entryName = entryName.substr(1);\n }\n let stream;\n if (\n entryName.match(/xl\\/media\\//) ||\n // themes are not parsed as stream\n entryName.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/)\n ) {\n stream = new PassThrough();\n stream.write(await entry.async('nodebuffer'));\n } else {\n // use object mode to avoid buffer-string convention\n stream = new PassThrough({\n writableObjectMode: true,\n readableObjectMode: true,\n });\n let content;\n // https://www.npmjs.com/package/process\n if (process.browser) {\n // running in browser, use TextDecoder if possible\n content = bufferToString(await entry.async('nodebuffer'));\n } else {\n // running in node.js\n content = await entry.async('string');\n }\n const chunkSize = 16 * 1024;\n for (let i = 0; i < content.length; i += chunkSize) {\n stream.write(content.substring(i, i + chunkSize));\n }\n }\n stream.end();\n switch (entryName) {\n case '_rels/.rels':\n model.globalRels = await this.parseRels(stream);\n break;\n\n case 'xl/workbook.xml': {\n const workbook = await this.parseWorkbook(stream);\n model.sheets = workbook.sheets;\n model.definedNames = workbook.definedNames;\n model.views = workbook.views;\n model.properties = workbook.properties;\n model.calcProperties = workbook.calcProperties;\n break;\n }\n\n case 'xl/_rels/workbook.xml.rels':\n model.workbookRels = await this.parseRels(stream);\n break;\n\n case 'xl/sharedStrings.xml':\n model.sharedStrings = new SharedStringsXform();\n await model.sharedStrings.parseStream(stream);\n break;\n\n case 'xl/styles.xml':\n model.styles = new StylesXform();\n await model.styles.parseStream(stream);\n break;\n\n case 'docProps/app.xml': {\n const appXform = new AppXform();\n const appProperties = await appXform.parseStream(stream);\n model.company = appProperties.company;\n model.manager = appProperties.manager;\n break;\n }\n\n case 'docProps/core.xml': {\n const coreXform = new CoreXform();\n const coreProperties = await coreXform.parseStream(stream);\n Object.assign(model, coreProperties);\n break;\n }\n\n default: {\n let match = entryName.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);\n if (match) {\n await this._processWorksheetEntry(stream, model, match[1], options, entryName);\n break;\n }\n match = entryName.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/);\n if (match) {\n await this._processWorksheetRelsEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/);\n if (match) {\n await this._processThemeEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/media\\/([a-zA-Z0-9]+[.][a-zA-Z0-9]{3,4})$/);\n if (match) {\n await this._processMediaEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/([a-zA-Z0-9]+)[.]xml/);\n if (match) {\n await this._processDrawingEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/(comments\\d+)[.]xml/);\n if (match) {\n await this._processCommentEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/tables\\/(table\\d+)[.]xml/);\n if (match) {\n await this._processTableEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/_rels\\/([a-zA-Z0-9]+)[.]xml[.]rels/);\n if (match) {\n await this._processDrawingRelsEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/(vmlDrawing\\d+)[.]vml/);\n if (match) {\n await this._processVmlDrawingEntry(stream, model, match[1]);\n break;\n }\n }\n }\n }\n }\n\n this.reconcile(model, options);\n\n // apply model\n this.workbook.model = model;\n return this.workbook;\n }\n\n // =========================================================================\n // Write\n\n async addMedia(zip, model) {\n await Promise.all(\n model.media.map(async medium => {\n if (medium.type === 'image') {\n const filename = `xl/media/${medium.name}.${medium.extension}`;\n if (medium.filename) {\n const data = await fsReadFileAsync(medium.filename);\n return zip.append(data, {name: filename});\n }\n if (medium.buffer) {\n return zip.append(medium.buffer, {name: filename});\n }\n if (medium.base64) {\n const dataimg64 = medium.base64;\n const content = dataimg64.substring(dataimg64.indexOf(',') + 1);\n return zip.append(content, {name: filename, base64: true});\n }\n }\n throw new Error('Unsupported media');\n })\n );\n }\n\n addDrawings(zip, model) {\n const drawingXform = new DrawingXform();\n const relsXform = new RelationshipsXform();\n\n model.worksheets.forEach(worksheet => {\n const {drawing} = worksheet;\n if (drawing) {\n drawingXform.prepare(drawing, {});\n let xml = drawingXform.toXml(drawing);\n zip.append(xml, {name: `xl/drawings/${drawing.name}.xml`});\n\n xml = relsXform.toXml(drawing.rels);\n zip.append(xml, {name: `xl/drawings/_rels/${drawing.name}.xml.rels`});\n }\n });\n }\n\n addTables(zip, model) {\n const tableXform = new TableXform();\n\n model.worksheets.forEach(worksheet => {\n const {tables} = worksheet;\n tables.forEach(table => {\n tableXform.prepare(table, {});\n const tableXml = tableXform.toXml(table);\n zip.append(tableXml, {name: `xl/tables/${table.target}`});\n });\n });\n }\n\n addPivotTables(zip, model) {\n if (!model.pivotTables.length) return;\n\n const pivotTable = model.pivotTables[0];\n\n const pivotCacheRecordsXform = new PivotCacheRecordsXform();\n const pivotCacheDefinitionXform = new PivotCacheDefinitionXform();\n const pivotTableXform = new PivotTableXform();\n const relsXform = new RelationshipsXform();\n\n // pivot cache records\n // --------------------------------------------------\n // copy of the source data.\n //\n // Note: cells in the columns of the source data which are part\n // of the \"rows\" or \"columns\" of the pivot table configuration are\n // replaced by references to their __cache field__ identifiers.\n // See \"pivot cache definition\" below.\n\n let xml = pivotCacheRecordsXform.toXml(pivotTable);\n zip.append(xml, {name: 'xl/pivotCache/pivotCacheRecords1.xml'});\n\n // pivot cache definition\n // --------------------------------------------------\n // cache source (source data):\n // ref=\"A1:E7\" on sheet=\"Sheet1\"\n // cache fields:\n // - 0: \"A\" (a1, a2, a3)\n // - 1: \"B\" (b1, b2)\n // - ...\n\n xml = pivotCacheDefinitionXform.toXml(pivotTable);\n zip.append(xml, {name: 'xl/pivotCache/pivotCacheDefinition1.xml'});\n\n xml = relsXform.toXml([\n {\n Id: 'rId1',\n Type: XLSX.RelType.PivotCacheRecords,\n Target: 'pivotCacheRecords1.xml',\n },\n ]);\n zip.append(xml, {name: 'xl/pivotCache/_rels/pivotCacheDefinition1.xml.rels'});\n\n // pivot tables (on destination worksheet)\n // --------------------------------------------------\n // location: ref=\"A3:E15\"\n // pivotFields\n // rowFields and rowItems\n // colFields and colItems\n // dataFields\n // pivotTableStyleInfo\n\n xml = pivotTableXform.toXml(pivotTable);\n zip.append(xml, {name: 'xl/pivotTables/pivotTable1.xml'});\n\n xml = relsXform.toXml([\n {\n Id: 'rId1',\n Type: XLSX.RelType.PivotCacheDefinition,\n Target: '../pivotCache/pivotCacheDefinition1.xml',\n },\n ]);\n zip.append(xml, {name: 'xl/pivotTables/_rels/pivotTable1.xml.rels'});\n }\n\n async addContentTypes(zip, model) {\n const xform = new ContentTypesXform();\n const xml = xform.toXml(model);\n zip.append(xml, {name: '[Content_Types].xml'});\n }\n\n async addApp(zip, model) {\n const xform = new AppXform();\n const xml = xform.toXml(model);\n zip.append(xml, {name: 'docProps/app.xml'});\n }\n\n async addCore(zip, model) {\n const coreXform = new CoreXform();\n zip.append(coreXform.toXml(model), {name: 'docProps/core.xml'});\n }\n\n async addThemes(zip, model) {\n const themes = model.themes || {theme1: theme1Xml};\n Object.keys(themes).forEach(name => {\n const xml = themes[name];\n const path = `xl/theme/${name}.xml`;\n zip.append(xml, {name: path});\n });\n }\n\n async addOfficeRels(zip) {\n const xform = new RelationshipsXform();\n const xml = xform.toXml([\n {Id: 'rId1', Type: XLSX.RelType.OfficeDocument, Target: 'xl/workbook.xml'},\n {Id: 'rId2', Type: XLSX.RelType.CoreProperties, Target: 'docProps/core.xml'},\n {Id: 'rId3', Type: XLSX.RelType.ExtenderProperties, Target: 'docProps/app.xml'},\n ]);\n zip.append(xml, {name: '_rels/.rels'});\n }\n\n async addWorkbookRels(zip, model) {\n let count = 1;\n const relationships = [\n {Id: `rId${count++}`, Type: XLSX.RelType.Styles, Target: 'styles.xml'},\n {Id: `rId${count++}`, Type: XLSX.RelType.Theme, Target: 'theme/theme1.xml'},\n ];\n if (model.sharedStrings.count) {\n relationships.push({\n Id: `rId${count++}`,\n Type: XLSX.RelType.SharedStrings,\n Target: 'sharedStrings.xml',\n });\n }\n if ((model.pivotTables || []).length) {\n const pivotTable = model.pivotTables[0];\n pivotTable.rId = `rId${count++}`;\n relationships.push({\n Id: pivotTable.rId,\n Type: XLSX.RelType.PivotCacheDefinition,\n Target: 'pivotCache/pivotCacheDefinition1.xml',\n });\n }\n model.worksheets.forEach(worksheet => {\n worksheet.rId = `rId${count++}`;\n relationships.push({\n Id: worksheet.rId,\n Type: XLSX.RelType.Worksheet,\n Target: `worksheets/sheet${worksheet.id}.xml`,\n });\n });\n const xform = new RelationshipsXform();\n const xml = xform.toXml(relationships);\n zip.append(xml, {name: 'xl/_rels/workbook.xml.rels'});\n }\n\n async addSharedStrings(zip, model) {\n if (model.sharedStrings && model.sharedStrings.count) {\n zip.append(model.sharedStrings.xml, {name: 'xl/sharedStrings.xml'});\n }\n }\n\n async addStyles(zip, model) {\n const {xml} = model.styles;\n if (xml) {\n zip.append(xml, {name: 'xl/styles.xml'});\n }\n }\n\n async addWorkbook(zip, model) {\n const xform = new WorkbookXform();\n zip.append(xform.toXml(model), {name: 'xl/workbook.xml'});\n }\n\n async addWorksheets(zip, model) {\n // preparation phase\n const worksheetXform = new WorksheetXform();\n const relationshipsXform = new RelationshipsXform();\n const commentsXform = new CommentsXform();\n const vmlNotesXform = new VmlNotesXform();\n\n // write sheets\n model.worksheets.forEach(worksheet => {\n let xmlStream = new XmlStream();\n worksheetXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/worksheets/sheet${worksheet.id}.xml`});\n\n if (worksheet.rels && worksheet.rels.length) {\n xmlStream = new XmlStream();\n relationshipsXform.render(xmlStream, worksheet.rels);\n zip.append(xmlStream.xml, {name: `xl/worksheets/_rels/sheet${worksheet.id}.xml.rels`});\n }\n\n if (worksheet.comments.length > 0) {\n xmlStream = new XmlStream();\n commentsXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/comments${worksheet.id}.xml`});\n\n xmlStream = new XmlStream();\n vmlNotesXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/drawings/vmlDrawing${worksheet.id}.vml`});\n }\n });\n }\n\n _finalize(zip) {\n return new Promise((resolve, reject) => {\n zip.on('finish', () => {\n resolve(this);\n });\n zip.on('error', reject);\n zip.finalize();\n });\n }\n\n prepareModel(model, options) {\n // ensure following properties have sane values\n model.creator = model.creator || 'ExcelJS';\n model.lastModifiedBy = model.lastModifiedBy || 'ExcelJS';\n model.created = model.created || new Date();\n model.modified = model.modified || new Date();\n\n model.useSharedStrings = options.useSharedStrings !== undefined ? options.useSharedStrings : true;\n model.useStyles = options.useStyles !== undefined ? options.useStyles : true;\n\n // Manage the shared strings\n model.sharedStrings = new SharedStringsXform();\n\n // add a style manager to handle cell formats, fonts, etc.\n model.styles = model.useStyles ? new StylesXform(true) : new StylesXform.Mock();\n\n // prepare all of the things before the render\n const workbookXform = new WorkbookXform();\n const worksheetXform = new WorksheetXform();\n\n workbookXform.prepare(model);\n\n const worksheetOptions = {\n sharedStrings: model.sharedStrings,\n styles: model.styles,\n date1904: model.properties.date1904,\n drawingsCount: 0,\n media: model.media,\n };\n worksheetOptions.drawings = model.drawings = [];\n worksheetOptions.commentRefs = model.commentRefs = [];\n let tableCount = 0;\n model.tables = [];\n model.worksheets.forEach(worksheet => {\n // assign unique filenames to tables\n worksheet.tables.forEach(table => {\n tableCount++;\n table.target = `table${tableCount}.xml`;\n table.id = tableCount;\n model.tables.push(table);\n });\n\n worksheetXform.prepare(worksheet, worksheetOptions);\n });\n\n // TODO: workbook drawing list\n }\n\n async write(stream, options) {\n options = options || {};\n const {model} = this.workbook;\n const zip = new ZipStream.ZipWriter(options.zip);\n zip.pipe(stream);\n\n this.prepareModel(model, options);\n\n // render\n await this.addContentTypes(zip, model);\n await this.addOfficeRels(zip, model);\n await this.addWorkbookRels(zip, model);\n await this.addWorksheets(zip, model);\n await this.addSharedStrings(zip, model); // always after worksheets\n await this.addDrawings(zip, model);\n await this.addTables(zip, model);\n await this.addPivotTables(zip, model);\n await Promise.all([this.addThemes(zip, model), this.addStyles(zip, model)]);\n await this.addMedia(zip, model);\n await Promise.all([this.addApp(zip, model), this.addCore(zip, model)]);\n await this.addWorkbook(zip, model);\n return this._finalize(zip);\n }\n\n writeFile(filename, options) {\n const stream = fs.createWriteStream(filename);\n\n return new Promise((resolve, reject) => {\n stream.on('finish', () => {\n resolve();\n });\n stream.on('error', error => {\n reject(error);\n });\n\n this.write(stream, options)\n .then(() => {\n stream.end();\n })\n .catch(err => {\n reject(err);\n });\n });\n }\n\n async writeBuffer(options) {\n const stream = new StreamBuf();\n await this.write(stream, options);\n return stream.read();\n }\n}\n\nXLSX.RelType = require('./rel-type');\n\nmodule.exports = XLSX;\n"],"mappings":";;AAAA,MAAMA,EAAE,GAAGC,OAAO,CAAC,IAAI,CAAC;AACxB,MAAMC,KAAK,GAAGD,OAAO,CAAC,OAAO,CAAC;AAC9B,MAAM;EAACE;AAAW,CAAC,GAAGF,OAAO,CAAC,iBAAiB,CAAC;AAChD,MAAMG,SAAS,GAAGH,OAAO,CAAC,qBAAqB,CAAC;AAChD,MAAMI,SAAS,GAAGJ,OAAO,CAAC,qBAAqB,CAAC;AAEhD,MAAMK,KAAK,GAAGL,OAAO,CAAC,gBAAgB,CAAC;AACvC,MAAMM,SAAS,GAAGN,OAAO,CAAC,qBAAqB,CAAC;AAChD,MAAM;EAACO;AAAc,CAAC,GAAGP,OAAO,CAAC,gCAAgC,CAAC;AAElE,MAAMQ,WAAW,GAAGR,OAAO,CAAC,4BAA4B,CAAC;AAEzD,MAAMS,SAAS,GAAGT,OAAO,CAAC,yBAAyB,CAAC;AACpD,MAAMU,kBAAkB,GAAGV,OAAO,CAAC,sCAAsC,CAAC;AAC1E,MAAMW,kBAAkB,GAAGX,OAAO,CAAC,kCAAkC,CAAC;AACtE,MAAMY,iBAAiB,GAAGZ,OAAO,CAAC,kCAAkC,CAAC;AACrE,MAAMa,QAAQ,GAAGb,OAAO,CAAC,wBAAwB,CAAC;AAClD,MAAMc,aAAa,GAAGd,OAAO,CAAC,6BAA6B,CAAC;AAC5D,MAAMe,cAAc,GAAGf,OAAO,CAAC,+BAA+B,CAAC;AAC/D,MAAMgB,YAAY,GAAGhB,OAAO,CAAC,+BAA+B,CAAC;AAC7D,MAAMiB,UAAU,GAAGjB,OAAO,CAAC,2BAA2B,CAAC;AACvD,MAAMkB,sBAAsB,GAAGlB,OAAO,CAAC,+CAA+C,CAAC;AACvF,MAAMmB,yBAAyB,GAAGnB,OAAO,CAAC,kDAAkD,CAAC;AAC7F,MAAMoB,eAAe,GAAGpB,OAAO,CAAC,uCAAuC,CAAC;AACxE,MAAMqB,aAAa,GAAGrB,OAAO,CAAC,gCAAgC,CAAC;AAC/D,MAAMsB,aAAa,GAAGtB,OAAO,CAAC,iCAAiC,CAAC;AAEhE,MAAMuB,SAAS,GAAGvB,OAAO,CAAC,cAAc,CAAC;AAEzC,SAASwB,eAAeA,CAACC,QAAQ,EAAEC,OAAO,EAAE;EAC1C,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC9B,EAAE,CAAC+B,QAAQ,CAACL,QAAQ,EAAEC,OAAO,EAAE,CAACK,KAAK,EAAEC,IAAI,KAAK;MAC9C,IAAID,KAAK,EAAE;QACTF,MAAM,CAACE,KAAK,CAAC;MACf,CAAC,MAAM;QACLH,OAAO,CAACI,IAAI,CAAC;MACf;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,MAAMC,IAAI,CAAC;EACTC,WAAWA,CAACC,QAAQ,EAAE;IACpB,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC1B;;EAEA;EACA;EACA;EACA;;EAEA,MAAML,QAAQA,CAACL,QAAQ,EAAEC,OAAO,EAAE;IAChC,IAAI,EAAE,MAAMrB,KAAK,CAACN,EAAE,CAACqC,MAAM,CAACX,QAAQ,CAAC,CAAC,EAAE;MACtC,MAAM,IAAIY,KAAK,CAAC,mBAAmBZ,QAAQ,EAAE,CAAC;IAChD;IACA,MAAMa,MAAM,GAAGvC,EAAE,CAACwC,gBAAgB,CAACd,QAAQ,CAAC;IAC5C,IAAI;MACF,MAAMU,QAAQ,GAAG,MAAM,IAAI,CAACK,IAAI,CAACF,MAAM,EAAEZ,OAAO,CAAC;MACjDY,MAAM,CAACG,KAAK,CAAC,CAAC;MACd,OAAON,QAAQ;IACjB,CAAC,CAAC,OAAOJ,KAAK,EAAE;MACdO,MAAM,CAACG,KAAK,CAAC,CAAC;MACd,MAAMV,KAAK;IACb;EACF;EAEAW,SAASA,CAACJ,MAAM,EAAE;IAChB,MAAMK,KAAK,GAAG,IAAIhC,kBAAkB,CAAC,CAAC;IACtC,OAAOgC,KAAK,CAACC,WAAW,CAACN,MAAM,CAAC;EAClC;EAEAO,aAAaA,CAACP,MAAM,EAAE;IACpB,MAAMK,KAAK,GAAG,IAAI7B,aAAa,CAAC,CAAC;IACjC,OAAO6B,KAAK,CAACC,WAAW,CAACN,MAAM,CAAC;EAClC;EAEAQ,kBAAkBA,CAACR,MAAM,EAAE;IACzB,MAAMK,KAAK,GAAG,IAAIjC,kBAAkB,CAAC,CAAC;IACtC,OAAOiC,KAAK,CAACC,WAAW,CAACN,MAAM,CAAC;EAClC;EAEAS,SAASA,CAACC,KAAK,EAAEtB,OAAO,EAAE;IACxB,MAAMuB,aAAa,GAAG,IAAInC,aAAa,CAAC,CAAC;IACzC,MAAMoC,cAAc,GAAG,IAAInC,cAAc,CAACW,OAAO,CAAC;IAClD,MAAMyB,YAAY,GAAG,IAAInC,YAAY,CAAC,CAAC;IACvC,MAAMoC,UAAU,GAAG,IAAInC,UAAU,CAAC,CAAC;IAEnCgC,aAAa,CAACF,SAAS,CAACC,KAAK,CAAC;;IAE9B;IACA,MAAMK,cAAc,GAAG;MACrBC,KAAK,EAAEN,KAAK,CAACM,KAAK;MAClBC,UAAU,EAAEP,KAAK,CAACO;IACpB,CAAC;IACDC,MAAM,CAACC,IAAI,CAACT,KAAK,CAACU,QAAQ,CAAC,CAACC,OAAO,CAACC,IAAI,IAAI;MAC1C,MAAMC,OAAO,GAAGb,KAAK,CAACU,QAAQ,CAACE,IAAI,CAAC;MACpC,MAAME,UAAU,GAAGd,KAAK,CAACe,WAAW,CAACH,IAAI,CAAC;MAC1C,IAAIE,UAAU,EAAE;QACdT,cAAc,CAACW,IAAI,GAAGF,UAAU,CAACG,MAAM,CAAC,CAACC,CAAC,EAAEC,GAAG,KAAK;UAClDD,CAAC,CAACC,GAAG,CAACC,EAAE,CAAC,GAAGD,GAAG;UACf,OAAOD,CAAC;QACV,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,CAACL,OAAO,CAACQ,OAAO,IAAI,EAAE,EAAEV,OAAO,CAACW,MAAM,IAAI;UACxC,MAAMC,UAAU,GAAGD,MAAM,CAACE,OAAO,IAAIF,MAAM,CAACE,OAAO,CAACD,UAAU;UAC9D,IAAIA,UAAU,IAAIlB,cAAc,CAACW,IAAI,CAACO,UAAU,CAACE,GAAG,CAAC,EAAE;YACrDF,UAAU,CAACG,SAAS,GAAGrB,cAAc,CAACW,IAAI,CAACO,UAAU,CAACE,GAAG,CAAC,CAACE,MAAM;YACjE,OAAOJ,UAAU,CAACE,GAAG;UACvB;QACF,CAAC,CAAC;QACFtB,YAAY,CAACJ,SAAS,CAACc,OAAO,EAAER,cAAc,CAAC;MACjD;IACF,CAAC,CAAC;;IAEF;IACA,MAAMuB,YAAY,GAAG;MACnBC,MAAM,EAAE7B,KAAK,CAAC6B;IAChB,CAAC;IACDrB,MAAM,CAACsB,MAAM,CAAC9B,KAAK,CAAC+B,MAAM,CAAC,CAACpB,OAAO,CAACqB,KAAK,IAAI;MAC3C5B,UAAU,CAACL,SAAS,CAACiC,KAAK,EAAEJ,YAAY,CAAC;IAC3C,CAAC,CAAC;IAEF,MAAMK,YAAY,GAAG;MACnBJ,MAAM,EAAE7B,KAAK,CAAC6B,MAAM;MACpBK,aAAa,EAAElC,KAAK,CAACkC,aAAa;MAClC5B,KAAK,EAAEN,KAAK,CAACM,KAAK;MAClBC,UAAU,EAAEP,KAAK,CAACO,UAAU;MAC5B4B,QAAQ,EAAEnC,KAAK,CAACoC,UAAU,IAAIpC,KAAK,CAACoC,UAAU,CAACD,QAAQ;MACvDzB,QAAQ,EAAEV,KAAK,CAACU,QAAQ;MACxB2B,QAAQ,EAAErC,KAAK,CAACqC,QAAQ;MACxBN,MAAM,EAAE/B,KAAK,CAAC+B,MAAM;MACpBO,WAAW,EAAEtC,KAAK,CAACsC;IACrB,CAAC;IACDtC,KAAK,CAACuC,UAAU,CAAC5B,OAAO,CAAC6B,SAAS,IAAI;MACpCA,SAAS,CAACC,aAAa,GAAGzC,KAAK,CAAC0C,aAAa,CAACF,SAAS,CAACG,OAAO,CAAC;MAChEzC,cAAc,CAACH,SAAS,CAACyC,SAAS,EAAEP,YAAY,CAAC;IACnD,CAAC,CAAC;;IAEF;IACA,OAAOjC,KAAK,CAAC4C,aAAa;IAC1B,OAAO5C,KAAK,CAAC0C,aAAa;IAC1B,OAAO1C,KAAK,CAAC6C,UAAU;IACvB,OAAO7C,KAAK,CAACkC,aAAa;IAC1B,OAAOlC,KAAK,CAAC8C,YAAY;IACzB,OAAO9C,KAAK,CAAC+C,SAAS;IACtB,OAAO/C,KAAK,CAAC6B,MAAM;IACnB,OAAO7B,KAAK,CAACO,UAAU;IACvB,OAAOP,KAAK,CAACU,QAAQ;IACrB,OAAOV,KAAK,CAACe,WAAW;IACxB,OAAOf,KAAK,CAACsC,WAAW;EAC1B;EAEA,MAAMU,sBAAsBA,CAAC1D,MAAM,EAAEU,KAAK,EAAE2C,OAAO,EAAEjE,OAAO,EAAEuE,IAAI,EAAE;IAClE,MAAMtD,KAAK,GAAG,IAAI5B,cAAc,CAACW,OAAO,CAAC;IACzC,MAAM8D,SAAS,GAAG,MAAM7C,KAAK,CAACC,WAAW,CAACN,MAAM,CAAC;IACjDkD,SAAS,CAACG,OAAO,GAAGA,OAAO;IAC3B3C,KAAK,CAAC4C,aAAa,CAACK,IAAI,CAAC,GAAGT,SAAS;IACrCxC,KAAK,CAACuC,UAAU,CAACW,IAAI,CAACV,SAAS,CAAC;EAClC;EAEA,MAAMW,oBAAoBA,CAAC7D,MAAM,EAAEU,KAAK,EAAEY,IAAI,EAAE;IAC9C,MAAMjB,KAAK,GAAG,IAAItB,aAAa,CAAC,CAAC;IACjC,MAAMgE,QAAQ,GAAG,MAAM1C,KAAK,CAACC,WAAW,CAACN,MAAM,CAAC;IAChDU,KAAK,CAACqC,QAAQ,CAAC,MAAMzB,IAAI,MAAM,CAAC,GAAGyB,QAAQ;EAC7C;EAEA,MAAMe,kBAAkBA,CAAC9D,MAAM,EAAEU,KAAK,EAAEY,IAAI,EAAE;IAC5C,MAAMjB,KAAK,GAAG,IAAI1B,UAAU,CAAC,CAAC;IAC9B,MAAM+D,KAAK,GAAG,MAAMrC,KAAK,CAACC,WAAW,CAACN,MAAM,CAAC;IAC7CU,KAAK,CAAC+B,MAAM,CAAC,aAAanB,IAAI,MAAM,CAAC,GAAGoB,KAAK;EAC/C;EAEA,MAAMqB,0BAA0BA,CAAC/D,MAAM,EAAEU,KAAK,EAAE2C,OAAO,EAAE;IACvD,MAAMhD,KAAK,GAAG,IAAIhC,kBAAkB,CAAC,CAAC;IACtC,MAAM8E,aAAa,GAAG,MAAM9C,KAAK,CAACC,WAAW,CAACN,MAAM,CAAC;IACrDU,KAAK,CAAC0C,aAAa,CAACC,OAAO,CAAC,GAAGF,aAAa;EAC9C;EAEA,MAAMa,kBAAkBA,CAACC,KAAK,EAAEvD,KAAK,EAAEvB,QAAQ,EAAE;IAC/C,MAAM+E,OAAO,GAAG/E,QAAQ,CAACgF,WAAW,CAAC,GAAG,CAAC;IACzC;IACA,IAAID,OAAO,IAAI,CAAC,EAAE;MAChB,MAAME,SAAS,GAAGjF,QAAQ,CAACkF,MAAM,CAACH,OAAO,GAAG,CAAC,CAAC;MAC9C,MAAM5C,IAAI,GAAGnC,QAAQ,CAACkF,MAAM,CAAC,CAAC,EAAEH,OAAO,CAAC;MACxC,MAAM,IAAI7E,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;QACrC,MAAM+E,SAAS,GAAG,IAAIxG,SAAS,CAAC,CAAC;QACjCwG,SAAS,CAACC,EAAE,CAAC,QAAQ,EAAE,MAAM;UAC3B7D,KAAK,CAACO,UAAU,CAAC9B,QAAQ,CAAC,GAAGuB,KAAK,CAACM,KAAK,CAACwD,MAAM;UAC/C9D,KAAK,CAACO,UAAU,CAACK,IAAI,CAAC,GAAGZ,KAAK,CAACM,KAAK,CAACwD,MAAM;UAC3C,MAAMC,MAAM,GAAG;YACbC,IAAI,EAAE,OAAO;YACbpD,IAAI;YACJ8C,SAAS;YACTO,MAAM,EAAEL,SAAS,CAACM,QAAQ,CAAC;UAC7B,CAAC;UACDlE,KAAK,CAACM,KAAK,CAAC4C,IAAI,CAACa,MAAM,CAAC;UACxBnF,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QACF2E,KAAK,CAACM,EAAE,CAAC,OAAO,EAAE9E,KAAK,IAAI;UACzBF,MAAM,CAACE,KAAK,CAAC;QACf,CAAC,CAAC;QACFwE,KAAK,CAACY,IAAI,CAACP,SAAS,CAAC;MACvB,CAAC,CAAC;IACJ;EACF;EAEA,MAAMQ,oBAAoBA,CAACb,KAAK,EAAEvD,KAAK,EAAEY,IAAI,EAAE;IAC7C,MAAMjB,KAAK,GAAG,IAAI3B,YAAY,CAAC,CAAC;IAChC,MAAM6C,OAAO,GAAG,MAAMlB,KAAK,CAACC,WAAW,CAAC2D,KAAK,CAAC;IAC9CvD,KAAK,CAACU,QAAQ,CAACE,IAAI,CAAC,GAAGC,OAAO;EAChC;EAEA,MAAMwD,wBAAwBA,CAACd,KAAK,EAAEvD,KAAK,EAAEY,IAAI,EAAE;IACjD,MAAMjB,KAAK,GAAG,IAAIhC,kBAAkB,CAAC,CAAC;IACtC,MAAM8E,aAAa,GAAG,MAAM9C,KAAK,CAACC,WAAW,CAAC2D,KAAK,CAAC;IACpDvD,KAAK,CAACe,WAAW,CAACH,IAAI,CAAC,GAAG6B,aAAa;EACzC;EAEA,MAAM6B,uBAAuBA,CAACf,KAAK,EAAEvD,KAAK,EAAEY,IAAI,EAAE;IAChD,MAAMjB,KAAK,GAAG,IAAIrB,aAAa,CAAC,CAAC;IACjC,MAAMiG,UAAU,GAAG,MAAM5E,KAAK,CAACC,WAAW,CAAC2D,KAAK,CAAC;IACjDvD,KAAK,CAACsC,WAAW,CAAC,eAAe1B,IAAI,MAAM,CAAC,GAAG2D,UAAU;EAC3D;EAEA,MAAMC,kBAAkBA,CAACjB,KAAK,EAAEvD,KAAK,EAAEY,IAAI,EAAE;IAC3C,MAAM,IAAIjC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACrC;MACA,MAAMS,MAAM,GAAG,IAAIlC,SAAS,CAAC,CAAC;MAC9BmG,KAAK,CAACM,EAAE,CAAC,OAAO,EAAEhF,MAAM,CAAC;MACzBS,MAAM,CAACuE,EAAE,CAAC,OAAO,EAAEhF,MAAM,CAAC;MAC1BS,MAAM,CAACuE,EAAE,CAAC,QAAQ,EAAE,MAAM;QACxB7D,KAAK,CAACyE,MAAM,CAAC7D,IAAI,CAAC,GAAGtB,MAAM,CAACE,IAAI,CAAC,CAAC,CAACkF,QAAQ,CAAC,CAAC;QAC7C9F,OAAO,CAAC,CAAC;MACX,CAAC,CAAC;MACF2E,KAAK,CAACY,IAAI,CAAC7E,MAAM,CAAC;IACpB,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEqF,iBAAiBA,CAAA,EAAG;IAClB,MAAM,IAAItF,KAAK,CACb,0NACF,CAAC;EACH;EAEA,MAAMG,IAAIA,CAACF,MAAM,EAAEZ,OAAO,EAAE;IAC1B;IACA;IACA,IAAI,CAACY,MAAM,CAACsF,MAAM,CAACC,aAAa,CAAC,IAAIvF,MAAM,CAAC6E,IAAI,EAAE;MAChD7E,MAAM,GAAGA,MAAM,CAAC6E,IAAI,CAAC,IAAIjH,WAAW,CAAC,CAAC,CAAC;IACzC;IACA,MAAM4H,MAAM,GAAG,EAAE;IACjB,WAAW,MAAMC,KAAK,IAAIzF,MAAM,EAAE;MAChCwF,MAAM,CAAC5B,IAAI,CAAC6B,KAAK,CAAC;IACpB;IACA,OAAO,IAAI,CAACC,IAAI,CAACC,MAAM,CAACC,MAAM,CAACJ,MAAM,CAAC,EAAEpG,OAAO,CAAC;EAClD;EAEA,MAAMsG,IAAIA,CAAChG,IAAI,EAAEN,OAAO,EAAE;IACxB,IAAIuF,MAAM;IACV,IAAIvF,OAAO,IAAIA,OAAO,CAACyG,MAAM,EAAE;MAC7BlB,MAAM,GAAGgB,MAAM,CAACG,IAAI,CAACpG,IAAI,CAAC0F,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC;IACjD,CAAC,MAAM;MACLT,MAAM,GAAGjF,IAAI;IACf;IAEA,MAAMgB,KAAK,GAAG;MACZuC,UAAU,EAAE,EAAE;MACdK,aAAa,EAAE,CAAC,CAAC;MACjBF,aAAa,EAAE,EAAE;MACjB+B,MAAM,EAAE,CAAC,CAAC;MACVnE,KAAK,EAAE,EAAE;MACTC,UAAU,EAAE,CAAC,CAAC;MACdG,QAAQ,EAAE,CAAC,CAAC;MACZK,WAAW,EAAE,CAAC,CAAC;MACfsB,QAAQ,EAAE,CAAC,CAAC;MACZN,MAAM,EAAE,CAAC,CAAC;MACVO,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,MAAM+C,GAAG,GAAG,MAAMpI,KAAK,CAACqI,SAAS,CAACrB,MAAM,CAAC;IACzC,KAAK,MAAMV,KAAK,IAAI/C,MAAM,CAACsB,MAAM,CAACuD,GAAG,CAACE,KAAK,CAAC,EAAE;MAC5C;MACA,IAAI,CAAChC,KAAK,CAACiC,GAAG,EAAE;QACd,IAAIC,SAAS,GAAGlC,KAAK,CAAC3C,IAAI;QAC1B,IAAI6E,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;UACxBA,SAAS,GAAGA,SAAS,CAAC9B,MAAM,CAAC,CAAC,CAAC;QACjC;QACA,IAAIrE,MAAM;QACV,IACEmG,SAAS,CAACC,KAAK,CAAC,aAAa,CAAC;QAC9B;QACAD,SAAS,CAACC,KAAK,CAAC,iCAAiC,CAAC,EAClD;UACApG,MAAM,GAAG,IAAIpC,WAAW,CAAC,CAAC;UAC1BoC,MAAM,CAACqG,KAAK,CAAC,MAAMpC,KAAK,CAACqC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC,MAAM;UACL;UACAtG,MAAM,GAAG,IAAIpC,WAAW,CAAC;YACvB2I,kBAAkB,EAAE,IAAI;YACxBC,kBAAkB,EAAE;UACtB,CAAC,CAAC;UACF,IAAIC,OAAO;UACX;UACA,IAAIC,OAAO,CAACC,OAAO,EAAE;YACnB;YACAF,OAAO,GAAGxI,cAAc,CAAC,MAAMgG,KAAK,CAACqC,KAAK,CAAC,YAAY,CAAC,CAAC;UAC3D,CAAC,MAAM;YACL;YACAG,OAAO,GAAG,MAAMxC,KAAK,CAACqC,KAAK,CAAC,QAAQ,CAAC;UACvC;UACA,MAAMM,SAAS,GAAG,EAAE,GAAG,IAAI;UAC3B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,OAAO,CAACjC,MAAM,EAAEqC,CAAC,IAAID,SAAS,EAAE;YAClD5G,MAAM,CAACqG,KAAK,CAACI,OAAO,CAACK,SAAS,CAACD,CAAC,EAAEA,CAAC,GAAGD,SAAS,CAAC,CAAC;UACnD;QACF;QACA5G,MAAM,CAAC+G,GAAG,CAAC,CAAC;QACZ,QAAQZ,SAAS;UACf,KAAK,aAAa;YAChBzF,KAAK,CAAC6C,UAAU,GAAG,MAAM,IAAI,CAACnD,SAAS,CAACJ,MAAM,CAAC;YAC/C;UAEF,KAAK,iBAAiB;YAAE;cACtB,MAAMH,QAAQ,GAAG,MAAM,IAAI,CAACU,aAAa,CAACP,MAAM,CAAC;cACjDU,KAAK,CAACsG,MAAM,GAAGnH,QAAQ,CAACmH,MAAM;cAC9BtG,KAAK,CAACuG,YAAY,GAAGpH,QAAQ,CAACoH,YAAY;cAC1CvG,KAAK,CAACwG,KAAK,GAAGrH,QAAQ,CAACqH,KAAK;cAC5BxG,KAAK,CAACoC,UAAU,GAAGjD,QAAQ,CAACiD,UAAU;cACtCpC,KAAK,CAACyG,cAAc,GAAGtH,QAAQ,CAACsH,cAAc;cAC9C;YACF;UAEA,KAAK,4BAA4B;YAC/BzG,KAAK,CAAC8C,YAAY,GAAG,MAAM,IAAI,CAACpD,SAAS,CAACJ,MAAM,CAAC;YACjD;UAEF,KAAK,sBAAsB;YACzBU,KAAK,CAACkC,aAAa,GAAG,IAAIxE,kBAAkB,CAAC,CAAC;YAC9C,MAAMsC,KAAK,CAACkC,aAAa,CAACtC,WAAW,CAACN,MAAM,CAAC;YAC7C;UAEF,KAAK,eAAe;YAClBU,KAAK,CAAC6B,MAAM,GAAG,IAAIrE,WAAW,CAAC,CAAC;YAChC,MAAMwC,KAAK,CAAC6B,MAAM,CAACjC,WAAW,CAACN,MAAM,CAAC;YACtC;UAEF,KAAK,kBAAkB;YAAE;cACvB,MAAMoH,QAAQ,GAAG,IAAI7I,QAAQ,CAAC,CAAC;cAC/B,MAAM8I,aAAa,GAAG,MAAMD,QAAQ,CAAC9G,WAAW,CAACN,MAAM,CAAC;cACxDU,KAAK,CAAC4G,OAAO,GAAGD,aAAa,CAACC,OAAO;cACrC5G,KAAK,CAAC6G,OAAO,GAAGF,aAAa,CAACE,OAAO;cACrC;YACF;UAEA,KAAK,mBAAmB;YAAE;cACxB,MAAMC,SAAS,GAAG,IAAIrJ,SAAS,CAAC,CAAC;cACjC,MAAMsJ,cAAc,GAAG,MAAMD,SAAS,CAAClH,WAAW,CAACN,MAAM,CAAC;cAC1DkB,MAAM,CAACwG,MAAM,CAAChH,KAAK,EAAE+G,cAAc,CAAC;cACpC;YACF;UAEA;YAAS;cACP,IAAIrB,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,kCAAkC,CAAC;cAC/D,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAAC1C,sBAAsB,CAAC1D,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,EAAEhH,OAAO,EAAE+G,SAAS,CAAC;gBAC9E;cACF;cACAC,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,8CAA8C,CAAC;cACvE,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAACrC,0BAA0B,CAAC/D,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9D;cACF;cACAA,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,iCAAiC,CAAC;cAC1D,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAAClB,kBAAkB,CAAClF,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtD;cACF;cACAA,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,+CAA+C,CAAC;cACxE,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAACpC,kBAAkB,CAAChE,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtD;cACF;cACAA,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,oCAAoC,CAAC;cAC7D,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAACtB,oBAAoB,CAAC9E,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxD;cACF;cACAA,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,yBAAyB,CAAC;cAClD,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAACvC,oBAAoB,CAAC7D,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxD;cACF;cACAA,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,8BAA8B,CAAC;cACvD,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAACtC,kBAAkB,CAAC9D,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtD;cACF;cACAA,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,kDAAkD,CAAC;cAC3E,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAACrB,wBAAwB,CAAC/E,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5D;cACF;cACAA,KAAK,GAAGD,SAAS,CAACC,KAAK,CAAC,qCAAqC,CAAC;cAC9D,IAAIA,KAAK,EAAE;gBACT,MAAM,IAAI,CAACpB,uBAAuB,CAAChF,MAAM,EAAEU,KAAK,EAAE0F,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3D;cACF;YACF;QACF;MACF;IACF;IAEA,IAAI,CAAC3F,SAAS,CAACC,KAAK,EAAEtB,OAAO,CAAC;;IAE9B;IACA,IAAI,CAACS,QAAQ,CAACa,KAAK,GAAGA,KAAK;IAC3B,OAAO,IAAI,CAACb,QAAQ;EACtB;;EAEA;EACA;;EAEA,MAAM8H,QAAQA,CAAC5B,GAAG,EAAErF,KAAK,EAAE;IACzB,MAAMrB,OAAO,CAACuI,GAAG,CACflH,KAAK,CAACM,KAAK,CAAC6G,GAAG,CAAC,MAAMpD,MAAM,IAAI;MAC9B,IAAIA,MAAM,CAACC,IAAI,KAAK,OAAO,EAAE;QAC3B,MAAMvF,QAAQ,GAAG,YAAYsF,MAAM,CAACnD,IAAI,IAAImD,MAAM,CAACL,SAAS,EAAE;QAC9D,IAAIK,MAAM,CAACtF,QAAQ,EAAE;UACnB,MAAMO,IAAI,GAAG,MAAMR,eAAe,CAACuF,MAAM,CAACtF,QAAQ,CAAC;UACnD,OAAO4G,GAAG,CAAC+B,MAAM,CAACpI,IAAI,EAAE;YAAC4B,IAAI,EAAEnC;UAAQ,CAAC,CAAC;QAC3C;QACA,IAAIsF,MAAM,CAACE,MAAM,EAAE;UACjB,OAAOoB,GAAG,CAAC+B,MAAM,CAACrD,MAAM,CAACE,MAAM,EAAE;YAACrD,IAAI,EAAEnC;UAAQ,CAAC,CAAC;QACpD;QACA,IAAIsF,MAAM,CAACoB,MAAM,EAAE;UACjB,MAAMkC,SAAS,GAAGtD,MAAM,CAACoB,MAAM;UAC/B,MAAMY,OAAO,GAAGsB,SAAS,CAACjB,SAAS,CAACiB,SAAS,CAACC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;UAC/D,OAAOjC,GAAG,CAAC+B,MAAM,CAACrB,OAAO,EAAE;YAACnF,IAAI,EAAEnC,QAAQ;YAAE0G,MAAM,EAAE;UAAI,CAAC,CAAC;QAC5D;MACF;MACA,MAAM,IAAI9F,KAAK,CAAC,mBAAmB,CAAC;IACtC,CAAC,CACH,CAAC;EACH;EAEAkI,WAAWA,CAAClC,GAAG,EAAErF,KAAK,EAAE;IACtB,MAAMG,YAAY,GAAG,IAAInC,YAAY,CAAC,CAAC;IACvC,MAAMwJ,SAAS,GAAG,IAAI7J,kBAAkB,CAAC,CAAC;IAE1CqC,KAAK,CAACuC,UAAU,CAAC5B,OAAO,CAAC6B,SAAS,IAAI;MACpC,MAAM;QAAC3B;MAAO,CAAC,GAAG2B,SAAS;MAC3B,IAAI3B,OAAO,EAAE;QACXV,YAAY,CAACsH,OAAO,CAAC5G,OAAO,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI6G,GAAG,GAAGvH,YAAY,CAACwH,KAAK,CAAC9G,OAAO,CAAC;QACrCwE,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;UAAC9G,IAAI,EAAE,eAAeC,OAAO,CAACD,IAAI;QAAM,CAAC,CAAC;QAE1D8G,GAAG,GAAGF,SAAS,CAACG,KAAK,CAAC9G,OAAO,CAACG,IAAI,CAAC;QACnCqE,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;UAAC9G,IAAI,EAAE,qBAAqBC,OAAO,CAACD,IAAI;QAAW,CAAC,CAAC;MACvE;IACF,CAAC,CAAC;EACJ;EAEAgH,SAASA,CAACvC,GAAG,EAAErF,KAAK,EAAE;IACpB,MAAMI,UAAU,GAAG,IAAInC,UAAU,CAAC,CAAC;IAEnC+B,KAAK,CAACuC,UAAU,CAAC5B,OAAO,CAAC6B,SAAS,IAAI;MACpC,MAAM;QAACT;MAAM,CAAC,GAAGS,SAAS;MAC1BT,MAAM,CAACpB,OAAO,CAACqB,KAAK,IAAI;QACtB5B,UAAU,CAACqH,OAAO,CAACzF,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,MAAM6F,QAAQ,GAAGzH,UAAU,CAACuH,KAAK,CAAC3F,KAAK,CAAC;QACxCqD,GAAG,CAAC+B,MAAM,CAACS,QAAQ,EAAE;UAACjH,IAAI,EAAE,aAAaoB,KAAK,CAAC8F,MAAM;QAAE,CAAC,CAAC;MAC3D,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEAC,cAAcA,CAAC1C,GAAG,EAAErF,KAAK,EAAE;IACzB,IAAI,CAACA,KAAK,CAACgI,WAAW,CAAClE,MAAM,EAAE;IAE/B,MAAMmE,UAAU,GAAGjI,KAAK,CAACgI,WAAW,CAAC,CAAC,CAAC;IAEvC,MAAME,sBAAsB,GAAG,IAAIhK,sBAAsB,CAAC,CAAC;IAC3D,MAAMiK,yBAAyB,GAAG,IAAIhK,yBAAyB,CAAC,CAAC;IACjE,MAAMiK,eAAe,GAAG,IAAIhK,eAAe,CAAC,CAAC;IAC7C,MAAMoJ,SAAS,GAAG,IAAI7J,kBAAkB,CAAC,CAAC;;IAE1C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA,IAAI+J,GAAG,GAAGQ,sBAAsB,CAACP,KAAK,CAACM,UAAU,CAAC;IAClD5C,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAAsC,CAAC,CAAC;;IAE/D;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA8G,GAAG,GAAGS,yBAAyB,CAACR,KAAK,CAACM,UAAU,CAAC;IACjD5C,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAAyC,CAAC,CAAC;IAElE8G,GAAG,GAAGF,SAAS,CAACG,KAAK,CAAC,CACpB;MACEvG,EAAE,EAAE,MAAM;MACViH,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACC,iBAAiB;MACpC5G,MAAM,EAAE;IACV,CAAC,CACF,CAAC;IACF0D,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAAoD,CAAC,CAAC;;IAE7E;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA8G,GAAG,GAAGU,eAAe,CAACT,KAAK,CAACM,UAAU,CAAC;IACvC5C,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAAgC,CAAC,CAAC;IAEzD8G,GAAG,GAAGF,SAAS,CAACG,KAAK,CAAC,CACpB;MACEvG,EAAE,EAAE,MAAM;MACViH,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACE,oBAAoB;MACvC7G,MAAM,EAAE;IACV,CAAC,CACF,CAAC;IACF0D,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAA2C,CAAC,CAAC;EACtE;EAEA,MAAM6H,eAAeA,CAACpD,GAAG,EAAErF,KAAK,EAAE;IAChC,MAAML,KAAK,GAAG,IAAI/B,iBAAiB,CAAC,CAAC;IACrC,MAAM8J,GAAG,GAAG/H,KAAK,CAACgI,KAAK,CAAC3H,KAAK,CAAC;IAC9BqF,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAAqB,CAAC,CAAC;EAChD;EAEA,MAAM8H,MAAMA,CAACrD,GAAG,EAAErF,KAAK,EAAE;IACvB,MAAML,KAAK,GAAG,IAAI9B,QAAQ,CAAC,CAAC;IAC5B,MAAM6J,GAAG,GAAG/H,KAAK,CAACgI,KAAK,CAAC3H,KAAK,CAAC;IAC9BqF,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAAkB,CAAC,CAAC;EAC7C;EAEA,MAAM+H,OAAOA,CAACtD,GAAG,EAAErF,KAAK,EAAE;IACxB,MAAM8G,SAAS,GAAG,IAAIrJ,SAAS,CAAC,CAAC;IACjC4H,GAAG,CAAC+B,MAAM,CAACN,SAAS,CAACa,KAAK,CAAC3H,KAAK,CAAC,EAAE;MAACY,IAAI,EAAE;IAAmB,CAAC,CAAC;EACjE;EAEA,MAAMgI,SAASA,CAACvD,GAAG,EAAErF,KAAK,EAAE;IAC1B,MAAMyE,MAAM,GAAGzE,KAAK,CAACyE,MAAM,IAAI;MAACoE,MAAM,EAAEtK;IAAS,CAAC;IAClDiC,MAAM,CAACC,IAAI,CAACgE,MAAM,CAAC,CAAC9D,OAAO,CAACC,IAAI,IAAI;MAClC,MAAM8G,GAAG,GAAGjD,MAAM,CAAC7D,IAAI,CAAC;MACxB,MAAMqC,IAAI,GAAG,YAAYrC,IAAI,MAAM;MACnCyE,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;QAAC9G,IAAI,EAAEqC;MAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;EACJ;EAEA,MAAM6F,aAAaA,CAACzD,GAAG,EAAE;IACvB,MAAM1F,KAAK,GAAG,IAAIhC,kBAAkB,CAAC,CAAC;IACtC,MAAM+J,GAAG,GAAG/H,KAAK,CAACgI,KAAK,CAAC,CACtB;MAACvG,EAAE,EAAE,MAAM;MAAEiH,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACS,cAAc;MAAEpH,MAAM,EAAE;IAAiB,CAAC,EAC1E;MAACP,EAAE,EAAE,MAAM;MAAEiH,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACU,cAAc;MAAErH,MAAM,EAAE;IAAmB,CAAC,EAC5E;MAACP,EAAE,EAAE,MAAM;MAAEiH,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACW,kBAAkB;MAAEtH,MAAM,EAAE;IAAkB,CAAC,CAChF,CAAC;IACF0D,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAAa,CAAC,CAAC;EACxC;EAEA,MAAMsI,eAAeA,CAAC7D,GAAG,EAAErF,KAAK,EAAE;IAChC,IAAImJ,KAAK,GAAG,CAAC;IACb,MAAM1G,aAAa,GAAG,CACpB;MAACrB,EAAE,EAAE,MAAM+H,KAAK,EAAE,EAAE;MAAEd,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACc,MAAM;MAAEzH,MAAM,EAAE;IAAY,CAAC,EACtE;MAACP,EAAE,EAAE,MAAM+H,KAAK,EAAE,EAAE;MAAEd,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACe,KAAK;MAAE1H,MAAM,EAAE;IAAkB,CAAC,CAC5E;IACD,IAAI3B,KAAK,CAACkC,aAAa,CAACiH,KAAK,EAAE;MAC7B1G,aAAa,CAACS,IAAI,CAAC;QACjB9B,EAAE,EAAE,MAAM+H,KAAK,EAAE,EAAE;QACnBd,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACgB,aAAa;QAChC3H,MAAM,EAAE;MACV,CAAC,CAAC;IACJ;IACA,IAAI,CAAC3B,KAAK,CAACgI,WAAW,IAAI,EAAE,EAAElE,MAAM,EAAE;MACpC,MAAMmE,UAAU,GAAGjI,KAAK,CAACgI,WAAW,CAAC,CAAC,CAAC;MACvCC,UAAU,CAACxG,GAAG,GAAG,MAAM0H,KAAK,EAAE,EAAE;MAChC1G,aAAa,CAACS,IAAI,CAAC;QACjB9B,EAAE,EAAE6G,UAAU,CAACxG,GAAG;QAClB4G,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACE,oBAAoB;QACvC7G,MAAM,EAAE;MACV,CAAC,CAAC;IACJ;IACA3B,KAAK,CAACuC,UAAU,CAAC5B,OAAO,CAAC6B,SAAS,IAAI;MACpCA,SAAS,CAACf,GAAG,GAAG,MAAM0H,KAAK,EAAE,EAAE;MAC/B1G,aAAa,CAACS,IAAI,CAAC;QACjB9B,EAAE,EAAEoB,SAAS,CAACf,GAAG;QACjB4G,IAAI,EAAEpJ,IAAI,CAACqJ,OAAO,CAACiB,SAAS;QAC5B5H,MAAM,EAAE,mBAAmBa,SAAS,CAACgH,EAAE;MACzC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM7J,KAAK,GAAG,IAAIhC,kBAAkB,CAAC,CAAC;IACtC,MAAM+J,GAAG,GAAG/H,KAAK,CAACgI,KAAK,CAAClF,aAAa,CAAC;IACtC4C,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;MAAC9G,IAAI,EAAE;IAA4B,CAAC,CAAC;EACvD;EAEA,MAAM6I,gBAAgBA,CAACpE,GAAG,EAAErF,KAAK,EAAE;IACjC,IAAIA,KAAK,CAACkC,aAAa,IAAIlC,KAAK,CAACkC,aAAa,CAACiH,KAAK,EAAE;MACpD9D,GAAG,CAAC+B,MAAM,CAACpH,KAAK,CAACkC,aAAa,CAACwF,GAAG,EAAE;QAAC9G,IAAI,EAAE;MAAsB,CAAC,CAAC;IACrE;EACF;EAEA,MAAM8I,SAASA,CAACrE,GAAG,EAAErF,KAAK,EAAE;IAC1B,MAAM;MAAC0H;IAAG,CAAC,GAAG1H,KAAK,CAAC6B,MAAM;IAC1B,IAAI6F,GAAG,EAAE;MACPrC,GAAG,CAAC+B,MAAM,CAACM,GAAG,EAAE;QAAC9G,IAAI,EAAE;MAAe,CAAC,CAAC;IAC1C;EACF;EAEA,MAAM+I,WAAWA,CAACtE,GAAG,EAAErF,KAAK,EAAE;IAC5B,MAAML,KAAK,GAAG,IAAI7B,aAAa,CAAC,CAAC;IACjCuH,GAAG,CAAC+B,MAAM,CAACzH,KAAK,CAACgI,KAAK,CAAC3H,KAAK,CAAC,EAAE;MAACY,IAAI,EAAE;IAAiB,CAAC,CAAC;EAC3D;EAEA,MAAMgJ,aAAaA,CAACvE,GAAG,EAAErF,KAAK,EAAE;IAC9B;IACA,MAAME,cAAc,GAAG,IAAInC,cAAc,CAAC,CAAC;IAC3C,MAAM8L,kBAAkB,GAAG,IAAIlM,kBAAkB,CAAC,CAAC;IACnD,MAAMmM,aAAa,GAAG,IAAIzL,aAAa,CAAC,CAAC;IACzC,MAAM0L,aAAa,GAAG,IAAIzL,aAAa,CAAC,CAAC;;IAEzC;IACA0B,KAAK,CAACuC,UAAU,CAAC5B,OAAO,CAAC6B,SAAS,IAAI;MACpC,IAAIwH,SAAS,GAAG,IAAI1M,SAAS,CAAC,CAAC;MAC/B4C,cAAc,CAAC+J,MAAM,CAACD,SAAS,EAAExH,SAAS,CAAC;MAC3C6C,GAAG,CAAC+B,MAAM,CAAC4C,SAAS,CAACtC,GAAG,EAAE;QAAC9G,IAAI,EAAE,sBAAsB4B,SAAS,CAACgH,EAAE;MAAM,CAAC,CAAC;MAE3E,IAAIhH,SAAS,CAACxB,IAAI,IAAIwB,SAAS,CAACxB,IAAI,CAAC8C,MAAM,EAAE;QAC3CkG,SAAS,GAAG,IAAI1M,SAAS,CAAC,CAAC;QAC3BuM,kBAAkB,CAACI,MAAM,CAACD,SAAS,EAAExH,SAAS,CAACxB,IAAI,CAAC;QACpDqE,GAAG,CAAC+B,MAAM,CAAC4C,SAAS,CAACtC,GAAG,EAAE;UAAC9G,IAAI,EAAE,4BAA4B4B,SAAS,CAACgH,EAAE;QAAW,CAAC,CAAC;MACxF;MAEA,IAAIhH,SAAS,CAACH,QAAQ,CAACyB,MAAM,GAAG,CAAC,EAAE;QACjCkG,SAAS,GAAG,IAAI1M,SAAS,CAAC,CAAC;QAC3BwM,aAAa,CAACG,MAAM,CAACD,SAAS,EAAExH,SAAS,CAAC;QAC1C6C,GAAG,CAAC+B,MAAM,CAAC4C,SAAS,CAACtC,GAAG,EAAE;UAAC9G,IAAI,EAAE,cAAc4B,SAAS,CAACgH,EAAE;QAAM,CAAC,CAAC;QAEnEQ,SAAS,GAAG,IAAI1M,SAAS,CAAC,CAAC;QAC3ByM,aAAa,CAACE,MAAM,CAACD,SAAS,EAAExH,SAAS,CAAC;QAC1C6C,GAAG,CAAC+B,MAAM,CAAC4C,SAAS,CAACtC,GAAG,EAAE;UAAC9G,IAAI,EAAE,yBAAyB4B,SAAS,CAACgH,EAAE;QAAM,CAAC,CAAC;MAChF;IACF,CAAC,CAAC;EACJ;EAEAU,SAASA,CAAC7E,GAAG,EAAE;IACb,OAAO,IAAI1G,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtCwG,GAAG,CAACxB,EAAE,CAAC,QAAQ,EAAE,MAAM;QACrBjF,OAAO,CAAC,IAAI,CAAC;MACf,CAAC,CAAC;MACFyG,GAAG,CAACxB,EAAE,CAAC,OAAO,EAAEhF,MAAM,CAAC;MACvBwG,GAAG,CAAC8E,QAAQ,CAAC,CAAC;IAChB,CAAC,CAAC;EACJ;EAEAC,YAAYA,CAACpK,KAAK,EAAEtB,OAAO,EAAE;IAC3B;IACAsB,KAAK,CAACqK,OAAO,GAAGrK,KAAK,CAACqK,OAAO,IAAI,SAAS;IAC1CrK,KAAK,CAACsK,cAAc,GAAGtK,KAAK,CAACsK,cAAc,IAAI,SAAS;IACxDtK,KAAK,CAACuK,OAAO,GAAGvK,KAAK,CAACuK,OAAO,IAAI,IAAIC,IAAI,CAAC,CAAC;IAC3CxK,KAAK,CAACyK,QAAQ,GAAGzK,KAAK,CAACyK,QAAQ,IAAI,IAAID,IAAI,CAAC,CAAC;IAE7CxK,KAAK,CAAC0K,gBAAgB,GAAGhM,OAAO,CAACgM,gBAAgB,KAAKC,SAAS,GAAGjM,OAAO,CAACgM,gBAAgB,GAAG,IAAI;IACjG1K,KAAK,CAAC4K,SAAS,GAAGlM,OAAO,CAACkM,SAAS,KAAKD,SAAS,GAAGjM,OAAO,CAACkM,SAAS,GAAG,IAAI;;IAE5E;IACA5K,KAAK,CAACkC,aAAa,GAAG,IAAIxE,kBAAkB,CAAC,CAAC;;IAE9C;IACAsC,KAAK,CAAC6B,MAAM,GAAG7B,KAAK,CAAC4K,SAAS,GAAG,IAAIpN,WAAW,CAAC,IAAI,CAAC,GAAG,IAAIA,WAAW,CAACqN,IAAI,CAAC,CAAC;;IAE/E;IACA,MAAM5K,aAAa,GAAG,IAAInC,aAAa,CAAC,CAAC;IACzC,MAAMoC,cAAc,GAAG,IAAInC,cAAc,CAAC,CAAC;IAE3CkC,aAAa,CAACwH,OAAO,CAACzH,KAAK,CAAC;IAE5B,MAAM8K,gBAAgB,GAAG;MACvB5I,aAAa,EAAElC,KAAK,CAACkC,aAAa;MAClCL,MAAM,EAAE7B,KAAK,CAAC6B,MAAM;MACpBM,QAAQ,EAAEnC,KAAK,CAACoC,UAAU,CAACD,QAAQ;MACnC4I,aAAa,EAAE,CAAC;MAChBzK,KAAK,EAAEN,KAAK,CAACM;IACf,CAAC;IACDwK,gBAAgB,CAACpK,QAAQ,GAAGV,KAAK,CAACU,QAAQ,GAAG,EAAE;IAC/CoK,gBAAgB,CAACE,WAAW,GAAGhL,KAAK,CAACgL,WAAW,GAAG,EAAE;IACrD,IAAIC,UAAU,GAAG,CAAC;IAClBjL,KAAK,CAAC+B,MAAM,GAAG,EAAE;IACjB/B,KAAK,CAACuC,UAAU,CAAC5B,OAAO,CAAC6B,SAAS,IAAI;MACpC;MACAA,SAAS,CAACT,MAAM,CAACpB,OAAO,CAACqB,KAAK,IAAI;QAChCiJ,UAAU,EAAE;QACZjJ,KAAK,CAAC8F,MAAM,GAAG,QAAQmD,UAAU,MAAM;QACvCjJ,KAAK,CAACwH,EAAE,GAAGyB,UAAU;QACrBjL,KAAK,CAAC+B,MAAM,CAACmB,IAAI,CAAClB,KAAK,CAAC;MAC1B,CAAC,CAAC;MAEF9B,cAAc,CAACuH,OAAO,CAACjF,SAAS,EAAEsI,gBAAgB,CAAC;IACrD,CAAC,CAAC;;IAEF;EACF;EAEA,MAAMnF,KAAKA,CAACrG,MAAM,EAAEZ,OAAO,EAAE;IAC3BA,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;IACvB,MAAM;MAACsB;IAAK,CAAC,GAAG,IAAI,CAACb,QAAQ;IAC7B,MAAMkG,GAAG,GAAG,IAAIlI,SAAS,CAAC+N,SAAS,CAACxM,OAAO,CAAC2G,GAAG,CAAC;IAChDA,GAAG,CAAClB,IAAI,CAAC7E,MAAM,CAAC;IAEhB,IAAI,CAAC8K,YAAY,CAACpK,KAAK,EAAEtB,OAAO,CAAC;;IAEjC;IACA,MAAM,IAAI,CAAC+J,eAAe,CAACpD,GAAG,EAAErF,KAAK,CAAC;IACtC,MAAM,IAAI,CAAC8I,aAAa,CAACzD,GAAG,EAAErF,KAAK,CAAC;IACpC,MAAM,IAAI,CAACkJ,eAAe,CAAC7D,GAAG,EAAErF,KAAK,CAAC;IACtC,MAAM,IAAI,CAAC4J,aAAa,CAACvE,GAAG,EAAErF,KAAK,CAAC;IACpC,MAAM,IAAI,CAACyJ,gBAAgB,CAACpE,GAAG,EAAErF,KAAK,CAAC,CAAC,CAAC;IACzC,MAAM,IAAI,CAACuH,WAAW,CAAClC,GAAG,EAAErF,KAAK,CAAC;IAClC,MAAM,IAAI,CAAC4H,SAAS,CAACvC,GAAG,EAAErF,KAAK,CAAC;IAChC,MAAM,IAAI,CAAC+H,cAAc,CAAC1C,GAAG,EAAErF,KAAK,CAAC;IACrC,MAAMrB,OAAO,CAACuI,GAAG,CAAC,CAAC,IAAI,CAAC0B,SAAS,CAACvD,GAAG,EAAErF,KAAK,CAAC,EAAE,IAAI,CAAC0J,SAAS,CAACrE,GAAG,EAAErF,KAAK,CAAC,CAAC,CAAC;IAC3E,MAAM,IAAI,CAACiH,QAAQ,CAAC5B,GAAG,EAAErF,KAAK,CAAC;IAC/B,MAAMrB,OAAO,CAACuI,GAAG,CAAC,CAAC,IAAI,CAACwB,MAAM,CAACrD,GAAG,EAAErF,KAAK,CAAC,EAAE,IAAI,CAAC2I,OAAO,CAACtD,GAAG,EAAErF,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,CAAC2J,WAAW,CAACtE,GAAG,EAAErF,KAAK,CAAC;IAClC,OAAO,IAAI,CAACkK,SAAS,CAAC7E,GAAG,CAAC;EAC5B;EAEA8F,SAASA,CAAC1M,QAAQ,EAAEC,OAAO,EAAE;IAC3B,MAAMY,MAAM,GAAGvC,EAAE,CAACqO,iBAAiB,CAAC3M,QAAQ,CAAC;IAE7C,OAAO,IAAIE,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtCS,MAAM,CAACuE,EAAE,CAAC,QAAQ,EAAE,MAAM;QACxBjF,OAAO,CAAC,CAAC;MACX,CAAC,CAAC;MACFU,MAAM,CAACuE,EAAE,CAAC,OAAO,EAAE9E,KAAK,IAAI;QAC1BF,MAAM,CAACE,KAAK,CAAC;MACf,CAAC,CAAC;MAEF,IAAI,CAAC4G,KAAK,CAACrG,MAAM,EAAEZ,OAAO,CAAC,CACxB2M,IAAI,CAAC,MAAM;QACV/L,MAAM,CAAC+G,GAAG,CAAC,CAAC;MACd,CAAC,CAAC,CACDiF,KAAK,CAACC,GAAG,IAAI;QACZ1M,MAAM,CAAC0M,GAAG,CAAC;MACb,CAAC,CAAC;IACN,CAAC,CAAC;EACJ;EAEA,MAAMC,WAAWA,CAAC9M,OAAO,EAAE;IACzB,MAAMY,MAAM,GAAG,IAAIlC,SAAS,CAAC,CAAC;IAC9B,MAAM,IAAI,CAACuI,KAAK,CAACrG,MAAM,EAAEZ,OAAO,CAAC;IACjC,OAAOY,MAAM,CAACE,IAAI,CAAC,CAAC;EACtB;AACF;AAEAP,IAAI,CAACqJ,OAAO,GAAGtL,OAAO,CAAC,YAAY,CAAC;AAEpCyO,MAAM,CAACC,OAAO,GAAGzM,IAAI","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* eslint-disable import/no-extraneous-dependencies,
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies,n/no-unpublished-require */
|
|
2
2
|
require('core-js/modules/es.promise');
|
|
3
3
|
require('core-js/modules/es.promise.finally');
|
|
4
4
|
require('core-js/modules/es.object.assign');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// eslint-disable-next-line
|
|
1
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
2
2
|
const textEncoder = typeof TextEncoder === 'undefined' ? null : new TextEncoder('utf-8');
|
|
3
3
|
const {Buffer} = require('buffer');
|
|
4
4
|
|