@stamhoofd/excel-writer 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/LICENSE +661 -0
  2. package/dist/index.d.ts +4 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +7 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/XlsxColumnFilterer.d.ts +11 -0
  7. package/dist/src/XlsxColumnFilterer.d.ts.map +1 -0
  8. package/dist/src/XlsxColumnFilterer.js +81 -0
  9. package/dist/src/XlsxColumnFilterer.js.map +1 -0
  10. package/dist/src/XlsxTransformer.d.ts +14 -0
  11. package/dist/src/XlsxTransformer.d.ts.map +1 -0
  12. package/dist/src/XlsxTransformer.js +59 -0
  13. package/dist/src/XlsxTransformer.js.map +1 -0
  14. package/dist/src/exportToExcel.d.ts +8 -0
  15. package/dist/src/exportToExcel.d.ts.map +1 -0
  16. package/dist/src/exportToExcel.js +23 -0
  17. package/dist/src/exportToExcel.js.map +1 -0
  18. package/dist/src/interfaces.d.ts +160 -0
  19. package/dist/src/interfaces.d.ts.map +1 -0
  20. package/dist/src/interfaces.js +101 -0
  21. package/dist/src/interfaces.js.map +1 -0
  22. package/dist/src/stream-writer/XlsxAppPropsWriter.d.ts +5 -0
  23. package/dist/src/stream-writer/XlsxAppPropsWriter.d.ts.map +1 -0
  24. package/dist/src/stream-writer/XlsxAppPropsWriter.js +13 -0
  25. package/dist/src/stream-writer/XlsxAppPropsWriter.js.map +1 -0
  26. package/dist/src/stream-writer/XlsxContentTypesWriter.d.ts +13 -0
  27. package/dist/src/stream-writer/XlsxContentTypesWriter.d.ts.map +1 -0
  28. package/dist/src/stream-writer/XlsxContentTypesWriter.js +24 -0
  29. package/dist/src/stream-writer/XlsxContentTypesWriter.js.map +1 -0
  30. package/dist/src/stream-writer/XlsxCorePropsWriter.d.ts +7 -0
  31. package/dist/src/stream-writer/XlsxCorePropsWriter.d.ts.map +1 -0
  32. package/dist/src/stream-writer/XlsxCorePropsWriter.js +26 -0
  33. package/dist/src/stream-writer/XlsxCorePropsWriter.js.map +1 -0
  34. package/dist/src/stream-writer/XlsxFileWriter.d.ts +11 -0
  35. package/dist/src/stream-writer/XlsxFileWriter.d.ts.map +1 -0
  36. package/dist/src/stream-writer/XlsxFileWriter.js +44 -0
  37. package/dist/src/stream-writer/XlsxFileWriter.js.map +1 -0
  38. package/dist/src/stream-writer/XlsxRelationsWriter.d.ts +17 -0
  39. package/dist/src/stream-writer/XlsxRelationsWriter.d.ts.map +1 -0
  40. package/dist/src/stream-writer/XlsxRelationsWriter.js +28 -0
  41. package/dist/src/stream-writer/XlsxRelationsWriter.js.map +1 -0
  42. package/dist/src/stream-writer/XlsxSharedStringsWriter.d.ts +5 -0
  43. package/dist/src/stream-writer/XlsxSharedStringsWriter.d.ts.map +1 -0
  44. package/dist/src/stream-writer/XlsxSharedStringsWriter.js +12 -0
  45. package/dist/src/stream-writer/XlsxSharedStringsWriter.js.map +1 -0
  46. package/dist/src/stream-writer/XlsxSheetWriter.d.ts +30 -0
  47. package/dist/src/stream-writer/XlsxSheetWriter.d.ts.map +1 -0
  48. package/dist/src/stream-writer/XlsxSheetWriter.js +140 -0
  49. package/dist/src/stream-writer/XlsxSheetWriter.js.map +1 -0
  50. package/dist/src/stream-writer/XlsxStylesWriter.d.ts +24 -0
  51. package/dist/src/stream-writer/XlsxStylesWriter.d.ts.map +1 -0
  52. package/dist/src/stream-writer/XlsxStylesWriter.js +159 -0
  53. package/dist/src/stream-writer/XlsxStylesWriter.js.map +1 -0
  54. package/dist/src/stream-writer/XlsxThemeWriter.d.ts +5 -0
  55. package/dist/src/stream-writer/XlsxThemeWriter.d.ts.map +1 -0
  56. package/dist/src/stream-writer/XlsxThemeWriter.js +327 -0
  57. package/dist/src/stream-writer/XlsxThemeWriter.js.map +1 -0
  58. package/dist/src/stream-writer/XlsxWorkbookWriter.d.ts +17 -0
  59. package/dist/src/stream-writer/XlsxWorkbookWriter.d.ts.map +1 -0
  60. package/dist/src/stream-writer/XlsxWorkbookWriter.js +31 -0
  61. package/dist/src/stream-writer/XlsxWorkbookWriter.js.map +1 -0
  62. package/dist/src/stream-writer/XlsxWriter.d.ts +35 -0
  63. package/dist/src/stream-writer/XlsxWriter.d.ts.map +1 -0
  64. package/dist/src/stream-writer/XlsxWriter.js +254 -0
  65. package/dist/src/stream-writer/XlsxWriter.js.map +1 -0
  66. package/dist/src/stream-writer/adapters/ArchiverWriterAdapter.d.ts +24 -0
  67. package/dist/src/stream-writer/adapters/ArchiverWriterAdapter.d.ts.map +1 -0
  68. package/dist/src/stream-writer/adapters/ArchiverWriterAdapter.js +90 -0
  69. package/dist/src/stream-writer/adapters/ArchiverWriterAdapter.js.map +1 -0
  70. package/dist/src/stream-writer/adapters/ZipJsWriterAdapter.d.ts +22 -0
  71. package/dist/src/stream-writer/adapters/ZipJsWriterAdapter.d.ts.map +1 -0
  72. package/dist/src/stream-writer/adapters/ZipJsWriterAdapter.js +50 -0
  73. package/dist/src/stream-writer/adapters/ZipJsWriterAdapter.js.map +1 -0
  74. package/dist/src/stream-writer/escapeXml.d.ts +2 -0
  75. package/dist/src/stream-writer/escapeXml.d.ts.map +1 -0
  76. package/dist/src/stream-writer/escapeXml.js +16 -0
  77. package/dist/src/stream-writer/escapeXml.js.map +1 -0
  78. package/dist/src/stream-writer/index.d.ts +4 -0
  79. package/dist/src/stream-writer/index.d.ts.map +1 -0
  80. package/dist/src/stream-writer/index.js +7 -0
  81. package/dist/src/stream-writer/index.js.map +1 -0
  82. package/dist/src/stream-writer/interfaces.d.ts +14 -0
  83. package/dist/src/stream-writer/interfaces.d.ts.map +1 -0
  84. package/dist/src/stream-writer/interfaces.js +3 -0
  85. package/dist/src/stream-writer/interfaces.js.map +1 -0
  86. package/esm/dist/index.d.ts +4 -0
  87. package/esm/dist/index.d.ts.map +1 -0
  88. package/esm/dist/index.js +4 -0
  89. package/esm/dist/index.js.map +1 -0
  90. package/esm/dist/src/XlsxColumnFilterer.d.ts +11 -0
  91. package/esm/dist/src/XlsxColumnFilterer.d.ts.map +1 -0
  92. package/esm/dist/src/XlsxColumnFilterer.js +77 -0
  93. package/esm/dist/src/XlsxColumnFilterer.js.map +1 -0
  94. package/esm/dist/src/XlsxTransformer.d.ts +14 -0
  95. package/esm/dist/src/XlsxTransformer.d.ts.map +1 -0
  96. package/esm/dist/src/XlsxTransformer.js +55 -0
  97. package/esm/dist/src/XlsxTransformer.js.map +1 -0
  98. package/esm/dist/src/exportToExcel.d.ts +8 -0
  99. package/esm/dist/src/exportToExcel.d.ts.map +1 -0
  100. package/esm/dist/src/exportToExcel.js +20 -0
  101. package/esm/dist/src/exportToExcel.js.map +1 -0
  102. package/esm/dist/src/interfaces.d.ts +160 -0
  103. package/esm/dist/src/interfaces.d.ts.map +1 -0
  104. package/esm/dist/src/interfaces.js +98 -0
  105. package/esm/dist/src/interfaces.js.map +1 -0
  106. package/esm/dist/src/stream-writer/XlsxAppPropsWriter.d.ts +5 -0
  107. package/esm/dist/src/stream-writer/XlsxAppPropsWriter.d.ts.map +1 -0
  108. package/esm/dist/src/stream-writer/XlsxAppPropsWriter.js +9 -0
  109. package/esm/dist/src/stream-writer/XlsxAppPropsWriter.js.map +1 -0
  110. package/esm/dist/src/stream-writer/XlsxContentTypesWriter.d.ts +13 -0
  111. package/esm/dist/src/stream-writer/XlsxContentTypesWriter.d.ts.map +1 -0
  112. package/esm/dist/src/stream-writer/XlsxContentTypesWriter.js +20 -0
  113. package/esm/dist/src/stream-writer/XlsxContentTypesWriter.js.map +1 -0
  114. package/esm/dist/src/stream-writer/XlsxCorePropsWriter.d.ts +7 -0
  115. package/esm/dist/src/stream-writer/XlsxCorePropsWriter.d.ts.map +1 -0
  116. package/esm/dist/src/stream-writer/XlsxCorePropsWriter.js +22 -0
  117. package/esm/dist/src/stream-writer/XlsxCorePropsWriter.js.map +1 -0
  118. package/esm/dist/src/stream-writer/XlsxFileWriter.d.ts +11 -0
  119. package/esm/dist/src/stream-writer/XlsxFileWriter.d.ts.map +1 -0
  120. package/esm/dist/src/stream-writer/XlsxFileWriter.js +40 -0
  121. package/esm/dist/src/stream-writer/XlsxFileWriter.js.map +1 -0
  122. package/esm/dist/src/stream-writer/XlsxRelationsWriter.d.ts +17 -0
  123. package/esm/dist/src/stream-writer/XlsxRelationsWriter.d.ts.map +1 -0
  124. package/esm/dist/src/stream-writer/XlsxRelationsWriter.js +24 -0
  125. package/esm/dist/src/stream-writer/XlsxRelationsWriter.js.map +1 -0
  126. package/esm/dist/src/stream-writer/XlsxSharedStringsWriter.d.ts +5 -0
  127. package/esm/dist/src/stream-writer/XlsxSharedStringsWriter.d.ts.map +1 -0
  128. package/esm/dist/src/stream-writer/XlsxSharedStringsWriter.js +8 -0
  129. package/esm/dist/src/stream-writer/XlsxSharedStringsWriter.js.map +1 -0
  130. package/esm/dist/src/stream-writer/XlsxSheetWriter.d.ts +30 -0
  131. package/esm/dist/src/stream-writer/XlsxSheetWriter.d.ts.map +1 -0
  132. package/esm/dist/src/stream-writer/XlsxSheetWriter.js +136 -0
  133. package/esm/dist/src/stream-writer/XlsxSheetWriter.js.map +1 -0
  134. package/esm/dist/src/stream-writer/XlsxStylesWriter.d.ts +24 -0
  135. package/esm/dist/src/stream-writer/XlsxStylesWriter.d.ts.map +1 -0
  136. package/esm/dist/src/stream-writer/XlsxStylesWriter.js +155 -0
  137. package/esm/dist/src/stream-writer/XlsxStylesWriter.js.map +1 -0
  138. package/esm/dist/src/stream-writer/XlsxThemeWriter.d.ts +5 -0
  139. package/esm/dist/src/stream-writer/XlsxThemeWriter.d.ts.map +1 -0
  140. package/esm/dist/src/stream-writer/XlsxThemeWriter.js +323 -0
  141. package/esm/dist/src/stream-writer/XlsxThemeWriter.js.map +1 -0
  142. package/esm/dist/src/stream-writer/XlsxWorkbookWriter.d.ts +17 -0
  143. package/esm/dist/src/stream-writer/XlsxWorkbookWriter.d.ts.map +1 -0
  144. package/esm/dist/src/stream-writer/XlsxWorkbookWriter.js +27 -0
  145. package/esm/dist/src/stream-writer/XlsxWorkbookWriter.js.map +1 -0
  146. package/esm/dist/src/stream-writer/XlsxWriter.d.ts +35 -0
  147. package/esm/dist/src/stream-writer/XlsxWriter.d.ts.map +1 -0
  148. package/esm/dist/src/stream-writer/XlsxWriter.js +250 -0
  149. package/esm/dist/src/stream-writer/XlsxWriter.js.map +1 -0
  150. package/esm/dist/src/stream-writer/adapters/ArchiverWriterAdapter.d.ts +24 -0
  151. package/esm/dist/src/stream-writer/adapters/ArchiverWriterAdapter.d.ts.map +1 -0
  152. package/esm/dist/src/stream-writer/adapters/ArchiverWriterAdapter.js +85 -0
  153. package/esm/dist/src/stream-writer/adapters/ArchiverWriterAdapter.js.map +1 -0
  154. package/esm/dist/src/stream-writer/adapters/ZipJsWriterAdapter.d.ts +22 -0
  155. package/esm/dist/src/stream-writer/adapters/ZipJsWriterAdapter.d.ts.map +1 -0
  156. package/esm/dist/src/stream-writer/adapters/ZipJsWriterAdapter.js +45 -0
  157. package/esm/dist/src/stream-writer/adapters/ZipJsWriterAdapter.js.map +1 -0
  158. package/esm/dist/src/stream-writer/escapeXml.d.ts +2 -0
  159. package/esm/dist/src/stream-writer/escapeXml.d.ts.map +1 -0
  160. package/esm/dist/src/stream-writer/escapeXml.js +13 -0
  161. package/esm/dist/src/stream-writer/escapeXml.js.map +1 -0
  162. package/esm/dist/src/stream-writer/index.d.ts +4 -0
  163. package/esm/dist/src/stream-writer/index.d.ts.map +1 -0
  164. package/esm/dist/src/stream-writer/index.js +4 -0
  165. package/esm/dist/src/stream-writer/index.js.map +1 -0
  166. package/esm/dist/src/stream-writer/interfaces.d.ts +14 -0
  167. package/esm/dist/src/stream-writer/interfaces.d.ts.map +1 -0
  168. package/esm/dist/src/stream-writer/interfaces.js +2 -0
  169. package/esm/dist/src/stream-writer/interfaces.js.map +1 -0
  170. package/package.json +28 -0
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XlsxWriter = void 0;
4
+ const XlsxAppPropsWriter_1 = require("./XlsxAppPropsWriter");
5
+ const XlsxContentTypesWriter_1 = require("./XlsxContentTypesWriter");
6
+ const XlsxCorePropsWriter_1 = require("./XlsxCorePropsWriter");
7
+ const XlsxRelationsWriter_1 = require("./XlsxRelationsWriter");
8
+ const XlsxSharedStringsWriter_1 = require("./XlsxSharedStringsWriter");
9
+ const XlsxSheetWriter_1 = require("./XlsxSheetWriter");
10
+ const XlsxStylesWriter_1 = require("./XlsxStylesWriter");
11
+ const XlsxThemeWriter_1 = require("./XlsxThemeWriter");
12
+ const XlsxWorkbookWriter_1 = require("./XlsxWorkbookWriter");
13
+ class XlsxWriter {
14
+ sheetWriters = new Map();
15
+ styles;
16
+ globalRelations;
17
+ workbookRelations;
18
+ workbook;
19
+ coreProps;
20
+ appProps;
21
+ contentTypes;
22
+ theme;
23
+ sharedStrings;
24
+ // Writes to the zip file
25
+ zipWriter;
26
+ constructor(zipWriter) {
27
+ this.zipWriter = zipWriter;
28
+ this.styles = new XlsxStylesWriter_1.XlsxStylesWriter();
29
+ this.globalRelations = new XlsxRelationsWriter_1.XlsxRelationsWriter();
30
+ this.workbook = new XlsxWorkbookWriter_1.XlsxWorkbookWriter();
31
+ this.workbookRelations = new XlsxRelationsWriter_1.XlsxRelationsWriter();
32
+ this.coreProps = new XlsxCorePropsWriter_1.XlsxCorePropsWriter();
33
+ this.appProps = new XlsxAppPropsWriter_1.XlsxAppPropsWriter();
34
+ this.contentTypes = new XlsxContentTypesWriter_1.XlsxContentTypesWriter();
35
+ this.theme = new XlsxThemeWriter_1.XlsxThemeWriter();
36
+ this.sharedStrings = new XlsxSharedStringsWriter_1.XlsxSharedStringsWriter();
37
+ }
38
+ async init() {
39
+ await this.zipWriter.addDirectory('_rels');
40
+ await this.zipWriter.addDirectory('xl');
41
+ await this.zipWriter.addDirectory('xl/_rels');
42
+ await this.zipWriter.addDirectory('xl/worksheets');
43
+ await this.zipWriter.addDirectory('docProps');
44
+ await this.zipWriter.addDirectory('xl/theme');
45
+ this.styles.writeStream = await this.zipWriter.addFile('xl/styles.xml');
46
+ this.sharedStrings.writeStream = await this.zipWriter.addFile('xl/sharedStrings.xml');
47
+ this.globalRelations.writeStream = await this.zipWriter.addFile('_rels/.rels');
48
+ this.workbook.writeStream = await this.zipWriter.addFile('xl/workbook.xml');
49
+ this.workbookRelations.writeStream = await this.zipWriter.addFile('xl/_rels/workbook.xml.rels');
50
+ this.theme.writeStream = await this.zipWriter.addFile('xl/theme/theme1.xml');
51
+ this.coreProps.writeStream = await this.zipWriter.addFile('docProps/core.xml');
52
+ this.appProps.writeStream = await this.zipWriter.addFile('docProps/app.xml');
53
+ this.contentTypes.writeStream = await this.zipWriter.addFile('[Content_Types].xml');
54
+ await this.globalRelations.addRelation({
55
+ target: 'docProps/app.xml',
56
+ type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties'
57
+ });
58
+ await this.contentTypes.addOverride({
59
+ partName: '/docProps/app.xml',
60
+ contentType: 'application/vnd.openxmlformats-officedocument.extended-properties+xml'
61
+ });
62
+ await this.globalRelations.addRelation({
63
+ target: 'docProps/core.xml',
64
+ type: 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties'
65
+ });
66
+ await this.contentTypes.addOverride({
67
+ partName: '/docProps/core.xml',
68
+ contentType: 'application/vnd.openxmlformats-package.core-properties+xml'
69
+ });
70
+ await this.globalRelations.addRelation({
71
+ target: 'xl/workbook.xml',
72
+ type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument'
73
+ });
74
+ await this.contentTypes.addOverride({
75
+ partName: '/xl/workbook.xml',
76
+ contentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml'
77
+ });
78
+ // Wire up styles relation
79
+ await this.workbookRelations.addRelation({
80
+ target: 'styles.xml',
81
+ type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles'
82
+ });
83
+ // Add sheet to content types
84
+ await this.contentTypes.addOverride({
85
+ partName: `/xl/styles.xml`,
86
+ contentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml'
87
+ });
88
+ // Theme relation: todo
89
+ await this.workbookRelations.addRelation({
90
+ target: 'theme/theme1.xml',
91
+ type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme'
92
+ });
93
+ // Add theme to content types: todo
94
+ await this.contentTypes.addOverride({
95
+ partName: `/xl/theme/theme1.xml`,
96
+ contentType: 'application/vnd.openxmlformats-officedocument.theme+xml'
97
+ });
98
+ // Shared strings relation: todo
99
+ await this.workbookRelations.addRelation({
100
+ target: 'sharedStrings.xml',
101
+ type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings'
102
+ });
103
+ // Add shared strings to content types: todo
104
+ await this.contentTypes.addOverride({
105
+ partName: `/xl/sharedStrings.xml`,
106
+ contentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml'
107
+ });
108
+ }
109
+ async addSheet(name) {
110
+ const sheet = new XlsxSheetWriter_1.XlsxSheetWriter();
111
+ const nameSlug = 'sheet' + (this.sheetWriters.size + 1);
112
+ const path = `worksheets/${nameSlug}.xml`;
113
+ // Write relationship
114
+ const relationId = await this.workbookRelations.addRelation({
115
+ target: path,
116
+ type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'
117
+ });
118
+ // Add sheet to workbook file
119
+ await this.workbook.addSheet({ name, relationId });
120
+ // Add sheet to content types
121
+ await this.contentTypes.addOverride({
122
+ partName: `/xl/${path}`,
123
+ contentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
124
+ });
125
+ sheet.writeStream = await this.zipWriter.addFile(`xl/${path}`);
126
+ sheet.styles = this.styles;
127
+ const symbol = Symbol(name);
128
+ this.sheetWriters.set(symbol, sheet);
129
+ return symbol;
130
+ }
131
+ /**
132
+ * Called when all sheets have been added and all files are ready to be written
133
+ */
134
+ async ready() {
135
+ await this.init();
136
+ await this.zipWriter.ready?.();
137
+ }
138
+ addRow(sheet, values) {
139
+ const writer = this.sheetWriters.get(sheet);
140
+ if (!writer) {
141
+ throw new Error('Sheet not found');
142
+ }
143
+ return writer.writeRow(values);
144
+ }
145
+ async close() {
146
+ // Close all sheet writers
147
+ for (const writer of this.sheetWriters.values()) {
148
+ await writer.close();
149
+ }
150
+ // Close styles
151
+ await this.styles.close();
152
+ // Close shared strings
153
+ await this.sharedStrings.close();
154
+ // Close workbook
155
+ await this.workbook.close();
156
+ // Close workbook relations
157
+ await this.workbookRelations.close();
158
+ // Close global relations
159
+ await this.globalRelations.close();
160
+ // Close core props
161
+ await this.coreProps.close();
162
+ // Close app props
163
+ await this.appProps.close();
164
+ // Close theme
165
+ await this.theme.close();
166
+ // Close content types
167
+ await this.contentTypes.close();
168
+ // All write streams should be closed now
169
+ await this.zipWriter.close();
170
+ }
171
+ async abort() {
172
+ // Close all sheet writers
173
+ for (const writer of this.sheetWriters.values()) {
174
+ try {
175
+ await writer.abort();
176
+ }
177
+ catch (e) {
178
+ console.error('Error closing sheet writer', e);
179
+ }
180
+ }
181
+ // Close styles
182
+ try {
183
+ await this.styles.abort();
184
+ }
185
+ catch (e) {
186
+ console.error('Error closing styles', e);
187
+ }
188
+ // Close shared strings
189
+ try {
190
+ await this.sharedStrings.abort();
191
+ }
192
+ catch (e) {
193
+ console.error('Error closing shared strings', e);
194
+ }
195
+ // Close workbook
196
+ try {
197
+ await this.workbook.abort();
198
+ }
199
+ catch (e) {
200
+ console.error('Error closing workbook', e);
201
+ }
202
+ // Close workbook relations
203
+ try {
204
+ await this.workbookRelations.abort();
205
+ }
206
+ catch (e) {
207
+ console.error('Error closing workbook relations', e);
208
+ }
209
+ // Close global relations
210
+ try {
211
+ await this.globalRelations.abort();
212
+ }
213
+ catch (e) {
214
+ console.error('Error closing global relations', e);
215
+ }
216
+ // Close core props
217
+ try {
218
+ await this.coreProps.abort();
219
+ }
220
+ catch (e) {
221
+ console.error('Error closing core props', e);
222
+ }
223
+ // Close app props
224
+ try {
225
+ await this.appProps.abort();
226
+ }
227
+ catch (e) {
228
+ console.error('Error closing app props', e);
229
+ }
230
+ // Close theme
231
+ try {
232
+ await this.theme.abort();
233
+ }
234
+ catch (e) {
235
+ console.error('Error closing theme', e);
236
+ }
237
+ // Close content types
238
+ try {
239
+ await this.contentTypes.abort();
240
+ }
241
+ catch (e) {
242
+ console.error('Error closing content types', e);
243
+ }
244
+ // All write streams should be closed now
245
+ try {
246
+ await this.zipWriter.abort();
247
+ }
248
+ catch (e) {
249
+ console.error('Error closing zip writer', e);
250
+ }
251
+ }
252
+ }
253
+ exports.XlsxWriter = XlsxWriter;
254
+ //# sourceMappingURL=XlsxWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxWriter.js","sourceRoot":"","sources":["../../../src/stream-writer/XlsxWriter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import archiver from 'archiver';
2
+ import { ZipWriterAdapter } from '../interfaces';
3
+ export declare class ArchiverWriterAdapter implements ZipWriterAdapter {
4
+ writer: WritableStream<Buffer>;
5
+ archive: archiver.Archiver;
6
+ finalizePromise: Promise<void> | undefined;
7
+ /**
8
+ * All pending writes we'll need to await
9
+ */
10
+ pendingFileWrites: Promise<any>[];
11
+ /**
12
+ * @param writer The data of the zip file will be written to this stream
13
+ */
14
+ constructor(writer: WritableStream<Buffer>);
15
+ addFile(name: string): Promise<WritableStream<Buffer>>;
16
+ addDirectory(name: string): Promise<void>;
17
+ ready(): Promise<void>;
18
+ /**
19
+ * Note: make sure all writeable streams are closed before calling this
20
+ */
21
+ close(): Promise<void | undefined>;
22
+ abort(): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=ArchiverWriterAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchiverWriterAdapter.d.ts","sourceRoot":"","sources":["../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,qBAAa,qBAAsB,YAAW,gBAAgB;IAC1D,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAE3C;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAM;IAEvC;;OAEG;gBACS,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;IAwC1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAqBhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,KAAK;IAKX;;OAEG;IACG,KAAK;IAIL,KAAK;CAOd"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArchiverWriterAdapter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const archiver_1 = tslib_1.__importDefault(require("archiver"));
6
+ const node_stream_1 = require("node:stream");
7
+ class ArchiverWriterAdapter {
8
+ writer;
9
+ archive;
10
+ finalizePromise;
11
+ /**
12
+ * All pending writes we'll need to await
13
+ */
14
+ pendingFileWrites = [];
15
+ /**
16
+ * @param writer The data of the zip file will be written to this stream
17
+ */
18
+ constructor(writer) {
19
+ const output = node_stream_1.Writable.fromWeb(writer);
20
+ output.on('close', () => {
21
+ console.log('Archiver has been finalized and the output file descriptor has closed: ' + this.archive.pointer() + ' total bytes');
22
+ });
23
+ output.on('end', function () {
24
+ console.log('Data has been drained');
25
+ });
26
+ output.on('error', (e) => {
27
+ console.error('Error in output stream', e);
28
+ throw e;
29
+ });
30
+ this.archive = (0, archiver_1.default)('zip', {
31
+ zlib: { level: 9 } // Sets the compression level.
32
+ });
33
+ // good practice to catch warnings (ie stat failures and other non-blocking errors)
34
+ this.archive.on('warning', function (err) {
35
+ if (err.code === 'ENOENT') {
36
+ console.warn(err);
37
+ }
38
+ else {
39
+ console.error(err);
40
+ throw err;
41
+ }
42
+ });
43
+ // good practice to catch this error explicitly
44
+ this.archive.on('error', function (err) {
45
+ console.error('Archiver error', err);
46
+ throw err;
47
+ });
48
+ // pipe archive data to the file
49
+ this.archive.pipe(output);
50
+ }
51
+ addFile(name) {
52
+ // Create a new writeable stream that writes to a reader that we'll pass to zipWriter
53
+ const stream = new node_stream_1.PassThrough({});
54
+ stream.on('end', () => {
55
+ console.log('Finished file', name);
56
+ });
57
+ stream.on('close', () => {
58
+ console.log('Closed file stream', name);
59
+ });
60
+ stream.on('error', (err) => {
61
+ console.error('Error in PassThrough stream', name, err);
62
+ //throw err;
63
+ });
64
+ this.archive.append(stream, { name });
65
+ return Promise.resolve(node_stream_1.Writable.toWeb(stream));
66
+ }
67
+ async addDirectory(name) {
68
+ // Empty directories are not supported by archiver
69
+ // Directories should be created automatically when using addFile in this adapter
70
+ }
71
+ async ready() {
72
+ this.finalizePromise = this.archive.finalize();
73
+ return Promise.resolve();
74
+ }
75
+ /**
76
+ * Note: make sure all writeable streams are closed before calling this
77
+ */
78
+ async close() {
79
+ return await this.finalizePromise;
80
+ }
81
+ async abort() {
82
+ if (!this.finalizePromise) {
83
+ this.archive.abort();
84
+ return;
85
+ }
86
+ await this.finalizePromise;
87
+ }
88
+ }
89
+ exports.ArchiverWriterAdapter = ArchiverWriterAdapter;
90
+ //# sourceMappingURL=ArchiverWriterAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchiverWriterAdapter.js","sourceRoot":"","sources":["../../../../src/stream-writer/adapters/ArchiverWriterAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { ZipWriter } from '@zip.js/zip.js';
2
+ import { ZipWriterAdapter } from '../interfaces';
3
+ export declare class ZipJsWriterAdapter implements ZipWriterAdapter {
4
+ writer: WritableStream<Buffer>;
5
+ zipWriter: ZipWriter<Buffer>;
6
+ /**
7
+ * All pending writes we'll need to await
8
+ */
9
+ pendingFileWrites: Promise<any>[];
10
+ /**
11
+ * @param writer The data of the zip file will be written to this stream
12
+ */
13
+ constructor(writer: WritableStream<Buffer>);
14
+ addFile(name: string): Promise<WritableStream<Buffer>>;
15
+ addDirectory(name: string): Promise<void>;
16
+ /**
17
+ * Note: make sure all writeable streams are closed before calling this
18
+ */
19
+ close(): Promise<void>;
20
+ abort(): Promise<void>;
21
+ }
22
+ //# sourceMappingURL=ZipJsWriterAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZipJsWriterAdapter.d.ts","sourceRoot":"","sources":["../../../../src/stream-writer/adapters/ZipJsWriterAdapter.ts"],"names":[],"mappings":"AAAA,OAAY,EACR,SAAS,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,kBAAmB,YAAW,gBAAgB;IACvD,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAE7B;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAM;IAEvC;;OAEG;gBACS,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;IAM1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAoBhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C;;OAEG;IACG,KAAK;IAQL,KAAK;CAGd"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZipJsWriterAdapter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zip_js_1 = tslib_1.__importStar(require("@zip.js/zip.js"));
6
+ class ZipJsWriterAdapter {
7
+ writer;
8
+ zipWriter;
9
+ /**
10
+ * All pending writes we'll need to await
11
+ */
12
+ pendingFileWrites = [];
13
+ /**
14
+ * @param writer The data of the zip file will be written to this stream
15
+ */
16
+ constructor(writer) {
17
+ this.writer = writer;
18
+ zip_js_1.default.configure({ chunkSize: 128 });
19
+ this.zipWriter = new zip_js_1.ZipWriter(writer, { bufferedWrite: true });
20
+ }
21
+ addFile(name) {
22
+ // Create a new writeable stream that writes to a reader that we'll pass to zipWriter
23
+ const stream = new TransformStream(undefined, new CountQueuingStrategy({ highWaterMark: 100 }), new CountQueuingStrategy({ highWaterMark: 10000 }));
24
+ this.pendingFileWrites.push(this.zipWriter.add(name, { readable: stream.readable, size: 10000 }).then(() => {
25
+ console.log('Finished file', name);
26
+ }).catch((e) => {
27
+ console.error('Error writing file', name, e);
28
+ })
29
+ //stream.readable.pipeTo(this.writer)
30
+ );
31
+ return Promise.resolve(stream.writable);
32
+ }
33
+ async addDirectory(name) {
34
+ await this.zipWriter.add(name, undefined, { directory: true });
35
+ }
36
+ /**
37
+ * Note: make sure all writeable streams are closed before calling this
38
+ */
39
+ async close() {
40
+ console.log('Awaiting pending file writes');
41
+ await Promise.all(this.pendingFileWrites);
42
+ console.log('Closing zip writer');
43
+ await this.zipWriter.close();
44
+ }
45
+ async abort() {
46
+ await this.zipWriter.close();
47
+ }
48
+ }
49
+ exports.ZipJsWriterAdapter = ZipJsWriterAdapter;
50
+ //# sourceMappingURL=ZipJsWriterAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZipJsWriterAdapter.js","sourceRoot":"","sources":["../../../../src/stream-writer/adapters/ZipJsWriterAdapter.ts"],"names":[],"mappings":";;;;AAAA,iEAEwB;AAGxB,MAAa,kBAAkB;IAC3B,MAAM,CAAyB;IAC/B,SAAS,CAAoB;IAE7B;;OAEG;IACH,iBAAiB,GAAmB,EAAE,CAAC;IAEvC;;OAEG;IACH,YAAY,MAA8B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,gBAAG,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC,MAAM,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,qFAAqF;QACrF,MAAM,MAAM,GAAG,IAAI,eAAe,CAC9B,SAAS,EACT,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,EAChD,IAAI,oBAAoB,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CACrD,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACzE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAChD,CAAC,CAAC;QACF,qCAAqC;SACxC,CAAA;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;IAChE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACP,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC3C,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACjC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;CACJ;AAxDD,gDAwDC"}
@@ -0,0 +1,2 @@
1
+ export declare function escapeXml(str: string): string;
2
+ //# sourceMappingURL=escapeXml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeXml.d.ts","sourceRoot":"","sources":["../../../src/stream-writer/escapeXml.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW7C"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.escapeXml = escapeXml;
4
+ function escapeXml(str) {
5
+ // " &quot;
6
+ // ' &apos;
7
+ // < &lt;
8
+ // > &gt;
9
+ // & &amp;
10
+ return str.replace(/&/g, '&amp;')
11
+ .replace(/</g, '&lt;')
12
+ .replace(/>/g, '&gt;')
13
+ .replace(/'/g, '&apos;')
14
+ .replace(/"/g, '&quot;');
15
+ }
16
+ //# sourceMappingURL=escapeXml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeXml.js","sourceRoot":"","sources":["../../../src/stream-writer/escapeXml.ts"],"names":[],"mappings":";;AAAA,8BAWC;AAXD,SAAgB,SAAS,CAAC,GAAW;IACjC,aAAa;IACb,aAAa;IACb,WAAW;IACX,WAAW;IACX,YAAY;IACZ,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './XlsxWriter';
2
+ export * from './adapters/ZipJsWriterAdapter';
3
+ export * from './adapters/ArchiverWriterAdapter';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stream-writer/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,+BAA+B,CAAA;AAC7C,cAAc,kCAAkC,CAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./XlsxWriter"), exports);
5
+ tslib_1.__exportStar(require("./adapters/ZipJsWriterAdapter"), exports);
6
+ tslib_1.__exportStar(require("./adapters/ArchiverWriterAdapter"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stream-writer/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,wEAA6C;AAC7C,2EAAgD"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Allows to use different zip libraries
3
+ */
4
+ export interface ZipWriterAdapter {
5
+ addFile(name: string): Promise<WritableStream<Buffer>>;
6
+ addDirectory(name: string): Promise<void>;
7
+ /**
8
+ * Called when all files have added (streams still in progress)
9
+ */
10
+ ready?(): Promise<void>;
11
+ close(): Promise<void>;
12
+ abort(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/stream-writer/interfaces.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IACtD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzC;;OAEG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/stream-writer/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from "./src/interfaces";
2
+ export * from "./src/exportToExcel";
3
+ export * from "./src/stream-writer";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./src/interfaces";
2
+ export * from "./src/exportToExcel";
3
+ export * from "./src/stream-writer";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { XlsxTransformerConcreteSheet, XlsxTransformerSheet, XlsxWorkbookFilter } from "./interfaces";
2
+ /**
3
+ * Allows to specify which columns to include in the excel file.
4
+ * Takes a filter object that can be built in the frontend
5
+ */
6
+ export declare class XlsxColumnFilterer<T> {
7
+ allSheets: XlsxTransformerSheet<T, unknown>[];
8
+ constructor(allSheets: XlsxTransformerSheet<T, unknown>[]);
9
+ filterColumns(filter: XlsxWorkbookFilter): XlsxTransformerConcreteSheet<T, unknown>[];
10
+ }
11
+ //# sourceMappingURL=XlsxColumnFilterer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxColumnFilterer.d.ts","sourceRoot":"","sources":["../../../src/XlsxColumnFilterer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,4BAA4B,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGrI;;;GAGG;AACH,qBAAa,kBAAkB,CAAC,CAAC;IAC7B,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;gBAElC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;IAIzD,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,4BAA4B,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;CAwExF"}