@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 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,8DAAoC;AACpC,8DAAoC"}
@@ -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"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XlsxColumnFilterer = void 0;
4
+ const simple_errors_1 = require("@simonbackx/simple-errors");
5
+ /**
6
+ * Allows to specify which columns to include in the excel file.
7
+ * Takes a filter object that can be built in the frontend
8
+ */
9
+ class XlsxColumnFilterer {
10
+ allSheets;
11
+ constructor(allSheets) {
12
+ this.allSheets = allSheets;
13
+ }
14
+ filterColumns(filter) {
15
+ // Validate sheetFilter
16
+ for (const { id } of filter.sheets) {
17
+ if (!this.allSheets.find(sheet => sheet.id === id)) {
18
+ throw new simple_errors_1.SimpleError({
19
+ code: "invalid_sheet",
20
+ message: "Invalid sheet " + id,
21
+ human: 'Ongeldig werkblad ' + id + ', deze wordt niet (meer) ondersteund',
22
+ statusCode: 400
23
+ });
24
+ }
25
+ }
26
+ const sheets = this.allSheets.flatMap(sheet => {
27
+ const sheetFilter = filter.sheets.find(s => s.id === sheet.id);
28
+ if (!sheetFilter) {
29
+ return [];
30
+ }
31
+ // Validate sheetFilter
32
+ const concreteColumns = [];
33
+ for (const id of sheetFilter.columns) {
34
+ let found = false;
35
+ for (const column of sheet.columns) {
36
+ if ("id" in column) {
37
+ if (column.id === id) {
38
+ concreteColumns.push(column);
39
+ found = true;
40
+ break;
41
+ }
42
+ }
43
+ else {
44
+ const matched = column.match(id);
45
+ if (matched !== undefined) {
46
+ concreteColumns.push(...matched);
47
+ found = true;
48
+ break;
49
+ }
50
+ }
51
+ }
52
+ if (!found) {
53
+ throw new simple_errors_1.SimpleError({
54
+ code: "invalid_column",
55
+ message: "Invalid column " + id,
56
+ human: 'Ongeldige kolom ' + id + ', deze wordt niet (meer) ondersteund',
57
+ statusCode: 400
58
+ });
59
+ }
60
+ }
61
+ if (concreteColumns.length === 0) {
62
+ return [];
63
+ }
64
+ return [{
65
+ ...sheet,
66
+ columns: concreteColumns
67
+ }];
68
+ });
69
+ if (sheets.length === 0) {
70
+ throw new simple_errors_1.SimpleError({
71
+ code: "no_columns",
72
+ message: "No columns selected",
73
+ human: 'Geen enkele kolom is geselecteerd',
74
+ statusCode: 400
75
+ });
76
+ }
77
+ return sheets;
78
+ }
79
+ }
80
+ exports.XlsxColumnFilterer = XlsxColumnFilterer;
81
+ //# sourceMappingURL=XlsxColumnFilterer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxColumnFilterer.js","sourceRoot":"","sources":["../../src/XlsxColumnFilterer.ts"],"names":[],"mappings":";;;AACA,6DAAwD;AAExD;;;GAGG;AACH,MAAa,kBAAkB;IAC3B,SAAS,CAAqC;IAE9C,YAAY,SAA6C;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,MAA0B;QACpC,uBAAuB;QACvB,KAAK,MAAM,EAAC,EAAE,EAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,2BAAW,CAAC;oBAClB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,gBAAgB,GAAG,EAAE;oBAC9B,KAAK,EAAE,oBAAoB,GAAG,EAAE,GAAC,sCAAsC;oBACvE,UAAU,EAAE,GAAG;iBAClB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YAE/D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACd,CAAC;YAED,uBAAuB;YACvB,MAAM,eAAe,GAAuC,EAAE,CAAC;YAC/D,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,KAAK,GAAG,KAAK,CAAC;gBAElB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACjC,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;wBACjB,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;4BACnB,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC7B,KAAK,GAAG,IAAI,CAAC;4BACb,MAAM;wBACV,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;4BACxB,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;4BACjC,KAAK,GAAG,IAAI,CAAC;4BACb,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,MAAM,IAAI,2BAAW,CAAC;wBAClB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,iBAAiB,GAAG,EAAE;wBAC/B,KAAK,EAAE,kBAAkB,GAAG,EAAE,GAAC,sCAAsC;wBACrE,UAAU,EAAE,GAAG;qBAClB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YACD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACd,CAAC;YAED,OAAO,CAAC;oBACJ,GAAG,KAAK;oBACR,OAAO,EAAE,eAAe;iBAC3B,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,2BAAW,CAAC;gBAClB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,KAAK,EAAE,mCAAmC;gBAC1C,UAAU,EAAE,GAAG;aAClB,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA/ED,gDA+EC"}
@@ -0,0 +1,14 @@
1
+ import { XlsxTransformerConcreteSheet, XlsxTransformerSheet, XlsxWriterAdapter } from "./interfaces";
2
+ /**
3
+ * Transforms data into an excel file using
4
+ * a writer that can write to an excel file
5
+ */
6
+ export declare class XlsxTransformer<T> {
7
+ sheets: XlsxTransformerConcreteSheet<T, unknown>[];
8
+ writer: XlsxWriterAdapter;
9
+ sheetMap: Map<XlsxTransformerSheet<T, unknown>, symbol>;
10
+ constructor(sheets: XlsxTransformerConcreteSheet<T, unknown>[], writer: XlsxWriterAdapter);
11
+ init(): Promise<void>;
12
+ process(data: T[]): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=XlsxTransformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxTransformer.d.ts","sourceRoot":"","sources":["../../src/XlsxTransformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAErG;;;GAGG;AACH,qBAAa,eAAe,CAAC,CAAC;IAC1B,MAAM,EAAE,4BAA4B,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAa;gBAExD,MAAM,EAAE,4BAA4B,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB;IAKnF,IAAI;IA+BJ,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE;CAc1B"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XlsxTransformer = void 0;
4
+ /**
5
+ * Transforms data into an excel file using
6
+ * a writer that can write to an excel file
7
+ */
8
+ class XlsxTransformer {
9
+ sheets;
10
+ writer;
11
+ sheetMap = new Map();
12
+ constructor(sheets, writer) {
13
+ this.sheets = sheets;
14
+ this.writer = writer;
15
+ }
16
+ async init() {
17
+ for (const sheet of this.sheets) {
18
+ let sheetSymbol = this.sheetMap.get(sheet);
19
+ if (!sheetSymbol) {
20
+ sheetSymbol = await this.writer.addSheet(sheet.name);
21
+ this.sheetMap.set(sheet, sheetSymbol);
22
+ }
23
+ }
24
+ await this.writer.ready();
25
+ // Write column headers
26
+ for (const sheet of this.sheets) {
27
+ const sheetSymbol = this.sheetMap.get(sheet);
28
+ if (!sheetSymbol) {
29
+ throw new Error('Sheet not found');
30
+ }
31
+ await this.writer.addRow(sheetSymbol, sheet.columns.map(col => {
32
+ return {
33
+ value: col.name,
34
+ width: col.width,
35
+ style: {
36
+ font: {
37
+ bold: true
38
+ }
39
+ }
40
+ };
41
+ }));
42
+ }
43
+ }
44
+ async process(data) {
45
+ for (const sheet of this.sheets) {
46
+ const sheetSymbol = this.sheetMap.get(sheet);
47
+ if (!sheetSymbol) {
48
+ throw new Error('Sheet not found');
49
+ }
50
+ for (const item of data) {
51
+ for (const transformedItem of sheet.transform ? sheet.transform(item) : [item]) {
52
+ await this.writer.addRow(sheetSymbol, sheet.columns.map(col => col.getValue(transformedItem)));
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ exports.XlsxTransformer = XlsxTransformer;
59
+ //# sourceMappingURL=XlsxTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxTransformer.js","sourceRoot":"","sources":["../../src/XlsxTransformer.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,eAAe;IACxB,MAAM,CAA6C;IACnD,MAAM,CAAoB;IAC1B,QAAQ,GAAkD,IAAI,GAAG,EAAE,CAAC;IAEpE,YAAY,MAAkD,EAAE,MAAyB;QACrF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAE1B,uBAAuB;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC1D,OAAO;oBACH,KAAK,EAAE,GAAG,CAAC,IAAI;oBACf,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,KAAK,EAAE;wBACH,IAAI,EAAE;4BACF,IAAI,EAAE,IAAI;yBACb;qBACJ;iBACJ,CAAA;YACL,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAS;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACvC,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACtB,KAAK,MAAM,eAAe,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACnG,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAvDD,0CAuDC"}
@@ -0,0 +1,8 @@
1
+ import { XlsxTransformerSheet, XlsxWorkbookFilter, XlsxWriterAdapter } from "./interfaces";
2
+ export declare function exportToExcel<T>({ definitions, writer, dataGenerator, filter }: {
3
+ filter: XlsxWorkbookFilter;
4
+ definitions: XlsxTransformerSheet<T, unknown>[];
5
+ writer: XlsxWriterAdapter;
6
+ dataGenerator: AsyncIterable<T[]>;
7
+ }): Promise<void>;
8
+ //# sourceMappingURL=exportToExcel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exportToExcel.d.ts","sourceRoot":"","sources":["../../src/exportToExcel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAI3F,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAC,EAAE;IACjF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IAChD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAA;CACpC,iBAoBA"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.exportToExcel = exportToExcel;
4
+ const XlsxColumnFilterer_1 = require("./XlsxColumnFilterer");
5
+ const XlsxTransformer_1 = require("./XlsxTransformer");
6
+ async function exportToExcel({ definitions, writer, dataGenerator, filter }) {
7
+ try {
8
+ const sheets = new XlsxColumnFilterer_1.XlsxColumnFilterer(definitions).filterColumns(filter);
9
+ // The transformer handles data and converts it into cell values and writes it to the writer
10
+ const transformer = new XlsxTransformer_1.XlsxTransformer(sheets, writer);
11
+ await transformer.init();
12
+ // Start looping over the data
13
+ for await (const data of dataGenerator) {
14
+ await transformer.process(data);
15
+ }
16
+ await writer.close();
17
+ }
18
+ catch (e) {
19
+ await writer.abort();
20
+ throw e;
21
+ }
22
+ }
23
+ //# sourceMappingURL=exportToExcel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exportToExcel.js","sourceRoot":"","sources":["../../src/exportToExcel.ts"],"names":[],"mappings":";;AAIA,sCAyBC;AA5BD,6DAA0D;AAC1D,uDAAoD;AAE7C,KAAK,UAAU,aAAa,CAAI,EAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAKjF;IACG,IAAI,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,uCAAkB,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzE,4FAA4F;QAC5F,MAAM,WAAW,GAAG,IAAI,iCAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,8BAA8B;QAC9B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC"}
@@ -0,0 +1,160 @@
1
+ export type XlsxTransformerConcreteColumn<T> = {
2
+ id: string;
3
+ name: string;
4
+ width: number;
5
+ getValue(object: T): CellValue;
6
+ };
7
+ export type XlsxTransformerColumn<T> = XlsxTransformerConcreteColumn<T> | {
8
+ match: (id: string) => (XlsxTransformerConcreteColumn<T>[] | undefined);
9
+ };
10
+ export interface XlsxTransformerSheet<A, B = A> {
11
+ id: string;
12
+ name: string;
13
+ transform?: (data: A) => B[];
14
+ columns: XlsxTransformerColumn<B>[];
15
+ }
16
+ export interface XlsxTransformerConcreteSheet<A, B = A> {
17
+ id: string;
18
+ name: string;
19
+ transform?: (data: A) => B[];
20
+ columns: XlsxTransformerConcreteColumn<B>[];
21
+ }
22
+ export interface CellValue {
23
+ value: string | number | Date | null;
24
+ width?: number;
25
+ style?: CellStyleRequest;
26
+ }
27
+ /**
28
+ * This should be implemented in a specific environment (e.g. nodejs, browser)
29
+ * that can write Excel files, given input CellValues
30
+ */
31
+ export interface XlsxWriterAdapter {
32
+ addSheet(name: string): Promise<symbol> | symbol;
33
+ addRow(sheet: symbol, values: CellValue[]): Promise<void> | void;
34
+ /**
35
+ * Called when all sheets have been added and all files are ready to be written
36
+ */
37
+ ready(): Promise<void>;
38
+ close(): Promise<void>;
39
+ abort(): Promise<void>;
40
+ }
41
+ export type XlsxWorkbookFilter = {
42
+ sheets: {
43
+ id: string;
44
+ columns: string[];
45
+ }[];
46
+ };
47
+ export declare enum XlsxBuiltInNumberFormat {
48
+ None = 0,
49
+ Number = 1,
50
+ Number2Decimal = 2,
51
+ NumberWithThousandSeparator = 3,
52
+ NumberWithThousandSeparator2Decimal = 4,
53
+ CurrencyWithoutRed = 5,
54
+ CurrencyWithRed = 6,
55
+ Currency2DecimalWithoutRed = 7,
56
+ Currency2DecimalWithRed = 8,
57
+ Percentage = 9,
58
+ Percentage2Decimal = 10,
59
+ Scientific = 11,
60
+ Fraction = 12,
61
+ Fraction2 = 13,
62
+ /**
63
+ * m/d/yyyy (depends on user local environment)
64
+ * In EU: 14/03/2022
65
+ */
66
+ DateSlash = 14,
67
+ /**
68
+ * d-mmm-yy
69
+ * 14-Mar-22
70
+ */
71
+ DateShort = 15,
72
+ /**
73
+ * d-mmm
74
+ * 14-Mar
75
+ */
76
+ DateShortNoYear = 16,
77
+ /**
78
+ * mmm-yy
79
+ * Mar-22
80
+ */
81
+ DateMonthYear = 17,
82
+ /**
83
+ * h:mm AM/PM
84
+ * 2:30 PM
85
+ */
86
+ TimeAMPM = 18,
87
+ /**
88
+ * h:mm:ss AM/PM
89
+ * 2:30:15 PM
90
+ */
91
+ TimeSecondsAMPM = 19,
92
+ /**
93
+ * h:mm
94
+ * 2:30
95
+ */
96
+ Time = 20,
97
+ /**
98
+ * h:mm:ss
99
+ * 2:30:15
100
+ */
101
+ TimeSeconds = 21,
102
+ /**
103
+ * m/d/yyyy h:mm (depends on user local environment)
104
+ * 14/03/2022 14:30
105
+ */
106
+ DateTimeSlash = 22,
107
+ /**
108
+ * mm:ss
109
+ * 02:30
110
+ */
111
+ TimeMinutesSeconds = 45,
112
+ /**
113
+ * [h]:mm:ss
114
+ * 26:30:15
115
+ */
116
+ TimeHoursMinutesSeconds = 46,
117
+ /**
118
+ * mm:ss.0
119
+ * 02:30.0
120
+ */
121
+ TimeMinutesSecondsDecimal = 47,
122
+ /**
123
+ * ##0.0E+0
124
+ * 1.2E+3
125
+ */
126
+ Scientific2 = 48,
127
+ /**
128
+ * @
129
+ * Text
130
+ */
131
+ Text = 49
132
+ }
133
+ export type NumberFormatOptions = {
134
+ id?: XlsxBuiltInNumberFormat | number;
135
+ formatCode?: string;
136
+ };
137
+ export declare enum CellType {
138
+ Boolean = "b",
139
+ Date = "d",
140
+ Error = "e",
141
+ InlineString = "inlineStr",
142
+ Number = "n",// This is the default value
143
+ SharedString = "s",
144
+ Formula = "str"
145
+ }
146
+ export type FontOptions = {
147
+ size?: number;
148
+ bold?: boolean;
149
+ };
150
+ export type CellAlignmentOptions = {
151
+ horizontal?: 'general' | 'center' | 'centerContinuous' | 'distributed' | 'justify' | 'fill' | 'left' | 'right';
152
+ vertical?: 'bottom' | 'center' | 'distributed' | 'justify' | 'top';
153
+ wrapText?: boolean;
154
+ };
155
+ export type CellStyleRequest = {
156
+ font?: FontOptions;
157
+ numberFormat?: NumberFormatOptions;
158
+ alignment?: CellAlignmentOptions;
159
+ };
160
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CellType = exports.XlsxBuiltInNumberFormat = void 0;
4
+ var XlsxBuiltInNumberFormat;
5
+ (function (XlsxBuiltInNumberFormat) {
6
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["None"] = 0] = "None";
7
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Number"] = 1] = "Number";
8
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Number2Decimal"] = 2] = "Number2Decimal";
9
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["NumberWithThousandSeparator"] = 3] = "NumberWithThousandSeparator";
10
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["NumberWithThousandSeparator2Decimal"] = 4] = "NumberWithThousandSeparator2Decimal";
11
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["CurrencyWithoutRed"] = 5] = "CurrencyWithoutRed";
12
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["CurrencyWithRed"] = 6] = "CurrencyWithRed";
13
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Currency2DecimalWithoutRed"] = 7] = "Currency2DecimalWithoutRed";
14
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Currency2DecimalWithRed"] = 8] = "Currency2DecimalWithRed";
15
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Percentage"] = 9] = "Percentage";
16
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Percentage2Decimal"] = 10] = "Percentage2Decimal";
17
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Scientific"] = 11] = "Scientific";
18
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Fraction"] = 12] = "Fraction";
19
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Fraction2"] = 13] = "Fraction2";
20
+ /**
21
+ * m/d/yyyy (depends on user local environment)
22
+ * In EU: 14/03/2022
23
+ */
24
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateSlash"] = 14] = "DateSlash";
25
+ /**
26
+ * d-mmm-yy
27
+ * 14-Mar-22
28
+ */
29
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateShort"] = 15] = "DateShort";
30
+ /**
31
+ * d-mmm
32
+ * 14-Mar
33
+ */
34
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateShortNoYear"] = 16] = "DateShortNoYear";
35
+ /**
36
+ * mmm-yy
37
+ * Mar-22
38
+ */
39
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateMonthYear"] = 17] = "DateMonthYear";
40
+ /**
41
+ * h:mm AM/PM
42
+ * 2:30 PM
43
+ */
44
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeAMPM"] = 18] = "TimeAMPM";
45
+ /**
46
+ * h:mm:ss AM/PM
47
+ * 2:30:15 PM
48
+ */
49
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeSecondsAMPM"] = 19] = "TimeSecondsAMPM";
50
+ /**
51
+ * h:mm
52
+ * 2:30
53
+ */
54
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Time"] = 20] = "Time";
55
+ /**
56
+ * h:mm:ss
57
+ * 2:30:15
58
+ */
59
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeSeconds"] = 21] = "TimeSeconds";
60
+ /**
61
+ * m/d/yyyy h:mm (depends on user local environment)
62
+ * 14/03/2022 14:30
63
+ */
64
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["DateTimeSlash"] = 22] = "DateTimeSlash";
65
+ /**
66
+ * mm:ss
67
+ * 02:30
68
+ */
69
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeMinutesSeconds"] = 45] = "TimeMinutesSeconds";
70
+ /**
71
+ * [h]:mm:ss
72
+ * 26:30:15
73
+ */
74
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeHoursMinutesSeconds"] = 46] = "TimeHoursMinutesSeconds";
75
+ /**
76
+ * mm:ss.0
77
+ * 02:30.0
78
+ */
79
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["TimeMinutesSecondsDecimal"] = 47] = "TimeMinutesSecondsDecimal";
80
+ /**
81
+ * ##0.0E+0
82
+ * 1.2E+3
83
+ */
84
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Scientific2"] = 48] = "Scientific2";
85
+ /**
86
+ * @
87
+ * Text
88
+ */
89
+ XlsxBuiltInNumberFormat[XlsxBuiltInNumberFormat["Text"] = 49] = "Text";
90
+ })(XlsxBuiltInNumberFormat || (exports.XlsxBuiltInNumberFormat = XlsxBuiltInNumberFormat = {}));
91
+ var CellType;
92
+ (function (CellType) {
93
+ CellType["Boolean"] = "b";
94
+ CellType["Date"] = "d";
95
+ CellType["Error"] = "e";
96
+ CellType["InlineString"] = "inlineStr";
97
+ CellType["Number"] = "n";
98
+ CellType["SharedString"] = "s";
99
+ CellType["Formula"] = "str";
100
+ })(CellType || (exports.CellType = CellType = {}));
101
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;AA2DA,IAAY,uBAoGX;AApGD,WAAY,uBAAuB;IAC/B,qEAAQ,CAAA;IACR,yEAAU,CAAA;IACV,yFAAkB,CAAA;IAClB,mHAA+B,CAAA;IAC/B,mIAAuC,CAAA;IACvC,iGAAsB,CAAA;IACtB,2FAAmB,CAAA;IACnB,iHAA8B,CAAA;IAC9B,2GAA2B,CAAA;IAE3B,iFAAc,CAAA;IACd,kGAAuB,CAAA;IACvB,kFAAe,CAAA;IACf,8EAAa,CAAA;IACb,gFAAc,CAAA;IAEd;;;OAGG;IACH,gFAAc,CAAA;IAEd;;;OAGG;IACH,gFAAc,CAAA;IAEd;;;OAGG;IACH,4FAAoB,CAAA;IAEpB;;;OAGG;IACH,wFAAkB,CAAA;IAElB;;;OAGG;IACH,8EAAa,CAAA;IAEb;;;OAGG;IACH,4FAAoB,CAAA;IAEpB;;;OAGG;IACH,sEAAS,CAAA;IAET;;;OAGG;IACH,oFAAgB,CAAA;IAEhB;;;OAGG;IACH,wFAAkB,CAAA;IAElB;;;OAGG;IACH,kGAAuB,CAAA;IAEvB;;;OAGG;IACH,4GAA4B,CAAA;IAE5B;;;OAGG;IACH,gHAA8B,CAAA;IAE9B;;;OAGG;IACH,oFAAgB,CAAA;IAEhB;;;OAGG;IACH,sEAAS,CAAA;AACb,CAAC,EApGW,uBAAuB,uCAAvB,uBAAuB,QAoGlC;AAgDD,IAAY,QAQX;AARD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,sBAAU,CAAA;IACV,uBAAW,CAAA;IACX,sCAA0B,CAAA;IAC1B,wBAAY,CAAA;IACZ,8BAAkB,CAAA;IAClB,2BAAe,CAAA;AACnB,CAAC,EARW,QAAQ,wBAAR,QAAQ,QAQnB"}
@@ -0,0 +1,5 @@
1
+ import { XlsxFileWriter } from "./XlsxFileWriter";
2
+ export declare class XlsxAppPropsWriter extends XlsxFileWriter {
3
+ close(): Promise<void>;
4
+ }
5
+ //# sourceMappingURL=XlsxAppPropsWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxAppPropsWriter.d.ts","sourceRoot":"","sources":["../../../src/stream-writer/XlsxAppPropsWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,kBAAmB,SAAQ,cAAc;IAE5C,KAAK;CAMd"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XlsxAppPropsWriter = void 0;
4
+ const XlsxFileWriter_1 = require("./XlsxFileWriter");
5
+ class XlsxAppPropsWriter extends XlsxFileWriter_1.XlsxFileWriter {
6
+ async close() {
7
+ await this.write(`<?xml version="1.0" encoding="UTF-8"?>\n`);
8
+ await this.write(`<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"/>\n`);
9
+ await super.close();
10
+ }
11
+ }
12
+ exports.XlsxAppPropsWriter = XlsxAppPropsWriter;
13
+ //# sourceMappingURL=XlsxAppPropsWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxAppPropsWriter.js","sourceRoot":"","sources":["../../../src/stream-writer/XlsxAppPropsWriter.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD,MAAa,kBAAmB,SAAQ,+BAAc;IAElD,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,mLAAmL,CAAC,CAAC;QAEtM,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACJ;AARD,gDAQC"}
@@ -0,0 +1,13 @@
1
+ import { XlsxFileWriter } from "./XlsxFileWriter";
2
+ export declare class XlsxContentTypesWriter extends XlsxFileWriter {
3
+ overrides: {
4
+ partName: string;
5
+ contentType: string;
6
+ }[];
7
+ addOverride({ partName, contentType }: {
8
+ partName: string;
9
+ contentType: string;
10
+ }): Promise<void>;
11
+ close(): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=XlsxContentTypesWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxContentTypesWriter.d.ts","sourceRoot":"","sources":["../../../src/stream-writer/XlsxContentTypesWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,sBAAuB,SAAQ,cAAc;IACtD,SAAS,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,EAAE,CAAK;IAEnD,WAAW,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC;IAK5E,KAAK;CAcd"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XlsxContentTypesWriter = void 0;
4
+ const XlsxFileWriter_1 = require("./XlsxFileWriter");
5
+ class XlsxContentTypesWriter extends XlsxFileWriter_1.XlsxFileWriter {
6
+ overrides = [];
7
+ async addOverride({ partName, contentType }) {
8
+ this.overrides.push({ partName, contentType });
9
+ return Promise.resolve();
10
+ }
11
+ async close() {
12
+ await this.write(`<?xml version="1.0" encoding="UTF-8"?>\n`);
13
+ await this.write(`<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">`);
14
+ await this.write(`<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />`);
15
+ await this.write(`<Default Extension="xml" ContentType="application/xml" />`);
16
+ for (const override of this.overrides) {
17
+ await this.write(`<Override PartName="${override.partName}" ContentType="${override.contentType}" />`);
18
+ }
19
+ await this.write(`</Types>`);
20
+ await super.close();
21
+ }
22
+ }
23
+ exports.XlsxContentTypesWriter = XlsxContentTypesWriter;
24
+ //# sourceMappingURL=XlsxContentTypesWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxContentTypesWriter.js","sourceRoot":"","sources":["../../../src/stream-writer/XlsxContentTypesWriter.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD,MAAa,sBAAuB,SAAQ,+BAAc;IACtD,SAAS,GAA8C,EAAE,CAAA;IAEzD,KAAK,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,WAAW,EAA0C;QAC9E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QACjG,MAAM,IAAI,CAAC,KAAK,CAAC,qGAAqG,CAAC,CAAC;QACxH,MAAM,IAAI,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAE9E,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,QAAQ,CAAC,QAAQ,kBAAkB,QAAQ,CAAC,WAAW,MAAM,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7B,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACJ;AAtBD,wDAsBC"}
@@ -0,0 +1,7 @@
1
+ import { XlsxFileWriter } from "./XlsxFileWriter";
2
+ export declare class XlsxCorePropsWriter extends XlsxFileWriter {
3
+ creator: string;
4
+ lastModifiedBy: string;
5
+ close(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=XlsxCorePropsWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxCorePropsWriter.d.ts","sourceRoot":"","sources":["../../../src/stream-writer/XlsxCorePropsWriter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,mBAAoB,SAAQ,cAAc;IACnD,OAAO,SAAe;IACtB,cAAc,SAAe;IAEvB,KAAK;CAkBd"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XlsxCorePropsWriter = void 0;
4
+ const XlsxFileWriter_1 = require("./XlsxFileWriter");
5
+ class XlsxCorePropsWriter extends XlsxFileWriter_1.XlsxFileWriter {
6
+ creator = 'Stamhoofd';
7
+ lastModifiedBy = 'Stamhoofd';
8
+ async close() {
9
+ await this.write(`<?xml version="1.0" encoding="UTF-8"?>\n`);
10
+ await this.write(`<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>`);
11
+ /*
12
+ <cp:coreProperties
13
+ xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties"
14
+ xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/"
15
+ xmlns:dcmitype="http://purl.org/dc/dcmitype/"
16
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
17
+ <dc:creator>${escapeXml(this.creator)}</dc:creator>
18
+ <cp:lastModifiedBy>${escapeXml(this.lastModifiedBy)}</cp:lastModifiedBy>
19
+ <dcterms:created xsi:type="dcterms:W3CDTF">${escapeXml(new Date().toISOString())}</dcterms:created>
20
+ <dcterms:modified xsi:type="dcterms:W3CDTF">${escapeXml(new Date().toISOString())}</dcterms:modified>
21
+ </cp:coreProperties>`);*/
22
+ await super.close();
23
+ }
24
+ }
25
+ exports.XlsxCorePropsWriter = XlsxCorePropsWriter;
26
+ //# sourceMappingURL=XlsxCorePropsWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxCorePropsWriter.js","sourceRoot":"","sources":["../../../src/stream-writer/XlsxCorePropsWriter.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAElD,MAAa,mBAAoB,SAAQ,+BAAc;IACnD,OAAO,GAAG,WAAW,CAAC;IACtB,cAAc,GAAG,WAAW,CAAC;IAE7B,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,qPAAqP,CAAC,CAAC;QAExQ;;;;;;;;;;yBAUiB;QAEjB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACJ;AAtBD,kDAsBC"}
@@ -0,0 +1,11 @@
1
+ export declare class XlsxFileWriter {
2
+ /**
3
+ * The sheet writer will write
4
+ */
5
+ writeStream: WritableStream<Buffer>;
6
+ writeStreamWriter?: WritableStreamDefaultWriter<Buffer>;
7
+ write(str: string): Promise<void>;
8
+ close(): Promise<void>;
9
+ abort(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=XlsxFileWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XlsxFileWriter.d.ts","sourceRoot":"","sources":["../../../src/stream-writer/XlsxFileWriter.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACvB;;OAEG;IACH,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAElD,KAAK,CAAC,GAAG,EAAE,MAAM;IASjB,KAAK;IAWL,KAAK;CAcd"}