devextreme-exceljs-fork 4.4.7 → 4.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dx-exceljs-fork.bare.js +445 -541
- package/dist/dx-exceljs-fork.bare.js.map +18 -18
- package/dist/dx-exceljs-fork.bare.min.js +7 -7
- package/dist/dx-exceljs-fork.bare.min.js.map +1 -1
- package/dist/dx-exceljs-fork.js +445 -541
- package/dist/dx-exceljs-fork.js.map +18 -18
- package/dist/dx-exceljs-fork.min.js +6 -6
- package/dist/dx-exceljs-fork.min.js.map +1 -1
- package/dist/es5/csv/csv.js +1 -1
- package/dist/es5/csv/csv.js.map +1 -1
- package/dist/es5/doc/cell.js +5 -5
- package/dist/es5/doc/cell.js.map +1 -1
- package/dist/es5/doc/pivot-table.js +1 -1
- package/dist/es5/doc/pivot-table.js.map +1 -1
- package/dist/es5/doc/range.js +7 -7
- package/dist/es5/doc/range.js.map +1 -1
- package/dist/es5/doc/row.js +1 -1
- package/dist/es5/doc/row.js.map +1 -1
- package/dist/es5/doc/table.js +10 -10
- package/dist/es5/doc/table.js.map +1 -1
- package/dist/es5/doc/worksheet.js +7 -6
- package/dist/es5/doc/worksheet.js.map +1 -1
- package/dist/es5/stream/xlsx/hyperlink-reader.js +26 -49
- package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/sheet-comments-writer.js +6 -6
- package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/sheet-rels-writer.js +6 -5
- package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-reader.js +215 -320
- package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-writer.js +8 -8
- package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-reader.js +265 -341
- package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-writer.js +9 -13
- package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -1
- package/dist/es5/utils/col-cache.js +14 -18
- package/dist/es5/utils/col-cache.js.map +1 -1
- package/dist/es5/utils/copy-style.js +12 -10
- package/dist/es5/utils/copy-style.js.map +1 -1
- package/dist/es5/utils/encryptor.js +1 -1
- package/dist/es5/utils/encryptor.js.map +1 -1
- package/dist/es5/utils/iterate-stream.js +26 -37
- package/dist/es5/utils/iterate-stream.js.map +1 -1
- package/dist/es5/utils/parse-sax.js +34 -67
- package/dist/es5/utils/parse-sax.js.map +1 -1
- package/dist/es5/utils/utils.js +1 -1
- package/dist/es5/utils/utils.js.map +1 -1
- package/dist/es5/utils/xml-stream.js +1 -1
- package/dist/es5/utils/xml-stream.js.map +1 -1
- package/dist/es5/xlsx/xform/base-xform.js +12 -35
- package/dist/es5/xlsx/xform/base-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/book/defined-name-xform.js +2 -2
- package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/book/workbook-xform.js +5 -5
- package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/comment-xform.js +4 -8
- package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +1 -1
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/content-types-xform.js +5 -5
- package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/core-xform.js +2 -2
- package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/relationships-xform.js +2 -2
- package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +1 -1
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/list-xform.js +1 -1
- package/dist/es5/xlsx/xform/list-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js +8 -2
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +3 -7
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +7 -11
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +70 -10
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +1 -1
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cell-xform.js +4 -8
- package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +18 -22
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -2
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +11 -13
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/merges.js +1 -1
- package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/row-xform.js +2 -2
- package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +10 -10
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +2 -2
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/style/border-xform.js +3 -7
- package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js +2 -2
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/filter-column-xform.js +1 -1
- package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/table-xform.js +3 -7
- package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -1
- package/dist/es5/xlsx/xlsx.js +22 -45
- package/dist/es5/xlsx/xlsx.js.map +1 -1
- package/package.json +13 -14
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* DevExtreme-ExcelJS Fork v.4.4.
|
|
2
|
+
* DevExtreme-ExcelJS Fork v.4.4.8
|
|
3
3
|
* https://js.devexpress.com/
|
|
4
4
|
* Copyright (c) 2025, Developer Express Inc.
|
|
5
5
|
* Copyright (c) 2014-2019 Guyon Roche
|
|
6
|
-
* Read about DevExtreme-ExcelJS Fork licensing here: https://cdn.jsdelivr.net/npm/devextreme-exceljs-fork@4.4.
|
|
6
|
+
* Read about DevExtreme-ExcelJS Fork licensing here: https://cdn.jsdelivr.net/npm/devextreme-exceljs-fork@4.4.8/LICENSE
|
|
7
7
|
*/
|
|
8
8
|
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ExcelJS = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
|
9
9
|
"use strict";
|
|
@@ -56,7 +56,7 @@ class CSV {
|
|
|
56
56
|
async readFile(filename, options) {
|
|
57
57
|
options = options || {};
|
|
58
58
|
if (!(await exists(filename))) {
|
|
59
|
-
throw new Error(
|
|
59
|
+
throw new Error(`File not found: ${filename}`);
|
|
60
60
|
}
|
|
61
61
|
const stream = fs.createReadStream(filename);
|
|
62
62
|
const worksheet = await this.read(stream, options);
|
|
@@ -375,7 +375,7 @@ class Cell {
|
|
|
375
375
|
return this._column.number;
|
|
376
376
|
}
|
|
377
377
|
get $col$row() {
|
|
378
|
-
return
|
|
378
|
+
return `$${this._column.letter}$${this.row}`;
|
|
379
379
|
}
|
|
380
380
|
|
|
381
381
|
// =========================================================================
|
|
@@ -671,7 +671,7 @@ class StringValue {
|
|
|
671
671
|
this.model.address = value;
|
|
672
672
|
}
|
|
673
673
|
toCsvString() {
|
|
674
|
-
return "
|
|
674
|
+
return `"${this.model.value.replace(/"/g, '""')}"`;
|
|
675
675
|
}
|
|
676
676
|
release() {}
|
|
677
677
|
toString() {
|
|
@@ -708,7 +708,7 @@ class RichTextValue {
|
|
|
708
708
|
this.model.address = value;
|
|
709
709
|
}
|
|
710
710
|
toCsvString() {
|
|
711
|
-
return "
|
|
711
|
+
return `"${this.text.replace(/"/g, '""')}"`;
|
|
712
712
|
}
|
|
713
713
|
release() {}
|
|
714
714
|
}
|
|
@@ -991,7 +991,7 @@ class FormulaValue {
|
|
|
991
991
|
return this._translatedFormula;
|
|
992
992
|
}
|
|
993
993
|
toCsvString() {
|
|
994
|
-
return
|
|
994
|
+
return `${this.model.result || ''}`;
|
|
995
995
|
}
|
|
996
996
|
release() {}
|
|
997
997
|
toString() {
|
|
@@ -1216,7 +1216,7 @@ const Value = {
|
|
|
1216
1216
|
create(type, cell, value) {
|
|
1217
1217
|
const T = this.types[type];
|
|
1218
1218
|
if (!T) {
|
|
1219
|
-
throw new Error(
|
|
1219
|
+
throw new Error(`Could not create Value of type ${type}`);
|
|
1220
1220
|
}
|
|
1221
1221
|
return new T(cell, value);
|
|
1222
1222
|
}
|
|
@@ -1949,7 +1949,7 @@ function validate(worksheet, model) {
|
|
|
1949
1949
|
const isInHeaderNames = objectFromProps(headerNames, true);
|
|
1950
1950
|
for (const name of [...model.rows, ...model.columns, ...model.values]) {
|
|
1951
1951
|
if (!isInHeaderNames[name]) {
|
|
1952
|
-
throw new Error(
|
|
1952
|
+
throw new Error(`The header name "${name}" was not found in ${model.sourceSheet.name}.`);
|
|
1953
1953
|
}
|
|
1954
1954
|
}
|
|
1955
1955
|
if (!model.rows.length) {
|
|
@@ -2122,7 +2122,7 @@ class Range {
|
|
|
2122
2122
|
};
|
|
2123
2123
|
break;
|
|
2124
2124
|
default:
|
|
2125
|
-
throw new Error(
|
|
2125
|
+
throw new Error(`Invalid number of arguments to _getDimensions() - ${argv.length}`);
|
|
2126
2126
|
}
|
|
2127
2127
|
}
|
|
2128
2128
|
get top() {
|
|
@@ -2161,9 +2161,9 @@ class Range {
|
|
|
2161
2161
|
} = this.model;
|
|
2162
2162
|
if (sheetName) {
|
|
2163
2163
|
if (/^[a-zA-Z0-9]*$/.test(sheetName)) {
|
|
2164
|
-
return
|
|
2164
|
+
return `${sheetName}!`;
|
|
2165
2165
|
}
|
|
2166
|
-
return
|
|
2166
|
+
return `'${sheetName}'!`;
|
|
2167
2167
|
}
|
|
2168
2168
|
return '';
|
|
2169
2169
|
}
|
|
@@ -2192,19 +2192,19 @@ class Range {
|
|
|
2192
2192
|
return colCache.n2l(this.left) + this.top;
|
|
2193
2193
|
}
|
|
2194
2194
|
get $t$l() {
|
|
2195
|
-
return
|
|
2195
|
+
return `$${colCache.n2l(this.left)}$${this.top}`;
|
|
2196
2196
|
}
|
|
2197
2197
|
get br() {
|
|
2198
2198
|
return colCache.n2l(this.right) + this.bottom;
|
|
2199
2199
|
}
|
|
2200
2200
|
get $b$r() {
|
|
2201
|
-
return
|
|
2201
|
+
return `$${colCache.n2l(this.right)}$${this.bottom}`;
|
|
2202
2202
|
}
|
|
2203
2203
|
get range() {
|
|
2204
|
-
return
|
|
2204
|
+
return `${this._serialisedSheetName + this.tl}:${this.br}`;
|
|
2205
2205
|
}
|
|
2206
2206
|
get $range() {
|
|
2207
|
-
return
|
|
2207
|
+
return `${this._serialisedSheetName + this.$t$l}:${this.$b$r}`;
|
|
2208
2208
|
}
|
|
2209
2209
|
get shortRange() {
|
|
2210
2210
|
return this.count > 1 ? this.range : this._serialisedSheetName + this.tl;
|
|
@@ -2605,7 +2605,7 @@ class Row {
|
|
|
2605
2605
|
row,
|
|
2606
2606
|
col,
|
|
2607
2607
|
address: colCache.encodeAddress(row, col),
|
|
2608
|
-
$col$row:
|
|
2608
|
+
$col$row: `$${colCache.n2l(col)}$${row}`
|
|
2609
2609
|
};
|
|
2610
2610
|
}
|
|
2611
2611
|
previousAddress = address;
|
|
@@ -2705,25 +2705,25 @@ class Table {
|
|
|
2705
2705
|
case 'none':
|
|
2706
2706
|
return null;
|
|
2707
2707
|
case 'average':
|
|
2708
|
-
return
|
|
2708
|
+
return `SUBTOTAL(101,${this.table.name}[${column.name}])`;
|
|
2709
2709
|
case 'countNums':
|
|
2710
|
-
return
|
|
2710
|
+
return `SUBTOTAL(102,${this.table.name}[${column.name}])`;
|
|
2711
2711
|
case 'count':
|
|
2712
|
-
return
|
|
2712
|
+
return `SUBTOTAL(103,${this.table.name}[${column.name}])`;
|
|
2713
2713
|
case 'max':
|
|
2714
|
-
return
|
|
2714
|
+
return `SUBTOTAL(104,${this.table.name}[${column.name}])`;
|
|
2715
2715
|
case 'min':
|
|
2716
|
-
return
|
|
2716
|
+
return `SUBTOTAL(105,${this.table.name}[${column.name}])`;
|
|
2717
2717
|
case 'stdDev':
|
|
2718
|
-
return
|
|
2718
|
+
return `SUBTOTAL(106,${this.table.name}[${column.name}])`;
|
|
2719
2719
|
case 'var':
|
|
2720
|
-
return
|
|
2720
|
+
return `SUBTOTAL(107,${this.table.name}[${column.name}])`;
|
|
2721
2721
|
case 'sum':
|
|
2722
|
-
return
|
|
2722
|
+
return `SUBTOTAL(109,${this.table.name}[${column.name}])`;
|
|
2723
2723
|
case 'custom':
|
|
2724
2724
|
return column.totalsRowFormula;
|
|
2725
2725
|
default:
|
|
2726
|
-
throw new Error(
|
|
2726
|
+
throw new Error(`Invalid Totals Row Function: ${column.totalsRowFunction}`);
|
|
2727
2727
|
}
|
|
2728
2728
|
}
|
|
2729
2729
|
get width() {
|
|
@@ -2787,7 +2787,7 @@ class Table {
|
|
|
2787
2787
|
// tableRef is a range that includes optional headers and totals
|
|
2788
2788
|
table.tableRef = colCache.encode(row, col, row + tableHeight - 1, col + width - 1);
|
|
2789
2789
|
table.columns.forEach((column, i) => {
|
|
2790
|
-
assert(column.name,
|
|
2790
|
+
assert(column.name, `Column ${i} must have a name`);
|
|
2791
2791
|
if (i === 0) {
|
|
2792
2792
|
assign(column, 'totalsRowLabel', 'Total');
|
|
2793
2793
|
} else {
|
|
@@ -3403,7 +3403,7 @@ class Worksheet {
|
|
|
3403
3403
|
}
|
|
3404
3404
|
set name(name) {
|
|
3405
3405
|
if (name === undefined) {
|
|
3406
|
-
name =
|
|
3406
|
+
name = `sheet${this.id}`;
|
|
3407
3407
|
}
|
|
3408
3408
|
if (this._name === name) return;
|
|
3409
3409
|
if (typeof name !== 'string') {
|
|
@@ -3419,18 +3419,18 @@ class Worksheet {
|
|
|
3419
3419
|
// Illegal character in worksheet name: asterisk (*), question mark (?),
|
|
3420
3420
|
// colon (:), forward slash (/ \), or bracket ([])
|
|
3421
3421
|
if (/[*?:/\\[\]]/.test(name)) {
|
|
3422
|
-
throw new Error(
|
|
3422
|
+
throw new Error(`Worksheet name ${name} cannot include any of the following characters: * ? : \\ / [ ]`);
|
|
3423
3423
|
}
|
|
3424
3424
|
if (/(^')|('$)/.test(name)) {
|
|
3425
|
-
throw new Error(
|
|
3425
|
+
throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);
|
|
3426
3426
|
}
|
|
3427
3427
|
if (name && name.length > 31) {
|
|
3428
3428
|
// eslint-disable-next-line no-console
|
|
3429
|
-
console.warn(
|
|
3429
|
+
console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);
|
|
3430
3430
|
name = name.substring(0, 31);
|
|
3431
3431
|
}
|
|
3432
3432
|
if (this._workbook._worksheets.find(ws => ws && ws.name.toLowerCase() === name.toLowerCase())) {
|
|
3433
|
-
throw new Error(
|
|
3433
|
+
throw new Error(`Worksheet name already exists: ${name}`);
|
|
3434
3434
|
}
|
|
3435
3435
|
this._name = name;
|
|
3436
3436
|
}
|
|
@@ -4072,7 +4072,8 @@ class Worksheet {
|
|
|
4072
4072
|
// Pivot Tables
|
|
4073
4073
|
addPivotTable(model) {
|
|
4074
4074
|
// eslint-disable-next-line no-console
|
|
4075
|
-
console.warn(
|
|
4075
|
+
console.warn(`Warning: Pivot Table support is experimental.
|
|
4076
|
+
Please leave feedback at https://github.com/exceljs/exceljs/discussions/2575`);
|
|
4076
4077
|
const pivotTable = makePivotTable(this, model);
|
|
4077
4078
|
this.pivotTables.push(pivotTable);
|
|
4078
4079
|
this.workbook.pivotTables.push(pivotTable);
|
|
@@ -4396,11 +4397,6 @@ module.exports = CellMatrix;
|
|
|
4396
4397
|
},{"./col-cache":20,"./under-dash":27}],20:[function(require,module,exports){
|
|
4397
4398
|
"use strict";
|
|
4398
4399
|
|
|
4399
|
-
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; }
|
|
4400
|
-
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; }
|
|
4401
|
-
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; }
|
|
4402
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
4403
|
-
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); }
|
|
4404
4400
|
const addressRegex = /^[A-Z]+\d+$/;
|
|
4405
4401
|
// =========================================================================
|
|
4406
4402
|
// Column Letter to Number conversion
|
|
@@ -4470,13 +4466,13 @@ const colCache = {
|
|
|
4470
4466
|
this._fill(l.length);
|
|
4471
4467
|
}
|
|
4472
4468
|
if (!this._l2n[l]) {
|
|
4473
|
-
throw new Error(
|
|
4469
|
+
throw new Error(`Out of bounds. Invalid column letter: ${l}`);
|
|
4474
4470
|
}
|
|
4475
4471
|
return this._l2n[l];
|
|
4476
4472
|
},
|
|
4477
4473
|
n2l(n) {
|
|
4478
4474
|
if (n < 1 || n > 16384) {
|
|
4479
|
-
throw new Error(
|
|
4475
|
+
throw new Error(`${n} is out of bounds. Excel supports columns from 1 to 16384`);
|
|
4480
4476
|
}
|
|
4481
4477
|
if (!this._n2l[n]) {
|
|
4482
4478
|
this._fill(this._level(n));
|
|
@@ -4489,7 +4485,7 @@ const colCache = {
|
|
|
4489
4485
|
// check if value looks like an address
|
|
4490
4486
|
validateAddress(value) {
|
|
4491
4487
|
if (!addressRegex.test(value)) {
|
|
4492
|
-
throw new Error(
|
|
4488
|
+
throw new Error(`Invalid Address: ${value}`);
|
|
4493
4489
|
}
|
|
4494
4490
|
return true;
|
|
4495
4491
|
},
|
|
@@ -4530,7 +4526,7 @@ const colCache = {
|
|
|
4530
4526
|
if (!hasCol) {
|
|
4531
4527
|
colNumber = undefined;
|
|
4532
4528
|
} else if (colNumber > 16384) {
|
|
4533
|
-
throw new Error(
|
|
4529
|
+
throw new Error(`Out of bounds. Invalid column letter: ${col}`);
|
|
4534
4530
|
}
|
|
4535
4531
|
if (!hasRow) {
|
|
4536
4532
|
rowNumber = undefined;
|
|
@@ -4542,7 +4538,7 @@ const colCache = {
|
|
|
4542
4538
|
address: value,
|
|
4543
4539
|
col: colNumber,
|
|
4544
4540
|
row: rowNumber,
|
|
4545
|
-
$col$row:
|
|
4541
|
+
$col$row: `$${col}$${row}`
|
|
4546
4542
|
};
|
|
4547
4543
|
|
|
4548
4544
|
// mem fix - cache only the tl 100x100 square
|
|
@@ -4575,7 +4571,7 @@ const colCache = {
|
|
|
4575
4571
|
// reconstruct tl, br and dimensions
|
|
4576
4572
|
result.tl = this.n2l(result.left) + result.top;
|
|
4577
4573
|
result.br = this.n2l(result.right) + result.bottom;
|
|
4578
|
-
result.dimensions =
|
|
4574
|
+
result.dimensions = `${result.tl}:${result.br}`;
|
|
4579
4575
|
return result;
|
|
4580
4576
|
}
|
|
4581
4577
|
return this.decodeAddress(value);
|
|
@@ -4625,17 +4621,17 @@ const colCache = {
|
|
|
4625
4621
|
address: tl,
|
|
4626
4622
|
col: left,
|
|
4627
4623
|
row: top,
|
|
4628
|
-
$col$row:
|
|
4624
|
+
$col$row: `$${this.n2l(left)}$${top}`,
|
|
4629
4625
|
sheetName
|
|
4630
4626
|
},
|
|
4631
4627
|
br: {
|
|
4632
4628
|
address: br,
|
|
4633
4629
|
col: right,
|
|
4634
4630
|
row: bottom,
|
|
4635
|
-
$col$row:
|
|
4631
|
+
$col$row: `$${this.n2l(right)}$${bottom}`,
|
|
4636
4632
|
sheetName
|
|
4637
4633
|
},
|
|
4638
|
-
dimensions:
|
|
4634
|
+
dimensions: `${tl}:${br}`
|
|
4639
4635
|
};
|
|
4640
4636
|
}
|
|
4641
4637
|
if (reference.startsWith('#')) {
|
|
@@ -4647,9 +4643,10 @@ const colCache = {
|
|
|
4647
4643
|
};
|
|
4648
4644
|
}
|
|
4649
4645
|
const address = this.decodeAddress(reference);
|
|
4650
|
-
return sheetName ?
|
|
4651
|
-
sheetName
|
|
4652
|
-
|
|
4646
|
+
return sheetName ? {
|
|
4647
|
+
sheetName,
|
|
4648
|
+
...address
|
|
4649
|
+
} : address;
|
|
4653
4650
|
},
|
|
4654
4651
|
// convert row,col into address string
|
|
4655
4652
|
encodeAddress(row, col) {
|
|
@@ -4661,7 +4658,7 @@ const colCache = {
|
|
|
4661
4658
|
case 2:
|
|
4662
4659
|
return colCache.encodeAddress(arguments[0], arguments[1]);
|
|
4663
4660
|
case 4:
|
|
4664
|
-
return
|
|
4661
|
+
return `${colCache.encodeAddress(arguments[0], arguments[1])}:${colCache.encodeAddress(arguments[2], arguments[3])}`;
|
|
4665
4662
|
default:
|
|
4666
4663
|
throw new Error('Can only encode with 2 or 4 arguments');
|
|
4667
4664
|
}
|
|
@@ -4678,15 +4675,15 @@ module.exports = colCache;
|
|
|
4678
4675
|
},{}],21:[function(require,module,exports){
|
|
4679
4676
|
"use strict";
|
|
4680
4677
|
|
|
4681
|
-
|
|
4682
|
-
|
|
4683
|
-
|
|
4684
|
-
|
|
4685
|
-
|
|
4686
|
-
|
|
4687
|
-
|
|
4688
|
-
|
|
4689
|
-
}
|
|
4678
|
+
const oneDepthCopy = (obj, nestKeys) => ({
|
|
4679
|
+
...obj,
|
|
4680
|
+
...nestKeys.reduce((memo, key) => {
|
|
4681
|
+
if (obj[key]) memo[key] = {
|
|
4682
|
+
...obj[key]
|
|
4683
|
+
};
|
|
4684
|
+
return memo;
|
|
4685
|
+
}, {})
|
|
4686
|
+
});
|
|
4690
4687
|
const setIfExists = function (src, dst, key) {
|
|
4691
4688
|
let nestKeys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
4692
4689
|
if (src[key]) dst[key] = oneDepthCopy(src[key], nestKeys);
|
|
@@ -4695,7 +4692,9 @@ const isEmptyObj = obj => Object.keys(obj).length === 0;
|
|
|
4695
4692
|
const copyStyle = style => {
|
|
4696
4693
|
if (!style) return style;
|
|
4697
4694
|
if (isEmptyObj(style)) return {};
|
|
4698
|
-
const copied =
|
|
4695
|
+
const copied = {
|
|
4696
|
+
...style
|
|
4697
|
+
};
|
|
4699
4698
|
setIfExists(style, copied, 'font', ['color']);
|
|
4700
4699
|
setIfExists(style, copied, 'alignment');
|
|
4701
4700
|
setIfExists(style, copied, 'protection');
|
|
@@ -4750,7 +4749,7 @@ const Encryptor = {
|
|
|
4750
4749
|
hashAlgorithm = hashAlgorithm.toLowerCase();
|
|
4751
4750
|
const hashes = crypto.getHashes();
|
|
4752
4751
|
if (hashes.indexOf(hashAlgorithm) < 0) {
|
|
4753
|
-
throw new Error(
|
|
4752
|
+
throw new Error(`Hash algorithm '${hashAlgorithm}' not supported!`);
|
|
4754
4753
|
}
|
|
4755
4754
|
|
|
4756
4755
|
// Password must be in unicode buffer
|
|
@@ -4782,13 +4781,6 @@ module.exports = Encryptor;
|
|
|
4782
4781
|
},{"buffer":237,"crypto":254}],23:[function(require,module,exports){
|
|
4783
4782
|
"use strict";
|
|
4784
4783
|
|
|
4785
|
-
function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); }
|
|
4786
|
-
function _wrapAsyncGenerator(e) { return function () { return new AsyncGenerator(e.apply(this, arguments)); }; }
|
|
4787
|
-
function AsyncGenerator(e) { var r, t; function resume(r, t) { try { var n = e[r](t), o = n.value, u = o instanceof _OverloadYield; Promise.resolve(u ? o.v : o).then(function (t) { if (u) { var i = "return" === r ? "return" : "next"; if (!o.k || t.done) return resume(i, t); t = e[i](t).value; } settle(n.done ? "return" : "normal", t); }, function (e) { resume("throw", e); }); } catch (e) { settle("throw", e); } } function settle(e, n) { switch (e) { case "return": r.resolve({ value: n, done: !0 }); break; case "throw": r.reject(n); break; default: r.resolve({ value: n, done: !1 }); } (r = r.next) ? resume(r.key, r.arg) : t = null; } this._invoke = function (e, n) { return new Promise(function (o, u) { var i = { key: e, arg: n, resolve: o, reject: u, next: null }; t ? t = t.next = i : (r = t = i, resume(e, n)); }); }, "function" != typeof e.return && (this.return = void 0); }
|
|
4788
|
-
AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; }, AsyncGenerator.prototype.next = function (e) { return this._invoke("next", e); }, AsyncGenerator.prototype.throw = function (e) { return this._invoke("throw", e); }, AsyncGenerator.prototype.return = function (e) { return this._invoke("return", e); };
|
|
4789
|
-
function _OverloadYield(e, d) { this.v = e, this.k = d; }
|
|
4790
|
-
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"); }
|
|
4791
|
-
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); }
|
|
4792
4784
|
const {
|
|
4793
4785
|
SaxesParser
|
|
4794
4786
|
} = require('saxes');
|
|
@@ -4798,67 +4790,41 @@ const {
|
|
|
4798
4790
|
const {
|
|
4799
4791
|
bufferToString
|
|
4800
4792
|
} = require('./browser-buffer-decode');
|
|
4801
|
-
module.exports =
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
error = err;
|
|
4812
|
-
});
|
|
4813
|
-
let events = [];
|
|
4814
|
-
saxesParser.on('opentag', value => events.push({
|
|
4815
|
-
eventType: 'opentag',
|
|
4816
|
-
value
|
|
4817
|
-
}));
|
|
4818
|
-
saxesParser.on('text', value => events.push({
|
|
4819
|
-
eventType: 'text',
|
|
4820
|
-
value
|
|
4821
|
-
}));
|
|
4822
|
-
saxesParser.on('closetag', value => events.push({
|
|
4823
|
-
eventType: 'closetag',
|
|
4824
|
-
value
|
|
4825
|
-
}));
|
|
4826
|
-
var _iteratorAbruptCompletion = false;
|
|
4827
|
-
var _didIteratorError = false;
|
|
4828
|
-
var _iteratorError;
|
|
4829
|
-
try {
|
|
4830
|
-
for (var _iterator = _asyncIterator(iterable), _step; _iteratorAbruptCompletion = !(_step = yield _awaitAsyncGenerator(_iterator.next())).done; _iteratorAbruptCompletion = false) {
|
|
4831
|
-
const chunk = _step.value;
|
|
4832
|
-
{
|
|
4833
|
-
saxesParser.write(bufferToString(chunk));
|
|
4834
|
-
// saxesParser.write and saxesParser.on() are synchronous,
|
|
4835
|
-
// so we can only reach the below line once all events have been emitted
|
|
4836
|
-
if (error) throw error;
|
|
4837
|
-
// As a performance optimization, we gather all events instead of passing
|
|
4838
|
-
// them one by one, which would cause each event to go through the event queue
|
|
4839
|
-
yield events;
|
|
4840
|
-
events = [];
|
|
4841
|
-
}
|
|
4842
|
-
}
|
|
4843
|
-
} catch (err) {
|
|
4844
|
-
_didIteratorError = true;
|
|
4845
|
-
_iteratorError = err;
|
|
4846
|
-
} finally {
|
|
4847
|
-
try {
|
|
4848
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
4849
|
-
yield _awaitAsyncGenerator(_iterator.return());
|
|
4850
|
-
}
|
|
4851
|
-
} finally {
|
|
4852
|
-
if (_didIteratorError) {
|
|
4853
|
-
throw _iteratorError;
|
|
4854
|
-
}
|
|
4855
|
-
}
|
|
4856
|
-
}
|
|
4793
|
+
module.exports = async function* (iterable) {
|
|
4794
|
+
// TODO: Remove once node v8 is deprecated
|
|
4795
|
+
// Detect and upgrade old streams
|
|
4796
|
+
if (iterable.pipe && !iterable[Symbol.asyncIterator]) {
|
|
4797
|
+
iterable = iterable.pipe(new PassThrough());
|
|
4798
|
+
}
|
|
4799
|
+
const saxesParser = new SaxesParser();
|
|
4800
|
+
let error;
|
|
4801
|
+
saxesParser.on('error', err => {
|
|
4802
|
+
error = err;
|
|
4857
4803
|
});
|
|
4858
|
-
|
|
4859
|
-
|
|
4860
|
-
|
|
4861
|
-
|
|
4804
|
+
let events = [];
|
|
4805
|
+
saxesParser.on('opentag', value => events.push({
|
|
4806
|
+
eventType: 'opentag',
|
|
4807
|
+
value
|
|
4808
|
+
}));
|
|
4809
|
+
saxesParser.on('text', value => events.push({
|
|
4810
|
+
eventType: 'text',
|
|
4811
|
+
value
|
|
4812
|
+
}));
|
|
4813
|
+
saxesParser.on('closetag', value => events.push({
|
|
4814
|
+
eventType: 'closetag',
|
|
4815
|
+
value
|
|
4816
|
+
}));
|
|
4817
|
+
for await (const chunk of iterable) {
|
|
4818
|
+
saxesParser.write(bufferToString(chunk));
|
|
4819
|
+
// saxesParser.write and saxesParser.on() are synchronous,
|
|
4820
|
+
// so we can only reach the below line once all events have been emitted
|
|
4821
|
+
if (error) throw error;
|
|
4822
|
+
// As a performance optimization, we gather all events instead of passing
|
|
4823
|
+
// them one by one, which would cause each event to go through the event queue
|
|
4824
|
+
yield events;
|
|
4825
|
+
events = [];
|
|
4826
|
+
}
|
|
4827
|
+
};
|
|
4862
4828
|
|
|
4863
4829
|
},{"./browser-buffer-decode":17,"readable-stream":416,"saxes":436}],24:[function(require,module,exports){
|
|
4864
4830
|
"use strict";
|
|
@@ -5569,7 +5535,7 @@ const utils = {
|
|
|
5569
5535
|
},
|
|
5570
5536
|
getRelsPath(filepath) {
|
|
5571
5537
|
const path = utils.parsePath(filepath);
|
|
5572
|
-
return
|
|
5538
|
+
return `${path.path}/_rels/${path.name}.rels`;
|
|
5573
5539
|
},
|
|
5574
5540
|
xmlEncode(text) {
|
|
5575
5541
|
const regexResult = xmlDecodeRegex.exec(text);
|
|
@@ -5717,7 +5683,7 @@ const CLOSE_ANGLE = '>';
|
|
|
5717
5683
|
const OPEN_ANGLE_SLASH = '</';
|
|
5718
5684
|
const CLOSE_SLASH_ANGLE = '/>';
|
|
5719
5685
|
function pushAttribute(xml, name, value) {
|
|
5720
|
-
xml.push(
|
|
5686
|
+
xml.push(` ${name}="${utils.xmlEncode(value.toString())}"`);
|
|
5721
5687
|
}
|
|
5722
5688
|
function pushAttributes(xml, attributes) {
|
|
5723
5689
|
if (attributes) {
|
|
@@ -6196,8 +6162,6 @@ module.exports = {
|
|
|
6196
6162
|
},{}],33:[function(require,module,exports){
|
|
6197
6163
|
"use strict";
|
|
6198
6164
|
|
|
6199
|
-
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"); }
|
|
6200
|
-
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); }
|
|
6201
6165
|
const parseSax = require('../../utils/parse-sax');
|
|
6202
6166
|
const XmlStream = require('../../utils/xml-stream');
|
|
6203
6167
|
|
|
@@ -6252,42 +6216,21 @@ class BaseXform {
|
|
|
6252
6216
|
this.model = Object.assign(this.model || {}, obj);
|
|
6253
6217
|
}
|
|
6254
6218
|
async parse(saxParser) {
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6258
|
-
|
|
6259
|
-
|
|
6260
|
-
|
|
6261
|
-
|
|
6262
|
-
|
|
6263
|
-
|
|
6264
|
-
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
this.parseOpen(value);
|
|
6268
|
-
} else if (eventType === 'text') {
|
|
6269
|
-
this.parseText(value);
|
|
6270
|
-
} else if (eventType === 'closetag') {
|
|
6271
|
-
if (!this.parseClose(value.name)) {
|
|
6272
|
-
return this.model;
|
|
6273
|
-
}
|
|
6274
|
-
}
|
|
6219
|
+
for await (const events of saxParser) {
|
|
6220
|
+
for (const {
|
|
6221
|
+
eventType,
|
|
6222
|
+
value
|
|
6223
|
+
} of events) {
|
|
6224
|
+
if (eventType === 'opentag') {
|
|
6225
|
+
this.parseOpen(value);
|
|
6226
|
+
} else if (eventType === 'text') {
|
|
6227
|
+
this.parseText(value);
|
|
6228
|
+
} else if (eventType === 'closetag') {
|
|
6229
|
+
if (!this.parseClose(value.name)) {
|
|
6230
|
+
return this.model;
|
|
6275
6231
|
}
|
|
6276
6232
|
}
|
|
6277
6233
|
}
|
|
6278
|
-
} catch (err) {
|
|
6279
|
-
_didIteratorError = true;
|
|
6280
|
-
_iteratorError = err;
|
|
6281
|
-
} finally {
|
|
6282
|
-
try {
|
|
6283
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
6284
|
-
await _iterator.return();
|
|
6285
|
-
}
|
|
6286
|
-
} finally {
|
|
6287
|
-
if (_didIteratorError) {
|
|
6288
|
-
throw _iteratorError;
|
|
6289
|
-
}
|
|
6290
|
-
}
|
|
6291
6234
|
}
|
|
6292
6235
|
return this.model;
|
|
6293
6236
|
}
|
|
@@ -6418,7 +6361,7 @@ function extractRanges(parsedText) {
|
|
|
6418
6361
|
const quotes = (item.match(/'/g) || []).length;
|
|
6419
6362
|
if (!quotes) {
|
|
6420
6363
|
if (quotesOpened) {
|
|
6421
|
-
last +=
|
|
6364
|
+
last += `${item},`;
|
|
6422
6365
|
} else if (isValidRange(item)) {
|
|
6423
6366
|
ranges.push(item);
|
|
6424
6367
|
}
|
|
@@ -6435,7 +6378,7 @@ function extractRanges(parsedText) {
|
|
|
6435
6378
|
last = '';
|
|
6436
6379
|
} else {
|
|
6437
6380
|
quotesOpened = true;
|
|
6438
|
-
last +=
|
|
6381
|
+
last += `${item},`;
|
|
6439
6382
|
}
|
|
6440
6383
|
});
|
|
6441
6384
|
return ranges;
|
|
@@ -6664,7 +6607,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6664
6607
|
const printAreaComponents = printArea.split(':');
|
|
6665
6608
|
const definedName = {
|
|
6666
6609
|
name: '_xlnm.Print_Area',
|
|
6667
|
-
ranges: [
|
|
6610
|
+
ranges: [`'${sheet.name}'!$${printAreaComponents[0]}:$${printAreaComponents[1]}`],
|
|
6668
6611
|
localSheetId: index
|
|
6669
6612
|
};
|
|
6670
6613
|
printAreas.push(definedName);
|
|
@@ -6674,11 +6617,11 @@ class WorkbookXform extends BaseXform {
|
|
|
6674
6617
|
const ranges = [];
|
|
6675
6618
|
if (sheet.pageSetup.printTitlesColumn) {
|
|
6676
6619
|
const titlesColumns = sheet.pageSetup.printTitlesColumn.split(':');
|
|
6677
|
-
ranges.push(
|
|
6620
|
+
ranges.push(`'${sheet.name}'!$${titlesColumns[0]}:$${titlesColumns[1]}`);
|
|
6678
6621
|
}
|
|
6679
6622
|
if (sheet.pageSetup.printTitlesRow) {
|
|
6680
6623
|
const titlesRows = sheet.pageSetup.printTitlesRow.split(':');
|
|
6681
|
-
ranges.push(
|
|
6624
|
+
ranges.push(`'${sheet.name}'!$${titlesRows[0]}:$${titlesRows[1]}`);
|
|
6682
6625
|
}
|
|
6683
6626
|
const definedName = {
|
|
6684
6627
|
name: '_xlnm.Print_Titles',
|
|
@@ -6771,7 +6714,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6771
6714
|
}
|
|
6772
6715
|
// if rel.Target start with `[space]/xl/` or `/xl/` , then it will be replaced with `''` and spliced behind `xl/`,
|
|
6773
6716
|
// otherwise it will be spliced directly behind `xl/`. i.g.
|
|
6774
|
-
worksheet = model.worksheetHash[
|
|
6717
|
+
worksheet = model.worksheetHash[`xl/${rel.Target.replace(/^(\s|\/xl\/)+/, '')}`];
|
|
6775
6718
|
// If there are "chartsheets" in the file, rel.Target will
|
|
6776
6719
|
// come out as chartsheets/sheet1.xml or similar here, and
|
|
6777
6720
|
// that won't be in model.worksheetHash.
|
|
@@ -6795,7 +6738,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6795
6738
|
worksheet.pageSetup = {};
|
|
6796
6739
|
}
|
|
6797
6740
|
const range = colCache.decodeEx(definedName.ranges[0]);
|
|
6798
|
-
worksheet.pageSetup.printArea = worksheet.pageSetup.printArea ?
|
|
6741
|
+
worksheet.pageSetup.printArea = worksheet.pageSetup.printArea ? `${worksheet.pageSetup.printArea}&&${range.dimensions}` : range.dimensions;
|
|
6799
6742
|
}
|
|
6800
6743
|
} else if (definedName.name === '_xlnm.Print_Titles') {
|
|
6801
6744
|
worksheet = worksheets[definedName.localSheetId];
|
|
@@ -6853,11 +6796,6 @@ module.exports = WorkbookXform;
|
|
|
6853
6796
|
},{"../../../utils/col-cache":20,"../../../utils/under-dash":27,"../../../utils/xml-stream":29,"../base-xform":33,"../list-xform":73,"../static-xform":126,"./defined-name-xform":34,"./sheet-xform":35,"./workbook-calc-properties-xform":36,"./workbook-pivot-cache-xform":37,"./workbook-properties-xform":38,"./workbook-view-xform":39}],41:[function(require,module,exports){
|
|
6854
6797
|
"use strict";
|
|
6855
6798
|
|
|
6856
|
-
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; }
|
|
6857
|
-
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; }
|
|
6858
|
-
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; }
|
|
6859
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
6860
|
-
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); }
|
|
6861
6799
|
const RichTextXform = require('../strings/rich-text-xform');
|
|
6862
6800
|
const utils = require('../../../utils/utils');
|
|
6863
6801
|
const BaseXform = require('../base-xform');
|
|
@@ -6921,12 +6859,13 @@ utils.inherits(CommentXform, BaseXform, {
|
|
|
6921
6859
|
}
|
|
6922
6860
|
switch (node.name) {
|
|
6923
6861
|
case 'comment':
|
|
6924
|
-
this.model =
|
|
6862
|
+
this.model = {
|
|
6925
6863
|
type: 'note',
|
|
6926
6864
|
note: {
|
|
6927
6865
|
texts: []
|
|
6928
|
-
}
|
|
6929
|
-
|
|
6866
|
+
},
|
|
6867
|
+
...node.attributes
|
|
6868
|
+
};
|
|
6930
6869
|
return true;
|
|
6931
6870
|
case 'r':
|
|
6932
6871
|
this.parser = this.richTextXform;
|
|
@@ -7448,7 +7387,7 @@ class VmlShapeXform extends BaseXform {
|
|
|
7448
7387
|
}
|
|
7449
7388
|
}
|
|
7450
7389
|
VmlShapeXform.V_SHAPE_ATTRIBUTES = (model, index) => ({
|
|
7451
|
-
id:
|
|
7390
|
+
id: `_x0000_s${1025 + index}`,
|
|
7452
7391
|
type: '#_x0000_t202',
|
|
7453
7392
|
style: 'position:absolute; margin-left:105.3pt;margin-top:10.5pt;width:97.8pt;height:59.1pt;z-index:1;visibility:hidden',
|
|
7454
7393
|
fillcolor: 'infoBackground [80]',
|
|
@@ -7466,7 +7405,7 @@ class VmlTextboxXform extends BaseXform {
|
|
|
7466
7405
|
return 'v:textbox';
|
|
7467
7406
|
}
|
|
7468
7407
|
conversionUnit(value, multiple, unit) {
|
|
7469
|
-
return
|
|
7408
|
+
return `${parseFloat(value) * multiple.toFixed(2)}${unit}`;
|
|
7470
7409
|
}
|
|
7471
7410
|
reverseConversionUnit(inset) {
|
|
7472
7411
|
return (inset || '').split(',').map(margin => {
|
|
@@ -7744,7 +7683,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7744
7683
|
mediaHash[imageType] = true;
|
|
7745
7684
|
xmlStream.leafNode('Default', {
|
|
7746
7685
|
Extension: imageType,
|
|
7747
|
-
ContentType:
|
|
7686
|
+
ContentType: `image/${imageType}`
|
|
7748
7687
|
});
|
|
7749
7688
|
}
|
|
7750
7689
|
}
|
|
@@ -7762,7 +7701,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7762
7701
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml'
|
|
7763
7702
|
});
|
|
7764
7703
|
model.worksheets.forEach(worksheet => {
|
|
7765
|
-
const name =
|
|
7704
|
+
const name = `/xl/worksheets/sheet${worksheet.id}.xml`;
|
|
7766
7705
|
xmlStream.leafNode('Override', {
|
|
7767
7706
|
PartName: name,
|
|
7768
7707
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
|
|
@@ -7801,7 +7740,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7801
7740
|
if (model.tables) {
|
|
7802
7741
|
model.tables.forEach(table => {
|
|
7803
7742
|
xmlStream.leafNode('Override', {
|
|
7804
|
-
PartName:
|
|
7743
|
+
PartName: `/xl/tables/${table.target}`,
|
|
7805
7744
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml'
|
|
7806
7745
|
});
|
|
7807
7746
|
});
|
|
@@ -7809,7 +7748,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7809
7748
|
if (model.drawings) {
|
|
7810
7749
|
model.drawings.forEach(drawing => {
|
|
7811
7750
|
xmlStream.leafNode('Override', {
|
|
7812
|
-
PartName:
|
|
7751
|
+
PartName: `/xl/drawings/${drawing.name}.xml`,
|
|
7813
7752
|
ContentType: 'application/vnd.openxmlformats-officedocument.drawing+xml'
|
|
7814
7753
|
});
|
|
7815
7754
|
});
|
|
@@ -7824,7 +7763,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7824
7763
|
commentName
|
|
7825
7764
|
} = _ref;
|
|
7826
7765
|
xmlStream.leafNode('Override', {
|
|
7827
|
-
PartName:
|
|
7766
|
+
PartName: `/xl/${commentName}.xml`,
|
|
7828
7767
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml'
|
|
7829
7768
|
});
|
|
7830
7769
|
});
|
|
@@ -7955,7 +7894,7 @@ class CoreXform extends BaseXform {
|
|
|
7955
7894
|
this.parser.parseOpen(node);
|
|
7956
7895
|
return true;
|
|
7957
7896
|
}
|
|
7958
|
-
throw new Error(
|
|
7897
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
7959
7898
|
}
|
|
7960
7899
|
}
|
|
7961
7900
|
parseText(text) {
|
|
@@ -7992,7 +7931,7 @@ class CoreXform extends BaseXform {
|
|
|
7992
7931
|
};
|
|
7993
7932
|
return false;
|
|
7994
7933
|
default:
|
|
7995
|
-
throw new Error(
|
|
7934
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
7996
7935
|
}
|
|
7997
7936
|
}
|
|
7998
7937
|
}
|
|
@@ -8072,7 +8011,7 @@ class RelationshipsXform extends BaseXform {
|
|
|
8072
8011
|
this.parser.parseOpen(node);
|
|
8073
8012
|
return true;
|
|
8074
8013
|
}
|
|
8075
|
-
throw new Error(
|
|
8014
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
8076
8015
|
}
|
|
8077
8016
|
}
|
|
8078
8017
|
parseText(text) {
|
|
@@ -8092,7 +8031,7 @@ class RelationshipsXform extends BaseXform {
|
|
|
8092
8031
|
case 'Relationships':
|
|
8093
8032
|
return false;
|
|
8094
8033
|
default:
|
|
8095
|
-
throw new Error(
|
|
8034
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
8096
8035
|
}
|
|
8097
8036
|
}
|
|
8098
8037
|
}
|
|
@@ -8307,7 +8246,7 @@ class CNvPrXform extends BaseXform {
|
|
|
8307
8246
|
render(xmlStream, model) {
|
|
8308
8247
|
xmlStream.openNode(this.tag, {
|
|
8309
8248
|
id: model.index,
|
|
8310
|
-
name:
|
|
8249
|
+
name: `Picture ${model.index}`
|
|
8311
8250
|
});
|
|
8312
8251
|
this.map['a:hlinkClick'].render(xmlStream, model);
|
|
8313
8252
|
this.map['a:extLst'].render(xmlStream, model);
|
|
@@ -9009,7 +8948,7 @@ class ListXform extends BaseXform {
|
|
|
9009
8948
|
this.model.push(this.parser.model);
|
|
9010
8949
|
this.parser = undefined;
|
|
9011
8950
|
if (this.maxItems && this.model.length > this.maxItems) {
|
|
9012
|
-
throw new Error(
|
|
8951
|
+
throw new Error(`Max ${this.childXform.tag} count (${this.maxItems}) exceeded`);
|
|
9013
8952
|
}
|
|
9014
8953
|
}
|
|
9015
8954
|
return true;
|
|
@@ -9063,11 +9002,17 @@ class CacheField {
|
|
|
9063
9002
|
// integer types
|
|
9064
9003
|
if (this.sharedItems === null) {
|
|
9065
9004
|
// TK(2023-07-18): left out attributes... minValue="5" maxValue="45"
|
|
9066
|
-
return
|
|
9005
|
+
return `<cacheField name="${this.name}" numFmtId="0">
|
|
9006
|
+
<sharedItems containsSemiMixedTypes="0" containsString="0" containsNumber="1" containsInteger="1" />
|
|
9007
|
+
</cacheField>`;
|
|
9067
9008
|
}
|
|
9068
9009
|
|
|
9069
9010
|
// string types
|
|
9070
|
-
return
|
|
9011
|
+
return `<cacheField name="${this.name}" numFmtId="0">
|
|
9012
|
+
<sharedItems count="${this.sharedItems.length}">
|
|
9013
|
+
${this.sharedItems.map(item => `<s v="${item}" />`).join('')}
|
|
9014
|
+
</sharedItems>
|
|
9015
|
+
</cacheField>`;
|
|
9071
9016
|
}
|
|
9072
9017
|
}
|
|
9073
9018
|
module.exports = CacheField;
|
|
@@ -9075,11 +9020,6 @@ module.exports = CacheField;
|
|
|
9075
9020
|
},{}],75:[function(require,module,exports){
|
|
9076
9021
|
"use strict";
|
|
9077
9022
|
|
|
9078
|
-
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; }
|
|
9079
|
-
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; }
|
|
9080
|
-
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; }
|
|
9081
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9082
|
-
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); }
|
|
9083
9023
|
const BaseXform = require('../base-xform');
|
|
9084
9024
|
const CacheField = require('./cache-field');
|
|
9085
9025
|
const XmlStream = require('../../../utils/xml-stream');
|
|
@@ -9101,7 +9041,8 @@ class PivotCacheDefinitionXform extends BaseXform {
|
|
|
9101
9041
|
cacheFields
|
|
9102
9042
|
} = model;
|
|
9103
9043
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9104
|
-
xmlStream.openNode(this.tag,
|
|
9044
|
+
xmlStream.openNode(this.tag, {
|
|
9045
|
+
...PivotCacheDefinitionXform.PIVOT_CACHE_DEFINITION_ATTRIBUTES,
|
|
9105
9046
|
'r:id': 'rId1',
|
|
9106
9047
|
refreshOnLoad: '1',
|
|
9107
9048
|
// important for our implementation to work
|
|
@@ -9111,7 +9052,7 @@ class PivotCacheDefinitionXform extends BaseXform {
|
|
|
9111
9052
|
refreshedVersion: '8',
|
|
9112
9053
|
minRefreshableVersion: '3',
|
|
9113
9054
|
recordCount: cacheFields.length + 1
|
|
9114
|
-
})
|
|
9055
|
+
});
|
|
9115
9056
|
xmlStream.openNode('cacheSource', {
|
|
9116
9057
|
type: 'worksheet'
|
|
9117
9058
|
});
|
|
@@ -9153,11 +9094,6 @@ module.exports = PivotCacheDefinitionXform;
|
|
|
9153
9094
|
},{"../../../utils/xml-stream":29,"../base-xform":33,"./cache-field":74}],76:[function(require,module,exports){
|
|
9154
9095
|
"use strict";
|
|
9155
9096
|
|
|
9156
|
-
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; }
|
|
9157
|
-
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; }
|
|
9158
|
-
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; }
|
|
9159
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9160
|
-
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); }
|
|
9161
9097
|
const XmlStream = require('../../../utils/xml-stream');
|
|
9162
9098
|
const BaseXform = require('../base-xform');
|
|
9163
9099
|
class PivotCacheRecordsXform extends BaseXform {
|
|
@@ -9179,9 +9115,10 @@ class PivotCacheRecordsXform extends BaseXform {
|
|
|
9179
9115
|
} = model;
|
|
9180
9116
|
const sourceBodyRows = sourceSheet.getSheetValues().slice(2);
|
|
9181
9117
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9182
|
-
xmlStream.openNode(this.tag,
|
|
9118
|
+
xmlStream.openNode(this.tag, {
|
|
9119
|
+
...PivotCacheRecordsXform.PIVOT_CACHE_RECORDS_ATTRIBUTES,
|
|
9183
9120
|
count: sourceBodyRows.length
|
|
9184
|
-
})
|
|
9121
|
+
});
|
|
9185
9122
|
xmlStream.writeXml(renderTable());
|
|
9186
9123
|
xmlStream.closeNode();
|
|
9187
9124
|
|
|
@@ -9210,20 +9147,20 @@ class PivotCacheRecordsXform extends BaseXform {
|
|
|
9210
9147
|
if (sharedItems === null) {
|
|
9211
9148
|
if (Number.isFinite(value)) {
|
|
9212
9149
|
// Numeric value: http://www.datypic.com/sc/ooxml/e-ssml_n-2.html
|
|
9213
|
-
return
|
|
9150
|
+
return `<n v="${value}" />`;
|
|
9214
9151
|
}
|
|
9215
9152
|
// Character Value: http://www.datypic.com/sc/ooxml/e-ssml_s-2.html
|
|
9216
|
-
return
|
|
9153
|
+
return `<s v="${value}" />`;
|
|
9217
9154
|
}
|
|
9218
9155
|
|
|
9219
9156
|
// shared items
|
|
9220
9157
|
// --------------------------------------------------
|
|
9221
9158
|
const sharedItemsIndex = sharedItems.indexOf(value);
|
|
9222
9159
|
if (sharedItemsIndex < 0) {
|
|
9223
|
-
throw new Error(
|
|
9160
|
+
throw new Error(`${JSON.stringify(value)} not in sharedItems ${JSON.stringify(sharedItems)}`);
|
|
9224
9161
|
}
|
|
9225
9162
|
// Shared Items Index: http://www.datypic.com/sc/ooxml/e-ssml_x-9.html
|
|
9226
|
-
return
|
|
9163
|
+
return `<x v="${sharedItemsIndex}" />`;
|
|
9227
9164
|
}
|
|
9228
9165
|
}
|
|
9229
9166
|
parseOpen(node) {
|
|
@@ -9251,11 +9188,6 @@ module.exports = PivotCacheRecordsXform;
|
|
|
9251
9188
|
},{"../../../utils/xml-stream":29,"../base-xform":33}],77:[function(require,module,exports){
|
|
9252
9189
|
"use strict";
|
|
9253
9190
|
|
|
9254
|
-
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; }
|
|
9255
|
-
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; }
|
|
9256
|
-
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; }
|
|
9257
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9258
|
-
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); }
|
|
9259
9191
|
const XmlStream = require('../../../utils/xml-stream');
|
|
9260
9192
|
const BaseXform = require('../base-xform');
|
|
9261
9193
|
class PivotTableXform extends BaseXform {
|
|
@@ -9291,7 +9223,8 @@ class PivotTableXform extends BaseXform {
|
|
|
9291
9223
|
// the numbers are indices into `cacheFields`.
|
|
9292
9224
|
|
|
9293
9225
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9294
|
-
xmlStream.openNode(this.tag,
|
|
9226
|
+
xmlStream.openNode(this.tag, {
|
|
9227
|
+
...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
|
|
9295
9228
|
'xr:uid': '{267EE50F-B116-784D-8DC2-BA77DE3F4F4A}',
|
|
9296
9229
|
name: 'PivotTable2',
|
|
9297
9230
|
cacheId,
|
|
@@ -9311,7 +9244,7 @@ class PivotTableXform extends BaseXform {
|
|
|
9311
9244
|
compact: '0',
|
|
9312
9245
|
compactData: '0',
|
|
9313
9246
|
multipleFieldFilters: '0'
|
|
9314
|
-
})
|
|
9247
|
+
});
|
|
9315
9248
|
|
|
9316
9249
|
// Note: keeping this pretty-printed and verbose for now to ease debugging.
|
|
9317
9250
|
//
|
|
@@ -9321,7 +9254,60 @@ class PivotTableXform extends BaseXform {
|
|
|
9321
9254
|
// colFields and colItems
|
|
9322
9255
|
// dataFields
|
|
9323
9256
|
// pivotTableStyleInfo
|
|
9324
|
-
xmlStream.writeXml(
|
|
9257
|
+
xmlStream.writeXml(`
|
|
9258
|
+
<location ref="A3:E15" firstHeaderRow="1" firstDataRow="2" firstDataCol="1" />
|
|
9259
|
+
<pivotFields count="${cacheFields.length}">
|
|
9260
|
+
${renderPivotFields(model)}
|
|
9261
|
+
</pivotFields>
|
|
9262
|
+
<rowFields count="${rows.length}">
|
|
9263
|
+
${rows.map(rowIndex => `<field x="${rowIndex}" />`).join('\n ')}
|
|
9264
|
+
</rowFields>
|
|
9265
|
+
<rowItems count="1">
|
|
9266
|
+
<i t="grand"><x /></i>
|
|
9267
|
+
</rowItems>
|
|
9268
|
+
<colFields count="${columns.length}">
|
|
9269
|
+
${columns.map(columnIndex => `<field x="${columnIndex}" />`).join('\n ')}
|
|
9270
|
+
</colFields>
|
|
9271
|
+
<colItems count="1">
|
|
9272
|
+
<i t="grand"><x /></i>
|
|
9273
|
+
</colItems>
|
|
9274
|
+
<dataFields count="${values.length}">
|
|
9275
|
+
<dataField
|
|
9276
|
+
name="Sum of ${cacheFields[values[0]].name}"
|
|
9277
|
+
fld="${values[0]}"
|
|
9278
|
+
baseField="0"
|
|
9279
|
+
baseItem="0"
|
|
9280
|
+
/>
|
|
9281
|
+
</dataFields>
|
|
9282
|
+
<pivotTableStyleInfo
|
|
9283
|
+
name="PivotStyleLight16"
|
|
9284
|
+
showRowHeaders="1"
|
|
9285
|
+
showColHeaders="1"
|
|
9286
|
+
showRowStripes="0"
|
|
9287
|
+
showColStripes="0"
|
|
9288
|
+
showLastColumn="1"
|
|
9289
|
+
/>
|
|
9290
|
+
<extLst>
|
|
9291
|
+
<ext
|
|
9292
|
+
uri="{962EF5D1-5CA2-4c93-8EF4-DBF5C05439D2}"
|
|
9293
|
+
xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"
|
|
9294
|
+
>
|
|
9295
|
+
<x14:pivotTableDefinition
|
|
9296
|
+
hideValuesRow="1"
|
|
9297
|
+
xmlns:xm="http://schemas.microsoft.com/office/excel/2006/main"
|
|
9298
|
+
/>
|
|
9299
|
+
</ext>
|
|
9300
|
+
<ext
|
|
9301
|
+
uri="{747A6164-185A-40DC-8AA5-F01512510D54}"
|
|
9302
|
+
xmlns:xpdl="http://schemas.microsoft.com/office/spreadsheetml/2016/pivotdefaultlayout"
|
|
9303
|
+
>
|
|
9304
|
+
<xpdl:pivotTableDefinition16
|
|
9305
|
+
EnabledSubtotalsDefault="0"
|
|
9306
|
+
SubtotalsOnTopDefault="0"
|
|
9307
|
+
/>
|
|
9308
|
+
</ext>
|
|
9309
|
+
</extLst>
|
|
9310
|
+
`);
|
|
9325
9311
|
xmlStream.closeNode();
|
|
9326
9312
|
}
|
|
9327
9313
|
parseOpen(node) {
|
|
@@ -9353,9 +9339,20 @@ function renderPivotField(fieldType, sharedItems) {
|
|
|
9353
9339
|
const defaultAttributes = 'compact="0" outline="0" showAll="0" defaultSubtotal="0"';
|
|
9354
9340
|
if (fieldType === 'row' || fieldType === 'column') {
|
|
9355
9341
|
const axis = fieldType === 'row' ? 'axisRow' : 'axisCol';
|
|
9356
|
-
return
|
|
9357
|
-
|
|
9358
|
-
|
|
9342
|
+
return `
|
|
9343
|
+
<pivotField axis="${axis}" ${defaultAttributes}>
|
|
9344
|
+
<items count="${sharedItems.length + 1}">
|
|
9345
|
+
${sharedItems.map((item, index) => `<item x="${index}" />`).join('\n ')}
|
|
9346
|
+
</items>
|
|
9347
|
+
</pivotField>
|
|
9348
|
+
`;
|
|
9349
|
+
}
|
|
9350
|
+
return `
|
|
9351
|
+
<pivotField
|
|
9352
|
+
${fieldType === 'value' ? 'dataField="1"' : ''}
|
|
9353
|
+
${defaultAttributes}
|
|
9354
|
+
/>
|
|
9355
|
+
`;
|
|
9359
9356
|
}
|
|
9360
9357
|
PivotTableXform.PIVOT_TABLE_ATTRIBUTES = {
|
|
9361
9358
|
xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',
|
|
@@ -9392,7 +9389,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
9392
9389
|
const secondAddress = getAddress(model.to);
|
|
9393
9390
|
if (firstAddress && secondAddress) {
|
|
9394
9391
|
xmlStream.leafNode('autoFilter', {
|
|
9395
|
-
ref:
|
|
9392
|
+
ref: `${firstAddress}:${secondAddress}`
|
|
9396
9393
|
});
|
|
9397
9394
|
}
|
|
9398
9395
|
}
|
|
@@ -9409,11 +9406,6 @@ module.exports = AutoFilterXform;
|
|
|
9409
9406
|
},{"../../../utils/col-cache":20,"../base-xform":33}],79:[function(require,module,exports){
|
|
9410
9407
|
"use strict";
|
|
9411
9408
|
|
|
9412
|
-
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; }
|
|
9413
|
-
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; }
|
|
9414
|
-
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; }
|
|
9415
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9416
|
-
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); }
|
|
9417
9409
|
const utils = require('../../../utils/utils');
|
|
9418
9410
|
const BaseXform = require('../base-xform');
|
|
9419
9411
|
const Range = require('../../../doc/range');
|
|
@@ -9468,9 +9460,10 @@ class CellXform extends BaseXform {
|
|
|
9468
9460
|
model.styleId = styleId;
|
|
9469
9461
|
}
|
|
9470
9462
|
if (model.comment) {
|
|
9471
|
-
options.comments.push(
|
|
9463
|
+
options.comments.push({
|
|
9464
|
+
...model.comment,
|
|
9472
9465
|
ref: model.address
|
|
9473
|
-
})
|
|
9466
|
+
});
|
|
9474
9467
|
}
|
|
9475
9468
|
switch (model.type) {
|
|
9476
9469
|
case Enums.ValueType.String:
|
|
@@ -9510,7 +9503,7 @@ class CellXform extends BaseXform {
|
|
|
9510
9503
|
} else if (model.sharedFormula) {
|
|
9511
9504
|
const master = options.formulae[model.sharedFormula];
|
|
9512
9505
|
if (!master) {
|
|
9513
|
-
throw new Error(
|
|
9506
|
+
throw new Error(`Shared Formula master must exist above and or left of clone for cell ${model.address}`);
|
|
9514
9507
|
}
|
|
9515
9508
|
if (master.si === undefined) {
|
|
9516
9509
|
master.shareType = 'shared';
|
|
@@ -9930,7 +9923,7 @@ class CfRuleExtXform extends CompositeXform {
|
|
|
9930
9923
|
}
|
|
9931
9924
|
prepare(model) {
|
|
9932
9925
|
if (CfRuleExtXform.isExt(model)) {
|
|
9933
|
-
model.x14Id =
|
|
9926
|
+
model.x14Id = `{${uuidv4()}}`.toUpperCase();
|
|
9934
9927
|
}
|
|
9935
9928
|
}
|
|
9936
9929
|
render(xmlStream, model) {
|
|
@@ -9958,7 +9951,7 @@ class CfRuleExtXform extends CompositeXform {
|
|
|
9958
9951
|
xmlStream.openNode(this.tag, {
|
|
9959
9952
|
type: 'iconSet',
|
|
9960
9953
|
priority: model.priority,
|
|
9961
|
-
id: model.x14Id ||
|
|
9954
|
+
id: model.x14Id || `{${uuidv4()}}`
|
|
9962
9955
|
});
|
|
9963
9956
|
this.iconSetXform.render(xmlStream, model);
|
|
9964
9957
|
xmlStream.closeNode();
|
|
@@ -10307,11 +10300,6 @@ module.exports = SqrefExtXform;
|
|
|
10307
10300
|
},{"../../base-xform":33}],89:[function(require,module,exports){
|
|
10308
10301
|
"use strict";
|
|
10309
10302
|
|
|
10310
|
-
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; }
|
|
10311
|
-
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; }
|
|
10312
|
-
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; }
|
|
10313
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
10314
|
-
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); }
|
|
10315
10303
|
const BaseXform = require('../../base-xform');
|
|
10316
10304
|
const CompositeXform = require('../../composite-xform');
|
|
10317
10305
|
const Range = require('../../../../doc/range');
|
|
@@ -10335,15 +10323,15 @@ const getTextFormula = model => {
|
|
|
10335
10323
|
} = range;
|
|
10336
10324
|
switch (model.operator) {
|
|
10337
10325
|
case 'containsText':
|
|
10338
|
-
return
|
|
10326
|
+
return `NOT(ISERROR(SEARCH("${model.text}",${tl})))`;
|
|
10339
10327
|
case 'containsBlanks':
|
|
10340
|
-
return
|
|
10328
|
+
return `LEN(TRIM(${tl}))=0`;
|
|
10341
10329
|
case 'notContainsBlanks':
|
|
10342
|
-
return
|
|
10330
|
+
return `LEN(TRIM(${tl}))>0`;
|
|
10343
10331
|
case 'containsErrors':
|
|
10344
|
-
return
|
|
10332
|
+
return `ISERROR(${tl})`;
|
|
10345
10333
|
case 'notContainsErrors':
|
|
10346
|
-
return
|
|
10334
|
+
return `NOT(ISERROR(${tl}))`;
|
|
10347
10335
|
default:
|
|
10348
10336
|
return undefined;
|
|
10349
10337
|
}
|
|
@@ -10358,25 +10346,25 @@ const getTimePeriodFormula = model => {
|
|
|
10358
10346
|
} = range;
|
|
10359
10347
|
switch (model.timePeriod) {
|
|
10360
10348
|
case 'thisWeek':
|
|
10361
|
-
return
|
|
10349
|
+
return `AND(TODAY()-ROUNDDOWN(${tl},0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(${tl},0)-TODAY()<=7-WEEKDAY(TODAY()))`;
|
|
10362
10350
|
case 'lastWeek':
|
|
10363
|
-
return
|
|
10351
|
+
return `AND(TODAY()-ROUNDDOWN(${tl},0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(${tl},0)<(WEEKDAY(TODAY())+7))`;
|
|
10364
10352
|
case 'nextWeek':
|
|
10365
|
-
return
|
|
10353
|
+
return `AND(ROUNDDOWN(${tl},0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(${tl},0)-TODAY()<(15-WEEKDAY(TODAY())))`;
|
|
10366
10354
|
case 'yesterday':
|
|
10367
|
-
return
|
|
10355
|
+
return `FLOOR(${tl},1)=TODAY()-1`;
|
|
10368
10356
|
case 'today':
|
|
10369
|
-
return
|
|
10357
|
+
return `FLOOR(${tl},1)=TODAY()`;
|
|
10370
10358
|
case 'tomorrow':
|
|
10371
|
-
return
|
|
10359
|
+
return `FLOOR(${tl},1)=TODAY()+1`;
|
|
10372
10360
|
case 'last7Days':
|
|
10373
|
-
return
|
|
10361
|
+
return `AND(TODAY()-FLOOR(${tl},1)<=6,FLOOR(${tl},1)<=TODAY())`;
|
|
10374
10362
|
case 'lastMonth':
|
|
10375
|
-
return
|
|
10363
|
+
return `AND(MONTH(${tl})=MONTH(EDATE(TODAY(),0-1)),YEAR(${tl})=YEAR(EDATE(TODAY(),0-1)))`;
|
|
10376
10364
|
case 'thisMonth':
|
|
10377
|
-
return
|
|
10365
|
+
return `AND(MONTH(${tl})=MONTH(TODAY()),YEAR(${tl})=YEAR(TODAY()))`;
|
|
10378
10366
|
case 'nextMonth':
|
|
10379
|
-
return
|
|
10367
|
+
return `AND(MONTH(${tl})=MONTH(EDATE(TODAY(),0+1)),YEAR(${tl})=YEAR(EDATE(TODAY(),0+1)))`;
|
|
10380
10368
|
default:
|
|
10381
10369
|
return undefined;
|
|
10382
10370
|
}
|
|
@@ -10555,7 +10543,8 @@ class CfRuleXform extends CompositeXform {
|
|
|
10555
10543
|
let {
|
|
10556
10544
|
attributes
|
|
10557
10545
|
} = _ref;
|
|
10558
|
-
return
|
|
10546
|
+
return {
|
|
10547
|
+
...opType(attributes),
|
|
10559
10548
|
dxfId: BaseXform.toIntValue(attributes.dxfId),
|
|
10560
10549
|
priority: BaseXform.toIntValue(attributes.priority),
|
|
10561
10550
|
timePeriod: attributes.timePeriod,
|
|
@@ -10563,7 +10552,7 @@ class CfRuleXform extends CompositeXform {
|
|
|
10563
10552
|
bottom: BaseXform.toBoolValue(attributes.bottom),
|
|
10564
10553
|
rank: BaseXform.toIntValue(attributes.rank),
|
|
10565
10554
|
aboveAverage: BaseXform.toBoolValue(attributes.aboveAverage)
|
|
10566
|
-
}
|
|
10555
|
+
};
|
|
10567
10556
|
}
|
|
10568
10557
|
onParserClose(name, parser) {
|
|
10569
10558
|
switch (name) {
|
|
@@ -11037,11 +11026,6 @@ module.exports = ColXform;
|
|
|
11037
11026
|
},{"../../../utils/utils":28,"../base-xform":33}],99:[function(require,module,exports){
|
|
11038
11027
|
"use strict";
|
|
11039
11028
|
|
|
11040
|
-
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; }
|
|
11041
|
-
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; }
|
|
11042
|
-
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; }
|
|
11043
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
11044
|
-
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); }
|
|
11045
11029
|
const _ = require('../../../utils/under-dash');
|
|
11046
11030
|
const utils = require('../../../utils/utils');
|
|
11047
11031
|
const colCache = require('../../../utils/col-cache');
|
|
@@ -11086,9 +11070,10 @@ function optimiseDataValidations(model) {
|
|
|
11086
11070
|
const addr = colCache.decodeEx(dv.address);
|
|
11087
11071
|
if (addr.dimensions) {
|
|
11088
11072
|
dvMap[addr.dimensions].marked = true;
|
|
11089
|
-
return
|
|
11073
|
+
return {
|
|
11074
|
+
...dv.dataValidation,
|
|
11090
11075
|
sqref: dv.address
|
|
11091
|
-
}
|
|
11076
|
+
};
|
|
11092
11077
|
}
|
|
11093
11078
|
|
|
11094
11079
|
// iterate downwards - finding matching cells
|
|
@@ -11116,13 +11101,15 @@ function optimiseDataValidations(model) {
|
|
|
11116
11101
|
if (height > 1 || width > 1) {
|
|
11117
11102
|
const bottom = addr.row + (height - 1);
|
|
11118
11103
|
const right = addr.col + (width - 1);
|
|
11119
|
-
return
|
|
11120
|
-
|
|
11121
|
-
|
|
11104
|
+
return {
|
|
11105
|
+
...dv.dataValidation,
|
|
11106
|
+
sqref: `${dv.address}:${colCache.encodeAddress(bottom, right)}`
|
|
11107
|
+
};
|
|
11122
11108
|
}
|
|
11123
|
-
return
|
|
11109
|
+
return {
|
|
11110
|
+
...dv.dataValidation,
|
|
11124
11111
|
sqref: dv.address
|
|
11125
|
-
}
|
|
11112
|
+
};
|
|
11126
11113
|
}
|
|
11127
11114
|
return null;
|
|
11128
11115
|
}).filter(Boolean);
|
|
@@ -11171,7 +11158,7 @@ class DataValidationsXform extends BaseXform {
|
|
|
11171
11158
|
}
|
|
11172
11159
|
xmlStream.addAttribute('sqref', value.sqref);
|
|
11173
11160
|
(value.formulae || []).forEach((formula, index) => {
|
|
11174
|
-
xmlStream.openNode(
|
|
11161
|
+
xmlStream.openNode(`formula${index + 1}`);
|
|
11175
11162
|
if (value.type === 'date') {
|
|
11176
11163
|
xmlStream.writeText(utils.dateToExcel(new Date(formula)));
|
|
11177
11164
|
} else {
|
|
@@ -11638,7 +11625,7 @@ class Merges {
|
|
|
11638
11625
|
if (this.merges[merge.master]) {
|
|
11639
11626
|
this.merges[merge.master].expandToAddress(merge.address);
|
|
11640
11627
|
} else {
|
|
11641
|
-
const range =
|
|
11628
|
+
const range = `${merge.master}:${merge.address}`;
|
|
11642
11629
|
this.merges[merge.master] = new Range(range);
|
|
11643
11630
|
}
|
|
11644
11631
|
}
|
|
@@ -12070,7 +12057,7 @@ class RowXform extends BaseXform {
|
|
|
12070
12057
|
xmlStream.addAttribute('hidden', '1');
|
|
12071
12058
|
}
|
|
12072
12059
|
if (model.min > 0 && model.max > 0 && model.min <= model.max) {
|
|
12073
|
-
xmlStream.addAttribute('spans',
|
|
12060
|
+
xmlStream.addAttribute('spans', `${model.min}:${model.max}`);
|
|
12074
12061
|
}
|
|
12075
12062
|
if (model.styleId) {
|
|
12076
12063
|
xmlStream.addAttribute('s', model.styleId);
|
|
@@ -12140,7 +12127,7 @@ class RowXform extends BaseXform {
|
|
|
12140
12127
|
if (!this.parser.parseClose(name)) {
|
|
12141
12128
|
this.model.cells.push(this.parser.model);
|
|
12142
12129
|
if (this.maxItems && this.model.cells.length > this.maxItems) {
|
|
12143
|
-
throw new Error(
|
|
12130
|
+
throw new Error(`Max column count (${this.maxItems}) exceeded`);
|
|
12144
12131
|
}
|
|
12145
12132
|
this.parser = undefined;
|
|
12146
12133
|
}
|
|
@@ -12768,7 +12755,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12768
12755
|
// prepare relationships
|
|
12769
12756
|
const rels = model.rels = [];
|
|
12770
12757
|
function nextRid(r) {
|
|
12771
|
-
return
|
|
12758
|
+
return `rId${r.length + 1}`;
|
|
12772
12759
|
}
|
|
12773
12760
|
model.hyperlinks.forEach(hyperlink => {
|
|
12774
12761
|
const rId = nextRid(rels);
|
|
@@ -12786,21 +12773,21 @@ class WorkSheetXform extends BaseXform {
|
|
|
12786
12773
|
const comment = {
|
|
12787
12774
|
Id: nextRid(rels),
|
|
12788
12775
|
Type: RelType.Comments,
|
|
12789
|
-
Target:
|
|
12776
|
+
Target: `../comments${model.id}.xml`
|
|
12790
12777
|
};
|
|
12791
12778
|
rels.push(comment);
|
|
12792
12779
|
const vmlDrawing = {
|
|
12793
12780
|
Id: nextRid(rels),
|
|
12794
12781
|
Type: RelType.VmlDrawing,
|
|
12795
|
-
Target:
|
|
12782
|
+
Target: `../drawings/vmlDrawing${model.id}.vml`
|
|
12796
12783
|
};
|
|
12797
12784
|
rels.push(vmlDrawing);
|
|
12798
12785
|
model.comments.forEach(item => {
|
|
12799
12786
|
item.refAddress = colCache.decodeAddress(item.ref);
|
|
12800
12787
|
});
|
|
12801
12788
|
options.commentRefs.push({
|
|
12802
|
-
commentName:
|
|
12803
|
-
vmlDrawing:
|
|
12789
|
+
commentName: `comments${model.id}`,
|
|
12790
|
+
vmlDrawing: `vmlDrawing${model.id}`
|
|
12804
12791
|
});
|
|
12805
12792
|
}
|
|
12806
12793
|
const drawingRelsHash = [];
|
|
@@ -12812,7 +12799,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12812
12799
|
rels.push({
|
|
12813
12800
|
Id: rId,
|
|
12814
12801
|
Type: RelType.Image,
|
|
12815
|
-
Target:
|
|
12802
|
+
Target: `../media/${bookImage.name}.${bookImage.extension}`
|
|
12816
12803
|
});
|
|
12817
12804
|
model.background = {
|
|
12818
12805
|
rId
|
|
@@ -12826,7 +12813,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12826
12813
|
if (!drawing) {
|
|
12827
12814
|
drawing = model.drawing = {
|
|
12828
12815
|
rId: nextRid(rels),
|
|
12829
|
-
name:
|
|
12816
|
+
name: `drawing${++options.drawingsCount}`,
|
|
12830
12817
|
anchors: [],
|
|
12831
12818
|
rels: []
|
|
12832
12819
|
};
|
|
@@ -12834,7 +12821,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12834
12821
|
rels.push({
|
|
12835
12822
|
Id: drawing.rId,
|
|
12836
12823
|
Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
|
|
12837
|
-
Target:
|
|
12824
|
+
Target: `../drawings/${drawing.name}.xml`
|
|
12838
12825
|
});
|
|
12839
12826
|
}
|
|
12840
12827
|
let rIdImage = this.preImageId === medium.imageId ? drawingRelsHash[medium.imageId] : drawingRelsHash[drawing.rels.length];
|
|
@@ -12844,7 +12831,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12844
12831
|
drawing.rels.push({
|
|
12845
12832
|
Id: rIdImage,
|
|
12846
12833
|
Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
|
|
12847
|
-
Target:
|
|
12834
|
+
Target: `../media/${bookImage.name}.${bookImage.extension}`
|
|
12848
12835
|
});
|
|
12849
12836
|
}
|
|
12850
12837
|
const anchor = {
|
|
@@ -12880,7 +12867,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12880
12867
|
rels.push({
|
|
12881
12868
|
Id: rId,
|
|
12882
12869
|
Type: RelType.Table,
|
|
12883
|
-
Target:
|
|
12870
|
+
Target: `../tables/${table.target}`
|
|
12884
12871
|
});
|
|
12885
12872
|
|
|
12886
12873
|
// dynamic styles
|
|
@@ -13760,7 +13747,7 @@ class SharedStringsXform extends BaseXform {
|
|
|
13760
13747
|
this.parser.parseOpen(node);
|
|
13761
13748
|
return true;
|
|
13762
13749
|
default:
|
|
13763
|
-
throw new Error(
|
|
13750
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
13764
13751
|
}
|
|
13765
13752
|
}
|
|
13766
13753
|
parseText(text) {
|
|
@@ -13781,7 +13768,7 @@ class SharedStringsXform extends BaseXform {
|
|
|
13781
13768
|
case 'sst':
|
|
13782
13769
|
return false;
|
|
13783
13770
|
default:
|
|
13784
|
-
throw new Error(
|
|
13771
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
13785
13772
|
}
|
|
13786
13773
|
}
|
|
13787
13774
|
}
|
|
@@ -13970,11 +13957,6 @@ module.exports = AlignmentXform;
|
|
|
13970
13957
|
},{"../../../doc/enums":7,"../../../utils/utils":28,"../base-xform":33}],133:[function(require,module,exports){
|
|
13971
13958
|
"use strict";
|
|
13972
13959
|
|
|
13973
|
-
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; }
|
|
13974
|
-
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; }
|
|
13975
|
-
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; }
|
|
13976
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
13977
|
-
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); }
|
|
13978
13960
|
/* eslint-disable max-classes-per-file */
|
|
13979
13961
|
const BaseXform = require('../base-xform');
|
|
13980
13962
|
const utils = require('../../../utils/utils');
|
|
@@ -14088,9 +14070,10 @@ class BorderXform extends BaseXform {
|
|
|
14088
14070
|
function add(edgeModel, edgeXform) {
|
|
14089
14071
|
if (edgeModel && !edgeModel.color && model.color) {
|
|
14090
14072
|
// don't mess with incoming models
|
|
14091
|
-
edgeModel =
|
|
14073
|
+
edgeModel = {
|
|
14074
|
+
...edgeModel,
|
|
14092
14075
|
color: model.color
|
|
14093
|
-
}
|
|
14076
|
+
};
|
|
14094
14077
|
}
|
|
14095
14078
|
edgeXform.render(xmlStream, edgeModel, color);
|
|
14096
14079
|
}
|
|
@@ -15756,7 +15739,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
15756
15739
|
this.parseOpen(node);
|
|
15757
15740
|
return true;
|
|
15758
15741
|
}
|
|
15759
|
-
throw new Error(
|
|
15742
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
15760
15743
|
}
|
|
15761
15744
|
}
|
|
15762
15745
|
parseText(text) {
|
|
@@ -15776,7 +15759,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
15776
15759
|
case this.tag:
|
|
15777
15760
|
return false;
|
|
15778
15761
|
default:
|
|
15779
|
-
throw new Error(
|
|
15762
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
15780
15763
|
}
|
|
15781
15764
|
}
|
|
15782
15765
|
}
|
|
@@ -15880,7 +15863,7 @@ class FilterColumnXform extends BaseXform {
|
|
|
15880
15863
|
this.parseOpen(node);
|
|
15881
15864
|
return true;
|
|
15882
15865
|
}
|
|
15883
|
-
throw new Error(
|
|
15866
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
15884
15867
|
}
|
|
15885
15868
|
}
|
|
15886
15869
|
parseText() {}
|
|
@@ -16019,11 +16002,6 @@ module.exports = TableStyleInfoXform;
|
|
|
16019
16002
|
},{"../base-xform":33}],149:[function(require,module,exports){
|
|
16020
16003
|
"use strict";
|
|
16021
16004
|
|
|
16022
|
-
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; }
|
|
16023
|
-
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; }
|
|
16024
|
-
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; }
|
|
16025
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16026
|
-
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); }
|
|
16027
16005
|
const XmlStream = require('../../../utils/xml-stream');
|
|
16028
16006
|
const BaseXform = require('../base-xform');
|
|
16029
16007
|
const ListXform = require('../list-xform');
|
|
@@ -16053,7 +16031,8 @@ class TableXform extends BaseXform {
|
|
|
16053
16031
|
}
|
|
16054
16032
|
render(xmlStream, model) {
|
|
16055
16033
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
16056
|
-
xmlStream.openNode(this.tag,
|
|
16034
|
+
xmlStream.openNode(this.tag, {
|
|
16035
|
+
...TableXform.TABLE_ATTRIBUTES,
|
|
16057
16036
|
id: model.id,
|
|
16058
16037
|
name: model.name,
|
|
16059
16038
|
displayName: model.displayName || model.name,
|
|
@@ -16061,7 +16040,7 @@ class TableXform extends BaseXform {
|
|
|
16061
16040
|
totalsRowCount: model.totalsRow ? '1' : undefined,
|
|
16062
16041
|
totalsRowShown: model.totalsRow ? undefined : '1',
|
|
16063
16042
|
headerRowCount: model.headerRow ? '1' : '0'
|
|
16064
|
-
})
|
|
16043
|
+
});
|
|
16065
16044
|
this.map.autoFilter.render(xmlStream, model);
|
|
16066
16045
|
this.map.tableColumns.render(xmlStream, model.columns);
|
|
16067
16046
|
this.map.tableStyleInfo.render(xmlStream, model.style);
|
|
@@ -16147,8 +16126,6 @@ module.exports = TableXform;
|
|
|
16147
16126
|
(function (process,Buffer){(function (){
|
|
16148
16127
|
"use strict";
|
|
16149
16128
|
|
|
16150
|
-
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"); }
|
|
16151
|
-
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); }
|
|
16152
16129
|
const fs = require('fs');
|
|
16153
16130
|
const JSZip = require('jszip');
|
|
16154
16131
|
const {
|
|
@@ -16200,7 +16177,7 @@ class XLSX {
|
|
|
16200
16177
|
|
|
16201
16178
|
async readFile(filename, options) {
|
|
16202
16179
|
if (!(await utils.fs.exists(filename))) {
|
|
16203
|
-
throw new Error(
|
|
16180
|
+
throw new Error(`File not found: ${filename}`);
|
|
16204
16181
|
}
|
|
16205
16182
|
const stream = fs.createReadStream(filename);
|
|
16206
16183
|
try {
|
|
@@ -16301,12 +16278,12 @@ class XLSX {
|
|
|
16301
16278
|
async _processCommentEntry(stream, model, name) {
|
|
16302
16279
|
const xform = new CommentsXform();
|
|
16303
16280
|
const comments = await xform.parseStream(stream);
|
|
16304
|
-
model.comments[
|
|
16281
|
+
model.comments[`../${name}.xml`] = comments;
|
|
16305
16282
|
}
|
|
16306
16283
|
async _processTableEntry(stream, model, name) {
|
|
16307
16284
|
const xform = new TableXform();
|
|
16308
16285
|
const table = await xform.parseStream(stream);
|
|
16309
|
-
model.tables[
|
|
16286
|
+
model.tables[`../tables/${name}.xml`] = table;
|
|
16310
16287
|
}
|
|
16311
16288
|
async _processWorksheetRelsEntry(stream, model, sheetNo) {
|
|
16312
16289
|
const xform = new RelationshipsXform();
|
|
@@ -16353,7 +16330,7 @@ class XLSX {
|
|
|
16353
16330
|
async _processVmlDrawingEntry(entry, model, name) {
|
|
16354
16331
|
const xform = new VmlNotesXform();
|
|
16355
16332
|
const vmlDrawing = await xform.parseStream(entry);
|
|
16356
|
-
model.vmlDrawings[
|
|
16333
|
+
model.vmlDrawings[`../drawings/${name}.vml`] = vmlDrawing;
|
|
16357
16334
|
}
|
|
16358
16335
|
async _processThemeEntry(entry, model, name) {
|
|
16359
16336
|
await new Promise((resolve, reject) => {
|
|
@@ -16382,29 +16359,8 @@ class XLSX {
|
|
|
16382
16359
|
stream = stream.pipe(new PassThrough());
|
|
16383
16360
|
}
|
|
16384
16361
|
const chunks = [];
|
|
16385
|
-
|
|
16386
|
-
|
|
16387
|
-
var _iteratorError;
|
|
16388
|
-
try {
|
|
16389
|
-
for (var _iterator = _asyncIterator(stream), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {
|
|
16390
|
-
const chunk = _step.value;
|
|
16391
|
-
{
|
|
16392
|
-
chunks.push(chunk);
|
|
16393
|
-
}
|
|
16394
|
-
}
|
|
16395
|
-
} catch (err) {
|
|
16396
|
-
_didIteratorError = true;
|
|
16397
|
-
_iteratorError = err;
|
|
16398
|
-
} finally {
|
|
16399
|
-
try {
|
|
16400
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
16401
|
-
await _iterator.return();
|
|
16402
|
-
}
|
|
16403
|
-
} finally {
|
|
16404
|
-
if (_didIteratorError) {
|
|
16405
|
-
throw _iteratorError;
|
|
16406
|
-
}
|
|
16407
|
-
}
|
|
16362
|
+
for await (const chunk of stream) {
|
|
16363
|
+
chunks.push(chunk);
|
|
16408
16364
|
}
|
|
16409
16365
|
return this.load(Buffer.concat(chunks), options);
|
|
16410
16366
|
}
|
|
@@ -16567,7 +16523,7 @@ class XLSX {
|
|
|
16567
16523
|
async addMedia(zip, model) {
|
|
16568
16524
|
await Promise.all(model.media.map(async medium => {
|
|
16569
16525
|
if (medium.type === 'image') {
|
|
16570
|
-
const filename =
|
|
16526
|
+
const filename = `xl/media/${medium.name}.${medium.extension}`;
|
|
16571
16527
|
if (medium.filename) {
|
|
16572
16528
|
const data = await fsReadFileAsync(medium.filename);
|
|
16573
16529
|
return zip.append(data, {
|
|
@@ -16602,11 +16558,11 @@ class XLSX {
|
|
|
16602
16558
|
drawingXform.prepare(drawing, {});
|
|
16603
16559
|
let xml = drawingXform.toXml(drawing);
|
|
16604
16560
|
zip.append(xml, {
|
|
16605
|
-
name:
|
|
16561
|
+
name: `xl/drawings/${drawing.name}.xml`
|
|
16606
16562
|
});
|
|
16607
16563
|
xml = relsXform.toXml(drawing.rels);
|
|
16608
16564
|
zip.append(xml, {
|
|
16609
|
-
name:
|
|
16565
|
+
name: `xl/drawings/_rels/${drawing.name}.xml.rels`
|
|
16610
16566
|
});
|
|
16611
16567
|
}
|
|
16612
16568
|
});
|
|
@@ -16621,7 +16577,7 @@ class XLSX {
|
|
|
16621
16577
|
tableXform.prepare(table, {});
|
|
16622
16578
|
const tableXml = tableXform.toXml(table);
|
|
16623
16579
|
zip.append(tableXml, {
|
|
16624
|
-
name:
|
|
16580
|
+
name: `xl/tables/${table.target}`
|
|
16625
16581
|
});
|
|
16626
16582
|
});
|
|
16627
16583
|
});
|
|
@@ -16718,7 +16674,7 @@ class XLSX {
|
|
|
16718
16674
|
};
|
|
16719
16675
|
Object.keys(themes).forEach(name => {
|
|
16720
16676
|
const xml = themes[name];
|
|
16721
|
-
const path =
|
|
16677
|
+
const path = `xl/theme/${name}.xml`;
|
|
16722
16678
|
zip.append(xml, {
|
|
16723
16679
|
name: path
|
|
16724
16680
|
});
|
|
@@ -16746,24 +16702,24 @@ class XLSX {
|
|
|
16746
16702
|
async addWorkbookRels(zip, model) {
|
|
16747
16703
|
let count = 1;
|
|
16748
16704
|
const relationships = [{
|
|
16749
|
-
Id:
|
|
16705
|
+
Id: `rId${count++}`,
|
|
16750
16706
|
Type: XLSX.RelType.Styles,
|
|
16751
16707
|
Target: 'styles.xml'
|
|
16752
16708
|
}, {
|
|
16753
|
-
Id:
|
|
16709
|
+
Id: `rId${count++}`,
|
|
16754
16710
|
Type: XLSX.RelType.Theme,
|
|
16755
16711
|
Target: 'theme/theme1.xml'
|
|
16756
16712
|
}];
|
|
16757
16713
|
if (model.sharedStrings.count) {
|
|
16758
16714
|
relationships.push({
|
|
16759
|
-
Id:
|
|
16715
|
+
Id: `rId${count++}`,
|
|
16760
16716
|
Type: XLSX.RelType.SharedStrings,
|
|
16761
16717
|
Target: 'sharedStrings.xml'
|
|
16762
16718
|
});
|
|
16763
16719
|
}
|
|
16764
16720
|
if ((model.pivotTables || []).length) {
|
|
16765
16721
|
const pivotTable = model.pivotTables[0];
|
|
16766
|
-
pivotTable.rId =
|
|
16722
|
+
pivotTable.rId = `rId${count++}`;
|
|
16767
16723
|
relationships.push({
|
|
16768
16724
|
Id: pivotTable.rId,
|
|
16769
16725
|
Type: XLSX.RelType.PivotCacheDefinition,
|
|
@@ -16771,11 +16727,11 @@ class XLSX {
|
|
|
16771
16727
|
});
|
|
16772
16728
|
}
|
|
16773
16729
|
model.worksheets.forEach(worksheet => {
|
|
16774
|
-
worksheet.rId =
|
|
16730
|
+
worksheet.rId = `rId${count++}`;
|
|
16775
16731
|
relationships.push({
|
|
16776
16732
|
Id: worksheet.rId,
|
|
16777
16733
|
Type: XLSX.RelType.Worksheet,
|
|
16778
|
-
Target:
|
|
16734
|
+
Target: `worksheets/sheet${worksheet.id}.xml`
|
|
16779
16735
|
});
|
|
16780
16736
|
});
|
|
16781
16737
|
const xform = new RelationshipsXform();
|
|
@@ -16819,25 +16775,25 @@ class XLSX {
|
|
|
16819
16775
|
let xmlStream = new XmlStream();
|
|
16820
16776
|
worksheetXform.render(xmlStream, worksheet);
|
|
16821
16777
|
zip.append(xmlStream.xml, {
|
|
16822
|
-
name:
|
|
16778
|
+
name: `xl/worksheets/sheet${worksheet.id}.xml`
|
|
16823
16779
|
});
|
|
16824
16780
|
if (worksheet.rels && worksheet.rels.length) {
|
|
16825
16781
|
xmlStream = new XmlStream();
|
|
16826
16782
|
relationshipsXform.render(xmlStream, worksheet.rels);
|
|
16827
16783
|
zip.append(xmlStream.xml, {
|
|
16828
|
-
name:
|
|
16784
|
+
name: `xl/worksheets/_rels/sheet${worksheet.id}.xml.rels`
|
|
16829
16785
|
});
|
|
16830
16786
|
}
|
|
16831
16787
|
if (worksheet.comments.length > 0) {
|
|
16832
16788
|
xmlStream = new XmlStream();
|
|
16833
16789
|
commentsXform.render(xmlStream, worksheet);
|
|
16834
16790
|
zip.append(xmlStream.xml, {
|
|
16835
|
-
name:
|
|
16791
|
+
name: `xl/comments${worksheet.id}.xml`
|
|
16836
16792
|
});
|
|
16837
16793
|
xmlStream = new XmlStream();
|
|
16838
16794
|
vmlNotesXform.render(xmlStream, worksheet);
|
|
16839
16795
|
zip.append(xmlStream.xml, {
|
|
16840
|
-
name:
|
|
16796
|
+
name: `xl/drawings/vmlDrawing${worksheet.id}.vml`
|
|
16841
16797
|
});
|
|
16842
16798
|
}
|
|
16843
16799
|
});
|
|
@@ -16885,7 +16841,7 @@ class XLSX {
|
|
|
16885
16841
|
// assign unique filenames to tables
|
|
16886
16842
|
worksheet.tables.forEach(table => {
|
|
16887
16843
|
tableCount++;
|
|
16888
|
-
table.target =
|
|
16844
|
+
table.target = `table${tableCount}.xml`;
|
|
16889
16845
|
table.id = tableCount;
|
|
16890
16846
|
model.tables.push(table);
|
|
16891
16847
|
});
|
|
@@ -16955,9 +16911,6 @@ module.exports = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<a:th
|
|
|
16955
16911
|
(function (Buffer){(function (){
|
|
16956
16912
|
"use strict";
|
|
16957
16913
|
|
|
16958
|
-
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; }
|
|
16959
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16960
|
-
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); }
|
|
16961
16914
|
Object.defineProperty(exports, "__esModule", {
|
|
16962
16915
|
value: true
|
|
16963
16916
|
});
|
|
@@ -16965,13 +16918,13 @@ exports.CsvFormatterStream = void 0;
|
|
|
16965
16918
|
const stream_1 = require("stream");
|
|
16966
16919
|
const formatter_1 = require("./formatter");
|
|
16967
16920
|
class CsvFormatterStream extends stream_1.Transform {
|
|
16921
|
+
formatterOptions;
|
|
16922
|
+
rowFormatter;
|
|
16923
|
+
hasWrittenBOM = false;
|
|
16968
16924
|
constructor(formatterOptions) {
|
|
16969
16925
|
super({
|
|
16970
16926
|
writableObjectMode: formatterOptions.objectMode
|
|
16971
16927
|
});
|
|
16972
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
16973
|
-
_defineProperty(this, "rowFormatter", void 0);
|
|
16974
|
-
_defineProperty(this, "hasWrittenBOM", false);
|
|
16975
16928
|
this.formatterOptions = formatterOptions;
|
|
16976
16929
|
this.rowFormatter = new formatter_1.RowFormatter(formatterOptions);
|
|
16977
16930
|
// if writeBOM is false then set to true
|
|
@@ -17030,47 +16983,43 @@ exports.CsvFormatterStream = CsvFormatterStream;
|
|
|
17030
16983
|
},{"./formatter":156,"buffer":237,"stream":312}],153:[function(require,module,exports){
|
|
17031
16984
|
"use strict";
|
|
17032
16985
|
|
|
17033
|
-
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; }
|
|
17034
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17035
|
-
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); }
|
|
17036
16986
|
Object.defineProperty(exports, "__esModule", {
|
|
17037
16987
|
value: true
|
|
17038
16988
|
});
|
|
17039
16989
|
exports.FormatterOptions = void 0;
|
|
17040
16990
|
class FormatterOptions {
|
|
16991
|
+
objectMode = true;
|
|
16992
|
+
delimiter = ',';
|
|
16993
|
+
rowDelimiter = '\n';
|
|
16994
|
+
quote = '"';
|
|
16995
|
+
escape = this.quote;
|
|
16996
|
+
quoteColumns = false;
|
|
16997
|
+
quoteHeaders = this.quoteColumns;
|
|
16998
|
+
headers = null;
|
|
16999
|
+
includeEndRowDelimiter = false;
|
|
17000
|
+
transform;
|
|
17001
|
+
shouldWriteHeaders;
|
|
17002
|
+
writeBOM = false;
|
|
17003
|
+
escapedQuote;
|
|
17004
|
+
BOM = '\ufeff';
|
|
17005
|
+
alwaysWriteHeaders = false;
|
|
17041
17006
|
constructor() {
|
|
17042
|
-
var _opts$writeHeaders;
|
|
17043
17007
|
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
17044
|
-
_defineProperty(this, "objectMode", true);
|
|
17045
|
-
_defineProperty(this, "delimiter", ',');
|
|
17046
|
-
_defineProperty(this, "rowDelimiter", '\n');
|
|
17047
|
-
_defineProperty(this, "quote", '"');
|
|
17048
|
-
_defineProperty(this, "escape", this.quote);
|
|
17049
|
-
_defineProperty(this, "quoteColumns", false);
|
|
17050
|
-
_defineProperty(this, "quoteHeaders", this.quoteColumns);
|
|
17051
|
-
_defineProperty(this, "headers", null);
|
|
17052
|
-
_defineProperty(this, "includeEndRowDelimiter", false);
|
|
17053
|
-
_defineProperty(this, "transform", void 0);
|
|
17054
|
-
_defineProperty(this, "shouldWriteHeaders", void 0);
|
|
17055
|
-
_defineProperty(this, "writeBOM", false);
|
|
17056
|
-
_defineProperty(this, "escapedQuote", void 0);
|
|
17057
|
-
_defineProperty(this, "BOM", '\ufeff');
|
|
17058
|
-
_defineProperty(this, "alwaysWriteHeaders", false);
|
|
17059
17008
|
Object.assign(this, opts || {});
|
|
17060
|
-
if (typeof
|
|
17009
|
+
if (typeof opts?.quoteHeaders === 'undefined') {
|
|
17061
17010
|
this.quoteHeaders = this.quoteColumns;
|
|
17062
17011
|
}
|
|
17063
|
-
if (
|
|
17012
|
+
if (opts?.quote === true) {
|
|
17064
17013
|
this.quote = '"';
|
|
17065
|
-
} else if (
|
|
17014
|
+
} else if (opts?.quote === false) {
|
|
17066
17015
|
this.quote = '';
|
|
17067
17016
|
}
|
|
17068
|
-
if (typeof
|
|
17017
|
+
if (typeof opts?.escape !== 'string') {
|
|
17069
17018
|
this.escape = this.quote;
|
|
17070
17019
|
}
|
|
17071
|
-
this.shouldWriteHeaders = !!this.headers && (
|
|
17020
|
+
this.shouldWriteHeaders = !!this.headers && (opts.writeHeaders ?? true);
|
|
17072
17021
|
this.headers = Array.isArray(this.headers) ? this.headers : null;
|
|
17073
|
-
this.escapedQuote =
|
|
17022
|
+
this.escapedQuote = `${this.escape}${this.quote}`;
|
|
17074
17023
|
}
|
|
17075
17024
|
}
|
|
17076
17025
|
exports.FormatterOptions = FormatterOptions;
|
|
@@ -17078,9 +17027,6 @@ exports.FormatterOptions = FormatterOptions;
|
|
|
17078
17027
|
},{}],154:[function(require,module,exports){
|
|
17079
17028
|
"use strict";
|
|
17080
17029
|
|
|
17081
|
-
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; }
|
|
17082
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17083
|
-
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); }
|
|
17084
17030
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17085
17031
|
return mod && mod.__esModule ? mod : {
|
|
17086
17032
|
"default": mod
|
|
@@ -17094,17 +17040,17 @@ const lodash_isboolean_1 = __importDefault(require("lodash.isboolean"));
|
|
|
17094
17040
|
const lodash_isnil_1 = __importDefault(require("lodash.isnil"));
|
|
17095
17041
|
const lodash_escaperegexp_1 = __importDefault(require("lodash.escaperegexp"));
|
|
17096
17042
|
class FieldFormatter {
|
|
17043
|
+
formatterOptions;
|
|
17044
|
+
_headers = null;
|
|
17045
|
+
REPLACE_REGEXP;
|
|
17046
|
+
ESCAPE_REGEXP;
|
|
17097
17047
|
constructor(formatterOptions) {
|
|
17098
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
17099
|
-
_defineProperty(this, "_headers", null);
|
|
17100
|
-
_defineProperty(this, "REPLACE_REGEXP", void 0);
|
|
17101
|
-
_defineProperty(this, "ESCAPE_REGEXP", void 0);
|
|
17102
17048
|
this.formatterOptions = formatterOptions;
|
|
17103
17049
|
if (formatterOptions.headers !== null) {
|
|
17104
17050
|
this.headers = formatterOptions.headers;
|
|
17105
17051
|
}
|
|
17106
17052
|
this.REPLACE_REGEXP = new RegExp(formatterOptions.quote, 'g');
|
|
17107
|
-
const escapePattern =
|
|
17053
|
+
const escapePattern = `[${formatterOptions.delimiter}${(0, lodash_escaperegexp_1.default)(formatterOptions.rowDelimiter)}|\r|\n]`;
|
|
17108
17054
|
this.ESCAPE_REGEXP = new RegExp(escapePattern);
|
|
17109
17055
|
}
|
|
17110
17056
|
set headers(headers) {
|
|
@@ -17124,7 +17070,7 @@ class FieldFormatter {
|
|
|
17124
17070
|
return false;
|
|
17125
17071
|
}
|
|
17126
17072
|
format(field, fieldIndex, isHeader) {
|
|
17127
|
-
const preparedField =
|
|
17073
|
+
const preparedField = `${(0, lodash_isnil_1.default)(field) ? '' : field}`.replace(/\0/g, '');
|
|
17128
17074
|
const {
|
|
17129
17075
|
formatterOptions
|
|
17130
17076
|
} = this;
|
|
@@ -17144,7 +17090,7 @@ class FieldFormatter {
|
|
|
17144
17090
|
const {
|
|
17145
17091
|
quote
|
|
17146
17092
|
} = this.formatterOptions;
|
|
17147
|
-
return
|
|
17093
|
+
return `${quote}${field}${quote}`;
|
|
17148
17094
|
}
|
|
17149
17095
|
}
|
|
17150
17096
|
exports.FieldFormatter = FieldFormatter;
|
|
@@ -17152,9 +17098,6 @@ exports.FieldFormatter = FieldFormatter;
|
|
|
17152
17098
|
},{"lodash.escaperegexp":359,"lodash.isboolean":361,"lodash.isnil":363}],155:[function(require,module,exports){
|
|
17153
17099
|
"use strict";
|
|
17154
17100
|
|
|
17155
|
-
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; }
|
|
17156
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17157
|
-
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); }
|
|
17158
17101
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17159
17102
|
return mod && mod.__esModule ? mod : {
|
|
17160
17103
|
"default": mod
|
|
@@ -17207,14 +17150,14 @@ class RowFormatter {
|
|
|
17207
17150
|
transformFunction(row, cb);
|
|
17208
17151
|
};
|
|
17209
17152
|
}
|
|
17153
|
+
formatterOptions;
|
|
17154
|
+
fieldFormatter;
|
|
17155
|
+
shouldWriteHeaders;
|
|
17156
|
+
_rowTransform;
|
|
17157
|
+
headers;
|
|
17158
|
+
hasWrittenHeaders;
|
|
17159
|
+
rowCount = 0;
|
|
17210
17160
|
constructor(formatterOptions) {
|
|
17211
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
17212
|
-
_defineProperty(this, "fieldFormatter", void 0);
|
|
17213
|
-
_defineProperty(this, "shouldWriteHeaders", void 0);
|
|
17214
|
-
_defineProperty(this, "_rowTransform", void 0);
|
|
17215
|
-
_defineProperty(this, "headers", void 0);
|
|
17216
|
-
_defineProperty(this, "hasWrittenHeaders", void 0);
|
|
17217
|
-
_defineProperty(this, "rowCount", 0);
|
|
17218
17161
|
this.formatterOptions = formatterOptions;
|
|
17219
17162
|
this.fieldFormatter = new FieldFormatter_1.FieldFormatter(formatterOptions);
|
|
17220
17163
|
this.headers = formatterOptions.headers;
|
|
@@ -17518,9 +17461,6 @@ exports.isSyncTransform = isSyncTransform;
|
|
|
17518
17461
|
(function (setImmediate){(function (){
|
|
17519
17462
|
"use strict";
|
|
17520
17463
|
|
|
17521
|
-
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; }
|
|
17522
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17523
|
-
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); }
|
|
17524
17464
|
Object.defineProperty(exports, "__esModule", {
|
|
17525
17465
|
value: true
|
|
17526
17466
|
});
|
|
@@ -17530,21 +17470,21 @@ const stream_1 = require("stream");
|
|
|
17530
17470
|
const transforms_1 = require("./transforms");
|
|
17531
17471
|
const parser_1 = require("./parser");
|
|
17532
17472
|
class CsvParserStream extends stream_1.Transform {
|
|
17473
|
+
parserOptions;
|
|
17474
|
+
decoder;
|
|
17475
|
+
parser;
|
|
17476
|
+
headerTransformer;
|
|
17477
|
+
rowTransformerValidator;
|
|
17478
|
+
lines = '';
|
|
17479
|
+
rowCount = 0;
|
|
17480
|
+
parsedRowCount = 0;
|
|
17481
|
+
parsedLineCount = 0;
|
|
17482
|
+
endEmitted = false;
|
|
17483
|
+
headersEmitted = false;
|
|
17533
17484
|
constructor(parserOptions) {
|
|
17534
17485
|
super({
|
|
17535
17486
|
objectMode: parserOptions.objectMode
|
|
17536
17487
|
});
|
|
17537
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
17538
|
-
_defineProperty(this, "decoder", void 0);
|
|
17539
|
-
_defineProperty(this, "parser", void 0);
|
|
17540
|
-
_defineProperty(this, "headerTransformer", void 0);
|
|
17541
|
-
_defineProperty(this, "rowTransformerValidator", void 0);
|
|
17542
|
-
_defineProperty(this, "lines", '');
|
|
17543
|
-
_defineProperty(this, "rowCount", 0);
|
|
17544
|
-
_defineProperty(this, "parsedRowCount", 0);
|
|
17545
|
-
_defineProperty(this, "parsedLineCount", 0);
|
|
17546
|
-
_defineProperty(this, "endEmitted", false);
|
|
17547
|
-
_defineProperty(this, "headersEmitted", false);
|
|
17548
17488
|
this.parserOptions = parserOptions;
|
|
17549
17489
|
this.parser = new parser_1.Parser(parserOptions);
|
|
17550
17490
|
this.headerTransformer = new transforms_1.HeaderTransformer(parserOptions);
|
|
@@ -17762,9 +17702,6 @@ exports.CsvParserStream = CsvParserStream;
|
|
|
17762
17702
|
},{"./parser":171,"./transforms":174,"stream":312,"string_decoder":327,"timers":447}],160:[function(require,module,exports){
|
|
17763
17703
|
"use strict";
|
|
17764
17704
|
|
|
17765
|
-
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; }
|
|
17766
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17767
|
-
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); }
|
|
17768
17705
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17769
17706
|
return mod && mod.__esModule ? mod : {
|
|
17770
17707
|
"default": mod
|
|
@@ -17777,39 +17714,38 @@ exports.ParserOptions = void 0;
|
|
|
17777
17714
|
const lodash_escaperegexp_1 = __importDefault(require("lodash.escaperegexp"));
|
|
17778
17715
|
const lodash_isnil_1 = __importDefault(require("lodash.isnil"));
|
|
17779
17716
|
class ParserOptions {
|
|
17717
|
+
escapedDelimiter;
|
|
17718
|
+
objectMode = true;
|
|
17719
|
+
delimiter = ',';
|
|
17720
|
+
ignoreEmpty = false;
|
|
17721
|
+
quote = '"';
|
|
17722
|
+
escape = null;
|
|
17723
|
+
escapeChar = this.quote;
|
|
17724
|
+
comment = null;
|
|
17725
|
+
supportsComments = false;
|
|
17726
|
+
ltrim = false;
|
|
17727
|
+
rtrim = false;
|
|
17728
|
+
trim = false;
|
|
17729
|
+
headers = null;
|
|
17730
|
+
renameHeaders = false;
|
|
17731
|
+
strictColumnHandling = false;
|
|
17732
|
+
discardUnmappedColumns = false;
|
|
17733
|
+
carriageReturn = '\r';
|
|
17734
|
+
NEXT_TOKEN_REGEXP;
|
|
17735
|
+
encoding = 'utf8';
|
|
17736
|
+
limitRows = false;
|
|
17737
|
+
maxRows = 0;
|
|
17738
|
+
skipLines = 0;
|
|
17739
|
+
skipRows = 0;
|
|
17780
17740
|
constructor(opts) {
|
|
17781
|
-
var _this$escape;
|
|
17782
|
-
_defineProperty(this, "escapedDelimiter", void 0);
|
|
17783
|
-
_defineProperty(this, "objectMode", true);
|
|
17784
|
-
_defineProperty(this, "delimiter", ',');
|
|
17785
|
-
_defineProperty(this, "ignoreEmpty", false);
|
|
17786
|
-
_defineProperty(this, "quote", '"');
|
|
17787
|
-
_defineProperty(this, "escape", null);
|
|
17788
|
-
_defineProperty(this, "escapeChar", this.quote);
|
|
17789
|
-
_defineProperty(this, "comment", null);
|
|
17790
|
-
_defineProperty(this, "supportsComments", false);
|
|
17791
|
-
_defineProperty(this, "ltrim", false);
|
|
17792
|
-
_defineProperty(this, "rtrim", false);
|
|
17793
|
-
_defineProperty(this, "trim", false);
|
|
17794
|
-
_defineProperty(this, "headers", null);
|
|
17795
|
-
_defineProperty(this, "renameHeaders", false);
|
|
17796
|
-
_defineProperty(this, "strictColumnHandling", false);
|
|
17797
|
-
_defineProperty(this, "discardUnmappedColumns", false);
|
|
17798
|
-
_defineProperty(this, "carriageReturn", '\r');
|
|
17799
|
-
_defineProperty(this, "NEXT_TOKEN_REGEXP", void 0);
|
|
17800
|
-
_defineProperty(this, "encoding", 'utf8');
|
|
17801
|
-
_defineProperty(this, "limitRows", false);
|
|
17802
|
-
_defineProperty(this, "maxRows", 0);
|
|
17803
|
-
_defineProperty(this, "skipLines", 0);
|
|
17804
|
-
_defineProperty(this, "skipRows", 0);
|
|
17805
17741
|
Object.assign(this, opts || {});
|
|
17806
17742
|
if (this.delimiter.length > 1) {
|
|
17807
17743
|
throw new Error('delimiter option must be one character long');
|
|
17808
17744
|
}
|
|
17809
17745
|
this.escapedDelimiter = (0, lodash_escaperegexp_1.default)(this.delimiter);
|
|
17810
|
-
this.escapeChar =
|
|
17746
|
+
this.escapeChar = this.escape ?? this.quote;
|
|
17811
17747
|
this.supportsComments = !(0, lodash_isnil_1.default)(this.comment);
|
|
17812
|
-
this.NEXT_TOKEN_REGEXP = new RegExp(
|
|
17748
|
+
this.NEXT_TOKEN_REGEXP = new RegExp(`([^\\s]|\\r\\n|\\n|\\r|${this.escapedDelimiter})`);
|
|
17813
17749
|
if (this.maxRows > 0) {
|
|
17814
17750
|
this.limitRows = true;
|
|
17815
17751
|
}
|
|
@@ -17901,9 +17837,6 @@ exports.parseString = parseString;
|
|
|
17901
17837
|
},{"./CsvParserStream":159,"./ParserOptions":160,"./types":175,"fs":309,"stream":312}],162:[function(require,module,exports){
|
|
17902
17838
|
"use strict";
|
|
17903
17839
|
|
|
17904
|
-
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; }
|
|
17905
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17906
|
-
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); }
|
|
17907
17840
|
Object.defineProperty(exports, "__esModule", {
|
|
17908
17841
|
value: true
|
|
17909
17842
|
});
|
|
@@ -17920,9 +17853,9 @@ class Parser {
|
|
|
17920
17853
|
}
|
|
17921
17854
|
return line;
|
|
17922
17855
|
}
|
|
17856
|
+
parserOptions;
|
|
17857
|
+
rowParser;
|
|
17923
17858
|
constructor(parserOptions) {
|
|
17924
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
17925
|
-
_defineProperty(this, "rowParser", void 0);
|
|
17926
17859
|
this.parserOptions = parserOptions;
|
|
17927
17860
|
this.rowParser = new RowParser_1.RowParser(this.parserOptions);
|
|
17928
17861
|
}
|
|
@@ -17999,9 +17932,6 @@ exports.Parser = Parser;
|
|
|
17999
17932
|
},{"./RowParser":163,"./Scanner":164,"./Token":165}],163:[function(require,module,exports){
|
|
18000
17933
|
"use strict";
|
|
18001
17934
|
|
|
18002
|
-
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; }
|
|
18003
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18004
|
-
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); }
|
|
18005
17935
|
Object.defineProperty(exports, "__esModule", {
|
|
18006
17936
|
value: true
|
|
18007
17937
|
});
|
|
@@ -18013,9 +17943,9 @@ class RowParser {
|
|
|
18013
17943
|
static isEmptyRow(row) {
|
|
18014
17944
|
return row.join(EMPTY_STRING).replace(/\s+/g, EMPTY_STRING) === EMPTY_STRING;
|
|
18015
17945
|
}
|
|
17946
|
+
parserOptions;
|
|
17947
|
+
columnParser;
|
|
18016
17948
|
constructor(parserOptions) {
|
|
18017
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18018
|
-
_defineProperty(this, "columnParser", void 0);
|
|
18019
17949
|
this.parserOptions = parserOptions;
|
|
18020
17950
|
this.columnParser = new column_1.ColumnParser(parserOptions);
|
|
18021
17951
|
}
|
|
@@ -18088,9 +18018,6 @@ exports.RowParser = RowParser;
|
|
|
18088
18018
|
},{"./Token":165,"./column":170}],164:[function(require,module,exports){
|
|
18089
18019
|
"use strict";
|
|
18090
18020
|
|
|
18091
|
-
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; }
|
|
18092
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18093
|
-
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); }
|
|
18094
18021
|
Object.defineProperty(exports, "__esModule", {
|
|
18095
18022
|
value: true
|
|
18096
18023
|
});
|
|
@@ -18098,12 +18025,12 @@ exports.Scanner = void 0;
|
|
|
18098
18025
|
const Token_1 = require("./Token");
|
|
18099
18026
|
const ROW_DELIMITER = /((?:\r\n)|\n|\r)/;
|
|
18100
18027
|
class Scanner {
|
|
18028
|
+
line;
|
|
18029
|
+
parserOptions;
|
|
18030
|
+
lineLength;
|
|
18031
|
+
hasMoreData;
|
|
18032
|
+
cursor = 0;
|
|
18101
18033
|
constructor(args) {
|
|
18102
|
-
_defineProperty(this, "line", void 0);
|
|
18103
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18104
|
-
_defineProperty(this, "lineLength", void 0);
|
|
18105
|
-
_defineProperty(this, "hasMoreData", void 0);
|
|
18106
|
-
_defineProperty(this, "cursor", 0);
|
|
18107
18034
|
this.line = args.line;
|
|
18108
18035
|
this.lineLength = this.line.length;
|
|
18109
18036
|
this.parserOptions = args.parserOptions;
|
|
@@ -18186,9 +18113,6 @@ exports.Scanner = Scanner;
|
|
|
18186
18113
|
},{"./Token":165}],165:[function(require,module,exports){
|
|
18187
18114
|
"use strict";
|
|
18188
18115
|
|
|
18189
|
-
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; }
|
|
18190
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18191
|
-
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); }
|
|
18192
18116
|
Object.defineProperty(exports, "__esModule", {
|
|
18193
18117
|
value: true
|
|
18194
18118
|
});
|
|
@@ -18213,10 +18137,10 @@ class Token {
|
|
|
18213
18137
|
static isTokenDelimiter(token, parserOptions) {
|
|
18214
18138
|
return token.token === parserOptions.delimiter;
|
|
18215
18139
|
}
|
|
18140
|
+
token;
|
|
18141
|
+
startCursor;
|
|
18142
|
+
endCursor;
|
|
18216
18143
|
constructor(tokenArgs) {
|
|
18217
|
-
_defineProperty(this, "token", void 0);
|
|
18218
|
-
_defineProperty(this, "startCursor", void 0);
|
|
18219
|
-
_defineProperty(this, "endCursor", void 0);
|
|
18220
18144
|
this.token = tokenArgs.token;
|
|
18221
18145
|
this.startCursor = tokenArgs.startCursor;
|
|
18222
18146
|
this.endCursor = tokenArgs.endCursor;
|
|
@@ -18227,16 +18151,13 @@ exports.Token = Token;
|
|
|
18227
18151
|
},{}],166:[function(require,module,exports){
|
|
18228
18152
|
"use strict";
|
|
18229
18153
|
|
|
18230
|
-
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; }
|
|
18231
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18232
|
-
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); }
|
|
18233
18154
|
Object.defineProperty(exports, "__esModule", {
|
|
18234
18155
|
value: true
|
|
18235
18156
|
});
|
|
18236
18157
|
exports.ColumnFormatter = void 0;
|
|
18237
18158
|
class ColumnFormatter {
|
|
18159
|
+
format;
|
|
18238
18160
|
constructor(parserOptions) {
|
|
18239
|
-
_defineProperty(this, "format", void 0);
|
|
18240
18161
|
if (parserOptions.trim) {
|
|
18241
18162
|
this.format = col => {
|
|
18242
18163
|
return col.trim();
|
|
@@ -18261,9 +18182,6 @@ exports.ColumnFormatter = ColumnFormatter;
|
|
|
18261
18182
|
},{}],167:[function(require,module,exports){
|
|
18262
18183
|
"use strict";
|
|
18263
18184
|
|
|
18264
|
-
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; }
|
|
18265
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18266
|
-
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); }
|
|
18267
18185
|
Object.defineProperty(exports, "__esModule", {
|
|
18268
18186
|
value: true
|
|
18269
18187
|
});
|
|
@@ -18272,10 +18190,10 @@ const NonQuotedColumnParser_1 = require("./NonQuotedColumnParser");
|
|
|
18272
18190
|
const QuotedColumnParser_1 = require("./QuotedColumnParser");
|
|
18273
18191
|
const Token_1 = require("../Token");
|
|
18274
18192
|
class ColumnParser {
|
|
18193
|
+
parserOptions;
|
|
18194
|
+
nonQuotedColumnParser;
|
|
18195
|
+
quotedColumnParser;
|
|
18275
18196
|
constructor(parserOptions) {
|
|
18276
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18277
|
-
_defineProperty(this, "nonQuotedColumnParser", void 0);
|
|
18278
|
-
_defineProperty(this, "quotedColumnParser", void 0);
|
|
18279
18197
|
this.parserOptions = parserOptions;
|
|
18280
18198
|
this.quotedColumnParser = new QuotedColumnParser_1.QuotedColumnParser(parserOptions);
|
|
18281
18199
|
this.nonQuotedColumnParser = new NonQuotedColumnParser_1.NonQuotedColumnParser(parserOptions);
|
|
@@ -18296,9 +18214,6 @@ exports.ColumnParser = ColumnParser;
|
|
|
18296
18214
|
},{"../Token":165,"./NonQuotedColumnParser":168,"./QuotedColumnParser":169}],168:[function(require,module,exports){
|
|
18297
18215
|
"use strict";
|
|
18298
18216
|
|
|
18299
|
-
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; }
|
|
18300
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18301
|
-
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); }
|
|
18302
18217
|
Object.defineProperty(exports, "__esModule", {
|
|
18303
18218
|
value: true
|
|
18304
18219
|
});
|
|
@@ -18306,9 +18221,9 @@ exports.NonQuotedColumnParser = void 0;
|
|
|
18306
18221
|
const ColumnFormatter_1 = require("./ColumnFormatter");
|
|
18307
18222
|
const Token_1 = require("../Token");
|
|
18308
18223
|
class NonQuotedColumnParser {
|
|
18224
|
+
parserOptions;
|
|
18225
|
+
columnFormatter;
|
|
18309
18226
|
constructor(parserOptions) {
|
|
18310
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18311
|
-
_defineProperty(this, "columnFormatter", void 0);
|
|
18312
18227
|
this.parserOptions = parserOptions;
|
|
18313
18228
|
this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);
|
|
18314
18229
|
}
|
|
@@ -18336,9 +18251,6 @@ exports.NonQuotedColumnParser = NonQuotedColumnParser;
|
|
|
18336
18251
|
},{"../Token":165,"./ColumnFormatter":166}],169:[function(require,module,exports){
|
|
18337
18252
|
"use strict";
|
|
18338
18253
|
|
|
18339
|
-
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; }
|
|
18340
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18341
|
-
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); }
|
|
18342
18254
|
Object.defineProperty(exports, "__esModule", {
|
|
18343
18255
|
value: true
|
|
18344
18256
|
});
|
|
@@ -18346,9 +18258,9 @@ exports.QuotedColumnParser = void 0;
|
|
|
18346
18258
|
const ColumnFormatter_1 = require("./ColumnFormatter");
|
|
18347
18259
|
const Token_1 = require("../Token");
|
|
18348
18260
|
class QuotedColumnParser {
|
|
18261
|
+
parserOptions;
|
|
18262
|
+
columnFormatter;
|
|
18349
18263
|
constructor(parserOptions) {
|
|
18350
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18351
|
-
_defineProperty(this, "columnFormatter", void 0);
|
|
18352
18264
|
this.parserOptions = parserOptions;
|
|
18353
18265
|
this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);
|
|
18354
18266
|
}
|
|
@@ -18367,7 +18279,7 @@ class QuotedColumnParser {
|
|
|
18367
18279
|
// if we didnt find a closing quote but we potentially have more data then skip the parsing
|
|
18368
18280
|
// and return the original scanner.
|
|
18369
18281
|
if (!scanner.hasMoreData) {
|
|
18370
|
-
throw new Error(
|
|
18282
|
+
throw new Error(`Parse Error: missing closing: '${this.parserOptions.quote || ''}' in line: at '${scanner.lineFromCursor.replace(/[\r\n]/g, "\\n'")}'`);
|
|
18371
18283
|
}
|
|
18372
18284
|
return null;
|
|
18373
18285
|
}
|
|
@@ -18433,7 +18345,7 @@ class QuotedColumnParser {
|
|
|
18433
18345
|
// if the final quote was NOT followed by a column (,) or row(\n) delimiter then its a bad column
|
|
18434
18346
|
// tldr: only part of the column was quoted
|
|
18435
18347
|
const linePreview = scanner.lineFromCursor.substr(0, 10).replace(/[\r\n]/g, "\\n'");
|
|
18436
|
-
throw new Error(
|
|
18348
|
+
throw new Error(`Parse Error: expected: '${parserOptions.escapedDelimiter}' OR new line got: '${nextNonSpaceToken.token}'. at '${linePreview}'`);
|
|
18437
18349
|
}
|
|
18438
18350
|
scanner.advanceToToken(nextNonSpaceToken);
|
|
18439
18351
|
} else if (!scanner.hasMoreData) {
|
|
@@ -18537,9 +18449,6 @@ Object.defineProperty(exports, "QuotedColumnParser", {
|
|
|
18537
18449
|
},{"./Parser":162,"./RowParser":163,"./Scanner":164,"./Token":165,"./column":170}],172:[function(require,module,exports){
|
|
18538
18450
|
"use strict";
|
|
18539
18451
|
|
|
18540
|
-
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; }
|
|
18541
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18542
|
-
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); }
|
|
18543
18452
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
18544
18453
|
return mod && mod.__esModule ? mod : {
|
|
18545
18454
|
"default": mod
|
|
@@ -18554,14 +18463,14 @@ const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
|
|
|
18554
18463
|
const lodash_uniq_1 = __importDefault(require("lodash.uniq"));
|
|
18555
18464
|
const lodash_groupby_1 = __importDefault(require("lodash.groupby"));
|
|
18556
18465
|
class HeaderTransformer {
|
|
18466
|
+
parserOptions;
|
|
18467
|
+
headers = null;
|
|
18468
|
+
receivedHeaders = false;
|
|
18469
|
+
shouldUseFirstRow = false;
|
|
18470
|
+
processedFirstRow = false;
|
|
18471
|
+
headersLength = 0;
|
|
18472
|
+
headersTransform;
|
|
18557
18473
|
constructor(parserOptions) {
|
|
18558
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18559
|
-
_defineProperty(this, "headers", null);
|
|
18560
|
-
_defineProperty(this, "receivedHeaders", false);
|
|
18561
|
-
_defineProperty(this, "shouldUseFirstRow", false);
|
|
18562
|
-
_defineProperty(this, "processedFirstRow", false);
|
|
18563
|
-
_defineProperty(this, "headersLength", 0);
|
|
18564
|
-
_defineProperty(this, "headersTransform", void 0);
|
|
18565
18474
|
this.parserOptions = parserOptions;
|
|
18566
18475
|
if (parserOptions.headers === true) {
|
|
18567
18476
|
this.shouldUseFirstRow = true;
|
|
@@ -18616,19 +18525,19 @@ class HeaderTransformer {
|
|
|
18616
18525
|
} = this;
|
|
18617
18526
|
if (!parserOptions.discardUnmappedColumns && row.length > this.headersLength) {
|
|
18618
18527
|
if (!parserOptions.strictColumnHandling) {
|
|
18619
|
-
throw new Error(
|
|
18528
|
+
throw new Error(`Unexpected Error: column header mismatch expected: ${this.headersLength} columns got: ${row.length}`);
|
|
18620
18529
|
}
|
|
18621
18530
|
return {
|
|
18622
18531
|
row: row,
|
|
18623
18532
|
isValid: false,
|
|
18624
|
-
reason:
|
|
18533
|
+
reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`
|
|
18625
18534
|
};
|
|
18626
18535
|
}
|
|
18627
18536
|
if (parserOptions.strictColumnHandling && row.length < this.headersLength) {
|
|
18628
18537
|
return {
|
|
18629
18538
|
row: row,
|
|
18630
18539
|
isValid: false,
|
|
18631
|
-
reason:
|
|
18540
|
+
reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`
|
|
18632
18541
|
};
|
|
18633
18542
|
}
|
|
18634
18543
|
return {
|
|
@@ -18657,7 +18566,6 @@ class HeaderTransformer {
|
|
|
18657
18566
|
return rowMap;
|
|
18658
18567
|
}
|
|
18659
18568
|
setHeaders(headers) {
|
|
18660
|
-
var _this$headers;
|
|
18661
18569
|
const filteredHeaders = headers.filter(h => {
|
|
18662
18570
|
return !!h;
|
|
18663
18571
|
});
|
|
@@ -18666,11 +18574,11 @@ class HeaderTransformer {
|
|
|
18666
18574
|
const duplicates = Object.keys(grouped).filter(dup => {
|
|
18667
18575
|
return grouped[dup].length > 1;
|
|
18668
18576
|
});
|
|
18669
|
-
throw new Error(
|
|
18577
|
+
throw new Error(`Duplicate headers found ${JSON.stringify(duplicates)}`);
|
|
18670
18578
|
}
|
|
18671
18579
|
this.headers = headers;
|
|
18672
18580
|
this.receivedHeaders = true;
|
|
18673
|
-
this.headersLength =
|
|
18581
|
+
this.headersLength = this.headers?.length || 0;
|
|
18674
18582
|
}
|
|
18675
18583
|
}
|
|
18676
18584
|
exports.HeaderTransformer = HeaderTransformer;
|
|
@@ -18678,9 +18586,6 @@ exports.HeaderTransformer = HeaderTransformer;
|
|
|
18678
18586
|
},{"lodash.groupby":360,"lodash.isfunction":362,"lodash.isundefined":364,"lodash.uniq":365}],173:[function(require,module,exports){
|
|
18679
18587
|
"use strict";
|
|
18680
18588
|
|
|
18681
|
-
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; }
|
|
18682
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18683
|
-
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); }
|
|
18684
18589
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
18685
18590
|
return mod && mod.__esModule ? mod : {
|
|
18686
18591
|
"default": mod
|
|
@@ -18693,10 +18598,6 @@ exports.RowTransformerValidator = void 0;
|
|
|
18693
18598
|
const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
|
|
18694
18599
|
const types_1 = require("../types");
|
|
18695
18600
|
class RowTransformerValidator {
|
|
18696
|
-
constructor() {
|
|
18697
|
-
_defineProperty(this, "_rowTransform", null);
|
|
18698
|
-
_defineProperty(this, "_rowValidator", null);
|
|
18699
|
-
}
|
|
18700
18601
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
18701
18602
|
static createTransform(transformFunction) {
|
|
18702
18603
|
if ((0, types_1.isSyncTransform)(transformFunction)) {
|
|
@@ -18741,6 +18642,8 @@ class RowTransformerValidator {
|
|
|
18741
18642
|
});
|
|
18742
18643
|
};
|
|
18743
18644
|
}
|
|
18645
|
+
_rowTransform = null;
|
|
18646
|
+
_rowValidator = null;
|
|
18744
18647
|
set rowTransform(transformFunction) {
|
|
18745
18648
|
if (!(0, lodash_isfunction_1.default)(transformFunction)) {
|
|
18746
18649
|
throw new TypeError('The transform should be a function');
|
|
@@ -56270,19 +56173,20 @@ function nsPairCheck(parser, prefix, uri) {
|
|
|
56270
56173
|
switch (prefix) {
|
|
56271
56174
|
case "xml":
|
|
56272
56175
|
if (uri !== XML_NAMESPACE) {
|
|
56273
|
-
parser.fail(
|
|
56176
|
+
parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);
|
|
56274
56177
|
}
|
|
56275
56178
|
break;
|
|
56276
56179
|
case "xmlns":
|
|
56277
56180
|
if (uri !== XMLNS_NAMESPACE) {
|
|
56278
|
-
parser.fail(
|
|
56181
|
+
parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);
|
|
56279
56182
|
}
|
|
56280
56183
|
break;
|
|
56281
56184
|
default:
|
|
56282
56185
|
}
|
|
56283
56186
|
switch (uri) {
|
|
56284
56187
|
case XMLNS_NAMESPACE:
|
|
56285
|
-
parser.fail(prefix === "" ?
|
|
56188
|
+
parser.fail(prefix === "" ? `the default namespace may not be set to ${uri}.` : `may not assign a prefix (even "xmlns") to the URI \
|
|
56189
|
+
${XMLNS_NAMESPACE}.`);
|
|
56286
56190
|
break;
|
|
56287
56191
|
case XML_NAMESPACE:
|
|
56288
56192
|
switch (prefix) {
|
|
@@ -56290,7 +56194,7 @@ function nsPairCheck(parser, prefix, uri) {
|
|
|
56290
56194
|
// Assinging the XML namespace to "xml" is fine.
|
|
56291
56195
|
break;
|
|
56292
56196
|
case "":
|
|
56293
|
-
parser.fail(
|
|
56197
|
+
parser.fail(`the default namespace may not be set to ${uri}.`);
|
|
56294
56198
|
break;
|
|
56295
56199
|
default:
|
|
56296
56200
|
parser.fail("may not assign the xml namespace to another prefix.");
|
|
@@ -56506,7 +56410,7 @@ class SaxesParser {
|
|
|
56506
56410
|
if (msg.length > 0) {
|
|
56507
56411
|
msg += ":";
|
|
56508
56412
|
}
|
|
56509
|
-
msg +=
|
|
56413
|
+
msg += `${this.line}:${this.column}`;
|
|
56510
56414
|
}
|
|
56511
56415
|
if (msg.length > 0) {
|
|
56512
56416
|
msg += ": ";
|
|
@@ -56559,7 +56463,7 @@ class SaxesParser {
|
|
|
56559
56463
|
// ``Array.from`` but don't want to be dependent on Node.)
|
|
56560
56464
|
if (this.carriedFromPrevious !== undefined) {
|
|
56561
56465
|
// The previous chunk had char we must carry over.
|
|
56562
|
-
chunk =
|
|
56466
|
+
chunk = `${this.carriedFromPrevious}${chunk}`;
|
|
56563
56467
|
this.carriedFromPrevious = undefined;
|
|
56564
56468
|
}
|
|
56565
56469
|
let limit = chunk.length;
|
|
@@ -56788,7 +56692,7 @@ class SaxesParser {
|
|
|
56788
56692
|
return final;
|
|
56789
56693
|
}
|
|
56790
56694
|
if (isNLLike) {
|
|
56791
|
-
this.text +=
|
|
56695
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
56792
56696
|
start = this.i;
|
|
56793
56697
|
}
|
|
56794
56698
|
}
|
|
@@ -56814,7 +56718,7 @@ class SaxesParser {
|
|
|
56814
56718
|
let c = this.getCode();
|
|
56815
56719
|
switch (c) {
|
|
56816
56720
|
case NL_LIKE:
|
|
56817
|
-
this.text +=
|
|
56721
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
56818
56722
|
start = this.i;
|
|
56819
56723
|
c = NL;
|
|
56820
56724
|
break;
|
|
@@ -57077,7 +56981,7 @@ class SaxesParser {
|
|
|
57077
56981
|
while (true) {
|
|
57078
56982
|
switch (this.getCode()) {
|
|
57079
56983
|
case NL_LIKE:
|
|
57080
|
-
this.entity +=
|
|
56984
|
+
this.entity += `${chunk.slice(start, this.prevI)}\n`;
|
|
57081
56985
|
start = this.i;
|
|
57082
56986
|
break;
|
|
57083
56987
|
case SEMICOLON:
|
|
@@ -57189,7 +57093,7 @@ class SaxesParser {
|
|
|
57189
57093
|
(_a = this.commentHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);
|
|
57190
57094
|
this.text = "";
|
|
57191
57095
|
} else {
|
|
57192
|
-
this.text +=
|
|
57096
|
+
this.text += `-${String.fromCodePoint(c)}`;
|
|
57193
57097
|
this.state = S_COMMENT;
|
|
57194
57098
|
}
|
|
57195
57099
|
}
|
|
@@ -57199,7 +57103,7 @@ class SaxesParser {
|
|
|
57199
57103
|
this.fail("malformed comment.");
|
|
57200
57104
|
// <!-- blah -- bloo --> will be recorded as
|
|
57201
57105
|
// a comment of " blah -- bloo "
|
|
57202
|
-
this.text +=
|
|
57106
|
+
this.text += `--${String.fromCodePoint(c)}`;
|
|
57203
57107
|
this.state = S_COMMENT;
|
|
57204
57108
|
} else {
|
|
57205
57109
|
this.state = S_TEXT;
|
|
@@ -57215,7 +57119,7 @@ class SaxesParser {
|
|
|
57215
57119
|
if (c === CLOSE_BRACKET) {
|
|
57216
57120
|
this.state = S_CDATA_ENDING_2;
|
|
57217
57121
|
} else {
|
|
57218
|
-
this.text +=
|
|
57122
|
+
this.text += `]${String.fromCodePoint(c)}`;
|
|
57219
57123
|
this.state = S_CDATA;
|
|
57220
57124
|
}
|
|
57221
57125
|
}
|
|
@@ -57235,7 +57139,7 @@ class SaxesParser {
|
|
|
57235
57139
|
this.text += "]";
|
|
57236
57140
|
break;
|
|
57237
57141
|
default:
|
|
57238
|
-
this.text +=
|
|
57142
|
+
this.text += `]]${String.fromCodePoint(c)}`;
|
|
57239
57143
|
this.state = S_CDATA;
|
|
57240
57144
|
}
|
|
57241
57145
|
}
|
|
@@ -57332,7 +57236,7 @@ class SaxesParser {
|
|
|
57332
57236
|
// ending.
|
|
57333
57237
|
this.text += "?";
|
|
57334
57238
|
} else {
|
|
57335
|
-
this.text +=
|
|
57239
|
+
this.text += `?${String.fromCodePoint(c)}`;
|
|
57336
57240
|
this.state = S_PI_BODY;
|
|
57337
57241
|
}
|
|
57338
57242
|
this.xmlDeclPossible = false;
|
|
@@ -57373,10 +57277,10 @@ class SaxesParser {
|
|
|
57373
57277
|
this.fail("did not expect any more name/value pairs.");
|
|
57374
57278
|
break;
|
|
57375
57279
|
case 1:
|
|
57376
|
-
this.fail(
|
|
57280
|
+
this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);
|
|
57377
57281
|
break;
|
|
57378
57282
|
default:
|
|
57379
|
-
this.fail(
|
|
57283
|
+
this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`);
|
|
57380
57284
|
}
|
|
57381
57285
|
}
|
|
57382
57286
|
this.state = c === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;
|
|
@@ -57644,7 +57548,7 @@ class SaxesParser {
|
|
|
57644
57548
|
case NL:
|
|
57645
57549
|
case NL_LIKE:
|
|
57646
57550
|
case TAB:
|
|
57647
|
-
this.text +=
|
|
57551
|
+
this.text += `${chunk.slice(start, this.prevI)} `;
|
|
57648
57552
|
start = this.i;
|
|
57649
57553
|
break;
|
|
57650
57554
|
case LESS:
|
|
@@ -57798,7 +57702,7 @@ class SaxesParser {
|
|
|
57798
57702
|
break;
|
|
57799
57703
|
case NL_LIKE:
|
|
57800
57704
|
if (handler !== undefined) {
|
|
57801
|
-
this.text +=
|
|
57705
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
57802
57706
|
}
|
|
57803
57707
|
start = this.i;
|
|
57804
57708
|
forbiddenState = FORBIDDEN_START;
|
|
@@ -57863,7 +57767,7 @@ class SaxesParser {
|
|
|
57863
57767
|
break outRootLoop;
|
|
57864
57768
|
case NL_LIKE:
|
|
57865
57769
|
if (handler !== undefined) {
|
|
57866
|
-
this.text +=
|
|
57770
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
57867
57771
|
}
|
|
57868
57772
|
start = this.i;
|
|
57869
57773
|
break;
|
|
@@ -57948,7 +57852,7 @@ class SaxesParser {
|
|
|
57948
57852
|
} = this;
|
|
57949
57853
|
while (tags.length > 0) {
|
|
57950
57854
|
const tag = tags.pop();
|
|
57951
|
-
this.fail(
|
|
57855
|
+
this.fail(`unclosed tag: ${tag.name}`);
|
|
57952
57856
|
}
|
|
57953
57857
|
if (this.state !== S_BEGIN && this.state !== S_TEXT) {
|
|
57954
57858
|
this.fail("unexpected end.");
|
|
@@ -58014,7 +57918,7 @@ class SaxesParser {
|
|
|
58014
57918
|
const local = name.slice(colon + 1);
|
|
58015
57919
|
const prefix = name.slice(0, colon);
|
|
58016
57920
|
if (prefix === "" || local === "" || local.includes(":")) {
|
|
58017
|
-
this.fail(
|
|
57921
|
+
this.fail(`malformed name: ${name}.`);
|
|
58018
57922
|
}
|
|
58019
57923
|
return {
|
|
58020
57924
|
prefix,
|
|
@@ -58041,7 +57945,7 @@ class SaxesParser {
|
|
|
58041
57945
|
this.fail("tags may not have \"xmlns\" as prefix.");
|
|
58042
57946
|
}
|
|
58043
57947
|
if (uri === "") {
|
|
58044
|
-
this.fail(
|
|
57948
|
+
this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);
|
|
58045
57949
|
tag.uri = prefix;
|
|
58046
57950
|
}
|
|
58047
57951
|
}
|
|
@@ -58071,13 +57975,13 @@ class SaxesParser {
|
|
|
58071
57975
|
// if there's any attributes with an undefined namespace,
|
|
58072
57976
|
// then fail on them now.
|
|
58073
57977
|
if (uri === undefined) {
|
|
58074
|
-
this.fail(
|
|
57978
|
+
this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);
|
|
58075
57979
|
uri = prefix;
|
|
58076
57980
|
}
|
|
58077
|
-
eqname =
|
|
57981
|
+
eqname = `{${uri}}${local}`;
|
|
58078
57982
|
}
|
|
58079
57983
|
if (seen.has(eqname)) {
|
|
58080
|
-
this.fail(
|
|
57984
|
+
this.fail(`duplicate attribute: ${eqname}.`);
|
|
58081
57985
|
}
|
|
58082
57986
|
seen.add(eqname);
|
|
58083
57987
|
attr.uri = uri;
|
|
@@ -58096,7 +58000,7 @@ class SaxesParser {
|
|
|
58096
58000
|
value
|
|
58097
58001
|
} of attribList) {
|
|
58098
58002
|
if (attributes[name] !== undefined) {
|
|
58099
|
-
this.fail(
|
|
58003
|
+
this.fail(`duplicate attribute: ${name}.`);
|
|
58100
58004
|
}
|
|
58101
58005
|
attributes[name] = value;
|
|
58102
58006
|
}
|
|
@@ -58183,8 +58087,8 @@ class SaxesParser {
|
|
|
58183
58087
|
if (l === 0) {
|
|
58184
58088
|
this.closedRoot = true;
|
|
58185
58089
|
} else if (l < 0) {
|
|
58186
|
-
this.fail(
|
|
58187
|
-
this.text +=
|
|
58090
|
+
this.fail(`unmatched closing tag: ${name}.`);
|
|
58091
|
+
this.text += `</${name}>`;
|
|
58188
58092
|
}
|
|
58189
58093
|
}
|
|
58190
58094
|
/**
|
|
@@ -58203,7 +58107,7 @@ class SaxesParser {
|
|
|
58203
58107
|
return defined;
|
|
58204
58108
|
}
|
|
58205
58109
|
this.fail(this.isName(entity) ? "undefined entity." : "disallowed character in entity name.");
|
|
58206
|
-
return
|
|
58110
|
+
return `&${entity};`;
|
|
58207
58111
|
}
|
|
58208
58112
|
let num = NaN;
|
|
58209
58113
|
if (entity[1] === "x" && /^#x[0-9a-f]+$/i.test(entity)) {
|
|
@@ -58214,7 +58118,7 @@ class SaxesParser {
|
|
|
58214
58118
|
// The character reference is required to match the CHAR production.
|
|
58215
58119
|
if (!this.isChar(num)) {
|
|
58216
58120
|
this.fail("malformed character entity.");
|
|
58217
|
-
return
|
|
58121
|
+
return `&${entity};`;
|
|
58218
58122
|
}
|
|
58219
58123
|
return String.fromCodePoint(num);
|
|
58220
58124
|
}
|