@cmetech/otto 1.3.0 → 1.3.1

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 (40) hide show
  1. package/dist/resources/.managed-resources-content-hash +1 -1
  2. package/dist/resources/extensions/otto/commands/release-notes/_data.js +10 -2
  3. package/node_modules/xlsx/CHANGELOG.md +361 -0
  4. package/node_modules/xlsx/LICENSE +201 -0
  5. package/node_modules/xlsx/README.md +41 -0
  6. package/node_modules/xlsx/bin/xlsx.njs +310 -0
  7. package/node_modules/xlsx/bower.json +22 -0
  8. package/node_modules/xlsx/dist/LICENSE +201 -0
  9. package/node_modules/xlsx/dist/cpexcel.d.ts +39 -0
  10. package/node_modules/xlsx/dist/cpexcel.full.mjs +1502 -0
  11. package/node_modules/xlsx/dist/cpexcel.js +1506 -0
  12. package/node_modules/xlsx/dist/shim.min.js +2 -0
  13. package/node_modules/xlsx/dist/xlsx.core.min.js +18 -0
  14. package/node_modules/xlsx/dist/xlsx.core.min.map +1 -0
  15. package/node_modules/xlsx/dist/xlsx.extendscript.js +28259 -0
  16. package/node_modules/xlsx/dist/xlsx.full.min.js +24 -0
  17. package/node_modules/xlsx/dist/xlsx.full.min.map +1 -0
  18. package/node_modules/xlsx/dist/xlsx.mini.min.js +10 -0
  19. package/node_modules/xlsx/dist/xlsx.mini.min.map +1 -0
  20. package/node_modules/xlsx/dist/xlsx.zahl.js +4 -0
  21. package/node_modules/xlsx/dist/xlsx.zahl.mjs +2 -0
  22. package/node_modules/xlsx/dist/zahl.d.ts +4 -0
  23. package/node_modules/xlsx/package.json +183 -0
  24. package/node_modules/xlsx/types/index.d.ts +1065 -0
  25. package/node_modules/xlsx/types/tsconfig.json +15 -0
  26. package/node_modules/xlsx/xlsx.js +28103 -0
  27. package/node_modules/xlsx/xlsx.mjs +28228 -0
  28. package/node_modules/xlsx/xlsxworker.js +14 -0
  29. package/package.json +9 -6
  30. package/packages/contracts/package.json +1 -1
  31. package/packages/daemon/package.json +3 -3
  32. package/packages/mcp-server/package.json +3 -3
  33. package/packages/native/package.json +1 -1
  34. package/packages/pi-agent-core/package.json +1 -1
  35. package/packages/pi-ai/package.json +1 -1
  36. package/packages/pi-coding-agent/package.json +2 -2
  37. package/packages/pi-tui/package.json +1 -1
  38. package/packages/rpc-client/package.json +2 -2
  39. package/pkg/package.json +1 -1
  40. package/src/resources/extensions/otto/commands/release-notes/_data.ts +10 -2
@@ -1 +1 @@
1
- d8315aa1c7fe9b29
1
+ 257bf7b3bada5bba
@@ -9,12 +9,20 @@
9
9
  // runtime command surfaces a link when a requested version isn't bundled.
10
10
  export const RELEASE_NOTES_MANIFEST = {
11
11
  truncated: false,
12
- total: 16,
12
+ total: 17,
13
13
  oldestBundled: '1.0.0',
14
- newestBundled: '1.3.0',
14
+ newestBundled: '1.3.1',
15
15
  historyUrl: 'https://github.com/cmetech/otto-cli/blob/main/CHANGELOG.md',
16
16
  };
17
17
  export const RELEASE_NOTES = [
18
+ {
19
+ version: '1.3.1',
20
+ date: '2026-06-04',
21
+ headline: 'Windows-install hotfix on top of 1.3.0: the vendored xlsx tarball now ships pre-extracted via `bundleDependencies`, working around an npm bug that prevented `file:` deps in published global packages from resolving on Windows.',
22
+ fixed: [
23
+ '**`npm i -g @cmetech/otto@1.3.0` failed on Windows** with `npm warn tarball … seems to be corrupted` followed by `ENOENT … \\vendor\\xlsx-0.20.3.tgz`. Root cause: npm\'s `file:` protocol resolution for deps inside a globally-installed published package is broken on Windows — the inner tarball never gets read even though it ships correctly inside the outer `@cmetech/otto` tarball (byte-identical SHA-256 verified). Switched from `file:`-based vendoring to `bundleDependencies: ["xlsx"]`, which ships the pre-extracted `node_modules/xlsx/` directory (26 files) directly inside the published `@cmetech/otto` tarball. End-user installs no longer go through the `file:` resolver — npm sees `xlsx` already populated in `node_modules` and skips dep resolution entirely. The `file:vendor/xlsx-0.20.3.tgz` dep spec is preserved so local dev installs still work; the SHA-drift guard test and prepublish verifier are unchanged. SheetJS is pure JavaScript (`os: any`, `cpu: any`, no native bindings) so one bundled copy works on Windows / Linux / macOS.',
24
+ ],
25
+ },
18
26
  {
19
27
  version: '1.3.0',
20
28
  date: '2026-06-03',
@@ -0,0 +1,361 @@
1
+ # CHANGELOG
2
+
3
+ This log is intended to keep track of backwards-incompatible changes, including
4
+ but not limited to API changes and file location changes. Minor behavioral
5
+ changes may not be included if they are not expected to break existing code.
6
+
7
+ ## v0.20.3
8
+
9
+ * Correct parsing of NUMBERS and ODS merge cells (h/t @s-ashwin)
10
+ * More precise treatment of infinite and NaN values
11
+ * XLML Streaming Write
12
+ * Parse `Int8Array` objects (for compatibility with JS engines in Java)
13
+ * CSV Export only quote leading ID (h/t @lako12)
14
+
15
+ ## v0.20.2
16
+
17
+ * Reworked parsing methods to avoid slow regexes (CVE-2024-22363)
18
+ * HTML properly encode data-v attribute
19
+ * SYLK read and write error cells
20
+
21
+ ## v0.20.1
22
+
23
+ * `init` use packaged test files to work around GitHub breaking changes
24
+ * SSF date code rounding to 15 decimal digits (h/t @davidtamaki)
25
+ * `sheet_to_json` force UTC interpretation for formatted strings (h/t @Blanay)
26
+ * QPW extract result of string formula
27
+ * XLSX parse non-compliant merge cell expressions
28
+ * NUMBERS correctly handle rows omitted from official exports
29
+ * DBF parse empty logical field (h/t @Roman91)
30
+ * `dense` option added to types
31
+ * package.json add mini and core scripts to export map (h/t @stof)
32
+
33
+ ## v0.20.0
34
+
35
+ * Use UTC interpretation of Date objects for date cells (potentially breaking)
36
+ * API functions support UTC and local time value interpretations
37
+ * Export `NaN` values to `#NUM!` and infinite values to `#DIV/0!`
38
+
39
+ ## v0.19.3
40
+
41
+ * XLSX Ensure comment address is valid (h/t @slonser)
42
+ * Enforce Excel worksheet name restrictions
43
+ * Fixed "Prototype Pollution" vulnerability (CVE-2023-30533)
44
+
45
+ ## v0.19.2
46
+
47
+ * XLSX proper decoding of hyperlinks (h/t @tw-yaxu)
48
+ * XLSX ignore unexpected attributes in rich text (h/t @colin4)
49
+ * `sheet_to_json` type fix (h/t @chsdwn)
50
+
51
+ ## v0.19.1
52
+
53
+ * Fixed types issue in strict mode (h/t @younes-io)
54
+ * Numbers 12.2 parsing skip ActivityStream.iwa
55
+
56
+ ## v0.19.0
57
+
58
+ * XLSX export hyperlinks compatible with google sheets (h/t Evan Bovie)
59
+ * NUMBERS export multiple sheets, full worksheet range
60
+ * formalized `dense` mode
61
+
62
+ ## v0.18.12
63
+
64
+ * `package.json` added types in `exports` structure
65
+ * uncapped NUMBERS single-sheet single-table export
66
+ * DBF export records using supported codepages
67
+
68
+ ## v0.18.11
69
+
70
+ * Base64 input ignore data URI wrapper
71
+ * Parse ZIP files that use ZIP64 extended information field
72
+ * More precise handling of time-only values
73
+ * Threaded Comment fallback text for older Excel
74
+
75
+ ## v0.18.10
76
+
77
+ * `exports` field in package.json to satiate ViteJS and newer tooling
78
+ * JSC (Safari / Bun) perf, see <https://bugs.webkit.org/show_bug.cgi?id=243148>
79
+ * workbook `bookType` property to denote the origin format when parsed from file
80
+ * XLSX force export of stub cells with number formats when `sheetStubs` is set
81
+
82
+ ## v0.18.9
83
+
84
+ * XLSX / ODS write defined names
85
+ * sync defined names to AutoFilter setting on export
86
+ * 1904 date system setting properly roundtripped
87
+ * ODS read/write number formats
88
+
89
+ ## v0.18.8
90
+
91
+ * Plaintext parsing of dateless meridien time values (`1:23:45 PM`)
92
+ * Legacy format (SYLK / WK# / Multiplan) minutiae
93
+
94
+ ## v0.18.7
95
+
96
+ * Normalized handling of `\r` and `\n` newline characters
97
+
98
+ ## v0.18.6
99
+
100
+ * Removed all npm dependencies
101
+ * Auto-correct bad Google Sheets format `d.m`
102
+ * NUMBERS write merge cells, cells up to column "ALL"
103
+
104
+ ## v0.18.5
105
+
106
+ * Enabled `sideEffects: false` in package.json
107
+ * Basic NUMBERS write support
108
+
109
+ ## v0.18.4
110
+
111
+ * CSV output omits trailing record separator
112
+ * Properly terminate NodeJS Streams
113
+ * DBF preserve column types on import and use when applicable on export
114
+
115
+ ## v0.18.3
116
+
117
+ * Removed references to `require` and `process` in browser builds
118
+
119
+ ## v0.18.2
120
+
121
+ * Hotfix for unicode processing of XLSX exports
122
+
123
+ ## v0.18.1
124
+
125
+ * Removed Node ESM build script and folded into standard ESM build
126
+ * Removed undocumented aliases including `make_formulae` and `get_formulae`
127
+
128
+ ## v0.18.0
129
+
130
+ * Browser scripts only expose `XLSX` variable
131
+ * Module no longer ships with `dist/jszip.js` browser script
132
+
133
+ ## v0.17.4
134
+
135
+ * CLI script moved to `xlsx-cli` package
136
+
137
+ ## v0.17.3
138
+
139
+ * `window.XLSX` explicit assignment to satiate LWC
140
+ * CSV Proper formatting of errors
141
+ * HTML emit data-\* attributes
142
+
143
+ ## v0.17.2
144
+
145
+ * Browser and Node optional ESM support
146
+ * DSV correct handling of bare quotes (h/t @bgamrat)
147
+
148
+ ## v0.17.1
149
+
150
+ * `XLSB` writer uses short cell form when viable
151
+
152
+ ## 0.17.0:
153
+
154
+ * mini build includes ODS parse/write support
155
+ * DBF explicitly cap worksheet to 1<<20 rows
156
+ * XLS throw errors on truncated records
157
+
158
+ ## v0.16.2
159
+
160
+ * Disabled `PRN` parsing by default (better support for CSV without delimeters)
161
+
162
+ ## v0.16.1
163
+
164
+ * skip empty custom property tags if data is absent (fixes DocSecurity issue)
165
+ * HTML output add raw value, type, number format
166
+ * DOM parse look for `v` / `t` / `z` attributes when determining value
167
+ * double quotes in properties escaped using `_x0022_`
168
+ * changed AMD structure for NetSuite and other RequireJS implementations
169
+ - `encode_cell` and `decode_cell` do not rely on `encode_col` / `decode_col`
170
+
171
+ ## v0.16.0
172
+
173
+ * Date handling changed
174
+ * XLML certain tag tests are now case insensitive
175
+ * Fixed potentially vulnerable regular expressions
176
+
177
+ ## v0.15.6
178
+
179
+ * CFB prevent infinite loop
180
+ * ODS empty cells marked as stub (type "z")
181
+ * `cellStyles` option implies `sheetStubs`
182
+
183
+ ## v0.15.5
184
+
185
+ * `sheets` parse option to specify which sheets to parse
186
+
187
+ ## v0.15.4
188
+
189
+ * AOA utilities properly preserve number formats
190
+ * Number formats captured in stub cells
191
+
192
+ ## v0.15.3
193
+
194
+ * Properties and Custom Properties properly XML-encoded
195
+
196
+ ## v0.15.2
197
+
198
+ - `sheet_get_cell` utility function
199
+ - `sheet_to_json` explicitly support `null` as alias for default behavior
200
+ - `encode_col` throw on negative column index
201
+ - HTML properly handle whitespace around tags in a run
202
+ - HTML use `id` option on write
203
+ - Files starting with `0x09` followed by a display character are now TSV files
204
+ - XLS parse references col/row indices mod by the correct number for BIFF ver
205
+ - XLSX comments moved to avoid overlapping cell
206
+ - XLSB outline level
207
+ - AutoFilter update `_FilterDatabase` defined name on write
208
+ - XLML skip CDATA blocks
209
+
210
+ ## v0.15.1 (2019-08-14)
211
+
212
+ * XLSX ignore XML artifacts
213
+ * HTML capture and persist merges
214
+
215
+ ## v0.15.0
216
+
217
+ * `dist/xlsx.mini.min.js` mini build with XLSX read/write and some utilities
218
+ * Removed legacy conversion utility functions
219
+
220
+ ## v0.14.5
221
+
222
+ * XLS PtgNameX lookup
223
+ * XLS always create stub cells for blank cells with comments
224
+
225
+
226
+ ## v0.14.4
227
+
228
+ * Better treatment of `skipHidden` in CSV output
229
+ * Ignore CLSID in XLS
230
+ * SYLK 7-bit character encoding
231
+ * SYLK and DBF codepage support
232
+
233
+ ## v0.14.3
234
+
235
+ * Proper shifting of addresses in Shared Formulae
236
+
237
+ ## v0.14.2
238
+
239
+ * Proper XML encoding of comments
240
+
241
+ ## v0.14.1
242
+
243
+ * raw cell objects can be passed to `sheet_add_aoa`
244
+ * `_FilterDatabase` fix for AutoFilter-related crashes
245
+ * `stream.to_json` doesn't end up accidentally scanning to max row
246
+
247
+ ## 0.14.0 (2018-09-06)
248
+
249
+ * `sheet_to_json` default flipped to `raw: true`
250
+
251
+ ## 0.13.5 (2018-08-25)
252
+
253
+ * HTML output generates `<br/>` instead of encoded newline character
254
+
255
+ ## 0.13.2 (2018-07-08)
256
+
257
+ * Buffer.from shim replaced, will not be defined in node `<=0.12`
258
+
259
+ ## 0.13.0 (2018-06-01)
260
+
261
+ * Library reshaped to support AMD out of the box
262
+
263
+ ## 0.12.11 (2018-04-27)
264
+
265
+ * XLS/XLSX/XLSB range truncation (errors in `WTF` mode)
266
+
267
+ ## 0.12.4 (2018-03-04)
268
+
269
+ * `JSZip` renamed to `JSZipSync`
270
+
271
+ ## 0.12.0 (2018-02-08)
272
+
273
+ * Extendscript target script in NPM package
274
+
275
+ ## 0.11.19 (2018-02-03)
276
+
277
+ * Error on empty workbook
278
+
279
+ ## 0.11.16 (2017-12-30)
280
+
281
+ * XLS ANSI/CP separation
282
+ * 'array' write type and ArrayBuffer processing
283
+
284
+ ## 0.11.6 (2017-10-16)
285
+
286
+ * Semicolon-delimited files are detected
287
+
288
+ ## 0.11.5 (2017-09-30)
289
+
290
+ * Bower main script shifted to full version
291
+ * 'binary' / 'string' encoding
292
+
293
+ ## 0.11.3 (2017-08-19)
294
+
295
+ * XLS cell ixfe/XF removed
296
+
297
+ ## 0.11.0 (2017-07-31)
298
+
299
+ * Strip `require` statements from minified version
300
+ * minifier mangler enabled
301
+
302
+ ## 0.10.9 (2017-07-28)
303
+
304
+ * XLML/HTML resolution logic looks further into the data stream to decide type
305
+ * Errors thrown on suspected RTF files
306
+
307
+ ## 0.10.5 (2017-06-09)
308
+
309
+ * HTML Table output header/footer should not include `<table>` tag
310
+
311
+ ## 0.10.2 (2017-05-16)
312
+
313
+ * Dates are converted to numbers by default (set `cellDates:true` to emit Dates)
314
+ * Module does not export CFB
315
+
316
+ ## 0.9.10 (2017-04-08)
317
+
318
+ * `--perf` renamed to `--read-only`
319
+
320
+ ## 0.9.9 (2017-04-03)
321
+
322
+ * default output format changed to XLSB
323
+ * comment text line endings are now normalized
324
+ * errors thrown on write when worksheets have invalid names
325
+
326
+ ## 0.9.7 (2017-03-28)
327
+
328
+ * XLS legacy `!range` field removed
329
+ * Hyperlink tooltip is stored in the `Tooltip` field
330
+
331
+ ## 0.9.6 (2017-03-25)
332
+
333
+ * `sheet_to_json` now passes `null` values when `raw` is set to `true`
334
+ * `sheet_to_json` treats `null` stub cells as values in conjunction with `raw`
335
+
336
+ ## 0.9.5 (2017-03-22)
337
+
338
+ * `cellDates` affects parsing in non-XLSX formats
339
+
340
+ ## 0.9.3 (2017-03-15)
341
+
342
+ * XLML property names are more closely mapped to the XLSX equivalent
343
+ * Stub cells are now cell type `z`
344
+
345
+ ## 0.9.2 (2017-03-13)
346
+
347
+ * Removed stale TypeScript definition files. Flowtype comments are used in the
348
+ `xlsx.flow.js` source and stripped to produce `xlsx.js`.
349
+ * sed usage reworked to support GNU sed in-place form. BSD sed seems to work,
350
+ but the build script has not been tested on other sed variants:
351
+
352
+ ```bash
353
+ $ sed -i.ext [...] # GNU
354
+ $ sed -i .ext [...] # bsd
355
+ ```
356
+
357
+ ## 0.9.0 (2017-03-09)
358
+
359
+ * Removed ods.js source. The xlsx.js source absorbed the ODS logic and exposes
360
+ the ODS variable, so projects should remove references to ods.js
361
+
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "{}"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright (C) 2012-present SheetJS LLC
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
@@ -0,0 +1,41 @@
1
+ # [SheetJS](https://sheetjs.com)
2
+
3
+ The SheetJS Community Edition offers battle-tested open-source solutions for
4
+ extracting useful data from almost any complex spreadsheet and generating new
5
+ spreadsheets that will work with legacy and modern software alike.
6
+
7
+ [SheetJS Pro](https://sheetjs.com/pro) offers solutions beyond data processing:
8
+ Edit complex templates with ease; let out your inner Picasso with styling; make
9
+ custom sheets with images/graphs/PivotTables; evaluate formula expressions and
10
+ port calculations to web apps; automate common spreadsheet tasks, and much more!
11
+
12
+ ## Documentation
13
+
14
+ - [API and Usage Documentation](https://docs.sheetjs.com)
15
+
16
+ - [Downloadable Scripts and Modules](https://cdn.sheetjs.com)
17
+
18
+ ## Constellation
19
+
20
+ - <https://oss.sheetjs.com/notes/>: File Format Notes
21
+
22
+ - [`ssf`](packages/ssf): Format data using ECMA-376 spreadsheet format codes
23
+
24
+ - [`xlsx-cli`](packages/xlsx-cli): NodeJS command-line tool for processing files
25
+
26
+ - [`cfb`](https://git.sheetjs.com/SheetJS/js-cfb): Container (OLE/ZIP) file
27
+ processing library
28
+
29
+ - [`codepage`](https://git.sheetjs.com/SheetJS/js-codepage): Legacy text
30
+ encodings for XLS and other legacy spreadsheet formats
31
+
32
+ - [`dta`](packages/dta): Stata DTA file processor
33
+
34
+ - [`test_files`](https://github.com/sheetjs/test_files): Test files and various
35
+ plaintext baselines.
36
+
37
+ ## License
38
+
39
+ Please consult the attached LICENSE file for details. All rights not explicitly
40
+ granted by the Apache 2.0 License are reserved by the Original Author.
41
+