From 5ec5913759b7d28b160e4e360f4ec270e2b566b4 Mon Sep 17 00:00:00 2001
From: wkc <978997012@qq.com>
Date: Sun, 8 Feb 2026 17:18:18 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=AD=E4=BB=8B?=
=?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=88=90=E5=8A=9F=E6=9D=A1=E6=95=B0=E8=AE=A1?=
=?UTF-8?q?=E7=AE=97=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
问题:
- 导入成功条数显示为负数
- 原因:成功数量计算使用 validRecords.size() - failures.size()
- 但没有使用实际的数据库操作返回值
修复:
- saveBatchWithUpsert 和 saveBatch 方法现在返回 int
- 累加实际的数据库影响行数
- 使用 actualSuccessCount 变量跟踪真实成功数量
影响范围:
- CcdiIntermediaryPersonImportServiceImpl
- CcdiIntermediaryEntityImportServiceImpl
---
.claude/settings.local.json | 7 +-
...intermediary-import-failure-view-design.md | 489 +
...y-import-on-duplicate-key-update-design.md | 468 +
...02-08-purchase-transaction-import-fixes.md | 209 +
...cklist-intermediary-import-failure-view.md | 324 +
.../intermediary/person_1770542031351.xlsx | Bin 0 -> 4135 bytes
.../个人中介黑名单模板_1770258896626.xlsx | Bin 4131 -> 0 bytes
.../generate-test-data.js | 226 +
.../node_modules/.bin/crc32 | 16 +
.../node_modules/.bin/crc32.cmd | 17 +
.../node_modules/.bin/crc32.ps1 | 28 +
.../node_modules/.bin/mkdirp | 16 +
.../node_modules/.bin/mkdirp.cmd | 17 +
.../node_modules/.bin/mkdirp.ps1 | 28 +
.../node_modules/.bin/rimraf | 16 +
.../node_modules/.bin/rimraf.cmd | 17 +
.../node_modules/.bin/rimraf.ps1 | 28 +
.../node_modules/.bin/uuid | 16 +
.../node_modules/.bin/uuid.cmd | 17 +
.../node_modules/.bin/uuid.ps1 | 28 +
.../node_modules/.package-lock.json | 1275 +++
.../@fast-csv/format/CHANGELOG.md | 73 +
.../node_modules/@fast-csv/format/LICENSE | 21 +
.../node_modules/@fast-csv/format/README.md | 20 +
.../format/build/src/CsvFormatterStream.d.ts | 13 +
.../format/build/src/CsvFormatterStream.js | 63 +
.../build/src/CsvFormatterStream.js.map | 1 +
.../format/build/src/FormatterOptions.d.ts | 39 +
.../format/build/src/FormatterOptions.js | 38 +
.../format/build/src/FormatterOptions.js.map | 1 +
.../build/src/formatter/FieldFormatter.d.ts | 13 +
.../build/src/formatter/FieldFormatter.js | 58 +
.../build/src/formatter/FieldFormatter.js.map | 1 +
.../build/src/formatter/RowFormatter.d.ts | 25 +
.../build/src/formatter/RowFormatter.js | 168 +
.../build/src/formatter/RowFormatter.js.map | 1 +
.../format/build/src/formatter/index.d.ts | 2 +
.../format/build/src/formatter/index.js | 8 +
.../format/build/src/formatter/index.js.map | 1 +
.../@fast-csv/format/build/src/index.d.ts | 14 +
.../@fast-csv/format/build/src/index.js | 68 +
.../@fast-csv/format/build/src/index.js.map | 1 +
.../@fast-csv/format/build/src/types.d.ts | 9 +
.../@fast-csv/format/build/src/types.js | 6 +
.../@fast-csv/format/build/src/types.js.map | 1 +
.../@fast-csv/format/package.json | 55 +
.../node_modules/@fast-csv/parse/CHANGELOG.md | 87 +
.../node_modules/@fast-csv/parse/LICENSE | 21 +
.../node_modules/@fast-csv/parse/README.md | 20 +
.../parse/build/src/CsvParserStream.d.ts | 33 +
.../parse/build/src/CsvParserStream.js | 212 +
.../parse/build/src/CsvParserStream.js.map | 1 +
.../parse/build/src/ParserOptions.d.ts | 47 +
.../parse/build/src/ParserOptions.js | 47 +
.../parse/build/src/ParserOptions.js.map | 1 +
.../@fast-csv/parse/build/src/index.d.ts | 11 +
.../@fast-csv/parse/build/src/index.js | 44 +
.../@fast-csv/parse/build/src/index.js.map | 1 +
.../parse/build/src/parser/Parser.d.ts | 15 +
.../parse/build/src/parser/Parser.js | 76 +
.../parse/build/src/parser/Parser.js.map | 1 +
.../parse/build/src/parser/RowParser.d.ts | 12 +
.../parse/build/src/parser/RowParser.js | 76 +
.../parse/build/src/parser/RowParser.js.map | 1 +
.../parse/build/src/parser/Scanner.d.ts | 25 +
.../parse/build/src/parser/Scanner.js | 82 +
.../parse/build/src/parser/Scanner.js.map | 1 +
.../parse/build/src/parser/Token.d.ts | 19 +
.../@fast-csv/parse/build/src/parser/Token.js | 31 +
.../parse/build/src/parser/Token.js.map | 1 +
.../src/parser/column/ColumnFormatter.d.ts | 5 +
.../src/parser/column/ColumnFormatter.js | 21 +
.../src/parser/column/ColumnFormatter.js.map | 1 +
.../build/src/parser/column/ColumnParser.d.ts | 11 +
.../build/src/parser/column/ColumnParser.js | 23 +
.../src/parser/column/ColumnParser.js.map | 1 +
.../parser/column/NonQuotedColumnParser.d.ts | 8 +
.../parser/column/NonQuotedColumnParser.js | 29 +
.../column/NonQuotedColumnParser.js.map | 1 +
.../src/parser/column/QuotedColumnParser.d.ts | 10 +
.../src/parser/column/QuotedColumnParser.js | 97 +
.../parser/column/QuotedColumnParser.js.map | 1 +
.../parse/build/src/parser/column/index.d.ts | 4 +
.../parse/build/src/parser/column/index.js | 12 +
.../build/src/parser/column/index.js.map | 1 +
.../parse/build/src/parser/index.d.ts | 5 +
.../@fast-csv/parse/build/src/parser/index.js | 16 +
.../parse/build/src/parser/index.js.map | 1 +
.../src/transforms/HeaderTransformer.d.ts | 17 +
.../build/src/transforms/HeaderTransformer.js | 115 +
.../src/transforms/HeaderTransformer.js.map | 1 +
.../transforms/RowTransformerValidator.d.ts | 12 +
.../src/transforms/RowTransformerValidator.js | 93 +
.../transforms/RowTransformerValidator.js.map | 1 +
.../parse/build/src/transforms/index.d.ts | 2 +
.../parse/build/src/transforms/index.js | 8 +
.../parse/build/src/transforms/index.js.map | 1 +
.../@fast-csv/parse/build/src/types.d.ts | 21 +
.../@fast-csv/parse/build/src/types.js | 6 +
.../@fast-csv/parse/build/src/types.js.map | 1 +
.../node_modules/@fast-csv/parse/package.json | 62 +
.../node_modules/@types/node/LICENSE | 21 +
.../node_modules/@types/node/README.md | 16 +
.../node_modules/@types/node/assert.d.ts | 130 +
.../node_modules/@types/node/async_hooks.d.ts | 237 +
.../node_modules/@types/node/buffer.d.ts | 89 +
.../@types/node/child_process.d.ts | 682 ++
.../node_modules/@types/node/cluster.d.ts | 300 +
.../node_modules/@types/node/console.d.ts | 142 +
.../node_modules/@types/node/constants.d.ts | 19 +
.../node_modules/@types/node/crypto.d.ts | 1287 +++
.../node_modules/@types/node/dgram.d.ts | 180 +
.../node_modules/@types/node/dns.d.ts | 516 +
.../node_modules/@types/node/domain.d.ts | 27 +
.../node_modules/@types/node/events.d.ts | 82 +
.../node_modules/@types/node/fs.d.ts | 2587 +++++
.../node_modules/@types/node/fs/promises.d.ts | 634 ++
.../node_modules/@types/node/globals.d.ts | 765 ++
.../@types/node/globals.global.d.ts | 1 +
.../node_modules/@types/node/http.d.ts | 581 ++
.../node_modules/@types/node/http2.d.ts | 1208 +++
.../node_modules/@types/node/https.d.ts | 274 +
.../node_modules/@types/node/index.d.ts | 98 +
.../node_modules/@types/node/inspector.d.ts | 3050 ++++++
.../node_modules/@types/node/module.d.ts | 56 +
.../node_modules/@types/node/net.d.ts | 324 +
.../node_modules/@types/node/os.d.ts | 243 +
.../node_modules/@types/node/package.json | 232 +
.../node_modules/@types/node/path.d.ts | 168 +
.../node_modules/@types/node/perf_hooks.d.ts | 274 +
.../node_modules/@types/node/process.d.ts | 452 +
.../node_modules/@types/node/punycode.d.ts | 78 +
.../node_modules/@types/node/querystring.d.ts | 41 +
.../node_modules/@types/node/readline.d.ts | 184 +
.../node_modules/@types/node/repl.d.ts | 404 +
.../node_modules/@types/node/stream.d.ts | 518 +
.../@types/node/string_decoder.d.ts | 10 +
.../node_modules/@types/node/timers.d.ts | 19 +
.../node_modules/@types/node/tls.d.ts | 866 ++
.../@types/node/trace_events.d.ts | 64 +
.../@types/node/ts4.8/assert.d.ts | 130 +
.../@types/node/ts4.8/async_hooks.d.ts | 237 +
.../@types/node/ts4.8/buffer.d.ts | 89 +
.../@types/node/ts4.8/child_process.d.ts | 682 ++
.../@types/node/ts4.8/cluster.d.ts | 300 +
.../@types/node/ts4.8/console.d.ts | 142 +
.../@types/node/ts4.8/constants.d.ts | 19 +
.../@types/node/ts4.8/crypto.d.ts | 1287 +++
.../node_modules/@types/node/ts4.8/dgram.d.ts | 180 +
.../node_modules/@types/node/ts4.8/dns.d.ts | 516 +
.../@types/node/ts4.8/domain.d.ts | 27 +
.../@types/node/ts4.8/events.d.ts | 82 +
.../node_modules/@types/node/ts4.8/fs.d.ts | 2587 +++++
.../@types/node/ts4.8/fs/promises.d.ts | 634 ++
.../@types/node/ts4.8/globals.d.ts | 763 ++
.../@types/node/ts4.8/globals.global.d.ts | 1 +
.../node_modules/@types/node/ts4.8/http.d.ts | 580 ++
.../node_modules/@types/node/ts4.8/http2.d.ts | 1208 +++
.../node_modules/@types/node/ts4.8/https.d.ts | 274 +
.../node_modules/@types/node/ts4.8/index.d.ts | 53 +
.../@types/node/ts4.8/inspector.d.ts | 3050 ++++++
.../@types/node/ts4.8/module.d.ts | 56 +
.../node_modules/@types/node/ts4.8/net.d.ts | 324 +
.../node_modules/@types/node/ts4.8/os.d.ts | 243 +
.../node_modules/@types/node/ts4.8/path.d.ts | 168 +
.../@types/node/ts4.8/perf_hooks.d.ts | 274 +
.../@types/node/ts4.8/process.d.ts | 452 +
.../@types/node/ts4.8/punycode.d.ts | 78 +
.../@types/node/ts4.8/querystring.d.ts | 41 +
.../@types/node/ts4.8/readline.d.ts | 184 +
.../node_modules/@types/node/ts4.8/repl.d.ts | 404 +
.../@types/node/ts4.8/stream.d.ts | 518 +
.../@types/node/ts4.8/string_decoder.d.ts | 10 +
.../@types/node/ts4.8/timers.d.ts | 19 +
.../node_modules/@types/node/ts4.8/tls.d.ts | 866 ++
.../@types/node/ts4.8/trace_events.d.ts | 64 +
.../node_modules/@types/node/ts4.8/tty.d.ts | 69 +
.../node_modules/@types/node/ts4.8/url.d.ts | 187 +
.../node_modules/@types/node/ts4.8/util.d.ts | 278 +
.../node_modules/@types/node/ts4.8/v8.d.ts | 189 +
.../node_modules/@types/node/ts4.8/vm.d.ts | 155 +
.../node_modules/@types/node/ts4.8/wasi.d.ts | 88 +
.../@types/node/ts4.8/worker_threads.d.ts | 241 +
.../node_modules/@types/node/ts4.8/zlib.d.ts | 364 +
.../node_modules/@types/node/tty.d.ts | 69 +
.../node_modules/@types/node/url.d.ts | 187 +
.../node_modules/@types/node/util.d.ts | 278 +
.../node_modules/@types/node/v8.d.ts | 189 +
.../node_modules/@types/node/vm.d.ts | 155 +
.../node_modules/@types/node/wasi.d.ts | 88 +
.../@types/node/worker_threads.d.ts | 241 +
.../node_modules/@types/node/zlib.d.ts | 364 +
.../node_modules/archiver-utils/CHANGELOG.md | 14 +
.../node_modules/archiver-utils/LICENSE | 22 +
.../node_modules/archiver-utils/README.md | 7 +
.../node_modules/archiver-utils/file.js | 209 +
.../node_modules/archiver-utils/index.js | 156 +
.../node_modules/readable-stream/.travis.yml | 34 +
.../readable-stream/CONTRIBUTING.md | 38 +
.../readable-stream/GOVERNANCE.md | 136 +
.../node_modules/readable-stream/LICENSE | 47 +
.../node_modules/readable-stream/README.md | 58 +
.../doc/wg-meetings/2015-01-30.md | 60 +
.../readable-stream/duplex-browser.js | 1 +
.../node_modules/readable-stream/duplex.js | 1 +
.../readable-stream/lib/_stream_duplex.js | 131 +
.../lib/_stream_passthrough.js | 47 +
.../readable-stream/lib/_stream_readable.js | 1019 ++
.../readable-stream/lib/_stream_transform.js | 214 +
.../readable-stream/lib/_stream_writable.js | 685 ++
.../lib/internal/streams/BufferList.js | 78 +
.../lib/internal/streams/destroy.js | 84 +
.../lib/internal/streams/stream-browser.js | 1 +
.../lib/internal/streams/stream.js | 1 +
.../node_modules/readable-stream/package.json | 52 +
.../readable-stream/passthrough.js | 1 +
.../readable-stream/readable-browser.js | 7 +
.../node_modules/readable-stream/readable.js | 19 +
.../node_modules/readable-stream/transform.js | 1 +
.../readable-stream/writable-browser.js | 1 +
.../node_modules/readable-stream/writable.js | 8 +
.../node_modules/safe-buffer/LICENSE | 21 +
.../node_modules/safe-buffer/README.md | 584 ++
.../node_modules/safe-buffer/index.d.ts | 187 +
.../node_modules/safe-buffer/index.js | 62 +
.../node_modules/safe-buffer/package.json | 37 +
.../node_modules/string_decoder/.travis.yml | 50 +
.../node_modules/string_decoder/LICENSE | 48 +
.../node_modules/string_decoder/README.md | 47 +
.../string_decoder/lib/string_decoder.js | 296 +
.../node_modules/string_decoder/package.json | 31 +
.../node_modules/archiver-utils/package.json | 54 +
.../node_modules/archiver/CHANGELOG.md | 246 +
.../node_modules/archiver/LICENSE | 22 +
.../node_modules/archiver/README.md | 94 +
.../node_modules/archiver/index.js | 84 +
.../node_modules/archiver/lib/core.js | 974 ++
.../node_modules/archiver/lib/error.js | 40 +
.../node_modules/archiver/lib/plugins/json.js | 110 +
.../node_modules/archiver/lib/plugins/tar.js | 167 +
.../node_modules/archiver/lib/plugins/zip.js | 120 +
.../node_modules/archiver/package.json | 60 +
.../node_modules/async/CHANGELOG.md | 351 +
.../node_modules/async/LICENSE | 19 +
.../node_modules/async/README.md | 59 +
.../node_modules/async/all.js | 119 +
.../node_modules/async/allLimit.js | 46 +
.../node_modules/async/allSeries.js | 45 +
.../node_modules/async/any.js | 122 +
.../node_modules/async/anyLimit.js | 47 +
.../node_modules/async/anySeries.js | 46 +
.../node_modules/async/apply.js | 11 +
.../node_modules/async/applyEach.js | 57 +
.../node_modules/async/applyEachSeries.js | 37 +
.../node_modules/async/asyncify.js | 118 +
.../node_modules/async/auto.js | 333 +
.../node_modules/async/autoInject.js | 182 +
.../node_modules/async/bower.json | 17 +
.../node_modules/async/cargo.js | 63 +
.../node_modules/async/cargoQueue.js | 71 +
.../node_modules/async/compose.js | 55 +
.../node_modules/async/concat.js | 115 +
.../node_modules/async/concatLimit.js | 60 +
.../node_modules/async/concatSeries.js | 41 +
.../node_modules/async/constant.js | 14 +
.../node_modules/async/detect.js | 96 +
.../node_modules/async/detectLimit.js | 48 +
.../node_modules/async/detectSeries.js | 47 +
.../node_modules/async/dir.js | 43 +
.../node_modules/async/doDuring.js | 68 +
.../node_modules/async/doUntil.js | 46 +
.../node_modules/async/doWhilst.js | 68 +
.../node_modules/async/during.js | 78 +
.../node_modules/async/each.js | 129 +
.../node_modules/async/eachLimit.js | 50 +
.../node_modules/async/eachOf.js | 185 +
.../node_modules/async/eachOfLimit.js | 47 +
.../node_modules/async/eachOfSeries.js | 39 +
.../node_modules/async/eachSeries.js | 44 +
.../node_modules/async/ensureAsync.js | 67 +
.../node_modules/async/every.js | 119 +
.../node_modules/async/everyLimit.js | 46 +
.../node_modules/async/everySeries.js | 45 +
.../node_modules/async/filter.js | 93 +
.../node_modules/async/filterLimit.js | 45 +
.../node_modules/async/filterSeries.js | 43 +
.../node_modules/async/find.js | 96 +
.../node_modules/async/findLimit.js | 48 +
.../node_modules/async/findSeries.js | 47 +
.../node_modules/async/flatMap.js | 115 +
.../node_modules/async/flatMapLimit.js | 60 +
.../node_modules/async/flatMapSeries.js | 41 +
.../node_modules/async/foldl.js | 153 +
.../node_modules/async/foldr.js | 41 +
.../node_modules/async/forEach.js | 129 +
.../node_modules/async/forEachLimit.js | 50 +
.../node_modules/async/forEachOf.js | 185 +
.../node_modules/async/forEachOfLimit.js | 47 +
.../node_modules/async/forEachOfSeries.js | 39 +
.../node_modules/async/forEachSeries.js | 44 +
.../node_modules/async/forever.js | 68 +
.../node_modules/async/groupBy.js | 108 +
.../node_modules/async/groupByLimit.js | 71 +
.../node_modules/async/groupBySeries.js | 36 +
.../node_modules/async/index.js | 588 ++
.../node_modules/async/inject.js | 153 +
.../async/internal/DoublyLinkedList.js | 92 +
.../node_modules/async/internal/Heap.js | 120 +
.../node_modules/async/internal/applyEach.js | 29 +
.../async/internal/asyncEachOfLimit.js | 75 +
.../node_modules/async/internal/awaitify.js | 28 +
.../node_modules/async/internal/breakLoop.js | 10 +
.../async/internal/consoleFunc.js | 31 +
.../async/internal/createTester.js | 40 +
.../async/internal/eachOfLimit.js | 90 +
.../node_modules/async/internal/filter.js | 55 +
.../async/internal/getIterator.js | 11 +
.../async/internal/initialParams.js | 14 +
.../async/internal/isArrayLike.js | 10 +
.../node_modules/async/internal/iterator.js | 57 +
.../node_modules/async/internal/map.js | 30 +
.../node_modules/async/internal/once.js | 17 +
.../node_modules/async/internal/onlyOnce.js | 15 +
.../node_modules/async/internal/parallel.js | 34 +
.../async/internal/promiseCallback.js | 23 +
.../node_modules/async/internal/queue.js | 294 +
.../node_modules/async/internal/range.js | 14 +
.../node_modules/async/internal/reject.js | 26 +
.../async/internal/setImmediate.js | 34 +
.../async/internal/withoutIndex.js | 10 +
.../node_modules/async/internal/wrapAsync.js | 34 +
.../node_modules/async/log.js | 41 +
.../node_modules/async/map.js | 142 +
.../node_modules/async/mapLimit.js | 45 +
.../node_modules/async/mapSeries.js | 44 +
.../node_modules/async/mapValues.js | 152 +
.../node_modules/async/mapValuesLimit.js | 61 +
.../node_modules/async/mapValuesSeries.js | 37 +
.../node_modules/async/memoize.js | 91 +
.../node_modules/async/nextTick.js | 52 +
.../node_modules/async/package.json | 75 +
.../node_modules/async/parallel.js | 180 +
.../node_modules/async/parallelLimit.js | 41 +
.../node_modules/async/priorityQueue.js | 60 +
.../node_modules/async/queue.js | 24 +
.../node_modules/async/race.js | 67 +
.../node_modules/async/reduce.js | 153 +
.../node_modules/async/reduceRight.js | 41 +
.../node_modules/async/reflect.js | 78 +
.../node_modules/async/reflectAll.js | 93 +
.../node_modules/async/reject.js | 87 +
.../node_modules/async/rejectLimit.js | 45 +
.../node_modules/async/rejectSeries.js | 43 +
.../node_modules/async/retry.js | 159 +
.../node_modules/async/retryable.js | 77 +
.../node_modules/async/select.js | 93 +
.../node_modules/async/selectLimit.js | 45 +
.../node_modules/async/selectSeries.js | 43 +
.../node_modules/async/seq.js | 79 +
.../node_modules/async/series.js | 186 +
.../node_modules/async/setImmediate.js | 45 +
.../node_modules/async/some.js | 122 +
.../node_modules/async/someLimit.js | 47 +
.../node_modules/async/someSeries.js | 46 +
.../node_modules/async/sortBy.js | 190 +
.../node_modules/async/timeout.js | 89 +
.../node_modules/async/times.js | 50 +
.../node_modules/async/timesLimit.js | 43 +
.../node_modules/async/timesSeries.js | 32 +
.../node_modules/async/transform.js | 173 +
.../node_modules/async/tryEach.js | 78 +
.../node_modules/async/unmemoize.js | 25 +
.../node_modules/async/until.js | 61 +
.../node_modules/async/waterfall.js | 105 +
.../node_modules/async/whilst.js | 78 +
.../node_modules/async/wrapSync.js | 118 +
.../node_modules/asynckit/LICENSE | 21 +
.../node_modules/asynckit/README.md | 233 +
.../node_modules/asynckit/bench.js | 76 +
.../node_modules/asynckit/index.js | 6 +
.../node_modules/asynckit/lib/abort.js | 29 +
.../node_modules/asynckit/lib/async.js | 34 +
.../node_modules/asynckit/lib/defer.js | 26 +
.../node_modules/asynckit/lib/iterate.js | 75 +
.../asynckit/lib/readable_asynckit.js | 91 +
.../asynckit/lib/readable_parallel.js | 25 +
.../asynckit/lib/readable_serial.js | 25 +
.../asynckit/lib/readable_serial_ordered.js | 29 +
.../node_modules/asynckit/lib/state.js | 37 +
.../node_modules/asynckit/lib/streamify.js | 141 +
.../node_modules/asynckit/lib/terminator.js | 29 +
.../node_modules/asynckit/package.json | 63 +
.../node_modules/asynckit/parallel.js | 43 +
.../node_modules/asynckit/serial.js | 17 +
.../node_modules/asynckit/serialOrdered.js | 75 +
.../node_modules/asynckit/stream.js | 21 +
.../node_modules/axios/CHANGELOG.md | 1416 +++
.../node_modules/axios/LICENSE | 7 +
.../node_modules/axios/MIGRATION_GUIDE.md | 877 ++
.../node_modules/axios/README.md | 1918 ++++
.../node_modules/axios/index.d.cts | 590 ++
.../node_modules/axios/index.d.ts | 809 ++
.../node_modules/axios/index.js | 43 +
.../node_modules/axios/lib/adapters/README.md | 37 +
.../axios/lib/adapters/adapters.js | 126 +
.../node_modules/axios/lib/adapters/fetch.js | 288 +
.../node_modules/axios/lib/adapters/http.js | 898 ++
.../node_modules/axios/lib/adapters/xhr.js | 200 +
.../node_modules/axios/lib/axios.js | 89 +
.../axios/lib/cancel/CancelToken.js | 135 +
.../axios/lib/cancel/CanceledError.js | 22 +
.../node_modules/axios/lib/cancel/isCancel.js | 5 +
.../node_modules/axios/lib/core/Axios.js | 240 +
.../node_modules/axios/lib/core/AxiosError.js | 73 +
.../axios/lib/core/AxiosHeaders.js | 314 +
.../axios/lib/core/InterceptorManager.js | 72 +
.../node_modules/axios/lib/core/README.md | 8 +
.../axios/lib/core/buildFullPath.js | 22 +
.../axios/lib/core/dispatchRequest.js | 81 +
.../axios/lib/core/mergeConfig.js | 105 +
.../node_modules/axios/lib/core/settle.js | 27 +
.../axios/lib/core/transformData.js | 28 +
.../node_modules/axios/lib/defaults/index.js | 161 +
.../axios/lib/defaults/transitional.js | 7 +
.../node_modules/axios/lib/env/README.md | 3 +
.../axios/lib/env/classes/FormData.js | 2 +
.../node_modules/axios/lib/env/data.js | 1 +
.../axios/lib/helpers/AxiosTransformStream.js | 143 +
.../axios/lib/helpers/AxiosURLSearchParams.js | 58 +
.../axios/lib/helpers/HttpStatusCode.js | 77 +
.../node_modules/axios/lib/helpers/README.md | 7 +
.../lib/helpers/ZlibHeaderTransformStream.js | 28 +
.../node_modules/axios/lib/helpers/bind.js | 14 +
.../axios/lib/helpers/buildURL.js | 64 +
.../axios/lib/helpers/callbackify.js | 16 +
.../axios/lib/helpers/combineURLs.js | 15 +
.../axios/lib/helpers/composeSignals.js | 48 +
.../node_modules/axios/lib/helpers/cookies.js | 53 +
.../axios/lib/helpers/deprecatedMethod.js | 26 +
.../helpers/estimateDataURLDecodedBytes.js | 73 +
.../axios/lib/helpers/formDataToJSON.js | 95 +
.../axios/lib/helpers/formDataToStream.js | 112 +
.../axios/lib/helpers/fromDataURI.js | 53 +
.../axios/lib/helpers/isAbsoluteURL.js | 15 +
.../axios/lib/helpers/isAxiosError.js | 14 +
.../axios/lib/helpers/isURLSameOrigin.js | 14 +
.../node_modules/axios/lib/helpers/null.js | 2 +
.../axios/lib/helpers/parseHeaders.js | 55 +
.../axios/lib/helpers/parseProtocol.js | 6 +
.../axios/lib/helpers/progressEventReducer.js | 44 +
.../axios/lib/helpers/readBlob.js | 15 +
.../axios/lib/helpers/resolveConfig.js | 61 +
.../axios/lib/helpers/speedometer.js | 55 +
.../node_modules/axios/lib/helpers/spread.js | 28 +
.../axios/lib/helpers/throttle.js | 44 +
.../axios/lib/helpers/toFormData.js | 223 +
.../axios/lib/helpers/toURLEncodedForm.js | 19 +
.../axios/lib/helpers/trackStream.js | 87 +
.../axios/lib/helpers/validator.js | 99 +
.../lib/platform/browser/classes/Blob.js | 3 +
.../lib/platform/browser/classes/FormData.js | 3 +
.../browser/classes/URLSearchParams.js | 4 +
.../axios/lib/platform/browser/index.js | 13 +
.../axios/lib/platform/common/utils.js | 51 +
.../node_modules/axios/lib/platform/index.js | 7 +
.../lib/platform/node/classes/FormData.js | 3 +
.../platform/node/classes/URLSearchParams.js | 4 +
.../axios/lib/platform/node/index.js | 38 +
.../node_modules/axios/lib/utils.js | 799 ++
.../node_modules/axios/package.json | 263 +
.../balanced-match/.github/FUNDING.yml | 2 +
.../node_modules/balanced-match/LICENSE.md | 21 +
.../node_modules/balanced-match/README.md | 97 +
.../node_modules/balanced-match/index.js | 62 +
.../node_modules/balanced-match/package.json | 48 +
.../node_modules/base64-js/LICENSE | 21 +
.../node_modules/base64-js/README.md | 34 +
.../node_modules/base64-js/base64js.min.js | 1 +
.../node_modules/base64-js/index.d.ts | 3 +
.../node_modules/base64-js/index.js | 150 +
.../node_modules/base64-js/package.json | 47 +
.../node_modules/big-integer/BigInteger.d.ts | 2393 +++++
.../node_modules/big-integer/BigInteger.js | 1453 +++
.../big-integer/BigInteger.min.js | 1 +
.../node_modules/big-integer/LICENSE | 24 +
.../node_modules/big-integer/README.md | 589 ++
.../node_modules/big-integer/bower.json | 29 +
.../node_modules/big-integer/package.json | 48 +
.../node_modules/big-integer/tsconfig.json | 24 +
.../node_modules/binary/.npmignore | 1 +
.../node_modules/binary/.travis.yml | 4 +
.../node_modules/binary/README.markdown | 177 +
.../node_modules/binary/example/buf.js | 11 +
.../node_modules/binary/example/parse.js | 10 +
.../node_modules/binary/example/stream.js | 12 +
.../node_modules/binary/index.js | 397 +
.../node_modules/binary/lib/vars.js | 28 +
.../node_modules/binary/package.json | 38 +
.../node_modules/binary/perf/loop.js | 92 +
.../node_modules/binary/perf/small.js | 80 +
.../node_modules/bl/.travis.yml | 17 +
.../node_modules/bl/BufferList.js | 396 +
.../node_modules/bl/LICENSE.md | 13 +
.../node_modules/bl/README.md | 247 +
.../node_modules/bl/bl.js | 84 +
.../node_modules/bl/package.json | 37 +
.../node_modules/bluebird/LICENSE | 21 +
.../node_modules/bluebird/README.md | 51 +
.../node_modules/bluebird/changelog.md | 1 +
.../bluebird/js/browser/bluebird.core.js | 3739 ++++++++
.../bluebird/js/browser/bluebird.core.min.js | 31 +
.../bluebird/js/browser/bluebird.js | 5581 +++++++++++
.../bluebird/js/browser/bluebird.min.js | 31 +
.../node_modules/bluebird/js/release/any.js | 21 +
.../bluebird/js/release/assert.js | 55 +
.../node_modules/bluebird/js/release/async.js | 161 +
.../node_modules/bluebird/js/release/bind.js | 67 +
.../bluebird/js/release/bluebird.js | 11 +
.../bluebird/js/release/call_get.js | 123 +
.../bluebird/js/release/cancel.js | 129 +
.../bluebird/js/release/catch_filter.js | 42 +
.../bluebird/js/release/context.js | 69 +
.../bluebird/js/release/debuggability.js | 916 ++
.../bluebird/js/release/direct_resolve.js | 46 +
.../node_modules/bluebird/js/release/each.js | 30 +
.../bluebird/js/release/errors.js | 116 +
.../node_modules/bluebird/js/release/es5.js | 80 +
.../bluebird/js/release/filter.js | 12 +
.../bluebird/js/release/finally.js | 111 +
.../bluebird/js/release/generators.js | 223 +
.../node_modules/bluebird/js/release/join.js | 168 +
.../node_modules/bluebird/js/release/map.js | 168 +
.../bluebird/js/release/method.js | 55 +
.../bluebird/js/release/nodeback.js | 51 +
.../bluebird/js/release/nodeify.js | 58 +
.../bluebird/js/release/promise.js | 773 ++
.../bluebird/js/release/promise_array.js | 184 +
.../bluebird/js/release/promisify.js | 314 +
.../node_modules/bluebird/js/release/props.js | 118 +
.../node_modules/bluebird/js/release/queue.js | 73 +
.../node_modules/bluebird/js/release/race.js | 49 +
.../bluebird/js/release/reduce.js | 172 +
.../bluebird/js/release/schedule.js | 61 +
.../bluebird/js/release/settle.js | 43 +
.../node_modules/bluebird/js/release/some.js | 148 +
.../js/release/synchronous_inspection.js | 103 +
.../bluebird/js/release/thenables.js | 86 +
.../bluebird/js/release/timers.js | 93 +
.../node_modules/bluebird/js/release/using.js | 226 +
.../node_modules/bluebird/js/release/util.js | 379 +
.../node_modules/bluebird/package.json | 76 +
.../node_modules/brace-expansion/LICENSE | 21 +
.../node_modules/brace-expansion/README.md | 129 +
.../node_modules/brace-expansion/index.js | 201 +
.../node_modules/brace-expansion/package.json | 50 +
.../node_modules/buffer-crc32/LICENSE | 19 +
.../node_modules/buffer-crc32/README.md | 47 +
.../node_modules/buffer-crc32/index.js | 111 +
.../node_modules/buffer-crc32/package.json | 39 +
.../buffer-indexof-polyfill/.eslintrc | 33 +
.../buffer-indexof-polyfill/.travis.yml | 17 +
.../buffer-indexof-polyfill/LICENSE | 22 +
.../buffer-indexof-polyfill/README.md | 33 +
.../buffer-indexof-polyfill/index.js | 73 +
.../buffer-indexof-polyfill/init-buffer.js | 8 +
.../buffer-indexof-polyfill/package.json | 34 +
.../node_modules/buffer/AUTHORS.md | 70 +
.../node_modules/buffer/LICENSE | 21 +
.../node_modules/buffer/README.md | 410 +
.../node_modules/buffer/index.d.ts | 186 +
.../node_modules/buffer/index.js | 1817 ++++
.../node_modules/buffer/package.json | 96 +
.../node_modules/buffers/README.markdown | 122 +
.../node_modules/buffers/examples/slice.js | 9 +
.../node_modules/buffers/examples/splice.js | 17 +
.../node_modules/buffers/index.js | 269 +
.../node_modules/buffers/package.json | 14 +
.../call-bind-apply-helpers/.eslintrc | 17 +
.../.github/FUNDING.yml | 12 +
.../call-bind-apply-helpers/.nycrc | 9 +
.../call-bind-apply-helpers/CHANGELOG.md | 30 +
.../call-bind-apply-helpers/LICENSE | 21 +
.../call-bind-apply-helpers/README.md | 62 +
.../call-bind-apply-helpers/actualApply.d.ts | 1 +
.../call-bind-apply-helpers/actualApply.js | 10 +
.../call-bind-apply-helpers/applyBind.d.ts | 19 +
.../call-bind-apply-helpers/applyBind.js | 10 +
.../functionApply.d.ts | 1 +
.../call-bind-apply-helpers/functionApply.js | 4 +
.../call-bind-apply-helpers/functionCall.d.ts | 1 +
.../call-bind-apply-helpers/functionCall.js | 4 +
.../call-bind-apply-helpers/index.d.ts | 64 +
.../call-bind-apply-helpers/index.js | 15 +
.../call-bind-apply-helpers/package.json | 85 +
.../call-bind-apply-helpers/reflectApply.d.ts | 3 +
.../call-bind-apply-helpers/reflectApply.js | 4 +
.../call-bind-apply-helpers/tsconfig.json | 9 +
.../node_modules/chainsaw/.npmignore | 1 +
.../node_modules/chainsaw/README.markdown | 157 +
.../node_modules/chainsaw/examples/add_do.js | 25 +
.../node_modules/chainsaw/examples/prompt.js | 67 +
.../node_modules/chainsaw/index.js | 145 +
.../node_modules/chainsaw/package.json | 23 +
.../node_modules/combined-stream/License | 19 +
.../node_modules/combined-stream/Readme.md | 138 +
.../combined-stream/lib/combined_stream.js | 208 +
.../node_modules/combined-stream/package.json | 25 +
.../node_modules/combined-stream/yarn.lock | 17 +
.../compress-commons/CHANGELOG.md | 60 +
.../node_modules/compress-commons/LICENSE | 22 +
.../node_modules/compress-commons/README.md | 25 +
.../lib/archivers/archive-entry.js | 16 +
.../lib/archivers/archive-output-stream.js | 117 +
.../lib/archivers/zip/constants.js | 71 +
.../lib/archivers/zip/general-purpose-bit.js | 101 +
.../lib/archivers/zip/unix-stat.js | 53 +
.../lib/archivers/zip/util.js | 74 +
.../lib/archivers/zip/zip-archive-entry.js | 413 +
.../zip/zip-archive-output-stream.js | 440 +
.../compress-commons/lib/compress-commons.js | 13 +
.../compress-commons/lib/util/index.js | 30 +
.../compress-commons/package.json | 45 +
.../node_modules/concat-map/.travis.yml | 4 +
.../node_modules/concat-map/LICENSE | 18 +
.../node_modules/concat-map/README.markdown | 62 +
.../node_modules/concat-map/example/map.js | 6 +
.../node_modules/concat-map/index.js | 13 +
.../node_modules/concat-map/package.json | 43 +
.../node_modules/core-util-is/LICENSE | 19 +
.../node_modules/core-util-is/README.md | 3 +
.../node_modules/core-util-is/lib/util.js | 107 +
.../node_modules/core-util-is/package.json | 38 +
.../node_modules/crc-32/LICENSE | 201 +
.../node_modules/crc-32/README.md | 200 +
.../node_modules/crc-32/bin/crc32.njs | 105 +
.../node_modules/crc-32/crc32.js | 115 +
.../node_modules/crc-32/crc32c.js | 115 +
.../node_modules/crc-32/package.json | 43 +
.../node_modules/crc-32/types/index.d.ts | 14 +
.../node_modules/crc-32/types/tsconfig.json | 14 +
.../node_modules/crc-32/types/tslint.json | 11 +
.../node_modules/crc32-stream/CHANGELOG.md | 59 +
.../node_modules/crc32-stream/LICENSE | 22 +
.../node_modules/crc32-stream/README.md | 79 +
.../crc32-stream/lib/crc32-stream.js | 48 +
.../crc32-stream/lib/deflate-crc32-stream.js | 62 +
.../node_modules/crc32-stream/lib/index.js | 14 +
.../node_modules/crc32-stream/package.json | 45 +
.../node_modules/dayjs/.editorconfig | 7 +
.../node_modules/dayjs/CHANGELOG.md | 992 ++
.../node_modules/dayjs/LICENSE | 21 +
.../node_modules/dayjs/README.md | 202 +
.../node_modules/dayjs/dayjs.min.js | 1 +
.../node_modules/dayjs/esm/constant.js | 25 +
.../node_modules/dayjs/esm/index.d.ts | 429 +
.../node_modules/dayjs/esm/index.js | 541 ++
.../node_modules/dayjs/esm/locale/af.js | 39 +
.../node_modules/dayjs/esm/locale/am.js | 40 +
.../node_modules/dayjs/esm/locale/ar-dz.js | 41 +
.../node_modules/dayjs/esm/locale/ar-iq.js | 42 +
.../node_modules/dayjs/esm/locale/ar-kw.js | 41 +
.../node_modules/dayjs/esm/locale/ar-ly.js | 27 +
.../node_modules/dayjs/esm/locale/ar-ma.js | 42 +
.../node_modules/dayjs/esm/locale/ar-sa.js | 41 +
.../node_modules/dayjs/esm/locale/ar-tn.js | 42 +
.../node_modules/dayjs/esm/locale/ar.js | 81 +
.../node_modules/dayjs/esm/locale/az.js | 39 +
.../node_modules/dayjs/esm/locale/be.js | 102 +
.../node_modules/dayjs/esm/locale/bg.js | 55 +
.../node_modules/dayjs/esm/locale/bi.js | 39 +
.../node_modules/dayjs/esm/locale/bm.js | 39 +
.../node_modules/dayjs/esm/locale/bn-bd.js | 81 +
.../node_modules/dayjs/esm/locale/bn.js | 72 +
.../node_modules/dayjs/esm/locale/bo.js | 38 +
.../node_modules/dayjs/esm/locale/br.js | 93 +
.../node_modules/dayjs/esm/locale/bs.js | 24 +
.../node_modules/dayjs/esm/locale/ca.js | 44 +
.../node_modules/dayjs/esm/locale/cs.js | 120 +
.../node_modules/dayjs/esm/locale/cv.js | 24 +
.../node_modules/dayjs/esm/locale/cy.js | 39 +
.../node_modules/dayjs/esm/locale/da.js | 40 +
.../node_modules/dayjs/esm/locale/de-at.js | 63 +
.../node_modules/dayjs/esm/locale/de-ch.js | 63 +
.../node_modules/dayjs/esm/locale/de.js | 64 +
.../node_modules/dayjs/esm/locale/dv.js | 39 +
.../node_modules/dayjs/esm/locale/el.js | 39 +
.../node_modules/dayjs/esm/locale/en-au.js | 41 +
.../node_modules/dayjs/esm/locale/en-ca.js | 38 +
.../node_modules/dayjs/esm/locale/en-gb.js | 42 +
.../node_modules/dayjs/esm/locale/en-ie.js | 39 +
.../node_modules/dayjs/esm/locale/en-il.js | 38 +
.../node_modules/dayjs/esm/locale/en-in.js | 42 +
.../node_modules/dayjs/esm/locale/en-nz.js | 41 +
.../node_modules/dayjs/esm/locale/en-sg.js | 39 +
.../node_modules/dayjs/esm/locale/en-tt.js | 42 +
.../node_modules/dayjs/esm/locale/en.js | 12 +
.../node_modules/dayjs/esm/locale/eo.js | 39 +
.../node_modules/dayjs/esm/locale/es-do.js | 39 +
.../node_modules/dayjs/esm/locale/es-mx.js | 38 +
.../node_modules/dayjs/esm/locale/es-pr.js | 39 +
.../node_modules/dayjs/esm/locale/es-us.js | 38 +
.../node_modules/dayjs/esm/locale/es.js | 39 +
.../node_modules/dayjs/esm/locale/et.js | 65 +
.../node_modules/dayjs/esm/locale/eu.js | 43 +
.../node_modules/dayjs/esm/locale/fa.js | 39 +
.../node_modules/dayjs/esm/locale/fi.js | 88 +
.../node_modules/dayjs/esm/locale/fo.js | 39 +
.../node_modules/dayjs/esm/locale/fr-ca.js | 38 +
.../node_modules/dayjs/esm/locale/fr-ch.js | 39 +
.../node_modules/dayjs/esm/locale/fr.js | 41 +
.../node_modules/dayjs/esm/locale/fy.js | 39 +
.../node_modules/dayjs/esm/locale/ga.js | 39 +
.../node_modules/dayjs/esm/locale/gd.js | 39 +
.../node_modules/dayjs/esm/locale/gl.js | 39 +
.../node_modules/dayjs/esm/locale/gom-latn.js | 25 +
.../node_modules/dayjs/esm/locale/gu.js | 38 +
.../node_modules/dayjs/esm/locale/he.js | 78 +
.../node_modules/dayjs/esm/locale/hi.js | 38 +
.../node_modules/dayjs/esm/locale/hr.js | 53 +
.../node_modules/dayjs/esm/locale/ht.js | 38 +
.../node_modules/dayjs/esm/locale/hu.js | 61 +
.../node_modules/dayjs/esm/locale/hy-am.js | 39 +
.../node_modules/dayjs/esm/locale/id.js | 39 +
.../node_modules/dayjs/esm/locale/index.d.ts | 11 +
.../node_modules/dayjs/esm/locale/is.js | 68 +
.../node_modules/dayjs/esm/locale/it-ch.js | 39 +
.../node_modules/dayjs/esm/locale/it.js | 39 +
.../node_modules/dayjs/esm/locale/ja.js | 45 +
.../node_modules/dayjs/esm/locale/jv.js | 39 +
.../node_modules/dayjs/esm/locale/ka.js | 39 +
.../node_modules/dayjs/esm/locale/kk.js | 39 +
.../node_modules/dayjs/esm/locale/km.js | 39 +
.../node_modules/dayjs/esm/locale/kn.js | 38 +
.../node_modules/dayjs/esm/locale/ko.js | 45 +
.../node_modules/dayjs/esm/locale/ku.js | 77 +
.../node_modules/dayjs/esm/locale/ky.js | 39 +
.../node_modules/dayjs/esm/locale/lb.js | 24 +
.../node_modules/dayjs/esm/locale/lo.js | 38 +
.../node_modules/dayjs/esm/locale/lt.js | 70 +
.../node_modules/dayjs/esm/locale/lv.js | 39 +
.../node_modules/dayjs/esm/locale/me.js | 24 +
.../node_modules/dayjs/esm/locale/mi.js | 39 +
.../node_modules/dayjs/esm/locale/mk.js | 39 +
.../node_modules/dayjs/esm/locale/ml.js | 38 +
.../node_modules/dayjs/esm/locale/mn.js | 38 +
.../node_modules/dayjs/esm/locale/mr.js | 23 +
.../node_modules/dayjs/esm/locale/ms-my.js | 39 +
.../node_modules/dayjs/esm/locale/ms.js | 39 +
.../node_modules/dayjs/esm/locale/mt.js | 39 +
.../node_modules/dayjs/esm/locale/my.js | 39 +
.../node_modules/dayjs/esm/locale/nb.js | 40 +
.../node_modules/dayjs/esm/locale/ne.js | 40 +
.../node_modules/dayjs/esm/locale/nl-be.js | 39 +
.../node_modules/dayjs/esm/locale/nl.js | 40 +
.../node_modules/dayjs/esm/locale/nn.js | 39 +
.../node_modules/dayjs/esm/locale/oc-lnc.js | 39 +
.../node_modules/dayjs/esm/locale/pa-in.js | 38 +
.../node_modules/dayjs/esm/locale/pl.js | 87 +
.../node_modules/dayjs/esm/locale/pt-br.js | 38 +
.../node_modules/dayjs/esm/locale/pt.js | 40 +
.../node_modules/dayjs/esm/locale/rn.js | 39 +
.../node_modules/dayjs/esm/locale/ro.js | 39 +
.../node_modules/dayjs/esm/locale/ru.js | 99 +
.../node_modules/dayjs/esm/locale/rw.js | 35 +
.../node_modules/dayjs/esm/locale/sd.js | 39 +
.../node_modules/dayjs/esm/locale/se.js | 39 +
.../node_modules/dayjs/esm/locale/si.js | 38 +
.../node_modules/dayjs/esm/locale/sk.js | 121 +
.../node_modules/dayjs/esm/locale/sl.js | 141 +
.../node_modules/dayjs/esm/locale/sq.js | 39 +
.../node_modules/dayjs/esm/locale/sr-cyrl.js | 74 +
.../node_modules/dayjs/esm/locale/sr.js | 74 +
.../node_modules/dayjs/esm/locale/ss.js | 39 +
.../node_modules/dayjs/esm/locale/sv-fi.js | 46 +
.../node_modules/dayjs/esm/locale/sv.js | 44 +
.../node_modules/dayjs/esm/locale/sw.js | 39 +
.../node_modules/dayjs/esm/locale/ta.js | 38 +
.../node_modules/dayjs/esm/locale/te.js | 38 +
.../node_modules/dayjs/esm/locale/tet.js | 39 +
.../node_modules/dayjs/esm/locale/tg.js | 39 +
.../node_modules/dayjs/esm/locale/th.js | 38 +
.../node_modules/dayjs/esm/locale/tk.js | 39 +
.../node_modules/dayjs/esm/locale/tl-ph.js | 39 +
.../node_modules/dayjs/esm/locale/tlh.js | 24 +
.../node_modules/dayjs/esm/locale/tr.js | 39 +
.../node_modules/dayjs/esm/locale/types.d.ts | 33 +
.../node_modules/dayjs/esm/locale/tzl.js | 24 +
.../node_modules/dayjs/esm/locale/tzm-latn.js | 39 +
.../node_modules/dayjs/esm/locale/tzm.js | 39 +
.../node_modules/dayjs/esm/locale/ug-cn.js | 39 +
.../node_modules/dayjs/esm/locale/uk.js | 77 +
.../node_modules/dayjs/esm/locale/ur.js | 39 +
.../node_modules/dayjs/esm/locale/uz-latn.js | 39 +
.../node_modules/dayjs/esm/locale/uz.js | 39 +
.../node_modules/dayjs/esm/locale/vi.js | 43 +
.../node_modules/dayjs/esm/locale/x-pseudo.js | 39 +
.../node_modules/dayjs/esm/locale/yo.js | 39 +
.../node_modules/dayjs/esm/locale/zh-cn.js | 67 +
.../node_modules/dayjs/esm/locale/zh-hk.js | 65 +
.../node_modules/dayjs/esm/locale/zh-tw.js | 65 +
.../node_modules/dayjs/esm/locale/zh.js | 67 +
.../esm/plugin/advancedFormat/index.d.ts | 4 +
.../dayjs/esm/plugin/advancedFormat/index.js | 66 +
.../dayjs/esm/plugin/arraySupport/index.d.ts | 10 +
.../dayjs/esm/plugin/arraySupport/index.js | 33 +
.../dayjs/esm/plugin/badMutable/index.d.ts | 4 +
.../dayjs/esm/plugin/badMutable/index.js | 61 +
.../dayjs/esm/plugin/bigIntSupport/index.d.ts | 11 +
.../dayjs/esm/plugin/bigIntSupport/index.js | 32 +
.../dayjs/esm/plugin/buddhistEra/index.d.ts | 4 +
.../dayjs/esm/plugin/buddhistEra/index.js | 21 +
.../dayjs/esm/plugin/calendar/index.d.ts | 10 +
.../dayjs/esm/plugin/calendar/index.js | 32 +
.../esm/plugin/customParseFormat/index.d.ts | 8 +
.../esm/plugin/customParseFormat/index.js | 333 +
.../dayjs/esm/plugin/dayOfYear/index.d.ts | 11 +
.../dayjs/esm/plugin/dayOfYear/index.js | 9 +
.../dayjs/esm/plugin/devHelper/index.d.ts | 4 +
.../dayjs/esm/plugin/devHelper/index.js | 50 +
.../dayjs/esm/plugin/duration/index.d.ts | 88 +
.../dayjs/esm/plugin/duration/index.js | 356 +
.../dayjs/esm/plugin/isBetween/index.d.ts | 10 +
.../dayjs/esm/plugin/isBetween/index.js | 10 +
.../dayjs/esm/plugin/isLeapYear/index.d.ts | 10 +
.../dayjs/esm/plugin/isLeapYear/index.js | 7 +
.../dayjs/esm/plugin/isMoment/index.d.ts | 10 +
.../dayjs/esm/plugin/isMoment/index.js | 5 +
.../dayjs/esm/plugin/isSameOrAfter/index.d.ts | 10 +
.../dayjs/esm/plugin/isSameOrAfter/index.js | 5 +
.../esm/plugin/isSameOrBefore/index.d.ts | 10 +
.../dayjs/esm/plugin/isSameOrBefore/index.js | 5 +
.../dayjs/esm/plugin/isToday/index.d.ts | 10 +
.../dayjs/esm/plugin/isToday/index.js | 9 +
.../dayjs/esm/plugin/isTomorrow/index.d.ts | 10 +
.../dayjs/esm/plugin/isTomorrow/index.js | 9 +
.../dayjs/esm/plugin/isYesterday/index.d.ts | 10 +
.../dayjs/esm/plugin/isYesterday/index.js | 9 +
.../dayjs/esm/plugin/isoWeek/index.d.ts | 27 +
.../dayjs/esm/plugin/isoWeek/index.js | 57 +
.../esm/plugin/isoWeeksInYear/index.d.ts | 10 +
.../dayjs/esm/plugin/isoWeeksInYear/index.js | 15 +
.../dayjs/esm/plugin/localeData/index.d.ts | 44 +
.../dayjs/esm/plugin/localeData/index.js | 114 +
.../esm/plugin/localizedFormat/index.d.ts | 4 +
.../dayjs/esm/plugin/localizedFormat/index.js | 20 +
.../dayjs/esm/plugin/localizedFormat/utils.js | 20 +
.../dayjs/esm/plugin/minMax/index.d.ts | 22 +
.../dayjs/esm/plugin/minMax/index.js | 39 +
.../dayjs/esm/plugin/negativeYear/index.d.ts | 4 +
.../dayjs/esm/plugin/negativeYear/index.js | 36 +
.../dayjs/esm/plugin/objectSupport/index.d.ts | 48 +
.../dayjs/esm/plugin/objectSupport/index.js | 97 +
.../dayjs/esm/plugin/pluralGetSet/index.d.ts | 44 +
.../dayjs/esm/plugin/pluralGetSet/index.js | 7 +
.../esm/plugin/preParsePostFormat/index.d.ts | 4 +
.../esm/plugin/preParsePostFormat/index.js | 40 +
.../dayjs/esm/plugin/quarterOfYear/index.d.ts | 26 +
.../dayjs/esm/plugin/quarterOfYear/index.js | 41 +
.../dayjs/esm/plugin/relativeTime/index.d.ts | 24 +
.../dayjs/esm/plugin/relativeTime/index.js | 130 +
.../dayjs/esm/plugin/timezone/index.d.ts | 20 +
.../dayjs/esm/plugin/timezone/index.js | 198 +
.../dayjs/esm/plugin/toArray/index.d.ts | 10 +
.../dayjs/esm/plugin/toArray/index.js | 7 +
.../dayjs/esm/plugin/toObject/index.d.ts | 20 +
.../dayjs/esm/plugin/toObject/index.js | 15 +
.../dayjs/esm/plugin/updateLocale/index.d.ts | 8 +
.../dayjs/esm/plugin/updateLocale/index.js | 12 +
.../dayjs/esm/plugin/utc/index.d.ts | 19 +
.../dayjs/esm/plugin/utc/index.js | 188 +
.../dayjs/esm/plugin/weekOfYear/index.d.ts | 12 +
.../dayjs/esm/plugin/weekOfYear/index.js | 44 +
.../dayjs/esm/plugin/weekYear/index.d.ts | 10 +
.../dayjs/esm/plugin/weekYear/index.js | 19 +
.../dayjs/esm/plugin/weekday/index.d.ts | 12 +
.../dayjs/esm/plugin/weekday/index.js | 15 +
.../node_modules/dayjs/esm/utils.js | 58 +
.../node_modules/dayjs/index.d.ts | 429 +
.../node_modules/dayjs/locale.json | 1 +
.../node_modules/dayjs/locale/af.js | 1 +
.../node_modules/dayjs/locale/am.js | 1 +
.../node_modules/dayjs/locale/ar-dz.js | 1 +
.../node_modules/dayjs/locale/ar-iq.js | 1 +
.../node_modules/dayjs/locale/ar-kw.js | 1 +
.../node_modules/dayjs/locale/ar-ly.js | 1 +
.../node_modules/dayjs/locale/ar-ma.js | 1 +
.../node_modules/dayjs/locale/ar-sa.js | 1 +
.../node_modules/dayjs/locale/ar-tn.js | 1 +
.../node_modules/dayjs/locale/ar.js | 1 +
.../node_modules/dayjs/locale/az.js | 1 +
.../node_modules/dayjs/locale/be.js | 1 +
.../node_modules/dayjs/locale/bg.js | 1 +
.../node_modules/dayjs/locale/bi.js | 1 +
.../node_modules/dayjs/locale/bm.js | 1 +
.../node_modules/dayjs/locale/bn-bd.js | 1 +
.../node_modules/dayjs/locale/bn.js | 1 +
.../node_modules/dayjs/locale/bo.js | 1 +
.../node_modules/dayjs/locale/br.js | 1 +
.../node_modules/dayjs/locale/bs.js | 1 +
.../node_modules/dayjs/locale/ca.js | 1 +
.../node_modules/dayjs/locale/cs.js | 1 +
.../node_modules/dayjs/locale/cv.js | 1 +
.../node_modules/dayjs/locale/cy.js | 1 +
.../node_modules/dayjs/locale/da.js | 1 +
.../node_modules/dayjs/locale/de-at.js | 1 +
.../node_modules/dayjs/locale/de-ch.js | 1 +
.../node_modules/dayjs/locale/de.js | 1 +
.../node_modules/dayjs/locale/dv.js | 1 +
.../node_modules/dayjs/locale/el.js | 1 +
.../node_modules/dayjs/locale/en-au.js | 1 +
.../node_modules/dayjs/locale/en-ca.js | 1 +
.../node_modules/dayjs/locale/en-gb.js | 1 +
.../node_modules/dayjs/locale/en-ie.js | 1 +
.../node_modules/dayjs/locale/en-il.js | 1 +
.../node_modules/dayjs/locale/en-in.js | 1 +
.../node_modules/dayjs/locale/en-nz.js | 1 +
.../node_modules/dayjs/locale/en-sg.js | 1 +
.../node_modules/dayjs/locale/en-tt.js | 1 +
.../node_modules/dayjs/locale/en.js | 1 +
.../node_modules/dayjs/locale/eo.js | 1 +
.../node_modules/dayjs/locale/es-do.js | 1 +
.../node_modules/dayjs/locale/es-mx.js | 1 +
.../node_modules/dayjs/locale/es-pr.js | 1 +
.../node_modules/dayjs/locale/es-us.js | 1 +
.../node_modules/dayjs/locale/es.js | 1 +
.../node_modules/dayjs/locale/et.js | 1 +
.../node_modules/dayjs/locale/eu.js | 1 +
.../node_modules/dayjs/locale/fa.js | 1 +
.../node_modules/dayjs/locale/fi.js | 1 +
.../node_modules/dayjs/locale/fo.js | 1 +
.../node_modules/dayjs/locale/fr-ca.js | 1 +
.../node_modules/dayjs/locale/fr-ch.js | 1 +
.../node_modules/dayjs/locale/fr.js | 1 +
.../node_modules/dayjs/locale/fy.js | 1 +
.../node_modules/dayjs/locale/ga.js | 1 +
.../node_modules/dayjs/locale/gd.js | 1 +
.../node_modules/dayjs/locale/gl.js | 1 +
.../node_modules/dayjs/locale/gom-latn.js | 1 +
.../node_modules/dayjs/locale/gu.js | 1 +
.../node_modules/dayjs/locale/he.js | 1 +
.../node_modules/dayjs/locale/hi.js | 1 +
.../node_modules/dayjs/locale/hr.js | 1 +
.../node_modules/dayjs/locale/ht.js | 1 +
.../node_modules/dayjs/locale/hu.js | 1 +
.../node_modules/dayjs/locale/hy-am.js | 1 +
.../node_modules/dayjs/locale/id.js | 1 +
.../node_modules/dayjs/locale/index.d.ts | 11 +
.../node_modules/dayjs/locale/is.js | 1 +
.../node_modules/dayjs/locale/it-ch.js | 1 +
.../node_modules/dayjs/locale/it.js | 1 +
.../node_modules/dayjs/locale/ja.js | 1 +
.../node_modules/dayjs/locale/jv.js | 1 +
.../node_modules/dayjs/locale/ka.js | 1 +
.../node_modules/dayjs/locale/kk.js | 1 +
.../node_modules/dayjs/locale/km.js | 1 +
.../node_modules/dayjs/locale/kn.js | 1 +
.../node_modules/dayjs/locale/ko.js | 1 +
.../node_modules/dayjs/locale/ku.js | 1 +
.../node_modules/dayjs/locale/ky.js | 1 +
.../node_modules/dayjs/locale/lb.js | 1 +
.../node_modules/dayjs/locale/lo.js | 1 +
.../node_modules/dayjs/locale/lt.js | 1 +
.../node_modules/dayjs/locale/lv.js | 1 +
.../node_modules/dayjs/locale/me.js | 1 +
.../node_modules/dayjs/locale/mi.js | 1 +
.../node_modules/dayjs/locale/mk.js | 1 +
.../node_modules/dayjs/locale/ml.js | 1 +
.../node_modules/dayjs/locale/mn.js | 1 +
.../node_modules/dayjs/locale/mr.js | 1 +
.../node_modules/dayjs/locale/ms-my.js | 1 +
.../node_modules/dayjs/locale/ms.js | 1 +
.../node_modules/dayjs/locale/mt.js | 1 +
.../node_modules/dayjs/locale/my.js | 1 +
.../node_modules/dayjs/locale/nb.js | 1 +
.../node_modules/dayjs/locale/ne.js | 1 +
.../node_modules/dayjs/locale/nl-be.js | 1 +
.../node_modules/dayjs/locale/nl.js | 1 +
.../node_modules/dayjs/locale/nn.js | 1 +
.../node_modules/dayjs/locale/oc-lnc.js | 1 +
.../node_modules/dayjs/locale/pa-in.js | 1 +
.../node_modules/dayjs/locale/pl.js | 1 +
.../node_modules/dayjs/locale/pt-br.js | 1 +
.../node_modules/dayjs/locale/pt.js | 1 +
.../node_modules/dayjs/locale/rn.js | 1 +
.../node_modules/dayjs/locale/ro.js | 1 +
.../node_modules/dayjs/locale/ru.js | 1 +
.../node_modules/dayjs/locale/rw.js | 1 +
.../node_modules/dayjs/locale/sd.js | 1 +
.../node_modules/dayjs/locale/se.js | 1 +
.../node_modules/dayjs/locale/si.js | 1 +
.../node_modules/dayjs/locale/sk.js | 1 +
.../node_modules/dayjs/locale/sl.js | 1 +
.../node_modules/dayjs/locale/sq.js | 1 +
.../node_modules/dayjs/locale/sr-cyrl.js | 1 +
.../node_modules/dayjs/locale/sr.js | 1 +
.../node_modules/dayjs/locale/ss.js | 1 +
.../node_modules/dayjs/locale/sv-fi.js | 1 +
.../node_modules/dayjs/locale/sv.js | 1 +
.../node_modules/dayjs/locale/sw.js | 1 +
.../node_modules/dayjs/locale/ta.js | 1 +
.../node_modules/dayjs/locale/te.js | 1 +
.../node_modules/dayjs/locale/tet.js | 1 +
.../node_modules/dayjs/locale/tg.js | 1 +
.../node_modules/dayjs/locale/th.js | 1 +
.../node_modules/dayjs/locale/tk.js | 1 +
.../node_modules/dayjs/locale/tl-ph.js | 1 +
.../node_modules/dayjs/locale/tlh.js | 1 +
.../node_modules/dayjs/locale/tr.js | 1 +
.../node_modules/dayjs/locale/types.d.ts | 33 +
.../node_modules/dayjs/locale/tzl.js | 1 +
.../node_modules/dayjs/locale/tzm-latn.js | 1 +
.../node_modules/dayjs/locale/tzm.js | 1 +
.../node_modules/dayjs/locale/ug-cn.js | 1 +
.../node_modules/dayjs/locale/uk.js | 1 +
.../node_modules/dayjs/locale/ur.js | 1 +
.../node_modules/dayjs/locale/uz-latn.js | 1 +
.../node_modules/dayjs/locale/uz.js | 1 +
.../node_modules/dayjs/locale/vi.js | 1 +
.../node_modules/dayjs/locale/x-pseudo.js | 1 +
.../node_modules/dayjs/locale/yo.js | 1 +
.../node_modules/dayjs/locale/zh-cn.js | 1 +
.../node_modules/dayjs/locale/zh-hk.js | 1 +
.../node_modules/dayjs/locale/zh-tw.js | 1 +
.../node_modules/dayjs/locale/zh.js | 1 +
.../node_modules/dayjs/package.json | 85 +
.../dayjs/plugin/advancedFormat.d.ts | 4 +
.../dayjs/plugin/advancedFormat.js | 1 +
.../dayjs/plugin/arraySupport.d.ts | 10 +
.../node_modules/dayjs/plugin/arraySupport.js | 1 +
.../node_modules/dayjs/plugin/badMutable.d.ts | 4 +
.../node_modules/dayjs/plugin/badMutable.js | 1 +
.../dayjs/plugin/bigIntSupport.d.ts | 11 +
.../dayjs/plugin/bigIntSupport.js | 1 +
.../dayjs/plugin/buddhistEra.d.ts | 4 +
.../node_modules/dayjs/plugin/buddhistEra.js | 1 +
.../node_modules/dayjs/plugin/calendar.d.ts | 10 +
.../node_modules/dayjs/plugin/calendar.js | 1 +
.../dayjs/plugin/customParseFormat.d.ts | 8 +
.../dayjs/plugin/customParseFormat.js | 1 +
.../node_modules/dayjs/plugin/dayOfYear.d.ts | 11 +
.../node_modules/dayjs/plugin/dayOfYear.js | 1 +
.../node_modules/dayjs/plugin/devHelper.d.ts | 4 +
.../node_modules/dayjs/plugin/devHelper.js | 1 +
.../node_modules/dayjs/plugin/duration.d.ts | 88 +
.../node_modules/dayjs/plugin/duration.js | 1 +
.../node_modules/dayjs/plugin/isBetween.d.ts | 10 +
.../node_modules/dayjs/plugin/isBetween.js | 1 +
.../node_modules/dayjs/plugin/isLeapYear.d.ts | 10 +
.../node_modules/dayjs/plugin/isLeapYear.js | 1 +
.../node_modules/dayjs/plugin/isMoment.d.ts | 10 +
.../node_modules/dayjs/plugin/isMoment.js | 1 +
.../dayjs/plugin/isSameOrAfter.d.ts | 10 +
.../dayjs/plugin/isSameOrAfter.js | 1 +
.../dayjs/plugin/isSameOrBefore.d.ts | 10 +
.../dayjs/plugin/isSameOrBefore.js | 1 +
.../node_modules/dayjs/plugin/isToday.d.ts | 10 +
.../node_modules/dayjs/plugin/isToday.js | 1 +
.../node_modules/dayjs/plugin/isTomorrow.d.ts | 10 +
.../node_modules/dayjs/plugin/isTomorrow.js | 1 +
.../dayjs/plugin/isYesterday.d.ts | 10 +
.../node_modules/dayjs/plugin/isYesterday.js | 1 +
.../node_modules/dayjs/plugin/isoWeek.d.ts | 27 +
.../node_modules/dayjs/plugin/isoWeek.js | 1 +
.../dayjs/plugin/isoWeeksInYear.d.ts | 10 +
.../dayjs/plugin/isoWeeksInYear.js | 1 +
.../node_modules/dayjs/plugin/localeData.d.ts | 44 +
.../node_modules/dayjs/plugin/localeData.js | 1 +
.../dayjs/plugin/localizedFormat.d.ts | 4 +
.../dayjs/plugin/localizedFormat.js | 1 +
.../node_modules/dayjs/plugin/minMax.d.ts | 22 +
.../node_modules/dayjs/plugin/minMax.js | 1 +
.../dayjs/plugin/negativeYear.d.ts | 4 +
.../node_modules/dayjs/plugin/negativeYear.js | 1 +
.../dayjs/plugin/objectSupport.d.ts | 48 +
.../dayjs/plugin/objectSupport.js | 1 +
.../dayjs/plugin/pluralGetSet.d.ts | 44 +
.../node_modules/dayjs/plugin/pluralGetSet.js | 1 +
.../dayjs/plugin/preParsePostFormat.d.ts | 4 +
.../dayjs/plugin/preParsePostFormat.js | 1 +
.../dayjs/plugin/quarterOfYear.d.ts | 26 +
.../dayjs/plugin/quarterOfYear.js | 1 +
.../dayjs/plugin/relativeTime.d.ts | 24 +
.../node_modules/dayjs/plugin/relativeTime.js | 1 +
.../node_modules/dayjs/plugin/timezone.d.ts | 20 +
.../node_modules/dayjs/plugin/timezone.js | 1 +
.../node_modules/dayjs/plugin/toArray.d.ts | 10 +
.../node_modules/dayjs/plugin/toArray.js | 1 +
.../node_modules/dayjs/plugin/toObject.d.ts | 20 +
.../node_modules/dayjs/plugin/toObject.js | 1 +
.../dayjs/plugin/updateLocale.d.ts | 8 +
.../node_modules/dayjs/plugin/updateLocale.js | 1 +
.../node_modules/dayjs/plugin/utc.d.ts | 19 +
.../node_modules/dayjs/plugin/utc.js | 1 +
.../node_modules/dayjs/plugin/weekOfYear.d.ts | 12 +
.../node_modules/dayjs/plugin/weekOfYear.js | 1 +
.../node_modules/dayjs/plugin/weekYear.d.ts | 10 +
.../node_modules/dayjs/plugin/weekYear.js | 1 +
.../node_modules/dayjs/plugin/weekday.d.ts | 12 +
.../node_modules/dayjs/plugin/weekday.js | 1 +
.../node_modules/delayed-stream/.npmignore | 1 +
.../node_modules/delayed-stream/License | 19 +
.../node_modules/delayed-stream/Makefile | 7 +
.../node_modules/delayed-stream/Readme.md | 141 +
.../delayed-stream/lib/delayed_stream.js | 107 +
.../node_modules/delayed-stream/package.json | 27 +
.../node_modules/dunder-proto/.eslintrc | 5 +
.../dunder-proto/.github/FUNDING.yml | 12 +
.../node_modules/dunder-proto/.nycrc | 13 +
.../node_modules/dunder-proto/CHANGELOG.md | 24 +
.../node_modules/dunder-proto/LICENSE | 21 +
.../node_modules/dunder-proto/README.md | 54 +
.../node_modules/dunder-proto/get.d.ts | 5 +
.../node_modules/dunder-proto/get.js | 30 +
.../node_modules/dunder-proto/package.json | 76 +
.../node_modules/dunder-proto/set.d.ts | 5 +
.../node_modules/dunder-proto/set.js | 35 +
.../node_modules/dunder-proto/tsconfig.json | 9 +
.../node_modules/duplexer2/LICENSE.md | 26 +
.../node_modules/duplexer2/README.md | 115 +
.../node_modules/duplexer2/index.js | 76 +
.../node_modules/readable-stream/.travis.yml | 34 +
.../readable-stream/CONTRIBUTING.md | 38 +
.../readable-stream/GOVERNANCE.md | 136 +
.../node_modules/readable-stream/LICENSE | 47 +
.../node_modules/readable-stream/README.md | 58 +
.../doc/wg-meetings/2015-01-30.md | 60 +
.../readable-stream/duplex-browser.js | 1 +
.../node_modules/readable-stream/duplex.js | 1 +
.../readable-stream/lib/_stream_duplex.js | 131 +
.../lib/_stream_passthrough.js | 47 +
.../readable-stream/lib/_stream_readable.js | 1019 ++
.../readable-stream/lib/_stream_transform.js | 214 +
.../readable-stream/lib/_stream_writable.js | 685 ++
.../lib/internal/streams/BufferList.js | 78 +
.../lib/internal/streams/destroy.js | 84 +
.../lib/internal/streams/stream-browser.js | 1 +
.../lib/internal/streams/stream.js | 1 +
.../node_modules/readable-stream/package.json | 52 +
.../readable-stream/passthrough.js | 1 +
.../readable-stream/readable-browser.js | 7 +
.../node_modules/readable-stream/readable.js | 19 +
.../node_modules/readable-stream/transform.js | 1 +
.../readable-stream/writable-browser.js | 1 +
.../node_modules/readable-stream/writable.js | 8 +
.../node_modules/safe-buffer/LICENSE | 21 +
.../node_modules/safe-buffer/README.md | 584 ++
.../node_modules/safe-buffer/index.d.ts | 187 +
.../node_modules/safe-buffer/index.js | 62 +
.../node_modules/safe-buffer/package.json | 37 +
.../node_modules/string_decoder/.travis.yml | 50 +
.../node_modules/string_decoder/LICENSE | 48 +
.../node_modules/string_decoder/README.md | 47 +
.../string_decoder/lib/string_decoder.js | 296 +
.../node_modules/string_decoder/package.json | 31 +
.../node_modules/duplexer2/package.json | 28 +
.../node_modules/end-of-stream/LICENSE | 21 +
.../node_modules/end-of-stream/README.md | 54 +
.../node_modules/end-of-stream/index.js | 96 +
.../node_modules/end-of-stream/package.json | 37 +
.../node_modules/es-define-property/.eslintrc | 13 +
.../es-define-property/.github/FUNDING.yml | 12 +
.../node_modules/es-define-property/.nycrc | 9 +
.../es-define-property/CHANGELOG.md | 29 +
.../node_modules/es-define-property/LICENSE | 21 +
.../node_modules/es-define-property/README.md | 49 +
.../es-define-property/index.d.ts | 3 +
.../node_modules/es-define-property/index.js | 14 +
.../es-define-property/package.json | 81 +
.../es-define-property/tsconfig.json | 10 +
.../node_modules/es-errors/.eslintrc | 5 +
.../es-errors/.github/FUNDING.yml | 12 +
.../node_modules/es-errors/CHANGELOG.md | 40 +
.../node_modules/es-errors/LICENSE | 21 +
.../node_modules/es-errors/README.md | 55 +
.../node_modules/es-errors/eval.d.ts | 3 +
.../node_modules/es-errors/eval.js | 4 +
.../node_modules/es-errors/index.d.ts | 3 +
.../node_modules/es-errors/index.js | 4 +
.../node_modules/es-errors/package.json | 80 +
.../node_modules/es-errors/range.d.ts | 3 +
.../node_modules/es-errors/range.js | 4 +
.../node_modules/es-errors/ref.d.ts | 3 +
.../node_modules/es-errors/ref.js | 4 +
.../node_modules/es-errors/syntax.d.ts | 3 +
.../node_modules/es-errors/syntax.js | 4 +
.../node_modules/es-errors/tsconfig.json | 49 +
.../node_modules/es-errors/type.d.ts | 3 +
.../node_modules/es-errors/type.js | 4 +
.../node_modules/es-errors/uri.d.ts | 3 +
.../node_modules/es-errors/uri.js | 4 +
.../node_modules/es-object-atoms/.eslintrc | 16 +
.../es-object-atoms/.github/FUNDING.yml | 12 +
.../node_modules/es-object-atoms/CHANGELOG.md | 37 +
.../node_modules/es-object-atoms/LICENSE | 21 +
.../node_modules/es-object-atoms/README.md | 63 +
.../RequireObjectCoercible.d.ts | 3 +
.../es-object-atoms/RequireObjectCoercible.js | 11 +
.../es-object-atoms/ToObject.d.ts | 7 +
.../node_modules/es-object-atoms/ToObject.js | 10 +
.../node_modules/es-object-atoms/index.d.ts | 3 +
.../node_modules/es-object-atoms/index.js | 4 +
.../es-object-atoms/isObject.d.ts | 3 +
.../node_modules/es-object-atoms/isObject.js | 6 +
.../node_modules/es-object-atoms/package.json | 80 +
.../es-object-atoms/tsconfig.json | 6 +
.../node_modules/es-set-tostringtag/.eslintrc | 13 +
.../node_modules/es-set-tostringtag/.nycrc | 9 +
.../es-set-tostringtag/CHANGELOG.md | 67 +
.../node_modules/es-set-tostringtag/LICENSE | 21 +
.../node_modules/es-set-tostringtag/README.md | 53 +
.../es-set-tostringtag/index.d.ts | 10 +
.../node_modules/es-set-tostringtag/index.js | 35 +
.../es-set-tostringtag/package.json | 78 +
.../es-set-tostringtag/tsconfig.json | 9 +
.../node_modules/exceljs/LICENSE | 22 +
.../node_modules/exceljs/README.md | 3023 ++++++
.../node_modules/exceljs/README_zh.md | 2878 ++++++
.../node_modules/exceljs/excel.js | 13 +
.../node_modules/exceljs/index.d.ts | 2035 ++++
.../node_modules/exceljs/index.ts | 2 +
.../node_modules/exceljs/lib/csv/csv.js | 191 +
.../exceljs/lib/csv/line-buffer.js | 74 +
.../exceljs/lib/csv/stream-converter.js | 135 +
.../node_modules/exceljs/lib/doc/anchor.js | 91 +
.../node_modules/exceljs/lib/doc/cell.js | 1124 +++
.../node_modules/exceljs/lib/doc/column.js | 320 +
.../exceljs/lib/doc/data-validations.js | 19 +
.../exceljs/lib/doc/data/theme1.json | 234 +
.../exceljs/lib/doc/defined-names.js | 196 +
.../node_modules/exceljs/lib/doc/enums.js | 48 +
.../node_modules/exceljs/lib/doc/image.js | 59 +
.../exceljs/lib/doc/modelcontainer.js | 18 +
.../node_modules/exceljs/lib/doc/note.js | 65 +
.../node_modules/exceljs/lib/doc/range.js | 257 +
.../node_modules/exceljs/lib/doc/row.js | 415 +
.../node_modules/exceljs/lib/doc/table.js | 465 +
.../node_modules/exceljs/lib/doc/workbook.js | 221 +
.../node_modules/exceljs/lib/doc/worksheet.js | 927 ++
.../node_modules/exceljs/lib/exceljs.bare.js | 13 +
.../exceljs/lib/exceljs.browser.js | 36 +
.../exceljs/lib/exceljs.nodejs.js | 14 +
.../lib/stream/xlsx/hyperlink-reader.js | 83 +
.../lib/stream/xlsx/sheet-comments-writer.js | 121 +
.../lib/stream/xlsx/sheet-rels-writer.js | 119 +
.../lib/stream/xlsx/workbook-reader.js | 337 +
.../lib/stream/xlsx/workbook-writer.js | 347 +
.../lib/stream/xlsx/worksheet-reader.js | 374 +
.../lib/stream/xlsx/worksheet-writer.js | 717 ++
.../exceljs/lib/utils/auto-drain.js | 15 +
.../lib/utils/browser-buffer-decode.js | 14 +
.../lib/utils/browser-buffer-encode.js | 15 +
.../exceljs/lib/utils/cell-matrix.js | 165 +
.../exceljs/lib/utils/col-cache.js | 287 +
.../exceljs/lib/utils/copy-style.js | 43 +
.../exceljs/lib/utils/encryptor.js | 55 +
.../exceljs/lib/utils/iterate-stream.js | 48 +
.../exceljs/lib/utils/parse-sax.js | 30 +
.../exceljs/lib/utils/shared-formula.js | 44 +
.../exceljs/lib/utils/shared-strings.js | 35 +
.../exceljs/lib/utils/stream-base64.js | 72 +
.../exceljs/lib/utils/stream-buf.js | 364 +
.../exceljs/lib/utils/string-buf.js | 82 +
.../exceljs/lib/utils/string-builder.js | 35 +
.../exceljs/lib/utils/stuttered-pipe.js | 67 +
.../exceljs/lib/utils/typed-stack.js | 24 +
.../exceljs/lib/utils/under-dash.js | 184 +
.../node_modules/exceljs/lib/utils/utils.js | 172 +
.../exceljs/lib/utils/xml-stream.js | 169 +
.../exceljs/lib/utils/zip-stream.js | 87 +
.../node_modules/exceljs/lib/xlsx/.rels | 11 +
.../exceljs/lib/xlsx/calcChain.xml | 6 +
.../node_modules/exceljs/lib/xlsx/core.xml | 7 +
.../exceljs/lib/xlsx/defaultnumformats.js | 153 +
.../node_modules/exceljs/lib/xlsx/rel-type.js | 21 +
.../node_modules/exceljs/lib/xlsx/styles.xml | 41 +
.../exceljs/lib/xlsx/workbook.xml | 16 +
.../exceljs/lib/xlsx/xform/base-xform.js | 145 +
.../lib/xlsx/xform/book/defined-name-xform.js | 91 +
.../lib/xlsx/xform/book/sheet-xform.js | 34 +
.../book/workbook-calc-properties-xform.js | 26 +
.../xform/book/workbook-properties-xform.js | 29 +
.../xlsx/xform/book/workbook-view-xform.js | 53 +
.../lib/xlsx/xform/book/workbook-xform.js | 255 +
.../lib/xlsx/xform/comment/comment-xform.js | 105 +
.../lib/xlsx/xform/comment/comments-xform.js | 82 +
.../xform/comment/style/vml-position-xform.js | 39 +
.../comment/style/vml-protection-xform.js | 36 +
.../xlsx/xform/comment/vml-anchor-xform.js | 60 +
.../xform/comment/vml-client-data-xform.js | 95 +
.../lib/xlsx/xform/comment/vml-notes-xform.js | 107 +
.../lib/xlsx/xform/comment/vml-shape-xform.js | 95 +
.../xlsx/xform/comment/vml-textbox-xform.js | 64 +
.../exceljs/lib/xlsx/xform/composite-xform.js | 56 +
.../xform/core/app-heading-pairs-xform.js | 32 +
.../xform/core/app-titles-of-parts-xform.js | 28 +
.../exceljs/lib/xlsx/xform/core/app-xform.js | 100 +
.../xlsx/xform/core/content-types-xform.js | 120 +
.../exceljs/lib/xlsx/xform/core/core-xform.js | 136 +
.../lib/xlsx/xform/core/relationship-xform.js | 25 +
.../xlsx/xform/core/relationships-xform.js | 73 +
.../xform/drawing/base-cell-anchor-xform.js | 48 +
.../lib/xlsx/xform/drawing/blip-fill-xform.js | 71 +
.../lib/xlsx/xform/drawing/blip-xform.js | 42 +
.../xlsx/xform/drawing/c-nv-pic-pr-xform.js | 38 +
.../lib/xlsx/xform/drawing/c-nv-pr-xform.js | 68 +
.../xlsx/xform/drawing/cell-position-xform.js | 77 +
.../lib/xlsx/xform/drawing/drawing-xform.js | 109 +
.../lib/xlsx/xform/drawing/ext-lst-xform.js | 43 +
.../lib/xlsx/xform/drawing/ext-xform.js | 44 +
.../xlsx/xform/drawing/hlink-click-xform.js | 41 +
.../lib/xlsx/xform/drawing/nv-pic-pr-xform.js | 65 +
.../xform/drawing/one-cell-anchor-xform.js | 63 +
.../lib/xlsx/xform/drawing/pic-xform.js | 77 +
.../exceljs/lib/xlsx/xform/drawing/sp-pr.js | 17 +
.../xform/drawing/two-cell-anchor-xform.js | 62 +
.../exceljs/lib/xlsx/xform/list-xform.js | 95 +
.../lib/xlsx/xform/sheet/auto-filter-xform.js | 38 +
.../lib/xlsx/xform/sheet/cell-xform.js | 498 +
.../xform/sheet/cf-ext/cf-icon-ext-xform.js | 27 +
.../xform/sheet/cf-ext/cf-rule-ext-xform.js | 98 +
.../xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js | 43 +
.../conditional-formatting-ext-xform.js | 62 +
.../conditional-formattings-ext-xform.js | 50 +
.../xform/sheet/cf-ext/databar-ext-xform.js | 98 +
.../xlsx/xform/sheet/cf-ext/f-ext-xform.js | 25 +
.../xform/sheet/cf-ext/icon-set-ext-xform.js | 73 +
.../xform/sheet/cf-ext/sqref-ext-xform.js | 25 +
.../lib/xlsx/xform/sheet/cf/cf-rule-xform.js | 301 +
.../lib/xlsx/xform/sheet/cf/cfvo-xform.js | 27 +
.../xlsx/xform/sheet/cf/color-scale-xform.js | 45 +
.../sheet/cf/conditional-formatting-xform.js | 48 +
.../sheet/cf/conditional-formattings-xform.js | 92 +
.../lib/xlsx/xform/sheet/cf/databar-xform.js | 49 +
.../xlsx/xform/sheet/cf/ext-lst-ref-xform.js | 87 +
.../lib/xlsx/xform/sheet/cf/formula-xform.js | 25 +
.../lib/xlsx/xform/sheet/cf/icon-set-xform.js | 47 +
.../exceljs/lib/xlsx/xform/sheet/col-xform.js | 86 +
.../xform/sheet/data-validations-xform.js | 257 +
.../lib/xlsx/xform/sheet/dimension-xform.js | 29 +
.../lib/xlsx/xform/sheet/drawing-xform.js | 33 +
.../lib/xlsx/xform/sheet/ext-lst-xform.js | 86 +
.../xlsx/xform/sheet/header-footer-xform.js | 146 +
.../lib/xlsx/xform/sheet/hyperlink-xform.js | 54 +
.../lib/xlsx/xform/sheet/merge-cell-xform.js | 27 +
.../exceljs/lib/xlsx/xform/sheet/merges.js | 56 +
.../xform/sheet/outline-properties-xform.js | 43 +
.../lib/xlsx/xform/sheet/page-breaks-xform.js | 27 +
.../xlsx/xform/sheet/page-margins-xform.js | 49 +
.../sheet/page-setup-properties-xform.js | 35 +
.../lib/xlsx/xform/sheet/page-setup-xform.js | 103 +
.../lib/xlsx/xform/sheet/picture-xform.js | 33 +
.../xlsx/xform/sheet/print-options-xform.js | 49 +
.../lib/xlsx/xform/sheet/row-breaks-xform.js | 39 +
.../exceljs/lib/xlsx/xform/sheet/row-xform.js | 142 +
.../sheet/sheet-format-properties-xform.js | 55 +
.../xform/sheet/sheet-properties-xform.js | 90 +
.../xform/sheet/sheet-protection-xform.js | 89 +
.../lib/xlsx/xform/sheet/sheet-view-xform.js | 202 +
.../lib/xlsx/xform/sheet/table-part-xform.js | 33 +
.../lib/xlsx/xform/sheet/worksheet-xform.js | 539 ++
.../lib/xlsx/xform/simple/boolean-xform.js | 31 +
.../lib/xlsx/xform/simple/date-xform.js | 66 +
.../lib/xlsx/xform/simple/float-xform.js | 51 +
.../lib/xlsx/xform/simple/integer-xform.js | 57 +
.../lib/xlsx/xform/simple/string-xform.js | 51 +
.../exceljs/lib/xlsx/xform/static-xform.js | 64 +
.../xlsx/xform/strings/phonetic-text-xform.js | 98 +
.../lib/xlsx/xform/strings/rich-text-xform.js | 101 +
.../xlsx/xform/strings/shared-string-xform.js | 102 +
.../xform/strings/shared-strings-xform.js | 127 +
.../lib/xlsx/xform/strings/text-xform.js | 44 +
.../lib/xlsx/xform/style/alignment-xform.js | 172 +
.../lib/xlsx/xform/style/border-xform.js | 207 +
.../lib/xlsx/xform/style/color-xform.js | 63 +
.../exceljs/lib/xlsx/xform/style/dxf-xform.js | 111 +
.../lib/xlsx/xform/style/fill-xform.js | 364 +
.../lib/xlsx/xform/style/font-xform.js | 102 +
.../lib/xlsx/xform/style/numfmt-xform.js | 63 +
.../lib/xlsx/xform/style/protection-xform.js | 60 +
.../lib/xlsx/xform/style/style-xform.js | 125 +
.../lib/xlsx/xform/style/styles-xform.js | 527 +
.../lib/xlsx/xform/style/underline-xform.js | 47 +
.../lib/xlsx/xform/table/auto-filter-xform.js | 81 +
.../xlsx/xform/table/custom-filter-xform.js | 33 +
.../xlsx/xform/table/filter-column-xform.js | 96 +
.../lib/xlsx/xform/table/filter-xform.js | 31 +
.../xlsx/xform/table/table-column-xform.js | 44 +
.../xform/table/table-style-info-xform.js | 41 +
.../lib/xlsx/xform/table/table-xform.js | 131 +
.../node_modules/exceljs/lib/xlsx/xlsx.js | 694 ++
.../exceljs/lib/xlsx/xml/theme1.js | 3 +
.../exceljs/lib/xlsx/xml/theme1.xml | 318 +
.../node_modules/exceljs/package.json | 149 +
.../node_modules/fast-csv/CHANGELOG.md | 88 +
.../node_modules/fast-csv/LICENSE | 21 +
.../node_modules/fast-csv/README.md | 20 +
.../fast-csv/build/src/index.d.ts | 2 +
.../node_modules/fast-csv/build/src/index.js | 20 +
.../fast-csv/build/src/index.js.map | 1 +
.../node_modules/fast-csv/package.json | 44 +
.../node_modules/follow-redirects/LICENSE | 18 +
.../node_modules/follow-redirects/README.md | 155 +
.../node_modules/follow-redirects/debug.js | 15 +
.../node_modules/follow-redirects/http.js | 1 +
.../node_modules/follow-redirects/https.js | 1 +
.../node_modules/follow-redirects/index.js | 686 ++
.../follow-redirects/package.json | 58 +
.../node_modules/form-data/CHANGELOG.md | 659 ++
.../node_modules/form-data/License | 19 +
.../node_modules/form-data/README.md | 355 +
.../node_modules/form-data/index.d.ts | 62 +
.../node_modules/form-data/lib/browser.js | 4 +
.../node_modules/form-data/lib/form_data.js | 494 +
.../node_modules/form-data/lib/populate.js | 10 +
.../node_modules/form-data/package.json | 82 +
.../node_modules/fs-constants/LICENSE | 21 +
.../node_modules/fs-constants/README.md | 26 +
.../node_modules/fs-constants/browser.js | 1 +
.../node_modules/fs-constants/index.js | 1 +
.../node_modules/fs-constants/package.json | 19 +
.../node_modules/fs.realpath/LICENSE | 43 +
.../node_modules/fs.realpath/README.md | 33 +
.../node_modules/fs.realpath/index.js | 66 +
.../node_modules/fs.realpath/old.js | 303 +
.../node_modules/fs.realpath/package.json | 26 +
.../node_modules/fstream/.travis.yml | 9 +
.../node_modules/fstream/LICENSE | 15 +
.../node_modules/fstream/README.md | 76 +
.../fstream/examples/filter-pipe.js | 134 +
.../node_modules/fstream/examples/pipe.js | 118 +
.../node_modules/fstream/examples/reader.js | 68 +
.../fstream/examples/symlink-write.js | 27 +
.../node_modules/fstream/fstream.js | 35 +
.../node_modules/fstream/lib/abstract.js | 85 +
.../node_modules/fstream/lib/collect.js | 70 +
.../node_modules/fstream/lib/dir-reader.js | 252 +
.../node_modules/fstream/lib/dir-writer.js | 174 +
.../node_modules/fstream/lib/file-reader.js | 150 +
.../node_modules/fstream/lib/file-writer.js | 107 +
.../node_modules/fstream/lib/get-type.js | 33 +
.../node_modules/fstream/lib/link-reader.js | 53 +
.../node_modules/fstream/lib/link-writer.js | 95 +
.../node_modules/fstream/lib/proxy-reader.js | 95 +
.../node_modules/fstream/lib/proxy-writer.js | 111 +
.../node_modules/fstream/lib/reader.js | 255 +
.../node_modules/fstream/lib/socket-reader.js | 36 +
.../node_modules/fstream/lib/writer.js | 390 +
.../node_modules/fstream/package.json | 28 +
.../node_modules/function-bind/.eslintrc | 21 +
.../function-bind/.github/FUNDING.yml | 12 +
.../function-bind/.github/SECURITY.md | 3 +
.../node_modules/function-bind/.nycrc | 13 +
.../node_modules/function-bind/CHANGELOG.md | 136 +
.../node_modules/function-bind/LICENSE | 20 +
.../node_modules/function-bind/README.md | 46 +
.../function-bind/implementation.js | 84 +
.../node_modules/function-bind/index.js | 5 +
.../node_modules/function-bind/package.json | 87 +
.../node_modules/get-intrinsic/.eslintrc | 42 +
.../get-intrinsic/.github/FUNDING.yml | 12 +
.../node_modules/get-intrinsic/.nycrc | 9 +
.../node_modules/get-intrinsic/CHANGELOG.md | 186 +
.../node_modules/get-intrinsic/LICENSE | 21 +
.../node_modules/get-intrinsic/README.md | 71 +
.../node_modules/get-intrinsic/index.js | 378 +
.../node_modules/get-intrinsic/package.json | 97 +
.../node_modules/get-proto/.eslintrc | 10 +
.../get-proto/.github/FUNDING.yml | 12 +
.../node_modules/get-proto/.nycrc | 9 +
.../node_modules/get-proto/CHANGELOG.md | 21 +
.../node_modules/get-proto/LICENSE | 21 +
.../get-proto/Object.getPrototypeOf.d.ts | 5 +
.../get-proto/Object.getPrototypeOf.js | 6 +
.../node_modules/get-proto/README.md | 50 +
.../get-proto/Reflect.getPrototypeOf.d.ts | 3 +
.../get-proto/Reflect.getPrototypeOf.js | 4 +
.../node_modules/get-proto/index.d.ts | 5 +
.../node_modules/get-proto/index.js | 27 +
.../node_modules/get-proto/package.json | 81 +
.../node_modules/get-proto/tsconfig.json | 9 +
.../node_modules/glob/LICENSE | 21 +
.../node_modules/glob/README.md | 378 +
.../node_modules/glob/common.js | 238 +
.../node_modules/glob/glob.js | 790 ++
.../node_modules/glob/package.json | 55 +
.../node_modules/glob/sync.js | 486 +
.../node_modules/gopd/.eslintrc | 16 +
.../node_modules/gopd/.github/FUNDING.yml | 12 +
.../node_modules/gopd/CHANGELOG.md | 45 +
.../node_modules/gopd/LICENSE | 21 +
.../node_modules/gopd/README.md | 40 +
.../node_modules/gopd/gOPD.d.ts | 1 +
.../node_modules/gopd/gOPD.js | 4 +
.../node_modules/gopd/index.d.ts | 5 +
.../node_modules/gopd/index.js | 15 +
.../node_modules/gopd/package.json | 77 +
.../node_modules/gopd/tsconfig.json | 9 +
.../node_modules/graceful-fs/LICENSE | 15 +
.../node_modules/graceful-fs/README.md | 143 +
.../node_modules/graceful-fs/clone.js | 23 +
.../node_modules/graceful-fs/graceful-fs.js | 448 +
.../graceful-fs/legacy-streams.js | 118 +
.../node_modules/graceful-fs/package.json | 53 +
.../node_modules/graceful-fs/polyfills.js | 355 +
.../node_modules/has-symbols/.eslintrc | 11 +
.../has-symbols/.github/FUNDING.yml | 12 +
.../node_modules/has-symbols/.nycrc | 9 +
.../node_modules/has-symbols/CHANGELOG.md | 91 +
.../node_modules/has-symbols/LICENSE | 21 +
.../node_modules/has-symbols/README.md | 46 +
.../node_modules/has-symbols/index.d.ts | 3 +
.../node_modules/has-symbols/index.js | 14 +
.../node_modules/has-symbols/package.json | 111 +
.../node_modules/has-symbols/shams.d.ts | 3 +
.../node_modules/has-symbols/shams.js | 45 +
.../node_modules/has-symbols/tsconfig.json | 10 +
.../node_modules/has-tostringtag/.eslintrc | 5 +
.../has-tostringtag/.github/FUNDING.yml | 12 +
.../node_modules/has-tostringtag/.nycrc | 13 +
.../node_modules/has-tostringtag/CHANGELOG.md | 42 +
.../node_modules/has-tostringtag/LICENSE | 21 +
.../node_modules/has-tostringtag/README.md | 46 +
.../node_modules/has-tostringtag/index.d.ts | 3 +
.../node_modules/has-tostringtag/index.js | 8 +
.../node_modules/has-tostringtag/package.json | 108 +
.../node_modules/has-tostringtag/shams.d.ts | 3 +
.../node_modules/has-tostringtag/shams.js | 8 +
.../has-tostringtag/tsconfig.json | 49 +
.../node_modules/hasown/.eslintrc | 5 +
.../node_modules/hasown/.github/FUNDING.yml | 12 +
.../node_modules/hasown/.nycrc | 13 +
.../node_modules/hasown/CHANGELOG.md | 40 +
.../node_modules/hasown/LICENSE | 21 +
.../node_modules/hasown/README.md | 40 +
.../node_modules/hasown/index.d.ts | 3 +
.../node_modules/hasown/index.js | 8 +
.../node_modules/hasown/package.json | 92 +
.../node_modules/hasown/tsconfig.json | 6 +
.../node_modules/ieee754/LICENSE | 11 +
.../node_modules/ieee754/README.md | 51 +
.../node_modules/ieee754/index.d.ts | 10 +
.../node_modules/ieee754/index.js | 85 +
.../node_modules/ieee754/package.json | 52 +
.../node_modules/immediate/LICENSE.txt | 20 +
.../node_modules/immediate/README.md | 93 +
.../node_modules/immediate/lib/browser.js | 69 +
.../node_modules/immediate/lib/index.js | 73 +
.../node_modules/immediate/package.json | 42 +
.../node_modules/inflight/LICENSE | 15 +
.../node_modules/inflight/README.md | 37 +
.../node_modules/inflight/inflight.js | 54 +
.../node_modules/inflight/package.json | 29 +
.../node_modules/inherits/LICENSE | 16 +
.../node_modules/inherits/README.md | 42 +
.../node_modules/inherits/inherits.js | 9 +
.../node_modules/inherits/inherits_browser.js | 27 +
.../node_modules/inherits/package.json | 29 +
.../node_modules/isarray/.npmignore | 1 +
.../node_modules/isarray/.travis.yml | 4 +
.../node_modules/isarray/Makefile | 6 +
.../node_modules/isarray/README.md | 60 +
.../node_modules/isarray/component.json | 19 +
.../node_modules/isarray/index.js | 5 +
.../node_modules/isarray/package.json | 45 +
.../node_modules/isarray/test.js | 20 +
.../node_modules/jszip/.codeclimate.yml | 16 +
.../node_modules/jszip/.editorconfig | 8 +
.../node_modules/jszip/.eslintrc.js | 43 +
.../jszip/.github/workflows/pr.yaml | 58 +
.../node_modules/jszip/.jekyll-metadata | Bin 0 -> 24628 bytes
.../node_modules/jszip/.travis.yml | 17 +
.../node_modules/jszip/CHANGES.md | 204 +
.../node_modules/jszip/LICENSE.markdown | 651 ++
.../node_modules/jszip/README.markdown | 33 +
.../node_modules/jszip/deps.js | 37 +
.../node_modules/jszip/graph.svg | 601 ++
.../node_modules/jszip/index.d.ts | 330 +
.../node_modules/jszip/lib/base64.js | 106 +
.../jszip/lib/compressedObject.js | 74 +
.../node_modules/jszip/lib/compressions.js | 14 +
.../node_modules/jszip/lib/crc32.js | 77 +
.../node_modules/jszip/lib/defaults.js | 11 +
.../node_modules/jszip/lib/external.js | 18 +
.../node_modules/jszip/lib/flate.js | 85 +
.../jszip/lib/generate/ZipFileWorker.js | 539 ++
.../node_modules/jszip/lib/generate/index.js | 57 +
.../node_modules/jszip/lib/index.js | 55 +
.../node_modules/jszip/lib/license_header.js | 11 +
.../node_modules/jszip/lib/load.js | 88 +
.../lib/nodejs/NodejsStreamInputAdapter.js | 74 +
.../lib/nodejs/NodejsStreamOutputAdapter.js | 42 +
.../node_modules/jszip/lib/nodejsUtils.js | 57 +
.../node_modules/jszip/lib/object.js | 384 +
.../jszip/lib/readable-stream-browser.js | 10 +
.../jszip/lib/reader/ArrayReader.js | 57 +
.../jszip/lib/reader/DataReader.js | 116 +
.../jszip/lib/reader/NodeBufferReader.js | 19 +
.../jszip/lib/reader/StringReader.js | 38 +
.../jszip/lib/reader/Uint8ArrayReader.js | 22 +
.../jszip/lib/reader/readerFor.js | 28 +
.../node_modules/jszip/lib/signature.js | 7 +
.../jszip/lib/stream/ConvertWorker.js | 26 +
.../jszip/lib/stream/Crc32Probe.js | 24 +
.../jszip/lib/stream/DataLengthProbe.js | 29 +
.../jszip/lib/stream/DataWorker.js | 116 +
.../jszip/lib/stream/GenericWorker.js | 263 +
.../jszip/lib/stream/StreamHelper.js | 214 +
.../node_modules/jszip/lib/support.js | 38 +
.../node_modules/jszip/lib/utf8.js | 275 +
.../node_modules/jszip/lib/utils.js | 501 +
.../node_modules/jszip/lib/zipEntries.js | 261 +
.../node_modules/jszip/lib/zipEntry.js | 293 +
.../node_modules/jszip/lib/zipObject.js | 133 +
.../node_modules/readable-stream/.travis.yml | 34 +
.../readable-stream/CONTRIBUTING.md | 38 +
.../readable-stream/GOVERNANCE.md | 136 +
.../node_modules/readable-stream/LICENSE | 47 +
.../node_modules/readable-stream/README.md | 58 +
.../doc/wg-meetings/2015-01-30.md | 60 +
.../readable-stream/duplex-browser.js | 1 +
.../node_modules/readable-stream/duplex.js | 1 +
.../readable-stream/lib/_stream_duplex.js | 131 +
.../lib/_stream_passthrough.js | 47 +
.../readable-stream/lib/_stream_readable.js | 1019 ++
.../readable-stream/lib/_stream_transform.js | 214 +
.../readable-stream/lib/_stream_writable.js | 685 ++
.../lib/internal/streams/BufferList.js | 78 +
.../lib/internal/streams/destroy.js | 84 +
.../lib/internal/streams/stream-browser.js | 1 +
.../lib/internal/streams/stream.js | 1 +
.../node_modules/readable-stream/package.json | 52 +
.../readable-stream/passthrough.js | 1 +
.../readable-stream/readable-browser.js | 7 +
.../node_modules/readable-stream/readable.js | 19 +
.../node_modules/readable-stream/transform.js | 1 +
.../readable-stream/writable-browser.js | 1 +
.../node_modules/readable-stream/writable.js | 8 +
.../jszip/node_modules/safe-buffer/LICENSE | 21 +
.../jszip/node_modules/safe-buffer/README.md | 584 ++
.../jszip/node_modules/safe-buffer/index.d.ts | 187 +
.../jszip/node_modules/safe-buffer/index.js | 62 +
.../node_modules/safe-buffer/package.json | 37 +
.../node_modules/string_decoder/.travis.yml | 50 +
.../jszip/node_modules/string_decoder/LICENSE | 48 +
.../node_modules/string_decoder/README.md | 47 +
.../string_decoder/lib/string_decoder.js | 296 +
.../node_modules/string_decoder/package.json | 31 +
.../node_modules/jszip/package.json | 67 +
.../node_modules/jszip/sponsors.md | 21 +
.../node_modules/jszip/tsconfig.json | 101 +
.../node_modules/jszip/vendor/FileSaver.js | 247 +
.../node_modules/lazystream/LICENSE | 23 +
.../node_modules/lazystream/README.md | 114 +
.../node_modules/lazystream/lib/lazystream.js | 54 +
.../node_modules/readable-stream/.travis.yml | 34 +
.../readable-stream/CONTRIBUTING.md | 38 +
.../readable-stream/GOVERNANCE.md | 136 +
.../node_modules/readable-stream/LICENSE | 47 +
.../node_modules/readable-stream/README.md | 58 +
.../doc/wg-meetings/2015-01-30.md | 60 +
.../readable-stream/duplex-browser.js | 1 +
.../node_modules/readable-stream/duplex.js | 1 +
.../readable-stream/lib/_stream_duplex.js | 131 +
.../lib/_stream_passthrough.js | 47 +
.../readable-stream/lib/_stream_readable.js | 1019 ++
.../readable-stream/lib/_stream_transform.js | 214 +
.../readable-stream/lib/_stream_writable.js | 685 ++
.../lib/internal/streams/BufferList.js | 78 +
.../lib/internal/streams/destroy.js | 84 +
.../lib/internal/streams/stream-browser.js | 1 +
.../lib/internal/streams/stream.js | 1 +
.../node_modules/readable-stream/package.json | 52 +
.../readable-stream/passthrough.js | 1 +
.../readable-stream/readable-browser.js | 7 +
.../node_modules/readable-stream/readable.js | 19 +
.../node_modules/readable-stream/transform.js | 1 +
.../readable-stream/writable-browser.js | 1 +
.../node_modules/readable-stream/writable.js | 8 +
.../node_modules/safe-buffer/LICENSE | 21 +
.../node_modules/safe-buffer/README.md | 584 ++
.../node_modules/safe-buffer/index.d.ts | 187 +
.../node_modules/safe-buffer/index.js | 62 +
.../node_modules/safe-buffer/package.json | 37 +
.../node_modules/string_decoder/.travis.yml | 50 +
.../node_modules/string_decoder/LICENSE | 48 +
.../node_modules/string_decoder/README.md | 47 +
.../string_decoder/lib/string_decoder.js | 296 +
.../node_modules/string_decoder/package.json | 31 +
.../node_modules/lazystream/package.json | 46 +
.../node_modules/lie/README.md | 62 +
.../node_modules/lie/lib/browser.js | 273 +
.../node_modules/lie/lib/index.js | 298 +
.../node_modules/lie/license.md | 7 +
.../node_modules/lie/lie.d.ts | 244 +
.../node_modules/lie/package.json | 69 +
.../node_modules/lie/polyfill.js | 4 +
.../node_modules/listenercount/.npmignore | 2 +
.../node_modules/listenercount/LICENSE.md | 5 +
.../node_modules/listenercount/README.md | 50 +
.../node_modules/listenercount/circle.yml | 6 +
.../node_modules/listenercount/index.js | 16 +
.../node_modules/listenercount/package.json | 27 +
.../node_modules/lodash.defaults/LICENSE | 47 +
.../node_modules/lodash.defaults/README.md | 18 +
.../node_modules/lodash.defaults/index.js | 668 ++
.../node_modules/lodash.defaults/package.json | 17 +
.../node_modules/lodash.difference/LICENSE | 47 +
.../node_modules/lodash.difference/README.md | 18 +
.../node_modules/lodash.difference/index.js | 1170 +++
.../lodash.difference/package.json | 17 +
.../node_modules/lodash.escaperegexp/LICENSE | 47 +
.../lodash.escaperegexp/README.md | 18 +
.../node_modules/lodash.escaperegexp/index.js | 166 +
.../lodash.escaperegexp/package.json | 17 +
.../node_modules/lodash.flatten/LICENSE | 47 +
.../node_modules/lodash.flatten/README.md | 18 +
.../node_modules/lodash.flatten/index.js | 349 +
.../node_modules/lodash.flatten/package.json | 17 +
.../node_modules/lodash.groupby/LICENSE | 47 +
.../node_modules/lodash.groupby/README.md | 18 +
.../node_modules/lodash.groupby/index.js | 2369 +++++
.../node_modules/lodash.groupby/package.json | 17 +
.../node_modules/lodash.isboolean/LICENSE | 22 +
.../node_modules/lodash.isboolean/README.md | 18 +
.../node_modules/lodash.isboolean/index.js | 70 +
.../lodash.isboolean/package.json | 17 +
.../node_modules/lodash.isequal/LICENSE | 47 +
.../node_modules/lodash.isequal/README.md | 18 +
.../node_modules/lodash.isequal/index.js | 1848 ++++
.../node_modules/lodash.isequal/package.json | 16 +
.../node_modules/lodash.isfunction/LICENSE | 47 +
.../node_modules/lodash.isfunction/README.md | 18 +
.../node_modules/lodash.isfunction/index.js | 155 +
.../lodash.isfunction/package.json | 16 +
.../node_modules/lodash.isnil/LICENSE | 22 +
.../node_modules/lodash.isnil/README.md | 18 +
.../node_modules/lodash.isnil/index.js | 33 +
.../node_modules/lodash.isnil/package.json | 17 +
.../node_modules/lodash.isplainobject/LICENSE | 47 +
.../lodash.isplainobject/README.md | 18 +
.../lodash.isplainobject/index.js | 139 +
.../lodash.isplainobject/package.json | 17 +
.../lodash.isundefined/LICENSE.txt | 22 +
.../node_modules/lodash.isundefined/README.md | 20 +
.../node_modules/lodash.isundefined/index.js | 30 +
.../lodash.isundefined/package.json | 19 +
.../node_modules/lodash.union/LICENSE | 47 +
.../node_modules/lodash.union/README.md | 18 +
.../node_modules/lodash.union/index.js | 1181 +++
.../node_modules/lodash.union/package.json | 17 +
.../node_modules/lodash.uniq/LICENSE | 47 +
.../node_modules/lodash.uniq/README.md | 18 +
.../node_modules/lodash.uniq/index.js | 896 ++
.../node_modules/lodash.uniq/package.json | 17 +
.../node_modules/math-intrinsics/.eslintrc | 16 +
.../math-intrinsics/.github/FUNDING.yml | 12 +
.../node_modules/math-intrinsics/CHANGELOG.md | 24 +
.../node_modules/math-intrinsics/LICENSE | 21 +
.../node_modules/math-intrinsics/README.md | 50 +
.../node_modules/math-intrinsics/abs.d.ts | 1 +
.../node_modules/math-intrinsics/abs.js | 4 +
.../constants/maxArrayLength.d.ts | 3 +
.../constants/maxArrayLength.js | 4 +
.../constants/maxSafeInteger.d.ts | 3 +
.../constants/maxSafeInteger.js | 5 +
.../math-intrinsics/constants/maxValue.d.ts | 3 +
.../math-intrinsics/constants/maxValue.js | 5 +
.../node_modules/math-intrinsics/floor.d.ts | 1 +
.../node_modules/math-intrinsics/floor.js | 4 +
.../math-intrinsics/isFinite.d.ts | 3 +
.../node_modules/math-intrinsics/isFinite.js | 12 +
.../math-intrinsics/isInteger.d.ts | 3 +
.../node_modules/math-intrinsics/isInteger.js | 16 +
.../node_modules/math-intrinsics/isNaN.d.ts | 1 +
.../node_modules/math-intrinsics/isNaN.js | 6 +
.../math-intrinsics/isNegativeZero.d.ts | 3 +
.../math-intrinsics/isNegativeZero.js | 6 +
.../node_modules/math-intrinsics/max.d.ts | 1 +
.../node_modules/math-intrinsics/max.js | 4 +
.../node_modules/math-intrinsics/min.d.ts | 1 +
.../node_modules/math-intrinsics/min.js | 4 +
.../node_modules/math-intrinsics/mod.d.ts | 3 +
.../node_modules/math-intrinsics/mod.js | 9 +
.../node_modules/math-intrinsics/package.json | 86 +
.../node_modules/math-intrinsics/pow.d.ts | 1 +
.../node_modules/math-intrinsics/pow.js | 4 +
.../node_modules/math-intrinsics/round.d.ts | 1 +
.../node_modules/math-intrinsics/round.js | 4 +
.../node_modules/math-intrinsics/sign.d.ts | 3 +
.../node_modules/math-intrinsics/sign.js | 11 +
.../math-intrinsics/tsconfig.json | 3 +
.../node_modules/mime-db/HISTORY.md | 507 +
.../node_modules/mime-db/LICENSE | 23 +
.../node_modules/mime-db/README.md | 100 +
.../node_modules/mime-db/db.json | 8519 +++++++++++++++++
.../node_modules/mime-db/index.js | 12 +
.../node_modules/mime-db/package.json | 60 +
.../node_modules/mime-types/HISTORY.md | 397 +
.../node_modules/mime-types/LICENSE | 23 +
.../node_modules/mime-types/README.md | 113 +
.../node_modules/mime-types/index.js | 188 +
.../node_modules/mime-types/package.json | 44 +
.../node_modules/minimatch/LICENSE | 15 +
.../node_modules/minimatch/README.md | 230 +
.../node_modules/minimatch/minimatch.js | 947 ++
.../node_modules/minimatch/package.json | 33 +
.../node_modules/minimist/.eslintrc | 29 +
.../node_modules/minimist/.github/FUNDING.yml | 12 +
.../node_modules/minimist/.nycrc | 14 +
.../node_modules/minimist/CHANGELOG.md | 298 +
.../node_modules/minimist/LICENSE | 18 +
.../node_modules/minimist/README.md | 121 +
.../node_modules/minimist/example/parse.js | 4 +
.../node_modules/minimist/index.js | 263 +
.../node_modules/minimist/package.json | 75 +
.../node_modules/mkdirp/LICENSE | 21 +
.../node_modules/mkdirp/bin/cmd.js | 33 +
.../node_modules/mkdirp/bin/usage.txt | 12 +
.../node_modules/mkdirp/index.js | 102 +
.../node_modules/mkdirp/package.json | 33 +
.../node_modules/mkdirp/readme.markdown | 100 +
.../node_modules/normalize-path/LICENSE | 21 +
.../node_modules/normalize-path/README.md | 127 +
.../node_modules/normalize-path/index.js | 35 +
.../node_modules/normalize-path/package.json | 77 +
.../node_modules/once/LICENSE | 15 +
.../node_modules/once/README.md | 79 +
.../node_modules/once/once.js | 42 +
.../node_modules/once/package.json | 33 +
.../node_modules/pako/CHANGELOG.md | 164 +
.../node_modules/pako/LICENSE | 21 +
.../node_modules/pako/README.md | 191 +
.../node_modules/pako/index.js | 14 +
.../node_modules/pako/lib/deflate.js | 400 +
.../node_modules/pako/lib/inflate.js | 423 +
.../node_modules/pako/lib/utils/common.js | 105 +
.../node_modules/pako/lib/utils/strings.js | 187 +
.../node_modules/pako/lib/zlib/README | 59 +
.../node_modules/pako/lib/zlib/adler32.js | 51 +
.../node_modules/pako/lib/zlib/constants.js | 68 +
.../node_modules/pako/lib/zlib/crc32.js | 59 +
.../node_modules/pako/lib/zlib/deflate.js | 1874 ++++
.../node_modules/pako/lib/zlib/gzheader.js | 58 +
.../node_modules/pako/lib/zlib/inffast.js | 345 +
.../node_modules/pako/lib/zlib/inflate.js | 1556 +++
.../node_modules/pako/lib/zlib/inftrees.js | 343 +
.../node_modules/pako/lib/zlib/messages.js | 32 +
.../node_modules/pako/lib/zlib/trees.js | 1222 +++
.../node_modules/pako/lib/zlib/zstream.js | 47 +
.../node_modules/pako/package.json | 44 +
.../node_modules/path-is-absolute/index.js | 20 +
.../node_modules/path-is-absolute/license | 21 +
.../path-is-absolute/package.json | 43 +
.../node_modules/path-is-absolute/readme.md | 59 +
.../process-nextick-args/index.js | 45 +
.../process-nextick-args/license.md | 19 +
.../process-nextick-args/package.json | 25 +
.../process-nextick-args/readme.md | 18 +
.../node_modules/proxy-from-env/.eslintrc | 29 +
.../node_modules/proxy-from-env/.travis.yml | 10 +
.../node_modules/proxy-from-env/LICENSE | 20 +
.../node_modules/proxy-from-env/README.md | 131 +
.../node_modules/proxy-from-env/index.js | 108 +
.../node_modules/proxy-from-env/package.json | 34 +
.../node_modules/proxy-from-env/test.js | 483 +
.../readable-stream/CONTRIBUTING.md | 38 +
.../readable-stream/GOVERNANCE.md | 136 +
.../node_modules/readable-stream/LICENSE | 47 +
.../node_modules/readable-stream/README.md | 106 +
.../readable-stream/errors-browser.js | 127 +
.../node_modules/readable-stream/errors.js | 116 +
.../readable-stream/experimentalWarning.js | 17 +
.../readable-stream/lib/_stream_duplex.js | 126 +
.../lib/_stream_passthrough.js | 37 +
.../readable-stream/lib/_stream_readable.js | 1027 ++
.../readable-stream/lib/_stream_transform.js | 190 +
.../readable-stream/lib/_stream_writable.js | 641 ++
.../lib/internal/streams/async_iterator.js | 180 +
.../lib/internal/streams/buffer_list.js | 183 +
.../lib/internal/streams/destroy.js | 96 +
.../lib/internal/streams/end-of-stream.js | 86 +
.../lib/internal/streams/from-browser.js | 3 +
.../lib/internal/streams/from.js | 52 +
.../lib/internal/streams/pipeline.js | 86 +
.../lib/internal/streams/state.js | 22 +
.../lib/internal/streams/stream-browser.js | 1 +
.../lib/internal/streams/stream.js | 1 +
.../node_modules/readable-stream/package.json | 68 +
.../readable-stream/readable-browser.js | 9 +
.../node_modules/readable-stream/readable.js | 16 +
.../node_modules/readdir-glob/LICENSE | 201 +
.../node_modules/readdir-glob/README.md | 85 +
.../node_modules/readdir-glob/index.js | 243 +
.../brace-expansion/.github/FUNDING.yml | 2 +
.../node_modules/brace-expansion/LICENSE | 21 +
.../node_modules/brace-expansion/README.md | 135 +
.../node_modules/brace-expansion/index.js | 203 +
.../node_modules/brace-expansion/package.json | 49 +
.../node_modules/minimatch/LICENSE | 15 +
.../node_modules/minimatch/README.md | 259 +
.../node_modules/minimatch/lib/path.js | 4 +
.../node_modules/minimatch/minimatch.js | 944 ++
.../node_modules/minimatch/package.json | 35 +
.../node_modules/readdir-glob/package.json | 43 +
.../node_modules/rimraf/LICENSE | 15 +
.../node_modules/rimraf/README.md | 101 +
.../node_modules/rimraf/bin.js | 50 +
.../node_modules/rimraf/package.json | 29 +
.../node_modules/rimraf/rimraf.js | 372 +
.../node_modules/safe-buffer/LICENSE | 21 +
.../node_modules/safe-buffer/README.md | 584 ++
.../node_modules/safe-buffer/index.d.ts | 187 +
.../node_modules/safe-buffer/index.js | 65 +
.../node_modules/safe-buffer/package.json | 51 +
.../node_modules/saxes/README.md | 323 +
.../node_modules/saxes/package.json | 70 +
.../node_modules/saxes/saxes.d.ts | 635 ++
.../node_modules/saxes/saxes.js | 2064 ++++
.../node_modules/saxes/saxes.js.map | 1 +
.../node_modules/setimmediate/LICENSE.txt | 20 +
.../node_modules/setimmediate/package.json | 30 +
.../node_modules/setimmediate/setImmediate.js | 186 +
.../node_modules/string_decoder/LICENSE | 48 +
.../node_modules/string_decoder/README.md | 47 +
.../string_decoder/lib/string_decoder.js | 296 +
.../node_modules/string_decoder/package.json | 34 +
.../node_modules/tar-stream/LICENSE | 21 +
.../node_modules/tar-stream/README.md | 168 +
.../node_modules/tar-stream/extract.js | 257 +
.../node_modules/tar-stream/headers.js | 295 +
.../node_modules/tar-stream/index.js | 2 +
.../node_modules/tar-stream/pack.js | 255 +
.../node_modules/tar-stream/package.json | 58 +
.../node_modules/tar-stream/sandbox.js | 11 +
.../node_modules/tmp/LICENSE | 21 +
.../node_modules/tmp/README.md | 391 +
.../node_modules/tmp/lib/tmp.js | 842 ++
.../node_modules/tmp/package.json | 56 +
.../node_modules/traverse/.npmignore | 1 +
.../node_modules/traverse/LICENSE | 24 +
.../node_modules/traverse/README.markdown | 247 +
.../node_modules/traverse/examples/json.js | 16 +
.../node_modules/traverse/examples/leaves.js | 15 +
.../traverse/examples/negative.js | 8 +
.../traverse/examples/stringify.js | 38 +
.../node_modules/traverse/index.js | 322 +
.../node_modules/traverse/package.json | 18 +
.../unzipper/.circleci/config.yml | 13 +
.../node_modules/unzipper/.gitattributes | 1 +
.../node_modules/unzipper/.travis.yml | 21 +
.../node_modules/unzipper/LICENSE | 25 +
.../node_modules/unzipper/README.md | 367 +
.../node_modules/unzipper/lib/Buffer.js | 12 +
.../node_modules/unzipper/lib/BufferStream.js | 25 +
.../node_modules/unzipper/lib/Decrypt.js | 72 +
.../node_modules/unzipper/lib/NoopStream.js | 19 +
.../unzipper/lib/Open/directory.js | 231 +
.../node_modules/unzipper/lib/Open/index.js | 101 +
.../node_modules/unzipper/lib/Open/unzip.js | 126 +
.../node_modules/unzipper/lib/PullStream.js | 144 +
.../node_modules/unzipper/lib/extract.js | 55 +
.../node_modules/unzipper/lib/parse.js | 287 +
.../unzipper/lib/parseDateTime.js | 13 +
.../unzipper/lib/parseExtraField.js | 37 +
.../node_modules/unzipper/lib/parseOne.js | 58 +
.../node_modules/readable-stream/.travis.yml | 34 +
.../readable-stream/CONTRIBUTING.md | 38 +
.../readable-stream/GOVERNANCE.md | 136 +
.../node_modules/readable-stream/LICENSE | 47 +
.../node_modules/readable-stream/README.md | 58 +
.../doc/wg-meetings/2015-01-30.md | 60 +
.../readable-stream/duplex-browser.js | 1 +
.../node_modules/readable-stream/duplex.js | 1 +
.../readable-stream/lib/_stream_duplex.js | 131 +
.../lib/_stream_passthrough.js | 47 +
.../readable-stream/lib/_stream_readable.js | 1019 ++
.../readable-stream/lib/_stream_transform.js | 214 +
.../readable-stream/lib/_stream_writable.js | 685 ++
.../lib/internal/streams/BufferList.js | 78 +
.../lib/internal/streams/destroy.js | 84 +
.../lib/internal/streams/stream-browser.js | 1 +
.../lib/internal/streams/stream.js | 1 +
.../node_modules/readable-stream/package.json | 52 +
.../readable-stream/passthrough.js | 1 +
.../readable-stream/readable-browser.js | 7 +
.../node_modules/readable-stream/readable.js | 19 +
.../node_modules/readable-stream/transform.js | 1 +
.../readable-stream/writable-browser.js | 1 +
.../node_modules/readable-stream/writable.js | 8 +
.../unzipper/node_modules/safe-buffer/LICENSE | 21 +
.../node_modules/safe-buffer/README.md | 584 ++
.../node_modules/safe-buffer/index.d.ts | 187 +
.../node_modules/safe-buffer/index.js | 62 +
.../node_modules/safe-buffer/package.json | 37 +
.../node_modules/string_decoder/.travis.yml | 50 +
.../node_modules/string_decoder/LICENSE | 48 +
.../node_modules/string_decoder/README.md | 47 +
.../string_decoder/lib/string_decoder.js | 296 +
.../node_modules/string_decoder/package.json | 31 +
.../node_modules/unzipper/package.json | 63 +
.../node_modules/unzipper/unzip.js | 11 +
.../node_modules/util-deprecate/History.md | 16 +
.../node_modules/util-deprecate/LICENSE | 24 +
.../node_modules/util-deprecate/README.md | 53 +
.../node_modules/util-deprecate/browser.js | 67 +
.../node_modules/util-deprecate/node.js | 6 +
.../node_modules/util-deprecate/package.json | 27 +
.../node_modules/uuid/CHANGELOG.md | 229 +
.../node_modules/uuid/CONTRIBUTING.md | 18 +
.../node_modules/uuid/LICENSE.md | 9 +
.../node_modules/uuid/README.md | 505 +
.../node_modules/uuid/package.json | 135 +
.../node_modules/uuid/wrapper.mjs | 10 +
.../node_modules/wrappy/LICENSE | 15 +
.../node_modules/wrappy/README.md | 36 +
.../node_modules/wrappy/package.json | 29 +
.../node_modules/wrappy/wrappy.js | 33 +
.../node_modules/xmlchars/LICENSE | 18 +
.../node_modules/xmlchars/README.md | 33 +
.../node_modules/xmlchars/package.json | 51 +
.../node_modules/xmlchars/xml/1.0/ed4.d.ts | 31 +
.../node_modules/xmlchars/xml/1.0/ed4.js | 44 +
.../node_modules/xmlchars/xml/1.0/ed4.js.map | 1 +
.../node_modules/xmlchars/xml/1.0/ed5.d.ts | 51 +
.../node_modules/xmlchars/xml/1.0/ed5.js | 105 +
.../node_modules/xmlchars/xml/1.0/ed5.js.map | 1 +
.../node_modules/xmlchars/xml/1.1/ed2.d.ts | 73 +
.../node_modules/xmlchars/xml/1.1/ed2.js | 145 +
.../node_modules/xmlchars/xml/1.1/ed2.js.map | 1 +
.../node_modules/xmlchars/xmlchars.d.ts | 170 +
.../node_modules/xmlchars/xmlchars.js | 191 +
.../node_modules/xmlchars/xmlchars.js.map | 1 +
.../node_modules/xmlchars/xmlns/1.0/ed3.d.ts | 28 +
.../node_modules/xmlchars/xmlns/1.0/ed3.js | 65 +
.../xmlchars/xmlns/1.0/ed3.js.map | 1 +
.../node_modules/zip-stream/CHANGELOG.md | 112 +
.../node_modules/zip-stream/LICENSE | 22 +
.../node_modules/zip-stream/README.md | 45 +
.../node_modules/zip-stream/index.js | 187 +
.../node_modules/archiver-utils/LICENSE | 22 +
.../node_modules/archiver-utils/README.md | 6 +
.../node_modules/archiver-utils/file.js | 209 +
.../node_modules/archiver-utils/index.js | 149 +
.../node_modules/archiver-utils/package.json | 54 +
.../node_modules/zip-stream/package.json | 49 +
.../purchase_transaction/package-lock.json | 1285 +++
.../purchase_transaction/package.json | 18 +
.../purchase_test_data_2000_fixed.xlsx | Bin 0 -> 424388 bytes
.../purchase_test_data_2000_v2.xlsx | Bin 0 -> 445219 bytes
.../purchase_transaction/test-import-debug.js | 269 +
.../CcdiIntermediaryController.java | 136 +-
...diIntermediaryEntityImportServiceImpl.java | 22 +-
...diIntermediaryPersonImportServiceImpl.java | 22 +-
.../impl/CcdiIntermediaryServiceImpl.java | 282 +-
ruoyi-ui/src/api/ccdiIntermediary.js | 34 +
.../components/ImportDialog.vue | 119 +-
ruoyi-ui/src/views/ccdiIntermediary/index.vue | 465 +-
员工信息导入模板.xlsx | Bin 3810 -> 0 bytes
2058 files changed, 234134 insertions(+), 269 deletions(-)
create mode 100644 doc/intermediary-import-failure-view-design.md
create mode 100644 doc/plans/2026-02-08-intermediary-import-on-duplicate-key-update-design.md
create mode 100644 doc/plans/2026-02-08-purchase-transaction-import-fixes.md
create mode 100644 doc/test-checklist-intermediary-import-failure-view.md
create mode 100644 doc/test-data/intermediary/person_1770542031351.xlsx
delete mode 100644 doc/test-data/intermediary/个人中介黑名单模板_1770258896626.xlsx
create mode 100644 doc/test-data/purchase_transaction/generate-test-data.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/crc32
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/crc32.cmd
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/crc32.ps1
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/mkdirp
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/mkdirp.cmd
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/mkdirp.ps1
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/rimraf
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/rimraf.cmd
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/rimraf.ps1
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/uuid
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/uuid.cmd
create mode 100644 doc/test-data/purchase_transaction/node_modules/.bin/uuid.ps1
create mode 100644 doc/test-data/purchase_transaction/node_modules/.package-lock.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/format/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/assert.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/async_hooks.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/buffer.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/child_process.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/cluster.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/console.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/constants.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/crypto.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/dgram.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/dns.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/domain.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/events.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/fs.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/fs/promises.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/globals.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/globals.global.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/http.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/http2.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/https.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/inspector.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/module.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/net.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/os.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/path.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/perf_hooks.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/process.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/punycode.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/querystring.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/readline.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/repl.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/stream.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/string_decoder.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/timers.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/tls.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/trace_events.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/assert.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/async_hooks.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/buffer.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/child_process.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/cluster.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/console.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/constants.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/crypto.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/dgram.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/dns.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/domain.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/events.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/fs.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/fs/promises.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/globals.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/globals.global.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/http.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/http2.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/https.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/inspector.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/module.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/net.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/os.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/path.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/perf_hooks.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/process.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/punycode.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/querystring.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/readline.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/repl.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/stream.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/string_decoder.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/timers.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/tls.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/trace_events.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/tty.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/url.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/util.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/v8.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/vm.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/wasi.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/worker_threads.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/ts4.8/zlib.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/tty.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/url.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/util.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/v8.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/vm.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/wasi.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/worker_threads.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/@types/node/zlib.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/file.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/CONTRIBUTING.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/GOVERNANCE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/duplex-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/BufferList.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/destroy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/stream-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/readable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/writable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/readable-stream/writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/safe-buffer/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/safe-buffer/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/safe-buffer/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/safe-buffer/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/safe-buffer/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/string_decoder/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/string_decoder/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/string_decoder/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/string_decoder/lib/string_decoder.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/node_modules/string_decoder/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver-utils/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/lib/core.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/lib/error.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/lib/plugins/json.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/lib/plugins/tar.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/lib/plugins/zip.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/archiver/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/all.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/allLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/allSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/any.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/anyLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/anySeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/apply.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/applyEach.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/applyEachSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/asyncify.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/auto.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/autoInject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/bower.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/cargo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/cargoQueue.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/compose.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/concat.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/concatLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/concatSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/constant.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/detect.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/detectLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/detectSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/dir.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/doDuring.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/doUntil.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/doWhilst.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/during.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/each.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/eachLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/eachOf.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/eachOfLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/eachOfSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/eachSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/ensureAsync.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/every.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/everyLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/everySeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/filter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/filterLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/filterSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/find.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/findLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/findSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/flatMap.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/flatMapLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/flatMapSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/foldl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/foldr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/forEach.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/forEachLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/forEachOf.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/forEachOfLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/forEachOfSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/forEachSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/forever.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/groupBy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/groupByLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/groupBySeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/inject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/DoublyLinkedList.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/Heap.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/applyEach.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/asyncEachOfLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/awaitify.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/breakLoop.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/consoleFunc.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/createTester.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/eachOfLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/filter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/getIterator.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/initialParams.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/isArrayLike.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/iterator.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/map.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/once.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/onlyOnce.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/parallel.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/promiseCallback.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/queue.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/range.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/reject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/setImmediate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/withoutIndex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/internal/wrapAsync.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/log.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/map.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/mapLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/mapSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/mapValues.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/mapValuesLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/mapValuesSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/memoize.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/nextTick.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/parallel.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/parallelLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/priorityQueue.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/queue.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/race.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/reduce.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/reduceRight.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/reflect.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/reflectAll.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/reject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/rejectLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/rejectSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/retry.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/retryable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/select.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/selectLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/selectSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/seq.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/series.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/setImmediate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/some.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/someLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/someSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/sortBy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/timeout.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/times.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/timesLimit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/timesSeries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/tryEach.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/unmemoize.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/until.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/waterfall.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/whilst.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/async/wrapSync.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/bench.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/abort.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/async.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/defer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/iterate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/readable_asynckit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/readable_parallel.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/readable_serial.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/readable_serial_ordered.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/state.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/streamify.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/lib/terminator.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/parallel.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/serial.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/serialOrdered.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/asynckit/stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/MIGRATION_GUIDE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/index.d.cts
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/adapters/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/adapters/adapters.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/adapters/fetch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/adapters/http.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/adapters/xhr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/axios.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/cancel/CancelToken.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/cancel/CanceledError.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/cancel/isCancel.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/Axios.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/AxiosError.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/AxiosHeaders.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/InterceptorManager.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/buildFullPath.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/dispatchRequest.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/mergeConfig.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/settle.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/core/transformData.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/defaults/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/defaults/transitional.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/env/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/env/classes/FormData.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/env/data.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/AxiosTransformStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/AxiosURLSearchParams.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/HttpStatusCode.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/bind.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/buildURL.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/callbackify.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/combineURLs.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/composeSignals.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/cookies.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/deprecatedMethod.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/formDataToJSON.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/formDataToStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/fromDataURI.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/isAbsoluteURL.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/isAxiosError.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/isURLSameOrigin.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/null.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/parseHeaders.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/parseProtocol.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/progressEventReducer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/readBlob.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/resolveConfig.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/speedometer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/spread.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/throttle.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/toFormData.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/toURLEncodedForm.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/trackStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/helpers/validator.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/browser/classes/Blob.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/browser/classes/FormData.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/browser/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/common/utils.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/node/classes/FormData.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/node/classes/URLSearchParams.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/platform/node/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/lib/utils.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/axios/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/balanced-match/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/balanced-match/LICENSE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/balanced-match/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/balanced-match/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/balanced-match/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/base64-js/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/base64-js/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/base64-js/base64js.min.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/base64-js/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/base64-js/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/base64-js/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/big-integer/BigInteger.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/big-integer/BigInteger.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/big-integer/BigInteger.min.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/big-integer/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/big-integer/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/big-integer/bower.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/big-integer/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/big-integer/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/.npmignore
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/README.markdown
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/example/buf.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/example/parse.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/example/stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/lib/vars.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/perf/loop.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/binary/perf/small.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bl/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/bl/BufferList.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bl/LICENSE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/bl/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/bl/bl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bl/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/changelog.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/browser/bluebird.core.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/browser/bluebird.core.min.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/browser/bluebird.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/browser/bluebird.min.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/any.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/assert.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/async.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/bind.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/bluebird.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/call_get.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/cancel.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/catch_filter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/context.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/debuggability.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/direct_resolve.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/each.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/errors.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/es5.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/filter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/finally.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/generators.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/join.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/map.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/method.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/nodeback.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/nodeify.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/promise.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/promise_array.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/promisify.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/props.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/queue.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/race.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/reduce.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/schedule.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/settle.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/some.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/synchronous_inspection.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/thenables.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/timers.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/using.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/js/release/util.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/bluebird/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/brace-expansion/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/brace-expansion/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/brace-expansion/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/brace-expansion/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-crc32/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-crc32/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-crc32/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-crc32/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-indexof-polyfill/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-indexof-polyfill/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-indexof-polyfill/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-indexof-polyfill/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-indexof-polyfill/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-indexof-polyfill/init-buffer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer-indexof-polyfill/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer/AUTHORS.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffer/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffers/README.markdown
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffers/examples/slice.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffers/examples/splice.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffers/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/buffers/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/actualApply.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/actualApply.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/applyBind.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/applyBind.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/functionApply.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/functionApply.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/functionCall.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/functionCall.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/reflectApply.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/reflectApply.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/call-bind-apply-helpers/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/chainsaw/.npmignore
create mode 100644 doc/test-data/purchase_transaction/node_modules/chainsaw/README.markdown
create mode 100644 doc/test-data/purchase_transaction/node_modules/chainsaw/examples/add_do.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/chainsaw/examples/prompt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/chainsaw/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/chainsaw/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/combined-stream/License
create mode 100644 doc/test-data/purchase_transaction/node_modules/combined-stream/Readme.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/combined-stream/lib/combined_stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/combined-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/combined-stream/yarn.lock
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/archivers/archive-entry.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/archivers/archive-output-stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/archivers/zip/constants.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/archivers/zip/unix-stat.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/archivers/zip/util.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/compress-commons.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/lib/util/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/compress-commons/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/concat-map/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/concat-map/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/concat-map/README.markdown
create mode 100644 doc/test-data/purchase_transaction/node_modules/concat-map/example/map.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/concat-map/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/concat-map/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/core-util-is/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/core-util-is/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/core-util-is/lib/util.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/core-util-is/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/bin/crc32.njs
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/crc32.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/crc32c.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/types/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/types/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc-32/types/tslint.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc32-stream/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc32-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc32-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc32-stream/lib/crc32-stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc32-stream/lib/deflate-crc32-stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc32-stream/lib/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/crc32-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/.editorconfig
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/dayjs.min.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/constant.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/af.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/am.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ar-dz.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ar-iq.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ar-kw.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ar-ly.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ar-ma.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ar-sa.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ar-tn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ar.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/az.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/be.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/bg.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/bi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/bm.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/bn-bd.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/bn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/bo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/br.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/bs.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ca.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/cs.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/cv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/cy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/da.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/de-at.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/de-ch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/de.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/dv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/el.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-au.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-ca.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-gb.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-ie.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-il.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-in.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-nz.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-sg.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en-tt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/en.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/eo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/es-do.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/es-mx.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/es-pr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/es-us.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/es.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/et.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/eu.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/fa.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/fi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/fo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/fr-ca.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/fr-ch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/fr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/fy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ga.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/gd.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/gl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/gom-latn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/gu.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/he.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/hi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/hr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ht.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/hu.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/hy-am.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/id.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/is.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/it-ch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/it.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ja.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/jv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ka.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/kk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/km.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/kn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ko.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ku.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ky.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/lb.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/lo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/lt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/lv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/me.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/mi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/mk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ml.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/mn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/mr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ms-my.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ms.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/mt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/my.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/nb.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ne.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/nl-be.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/nl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/nn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/oc-lnc.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/pa-in.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/pl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/pt-br.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/pt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/rn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ro.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ru.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/rw.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sd.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/se.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/si.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sq.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sr-cyrl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ss.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sv-fi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/sw.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ta.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/te.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tet.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tg.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/th.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tl-ph.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tlh.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/types.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tzl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tzm-latn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/tzm.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ug-cn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/uk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/ur.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/uz-latn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/uz.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/vi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/x-pseudo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/yo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/zh-cn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/zh-hk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/zh-tw.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/locale/zh.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/advancedFormat/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/advancedFormat/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/arraySupport/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/arraySupport/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/badMutable/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/badMutable/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/bigIntSupport/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/bigIntSupport/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/buddhistEra/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/buddhistEra/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/calendar/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/calendar/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/customParseFormat/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/customParseFormat/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/dayOfYear/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/dayOfYear/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/devHelper/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/devHelper/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/duration/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/duration/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isBetween/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isBetween/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isLeapYear/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isLeapYear/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isMoment/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isMoment/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isSameOrAfter/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isSameOrAfter/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isSameOrBefore/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isSameOrBefore/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isToday/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isToday/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isTomorrow/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isTomorrow/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isYesterday/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isYesterday/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isoWeek/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isoWeek/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isoWeeksInYear/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/isoWeeksInYear/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/localeData/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/localeData/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/localizedFormat/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/localizedFormat/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/localizedFormat/utils.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/minMax/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/minMax/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/negativeYear/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/negativeYear/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/objectSupport/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/objectSupport/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/pluralGetSet/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/pluralGetSet/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/preParsePostFormat/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/preParsePostFormat/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/quarterOfYear/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/quarterOfYear/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/relativeTime/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/relativeTime/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/timezone/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/timezone/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/toArray/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/toArray/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/toObject/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/toObject/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/updateLocale/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/updateLocale/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/utc/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/utc/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/weekOfYear/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/weekOfYear/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/weekYear/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/weekYear/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/weekday/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/plugin/weekday/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/esm/utils.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/af.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/am.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ar-dz.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ar-iq.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ar-kw.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ar-ly.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ar-ma.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ar-sa.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ar-tn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ar.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/az.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/be.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/bg.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/bi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/bm.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/bn-bd.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/bn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/bo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/br.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/bs.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ca.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/cs.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/cv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/cy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/da.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/de-at.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/de-ch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/de.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/dv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/el.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-au.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-ca.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-gb.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-ie.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-il.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-in.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-nz.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-sg.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en-tt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/en.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/eo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/es-do.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/es-mx.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/es-pr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/es-us.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/es.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/et.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/eu.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/fa.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/fi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/fo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/fr-ca.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/fr-ch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/fr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/fy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ga.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/gd.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/gl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/gom-latn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/gu.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/he.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/hi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/hr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ht.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/hu.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/hy-am.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/id.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/is.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/it-ch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/it.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ja.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/jv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ka.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/kk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/km.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/kn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ko.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ku.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ky.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/lb.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/lo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/lt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/lv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/me.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/mi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/mk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ml.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/mn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/mr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ms-my.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ms.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/mt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/my.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/nb.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ne.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/nl-be.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/nl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/nn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/oc-lnc.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/pa-in.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/pl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/pt-br.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/pt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/rn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ro.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ru.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/rw.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sd.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/se.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/si.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sq.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sr-cyrl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ss.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sv-fi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/sw.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ta.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/te.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tet.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tg.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/th.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tl-ph.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tlh.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/types.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tzl.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tzm-latn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/tzm.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ug-cn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/uk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/ur.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/uz-latn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/uz.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/vi.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/x-pseudo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/yo.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/zh-cn.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/zh-hk.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/zh-tw.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/locale/zh.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/advancedFormat.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/advancedFormat.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/arraySupport.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/arraySupport.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/badMutable.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/badMutable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/bigIntSupport.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/bigIntSupport.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/buddhistEra.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/buddhistEra.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/calendar.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/calendar.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/customParseFormat.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/customParseFormat.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/dayOfYear.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/dayOfYear.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/devHelper.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/devHelper.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/duration.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/duration.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isBetween.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isBetween.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isLeapYear.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isLeapYear.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isMoment.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isMoment.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isSameOrAfter.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isSameOrAfter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isSameOrBefore.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isSameOrBefore.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isToday.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isToday.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isTomorrow.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isTomorrow.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isYesterday.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isYesterday.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isoWeek.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isoWeek.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isoWeeksInYear.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/isoWeeksInYear.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/localeData.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/localeData.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/localizedFormat.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/localizedFormat.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/minMax.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/minMax.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/negativeYear.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/negativeYear.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/objectSupport.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/objectSupport.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/pluralGetSet.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/pluralGetSet.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/preParsePostFormat.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/preParsePostFormat.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/quarterOfYear.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/quarterOfYear.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/relativeTime.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/relativeTime.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/timezone.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/timezone.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/toArray.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/toArray.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/toObject.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/toObject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/updateLocale.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/updateLocale.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/utc.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/utc.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/weekOfYear.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/weekOfYear.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/weekYear.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/weekYear.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/weekday.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dayjs/plugin/weekday.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/delayed-stream/.npmignore
create mode 100644 doc/test-data/purchase_transaction/node_modules/delayed-stream/License
create mode 100644 doc/test-data/purchase_transaction/node_modules/delayed-stream/Makefile
create mode 100644 doc/test-data/purchase_transaction/node_modules/delayed-stream/Readme.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/delayed-stream/lib/delayed_stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/delayed-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/get.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/get.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/set.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/set.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/dunder-proto/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/LICENSE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/CONTRIBUTING.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/GOVERNANCE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/duplex-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/_stream_duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/_stream_passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/_stream_readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/_stream_transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/_stream_writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/internal/streams/BufferList.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/internal/streams/destroy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/internal/streams/stream-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/lib/internal/streams/stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/readable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/writable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/readable-stream/writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/safe-buffer/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/safe-buffer/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/safe-buffer/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/safe-buffer/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/safe-buffer/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/string_decoder/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/string_decoder/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/string_decoder/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/string_decoder/lib/string_decoder.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/node_modules/string_decoder/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/duplexer2/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/end-of-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/end-of-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/end-of-stream/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/end-of-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-define-property/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/eval.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/eval.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/range.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/range.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/ref.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/ref.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/syntax.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/syntax.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/type.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/type.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/uri.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-errors/uri.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/RequireObjectCoercible.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/RequireObjectCoercible.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/ToObject.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/ToObject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/isObject.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/isObject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-object-atoms/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/es-set-tostringtag/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/README_zh.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/excel.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/index.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/csv/csv.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/csv/line-buffer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/csv/stream-converter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/anchor.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/cell.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/column.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/data-validations.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/data/theme1.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/defined-names.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/enums.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/image.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/modelcontainer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/note.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/range.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/row.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/table.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/workbook.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/doc/worksheet.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/exceljs.bare.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/exceljs.browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/exceljs.nodejs.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/stream/xlsx/hyperlink-reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/stream/xlsx/sheet-comments-writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/stream/xlsx/sheet-rels-writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/stream/xlsx/workbook-reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/stream/xlsx/workbook-writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/stream/xlsx/worksheet-reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/stream/xlsx/worksheet-writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/auto-drain.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/browser-buffer-decode.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/browser-buffer-encode.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/cell-matrix.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/col-cache.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/copy-style.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/encryptor.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/iterate-stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/parse-sax.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/shared-formula.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/shared-strings.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/stream-base64.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/stream-buf.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/string-buf.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/string-builder.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/stuttered-pipe.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/typed-stack.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/under-dash.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/utils.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/xml-stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/utils/zip-stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/.rels
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/calcChain.xml
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/core.xml
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/defaultnumformats.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/rel-type.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/styles.xml
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/workbook.xml
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/base-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/book/defined-name-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/book/sheet-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/book/workbook-calc-properties-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/book/workbook-properties-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/book/workbook-view-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/book/workbook-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/comment-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/comments-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/style/vml-position-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/style/vml-protection-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/vml-anchor-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/vml-client-data-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/vml-notes-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/vml-shape-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/comment/vml-textbox-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/composite-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/core/app-heading-pairs-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/core/app-titles-of-parts-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/core/app-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/core/content-types-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/core/core-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/core/relationship-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/core/relationships-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/base-cell-anchor-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/blip-fill-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/blip-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/c-nv-pic-pr-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/c-nv-pr-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/cell-position-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/drawing-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/ext-lst-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/hlink-click-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/nv-pic-pr-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/one-cell-anchor-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/pic-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/sp-pr.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/drawing/two-cell-anchor-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/list-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/auto-filter-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cell-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/databar-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/f-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/cf-rule-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/cfvo-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/color-scale-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/conditional-formatting-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/conditional-formattings-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/databar-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/ext-lst-ref-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/formula-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/cf/icon-set-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/col-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/data-validations-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/dimension-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/drawing-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/ext-lst-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/header-footer-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/hyperlink-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/merge-cell-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/merges.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/outline-properties-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/page-breaks-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/page-margins-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/page-setup-properties-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/page-setup-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/picture-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/print-options-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/row-breaks-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/row-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/sheet-format-properties-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/sheet-properties-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/sheet-protection-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/sheet-view-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/table-part-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/sheet/worksheet-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/simple/boolean-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/simple/date-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/simple/float-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/simple/integer-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/simple/string-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/static-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/strings/phonetic-text-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/strings/rich-text-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/strings/shared-string-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/strings/shared-strings-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/strings/text-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/alignment-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/border-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/color-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/dxf-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/fill-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/font-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/numfmt-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/protection-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/style-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/styles-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/style/underline-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/table/auto-filter-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/table/custom-filter-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/table/filter-column-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/table/filter-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/table/table-column-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/table/table-style-info-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xform/table/table-xform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xlsx.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xml/theme1.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/lib/xlsx/xml/theme1.xml
create mode 100644 doc/test-data/purchase_transaction/node_modules/exceljs/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/fast-csv/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/fast-csv/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/fast-csv/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/fast-csv/build/src/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/fast-csv/build/src/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fast-csv/build/src/index.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/fast-csv/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/follow-redirects/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/follow-redirects/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/follow-redirects/debug.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/follow-redirects/http.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/follow-redirects/https.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/follow-redirects/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/follow-redirects/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/form-data/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/form-data/License
create mode 100644 doc/test-data/purchase_transaction/node_modules/form-data/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/form-data/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/form-data/lib/browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/form-data/lib/form_data.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/form-data/lib/populate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/form-data/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs-constants/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs-constants/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs-constants/browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs-constants/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs-constants/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs.realpath/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs.realpath/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs.realpath/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs.realpath/old.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fs.realpath/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/examples/filter-pipe.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/examples/pipe.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/examples/reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/examples/symlink-write.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/fstream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/abstract.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/collect.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/dir-reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/dir-writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/file-reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/file-writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/get-type.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/link-reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/link-writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/proxy-reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/proxy-writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/socket-reader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/lib/writer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/fstream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/.github/SECURITY.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/implementation.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/function-bind/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-intrinsic/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-intrinsic/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-intrinsic/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-intrinsic/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-intrinsic/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-intrinsic/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-intrinsic/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-intrinsic/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/Object.getPrototypeOf.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/Object.getPrototypeOf.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/Reflect.getPrototypeOf.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/Reflect.getPrototypeOf.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/get-proto/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/glob/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/glob/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/glob/common.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/glob/glob.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/glob/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/glob/sync.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/gOPD.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/gOPD.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/gopd/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/graceful-fs/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/graceful-fs/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/graceful-fs/clone.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/graceful-fs/graceful-fs.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/graceful-fs/legacy-streams.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/graceful-fs/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/graceful-fs/polyfills.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/shams.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/shams.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-symbols/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/shams.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/shams.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/has-tostringtag/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/hasown/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/ieee754/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/ieee754/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/ieee754/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/ieee754/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/ieee754/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/immediate/LICENSE.txt
create mode 100644 doc/test-data/purchase_transaction/node_modules/immediate/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/immediate/lib/browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/immediate/lib/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/immediate/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/inflight/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/inflight/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/inflight/inflight.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/inflight/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/inherits/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/inherits/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/inherits/inherits.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/inherits/inherits_browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/inherits/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/isarray/.npmignore
create mode 100644 doc/test-data/purchase_transaction/node_modules/isarray/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/isarray/Makefile
create mode 100644 doc/test-data/purchase_transaction/node_modules/isarray/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/isarray/component.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/isarray/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/isarray/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/isarray/test.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/.codeclimate.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/.editorconfig
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/.eslintrc.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/.github/workflows/pr.yaml
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/.jekyll-metadata
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/CHANGES.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/LICENSE.markdown
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/README.markdown
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/deps.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/graph.svg
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/base64.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/compressedObject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/compressions.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/crc32.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/defaults.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/external.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/flate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/generate/ZipFileWorker.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/generate/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/license_header.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/load.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/nodejsUtils.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/object.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/readable-stream-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/reader/ArrayReader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/reader/DataReader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/reader/NodeBufferReader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/reader/StringReader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/reader/Uint8ArrayReader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/reader/readerFor.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/signature.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/stream/ConvertWorker.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/stream/Crc32Probe.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/stream/DataLengthProbe.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/stream/DataWorker.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/stream/GenericWorker.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/stream/StreamHelper.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/support.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/utf8.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/utils.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/zipEntries.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/zipEntry.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/lib/zipObject.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/CONTRIBUTING.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/GOVERNANCE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/duplex-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/_stream_duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/_stream_passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/_stream_readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/_stream_transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/_stream_writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/internal/streams/BufferList.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/internal/streams/destroy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/internal/streams/stream-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/lib/internal/streams/stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/readable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/writable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/readable-stream/writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/safe-buffer/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/safe-buffer/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/safe-buffer/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/safe-buffer/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/safe-buffer/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/string_decoder/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/string_decoder/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/string_decoder/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/string_decoder/lib/string_decoder.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/node_modules/string_decoder/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/sponsors.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/jszip/vendor/FileSaver.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/lib/lazystream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/CONTRIBUTING.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/GOVERNANCE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/duplex-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/_stream_duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/_stream_passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/_stream_readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/_stream_transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/_stream_writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/BufferList.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/destroy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/stream-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/readable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/writable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/readable-stream/writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/safe-buffer/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/safe-buffer/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/safe-buffer/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/safe-buffer/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/safe-buffer/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/string_decoder/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/string_decoder/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/string_decoder/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/string_decoder/lib/string_decoder.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/node_modules/string_decoder/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lazystream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lie/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lie/lib/browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lie/lib/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lie/license.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lie/lie.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/lie/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lie/polyfill.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/listenercount/.npmignore
create mode 100644 doc/test-data/purchase_transaction/node_modules/listenercount/LICENSE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/listenercount/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/listenercount/circle.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/listenercount/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/listenercount/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.defaults/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.defaults/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.defaults/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.defaults/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.difference/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.difference/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.difference/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.difference/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.escaperegexp/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.escaperegexp/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.escaperegexp/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.escaperegexp/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.flatten/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.flatten/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.flatten/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.flatten/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.groupby/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.groupby/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.groupby/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.groupby/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isboolean/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isboolean/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isboolean/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isboolean/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isequal/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isequal/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isequal/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isequal/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isfunction/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isfunction/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isfunction/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isfunction/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isnil/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isnil/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isnil/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isnil/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isplainobject/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isplainobject/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isplainobject/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isplainobject/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isundefined/LICENSE.txt
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isundefined/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isundefined/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.isundefined/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.union/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.union/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.union/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.union/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.uniq/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.uniq/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.uniq/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/lodash.uniq/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/abs.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/abs.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/constants/maxArrayLength.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/constants/maxArrayLength.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/constants/maxSafeInteger.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/constants/maxValue.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/constants/maxValue.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/floor.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/floor.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/isFinite.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/isFinite.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/isInteger.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/isInteger.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/isNaN.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/isNaN.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/isNegativeZero.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/isNegativeZero.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/max.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/max.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/min.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/min.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/mod.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/mod.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/pow.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/pow.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/round.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/round.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/sign.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/sign.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/math-intrinsics/tsconfig.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-db/HISTORY.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-db/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-db/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-db/db.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-db/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-db/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-types/HISTORY.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-types/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-types/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-types/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/mime-types/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimatch/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimatch/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimatch/minimatch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimatch/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/.nycrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/example/parse.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/minimist/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/mkdirp/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/mkdirp/bin/cmd.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/mkdirp/bin/usage.txt
create mode 100644 doc/test-data/purchase_transaction/node_modules/mkdirp/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/mkdirp/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/mkdirp/readme.markdown
create mode 100644 doc/test-data/purchase_transaction/node_modules/normalize-path/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/normalize-path/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/normalize-path/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/normalize-path/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/once/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/once/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/once/once.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/once/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/deflate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/inflate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/utils/common.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/utils/strings.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/README
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/adler32.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/constants.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/crc32.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/deflate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/gzheader.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/inffast.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/inflate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/inftrees.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/messages.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/trees.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/lib/zlib/zstream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/pako/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/path-is-absolute/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/path-is-absolute/license
create mode 100644 doc/test-data/purchase_transaction/node_modules/path-is-absolute/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/path-is-absolute/readme.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/process-nextick-args/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/process-nextick-args/license.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/process-nextick-args/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/process-nextick-args/readme.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/proxy-from-env/.eslintrc
create mode 100644 doc/test-data/purchase_transaction/node_modules/proxy-from-env/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/proxy-from-env/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/proxy-from-env/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/proxy-from-env/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/proxy-from-env/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/proxy-from-env/test.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/CONTRIBUTING.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/GOVERNANCE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/errors-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/errors.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/experimentalWarning.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/_stream_duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/_stream_passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/_stream_readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/_stream_transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/_stream_writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/async_iterator.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/buffer_list.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/destroy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/end-of-stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/from-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/from.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/pipeline.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/state.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/stream-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/lib/internal/streams/stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/readable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readable-stream/readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/brace-expansion/.github/FUNDING.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/brace-expansion/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/brace-expansion/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/brace-expansion/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/brace-expansion/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/minimatch/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/minimatch/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/minimatch/lib/path.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/minimatch/minimatch.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/node_modules/minimatch/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/readdir-glob/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/rimraf/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/rimraf/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/rimraf/bin.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/rimraf/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/rimraf/rimraf.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/safe-buffer/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/safe-buffer/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/safe-buffer/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/safe-buffer/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/safe-buffer/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/saxes/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/saxes/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/saxes/saxes.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/saxes/saxes.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/saxes/saxes.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/setimmediate/LICENSE.txt
create mode 100644 doc/test-data/purchase_transaction/node_modules/setimmediate/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/setimmediate/setImmediate.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/string_decoder/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/string_decoder/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/string_decoder/lib/string_decoder.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/string_decoder/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/tar-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/tar-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/tar-stream/extract.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/tar-stream/headers.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/tar-stream/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/tar-stream/pack.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/tar-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/tar-stream/sandbox.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/tmp/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/tmp/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/tmp/lib/tmp.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/tmp/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/.npmignore
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/README.markdown
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/examples/json.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/examples/leaves.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/examples/negative.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/examples/stringify.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/traverse/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/.circleci/config.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/.gitattributes
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/Buffer.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/BufferStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/Decrypt.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/NoopStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/Open/directory.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/Open/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/Open/unzip.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/PullStream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/extract.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/parse.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/parseDateTime.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/parseExtraField.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/lib/parseOne.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/CONTRIBUTING.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/GOVERNANCE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/duplex-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/_stream_duplex.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/_stream_passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/_stream_readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/_stream_transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/_stream_writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/BufferList.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/destroy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/stream-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/stream.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/passthrough.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/readable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/readable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/transform.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/writable-browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/readable-stream/writable.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/safe-buffer/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/safe-buffer/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/safe-buffer/index.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/safe-buffer/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/safe-buffer/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/string_decoder/.travis.yml
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/string_decoder/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/string_decoder/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/string_decoder/lib/string_decoder.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/node_modules/string_decoder/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/unzipper/unzip.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/util-deprecate/History.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/util-deprecate/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/util-deprecate/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/util-deprecate/browser.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/util-deprecate/node.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/util-deprecate/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/uuid/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/uuid/CONTRIBUTING.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/uuid/LICENSE.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/uuid/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/uuid/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/uuid/wrapper.mjs
create mode 100644 doc/test-data/purchase_transaction/node_modules/wrappy/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/wrappy/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/wrappy/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/wrappy/wrappy.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.0/ed4.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.0/ed4.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.0/ed4.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.0/ed5.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.0/ed5.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.0/ed5.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.1/ed2.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.1/ed2.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xml/1.1/ed2.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xmlchars.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xmlchars.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xmlchars.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xmlns/1.0/ed3.d.ts
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xmlns/1.0/ed3.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/xmlchars/xmlns/1.0/ed3.js.map
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/CHANGELOG.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/node_modules/archiver-utils/LICENSE
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/node_modules/archiver-utils/README.md
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/node_modules/archiver-utils/file.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/node_modules/archiver-utils/index.js
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/node_modules/archiver-utils/package.json
create mode 100644 doc/test-data/purchase_transaction/node_modules/zip-stream/package.json
create mode 100644 doc/test-data/purchase_transaction/package-lock.json
create mode 100644 doc/test-data/purchase_transaction/package.json
create mode 100644 doc/test-data/purchase_transaction/purchase_test_data_2000_fixed.xlsx
create mode 100644 doc/test-data/purchase_transaction/purchase_test_data_2000_v2.xlsx
create mode 100644 doc/test-data/purchase_transaction/test-import-debug.js
delete mode 100644 员工信息导入模板.xlsx
diff --git a/.claude/settings.local.json b/.claude/settings.local.json
index 0023e0f..e98ea72 100644
--- a/.claude/settings.local.json
+++ b/.claude/settings.local.json
@@ -87,7 +87,12 @@
"Bash(git show:*)",
"Bash(git rebase:*)",
"Bash(git stash:*)",
- "Bash(git checkout:*)"
+ "Bash(git checkout:*)",
+ "Bash(git check-ignore:*)",
+ "Bash(git worktree add:*)",
+ "Bash(xmllint:*)",
+ "Bash(git worktree remove:*)",
+ "Bash(git branch:*)"
]
},
"enabledMcpjsonServers": [
diff --git a/doc/intermediary-import-failure-view-design.md b/doc/intermediary-import-failure-view-design.md
new file mode 100644
index 0000000..b15d794
--- /dev/null
+++ b/doc/intermediary-import-failure-view-design.md
@@ -0,0 +1,489 @@
+# 中介库导入失败记录查看功能设计
+
+## 1. 需求背景
+
+当前中介库导入功能在导入失败后,只显示通知消息,但没有提供查看失败记录的入口,用户无法了解具体哪些数据导入失败以及失败原因。
+
+## 2. 功能描述
+
+为中介库管理页面添加**导入失败记录查看**功能,支持个人中介和实体中介两种类型的失败记录查看。
+
+### 2.1 核心功能
+
+1. **双按钮独立管理**
+ - "查看个人导入失败记录"按钮 - 仅在个人中介导入存在失败记录时显示
+ - "查看实体导入失败记录"按钮 - 仅在实体中介导入存在失败记录时显示
+ - 按钮带tooltip提示上次导入时间
+
+2. **localStorage持久化存储**
+ - 分别存储个人中介和实体中介的导入任务信息
+ - 存储期限:7天,过期自动清除
+ - 存储内容:任务ID、导入时间、成功数、失败数、hasFailures标志
+
+3. **失败记录对话框**
+ - 显示导入统计摘要(总数/成功/失败)
+ - 表格展示所有失败记录,支持分页(每页10条)
+ - 提供清除历史记录按钮
+ - 记录过期时自动提示并清除
+
+## 3. 技术设计
+
+### 3.1 组件结构
+
+```
+index.vue (中介库管理页面)
+├── 工具栏按钮区域
+│ ├── 新增按钮
+│ ├── 导入按钮
+│ ├── 查看个人导入失败记录按钮 (条件显示)
+│ └── 查看实体导入失败记录按钮 (条件显示)
+├── 数据表格
+├── 个人中介导入失败记录对话框
+└── 实体中介导入失败记录对话框
+```
+
+### 3.2 数据流程
+
+```
+用户选择文件上传
+ ↓
+ImportDialog 组件提交导入
+ ↓
+后端返回 taskId (异步处理)
+ ↓
+前端开始轮询导入状态
+ ↓
+导入完成,ImportDialog 触发 @import-complete 事件
+ ↓
+index.vue 接收事件,根据 importType 判断类型
+ ↓
+保存任务信息到 localStorage (person 或 entity)
+ ↓
+更新对应的失败记录按钮显示状态
+ ↓
+用户点击"查看失败记录"按钮
+ ↓
+调用后端接口获取失败记录列表 (支持分页)
+ ↓
+在对话框中展示失败记录和错误原因
+```
+
+### 3.3 localStorage存储设计
+
+#### 3.3.1 个人中介导入任务
+
+**Key**: `intermediary_person_import_last_task`
+
+**数据结构**:
+```javascript
+{
+ taskId: "uuid", // 任务ID
+ saveTime: 1234567890, // 保存时间戳
+ hasFailures: true, // 是否有失败记录
+ totalCount: 100, // 总数
+ successCount: 95, // 成功数
+ failureCount: 5 // 失败数
+}
+```
+
+#### 3.3.2 实体中介导入任务
+
+**Key**: `intermediary_entity_import_last_task`
+
+**数据结构**: 同个人中介
+
+### 3.4 页面状态管理
+
+```javascript
+data() {
+ return {
+ // 按钮显示状态
+ showPersonFailureButton: false,
+ showEntityFailureButton: false,
+
+ // 当前任务ID
+ currentPersonTaskId: null,
+ currentEntityTaskId: null,
+
+ // 个人失败记录对话框
+ personFailureDialogVisible: false,
+ personFailureList: [],
+ personFailureLoading: false,
+ personFailureTotal: 0,
+ personFailureQueryParams: {
+ pageNum: 1,
+ pageSize: 10
+ },
+
+ // 实体失败记录对话框
+ entityFailureDialogVisible: false,
+ entityFailureList: [],
+ entityFailureLoading: false,
+ entityFailureTotal: 0,
+ entityFailureQueryParams: {
+ pageNum: 1,
+ pageSize: 10
+ }
+ }
+}
+```
+
+## 4. 接口依赖
+
+### 4.1 已有后端接口
+
+#### 4.1.1 查询个人中介导入失败记录
+
+**接口**: `GET /ccdi/intermediary/importPersonFailures/{taskId}`
+
+**参数**:
+- `taskId`: 任务ID (路径参数)
+- `pageNum`: 页码 (默认1)
+- `pageSize`: 每页大小 (默认10)
+
+**返回**: `IntermediaryPersonImportFailureVO[]`
+
+**字段**:
+- `name`: 姓名
+- `personId`: 证件号码
+- `personType`: 人员类型
+- `gender`: 性别
+- `mobile`: 手机号码
+- `company`: 所在公司
+- `errorMessage`: 错误信息
+
+#### 4.1.2 查询实体中介导入失败记录
+
+**接口**: `GET /ccdi/intermediary/importEntityFailures/{taskId}`
+
+**参数**:
+- `taskId`: 任务ID (路径参数)
+- `pageNum`: 页码 (默认1)
+- `pageSize`: 每页大小 (默认10)
+
+**返回**: `IntermediaryEntityImportFailureVO[]`
+
+**字段**:
+- `enterpriseName`: 机构名称
+- `socialCreditCode`: 统一社会信用代码
+- `enterpriseType`: 主体类型
+- `enterpriseNature`: 企业性质
+- `legalRepresentative`: 法定代表人
+- `establishDate`: 成立日期
+- `errorMessage`: 错误信息
+
+### 4.2 前端API方法
+
+已有API方法 (位于 `@/api/ccdiIntermediary.js`):
+- `getPersonImportFailures(taskId, pageNum, pageSize)` - 查询个人导入失败记录
+- `getEntityImportFailures(taskId, pageNum, pageSize)` - 查询实体导入失败记录
+
+## 5. UI设计
+
+### 5.1 工具栏按钮
+
+```vue
+
+
+ 查看个人导入失败记录
+
+
+
+
+
+ 查看实体导入失败记录
+
+
+```
+
+### 5.2 失败记录对话框
+
+**个人中介失败记录对话框**:
+- 标题: "个人中介导入失败记录"
+- 顶部提示: 显示导入统计信息
+- 表格列: 姓名、证件号码、人员类型、性别、手机号码、所在公司、**失败原因**(最小宽度200px,溢出显示tooltip)
+- 分页组件: 支持翻页
+- 底部按钮: "关闭"、"清除历史记录"
+
+**实体中介失败记录对话框**:
+- 标题: "实体中介导入失败记录"
+- 顶部提示: 显示导入统计信息
+- 表格列: 机构名称、统一社会信用代码、主体类型、企业性质、法定代表人、成立日期、**失败原因**(最小宽度200px,溢出显示tooltip)
+- 分页组件: 支持翻页
+- 底部按钮: "关闭"、"清除历史记录"
+
+## 6. 核心方法设计
+
+### 6.1 localStorage管理方法
+
+#### 6.1.1 个人中介导入任务
+
+```javascript
+/** 保存个人导入任务到localStorage */
+savePersonImportTaskToStorage(taskData) {
+ const data = {
+ ...taskData,
+ saveTime: Date.now()
+ }
+ localStorage.setItem('intermediary_person_import_last_task', JSON.stringify(data))
+}
+
+/** 从localStorage读取个人导入任务 */
+getPersonImportTaskFromStorage() {
+ try {
+ const data = localStorage.getItem('intermediary_person_import_last_task')
+ if (!data) return null
+
+ const task = JSON.parse(data)
+
+ // 7天过期检查
+ const sevenDays = 7 * 24 * 60 * 60 * 1000
+ if (Date.now() - task.saveTime > sevenDays) {
+ this.clearPersonImportTaskFromStorage()
+ return null
+ }
+
+ return task
+ } catch (error) {
+ console.error('读取个人导入任务失败:', error)
+ this.clearPersonImportTaskFromStorage()
+ return null
+ }
+}
+
+/** 清除个人导入任务 */
+clearPersonImportTaskFromStorage() {
+ localStorage.removeItem('intermediary_person_import_last_task')
+}
+```
+
+#### 6.1.2 实体中介导入任务
+
+结构同个人中介,方法名为:
+- `saveEntityImportTaskToStorage(taskData)`
+- `getEntityImportTaskFromStorage()`
+- `clearEntityImportTaskFromStorage()`
+
+### 6.2 导入完成处理
+
+```javascript
+/** 处理导入完成 */
+handleImportComplete(importData) {
+ const { taskId, hasFailures, importType, totalCount, successCount, failureCount } = importData
+
+ if (importType === 'person') {
+ // 保存个人导入任务
+ this.savePersonImportTaskToStorage({
+ taskId,
+ hasFailures,
+ totalCount,
+ successCount,
+ failureCount
+ })
+
+ // 更新按钮显示
+ this.showPersonFailureButton = hasFailures
+ this.currentPersonTaskId = taskId
+
+ } else if (importType === 'entity') {
+ // 保存实体导入任务
+ this.saveEntityImportTaskToStorage({
+ taskId,
+ hasFailures,
+ totalCount,
+ successCount,
+ failureCount
+ })
+
+ // 更新按钮显示
+ this.showEntityFailureButton = hasFailures
+ this.currentEntityTaskId = taskId
+ }
+
+ // 刷新列表
+ this.getList()
+}
+```
+
+### 6.3 查看失败记录
+
+```javascript
+/** 查看个人导入失败记录 */
+viewPersonImportFailures() {
+ this.personFailureDialogVisible = true
+ this.getPersonFailureList()
+}
+
+/** 查询个人失败记录列表 */
+getPersonFailureList() {
+ this.personFailureLoading = true
+ getPersonImportFailures(
+ this.currentPersonTaskId,
+ this.personFailureQueryParams.pageNum,
+ this.personFailureQueryParams.pageSize
+ ).then(response => {
+ this.personFailureList = response.rows
+ this.personFailureTotal = response.total
+ this.personFailureLoading = false
+ }).catch(error => {
+ this.personFailureLoading = false
+ // 错误处理: 404表示记录已过期
+ if (error.response?.status === 404) {
+ this.$modal.msgWarning('导入记录已过期,无法查看失败记录')
+ this.clearPersonImportTaskFromStorage()
+ this.showPersonFailureButton = false
+ this.personFailureDialogVisible = false
+ } else {
+ this.$modal.msgError('查询失败记录失败')
+ }
+ })
+}
+```
+
+### 6.4 清除历史记录
+
+```javascript
+/** 清除个人导入历史记录 */
+clearPersonImportHistory() {
+ this.$confirm('确认清除上次导入记录?', '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(() => {
+ this.clearPersonImportTaskFromStorage()
+ this.showPersonFailureButton = false
+ this.currentPersonTaskId = null
+ this.personFailureDialogVisible = false
+ this.$message.success('已清除')
+ }).catch(() => {})
+}
+```
+
+## 7. 生命周期管理
+
+### 7.1 created钩子
+
+```javascript
+created() {
+ this.getList()
+ this.loadEnumOptions()
+ this.restoreImportState() // 恢复导入状态
+}
+```
+
+### 7.2 恢复导入状态
+
+```javascript
+/** 恢复导入状态 */
+restoreImportState() {
+ // 恢复个人中介导入状态
+ const personTask = this.getPersonImportTaskFromStorage()
+ if (personTask && personTask.hasFailures && personTask.taskId) {
+ this.currentPersonTaskId = personTask.taskId
+ this.showPersonFailureButton = true
+ }
+
+ // 恢复实体中介导入状态
+ const entityTask = this.getEntityImportTaskFromStorage()
+ if (entityTask && entityTask.hasFailures && entityTask.taskId) {
+ this.currentEntityTaskId = entityTask.taskId
+ this.showEntityFailureButton = true
+ }
+}
+```
+
+## 8. 边界情况处理
+
+### 8.1 记录过期
+
+- localStorage中存储的记录超过7天,自动清除
+- 后端接口返回404时,提示用户"导入记录已过期",并清除本地存储
+- 清除后隐藏对应的"查看失败记录"按钮
+
+### 8.2 并发导入
+
+- 每次新导入开始前,清除旧的导入记录
+- 同一类型的导入进行时,取消之前的轮询
+- 只保留最近一次的导入任务信息
+
+### 8.3 网络错误
+
+- 查询失败记录时网络错误,显示友好的错误提示
+- 不影响页面其他功能的正常使用
+
+## 9. 测试要点
+
+### 9.1 功能测试
+
+1. **个人中介导入失败场景**
+ - 导入包含错误数据的Excel文件
+ - 验证失败记录按钮是否显示
+ - 点击按钮查看失败记录
+ - 验证失败原因是否正确显示
+
+2. **实体中介导入失败场景**
+ - 导入包含错误数据的Excel文件
+ - 验证失败记录按钮是否显示
+ - 点击按钮查看失败记录
+ - 验证失败原因是否正确显示
+
+3. **localStorage持久化**
+ - 导入失败后刷新页面
+ - 验证"查看失败记录"按钮是否仍然显示
+ - 验证点击后能否正常查看失败记录
+
+4. **分页功能**
+ - 失败记录超过10条时
+ - 验证分页组件是否正常工作
+ - 验证翻页后数据是否正确
+
+5. **清除历史记录**
+ - 点击"清除历史记录"按钮
+ - 验证localStorage是否清除
+ - 验证按钮是否隐藏
+ - 再次点击导入,验证新记录是否正常
+
+6. **记录过期处理**
+ - 手动修改localStorage中的saveTime模拟过期
+ - 刷新页面,验证按钮是否隐藏
+ - 或点击查看,验证是否提示"记录已过期"
+
+### 9.2 兼容性测试
+
+1. **浏览器兼容性**
+ - Chrome
+ - Firefox
+ - Edge
+ - Safari
+
+2. **数据量大时性能测试**
+ - 导入1000条数据,其中100条失败
+ - 验证查询速度和渲染性能
+
+## 10. 参考实现
+
+本设计参考了员工管理页面 (`ccdiEmployee/index.vue`) 的导入失败记录查看功能的实现,主要参考点:
+
+1. localStorage存储模式
+2. 失败记录对话框布局
+3. 分页查询逻辑
+4. 错误处理机制
+5. 过期记录清理逻辑
+
+## 11. 变更历史
+
+| 日期 | 版本 | 变更内容 | 作者 |
+|------|------|----------|------|
+| 2026-02-08 | 1.0 | 初始设计 | Claude |
diff --git a/doc/plans/2026-02-08-intermediary-import-on-duplicate-key-update-design.md b/doc/plans/2026-02-08-intermediary-import-on-duplicate-key-update-design.md
new file mode 100644
index 0000000..db1ce6d
--- /dev/null
+++ b/doc/plans/2026-02-08-intermediary-import-on-duplicate-key-update-design.md
@@ -0,0 +1,468 @@
+# 中介导入功能优化设计文档
+
+## 概述
+
+本设计文档描述了如何使用 MySQL 的 `INSERT ... ON DUPLICATE KEY UPDATE` 语句优化中介信息导入功能,替代现有的"先删除再插入"更新模式,提升性能并简化代码逻辑。
+
+**设计日期**: 2026-02-08
+**目标**: 优化个人中介和实体中介的批量导入性能
+**核心改进**: 使用 `ON DUPLICATE KEY UPDATE` 实现 Upsert 操作
+
+---
+
+## 一、整体架构设计
+
+### 1.1 核心变更
+
+**保持现有架构:**
+- Controller 层:`CcdiIntermediaryController` - 无需修改
+- Service 层:`CcdiIntermediaryServiceImpl` - 简化逻辑
+- Mapper 层:新增批量导入方法
+
+**架构优化点:**
+
+| 层级 | 现有方案 | 优化方案 | 改进点 |
+|------|----------|----------|--------|
+| Mapper | `insertBatch` + `delete` | `importBatch` (ON DUPLICATE KEY UPDATE) | 单次SQL完成插入或更新 |
+| Service | 查询→分类→删除→插入 | 验证→直接导入 | 减少50%代码量 |
+| 数据库 | 2-3次操作 | 1次操作 | 减少30-40%响应时间 |
+
+### 1.2 数据流变化
+
+**优化前流程:**
+```
+解析Excel → 验证数据 → 批量查询已存在记录 → 分类数据
+ → 批量删除已存在记录 → 批量插入新记录和更新记录
+```
+
+**优化后流程:**
+```
+解析Excel → 验证数据 → 批量 INSERT ON DUPLICATE KEY UPDATE
+```
+
+**简化关键点:**
+- 移除"批量查询已存在记录"步骤
+- 移除"分类新增/更新记录"步骤
+- 移除"批量删除已存在记录"步骤
+
+---
+
+## 二、SQL实现细节
+
+### 2.1 个人中介批量导入SQL
+
+**Mapper方法签名:**
+```java
+void importPersonBatch(@Param("list") List list);
+```
+
+**SQL实现 (CcdiBizIntermediaryMapper.xml):**
+```xml
+
+ INSERT INTO cdi_biz_intermediary (
+ person_id, name, gender, phone, address,
+ intermediary_type, data_source, created_by, updated_by
+ ) VALUES
+
+ (
+ #{item.personId}, #{item.name}, #{item.gender},
+ #{item.phone}, #{item.address}, #{item.intermediaryType},
+ #{item.dataSource}, #{item.createdBy}, #{item.updatedBy}
+ )
+
+ ON DUPLICATE KEY UPDATE
+ name = IF(#{item.name} IS NOT NULL AND #{item.name} != '', #{item.name}, name),
+ gender = IF(#{item.gender} IS NOT NULL AND #{item.gender} != '', #{item.gender}, gender),
+ phone = IF(#{item.phone} IS NOT NULL AND #{item.phone} != '', #{item.phone}, phone),
+ address = IF(#{item.address} IS NOT NULL AND #{item.address} != '', #{item.address}, address),
+ intermediary_type = IF(#{item.intermediaryType} IS NOT NULL AND #{item.intermediaryType} != '', #{item.intermediaryType}, intermediary_type),
+ update_time = NOW(),
+ update_by = #{item.updatedBy}
+
+```
+
+### 2.2 实体中介批量导入SQL
+
+**Mapper方法签名:**
+```java
+void importEntityBatch(@Param("list") List list);
+```
+
+**SQL实现 (CcdiEnterpriseBaseInfoMapper.xml):**
+```xml
+
+ INSERT INTO cdi_enterprise_base_info (
+ social_credit_code, enterprise_name, legal_representative,
+ phone, address, risk_level, ent_source, data_source,
+ created_by, updated_by
+ ) VALUES
+
+ (
+ #{item.socialCreditCode}, #{item.enterpriseName},
+ #{item.legalRepresentative}, #{item.phone}, #{item.address},
+ #{item.riskLevel}, #{item.entSource}, #{item.dataSource},
+ #{item.createdBy}, #{item.updatedBy}
+ )
+
+ ON DUPLICATE KEY UPDATE
+ enterprise_name = IF(#{item.enterpriseName} IS NOT NULL AND #{item.enterpriseName} != '', #{item.enterpriseName}, enterprise_name),
+ legal_representative = IF(#{item.legalRepresentative} IS NOT NULL AND #{item.legalRepresentative} != '', #{item.legalRepresentative}, legal_representative),
+ phone = IF(#{item.phone} IS NOT NULL AND #{item.phone} != '', #{item.phone}, phone),
+ address = IF(#{item.address} IS NOT NULL AND #{item.address} != '', #{item.address}, address),
+ update_time = NOW(),
+ update_by = #{item.updatedBy}
+
+```
+
+### 2.3 关键设计要点
+
+**1. 非空字段更新策略:**
+```sql
+field = IF(#{item.field} IS NOT NULL AND #{item.field} != '', #{item.field}, field)
+```
+- 只更新Excel中非空的字段
+- 保留数据库中的原有值
+- 避免误清空数据
+
+**2. 审计字段处理:**
+| 字段 | INSERT时 | UPDATE时 |
+|------|----------|----------|
+| created_by | 设置当前用户 | 不更新 |
+| create_time | 数据库默认NOW() | 不更新 |
+| updated_by | NULL | 设置当前用户 |
+| update_time | 数据库默认NOW() | 更新为NOW() |
+
+**3. 唯一键约束:**
+- 个人中介: `person_id` (证件号)
+- 实体中介: `social_credit_code` (统一社会信用代码)
+
+**4. 批量操作优化:**
+- 每批最多500条记录
+- 避免SQL过长导致性能问题
+- 超过500条时分批处理
+
+---
+
+## 三、Service层实现
+
+### 3.1 isUpdateSupport参数处理
+
+采用**方案C: Service层预处理**
+
+```java
+@Override
+@Async
+@Transactional(rollbackFor = Exception.class)
+public void importPersonAsync(List excelList,
+ Boolean isUpdateSupport,
+ String taskId,
+ String userName) {
+ List validRecords = new ArrayList<>();
+ List failures = new ArrayList<>();
+
+ // 1. 数据验证阶段
+ for (CcdiIntermediaryPersonExcel excel : excelList) {
+ try {
+ validatePersonData(excel);
+ CcdiBizIntermediary intermediary = new CcdiBizIntermediary();
+ BeanUtils.copyProperties(excel, intermediary);
+ intermediary.setDataSource("IMPORT");
+ intermediary.setCreatedBy(userName);
+ if (isUpdateSupport) {
+ intermediary.setUpdatedBy(userName);
+ }
+ validRecords.add(intermediary);
+ } catch (Exception e) {
+ IntermediaryPersonImportFailureVO failure = new IntermediaryPersonImportFailureVO();
+ BeanUtils.copyProperties(excel, failure);
+ failure.setErrorMessage(e.getMessage());
+ failures.add(failure);
+ }
+ }
+
+ // 2. 根据isUpdateSupport选择处理方式
+ if (isUpdateSupport) {
+ // 更新模式:直接批量导入,数据库自动处理INSERT或UPDATE
+ importBatchWithUpdateSupport(validRecords, 500);
+ } else {
+ // 仅新增模式:先查询已存在的记录,对冲突的抛出异常
+ Set existingIds = getExistingPersonIds(validRecords);
+ for (CcdiBizIntermediary record : validRecords) {
+ if (existingIds.contains(record.getPersonId())) {
+ throw new RuntimeException("该证件号已存在");
+ }
+ }
+ // 确认无冲突后,批量插入
+ importBatchWithoutUpdateSupport(validRecords, 500);
+ }
+
+ // 3. 更新导入状态
+ ImportResult result = new ImportResult();
+ result.setTotalCount(excelList.size());
+ result.setSuccessCount(validRecords.size());
+ result.setFailureCount(failures.size());
+
+ String finalStatus = result.getFailureCount() == 0 ? "SUCCESS" : "PARTIAL_SUCCESS";
+ updateImportStatus(taskId, finalStatus, result);
+}
+```
+
+### 3.2 代码简化对比
+
+**优化前 (约120行):**
+```java
+// 1. 批量查询已存在记录
+Set existingIds = getExistingPersonIds(excelList);
+
+// 2. 分类数据
+for (excel : excelList) {
+ if (existingIds.contains(excel.getPersonId())) {
+ if (isUpdateSupport) {
+ updateRecords.add(convert(excel));
+ } else {
+ throw new RuntimeException("已存在");
+ }
+ } else {
+ newRecords.add(convert(excel));
+ }
+}
+
+// 3. 批量插入新数据
+if (!newRecords.isEmpty()) {
+ saveBatch(newRecords, 500);
+}
+
+// 4. 批量更新已有数据(先删除再插入)
+if (!updateRecords.isEmpty() && isUpdateSupport) {
+ List personIds = updateRecords.stream()
+ .map(CcdiBizIntermediary::getPersonId)
+ .collect(Collectors.toList());
+
+ LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper<>();
+ deleteWrapper.in(CcdiBizIntermediary::getPersonId, personIds);
+ intermediaryMapper.delete(deleteWrapper);
+
+ intermediaryMapper.insertBatch(updateRecords);
+}
+```
+
+**优化后 (约60行):**
+```java
+// 1. 验证数据并转换
+for (excel : excelList) {
+ validatePersonData(excel);
+ validRecords.add(convert(excel));
+}
+
+// 2. 直接批量导入(数据库自动处理INSERT或UPDATE)
+if (isUpdateSupport) {
+ intermediaryMapper.importPersonBatch(validRecords);
+} else {
+ // 仅新增模式:检查唯一性
+ checkUniqueAndInsert(validRecords);
+}
+```
+
+---
+
+## 四、错误处理与边界情况
+
+### 4.1 错误分类处理
+
+| 错误类型 | 处理方式 | 状态标记 |
+|----------|----------|----------|
+| 数据验证错误 | 添加到失败列表,继续处理后续数据 | PARTIAL_SUCCESS |
+| 唯一性冲突 (isUpdateSupport=false) | 抛出异常,添加到失败列表 | PARTIAL_SUCCESS |
+| SQL执行错误 | 事务回滚,记录详细错误信息 | FAILED |
+| 所有记录失败 | 状态为FAILED | FAILED |
+| 部分成功 | 状态为PARTIAL_SUCCESS | PARTIAL_SUCCESS |
+
+### 4.2 边界情况处理
+
+| 场景 | 处理方式 |
+|------|----------|
+| Excel为空 | 返回"至少需要一条数据" |
+| 所有数据格式错误 | 成功数=0,失败数=总数,状态=FAILED |
+| 超大数据量(>5000条) | 分批处理,每批500条 |
+| 并发导入相同数据 | 依靠数据库唯一索引保证一致性 |
+| NULL字段更新 | 使用IF语句跳过,保留原值 |
+| 空字符串字段更新 | 视为NULL,不更新 |
+
+### 4.3 事务处理
+
+```java
+@Async
+@Transactional(rollbackFor = Exception.class)
+public void importPersonAsync(...) {
+ try {
+ // 数据验证
+ // 批量导入
+ // 更新状态
+ } catch (Exception e) {
+ // 事务自动回滚
+ // 记录错误日志
+ // 更新状态为FAILED
+ throw e;
+ }
+}
+```
+
+---
+
+## 五、测试策略
+
+### 5.1 单元测试
+
+**Mapper层测试:**
+- ✅ 批量插入全新记录
+- ✅ 批量更新已存在记录
+- ✅ 混合场景(部分新记录+部分已存在)
+- ✅ NULL值字段不覆盖原值
+- ✅ 审计字段正确设置和更新
+- ✅ 唯一键冲突处理
+
+**Service层测试:**
+- ✅ `isUpdateSupport=true` 的完整流程
+- ✅ `isUpdateSupport=false` 时重复数据抛异常
+- ✅ 数据验证逻辑(必填字段、格式校验)
+- ✅ 事务回滚机制
+- ✅ 失败记录保存到Redis
+
+### 5.2 集成测试场景
+
+| 测试场景 | 测试步骤 | 预期结果 |
+|----------|----------|----------|
+| 新增模式测试 | 导入100条全新记录 | 全部成功插入,审计字段正确 |
+| 更新模式测试 | 导入→修改→再导入 | 数据正确更新,NULL字段保留 |
+| 混合模式测试 | 50新+50已存在记录 | 新记录插入,旧记录更新 |
+| 仅新增冲突测试 | 导入已存在记录(isUpdateSupport=false) | 抛出异常,记录失败 |
+| 空文件测试 | 导入空Excel | 返回"至少需要一条数据" |
+| 全部失败测试 | 所有数据格式错误 | 状态=FAILED,失败数=总数 |
+| 大数据量测试 | 导入2000+条记录 | 分批处理,全部成功 |
+| 并发测试 | 同时导入相同数据 | 依靠唯一索引保证一致性 |
+
+### 5.3 性能测试
+
+**测试数据:**
+- 500条记录
+- 1000条记录
+- 2000条记录
+
+**性能指标:**
+- 总响应时间
+- 数据库操作次数
+- 内存使用情况
+
+**预期性能提升:**
+- 更新模式下性能提升 30-40%
+- 数据库操作次数减少 2次(查询+删除)
+
+---
+
+## 六、实施计划
+
+### 6.1 实施步骤
+
+1. **数据库准备**
+ - 确认 `cdi_biz_intermediary.person_id` 有唯一索引
+ - 确认 `cdi_enterprise_base_info.social_credit_code` 有唯一索引
+
+2. **Mapper层实现**
+ - 在 `CcdiBizIntermediaryMapper` 接口添加 `importPersonBatch` 方法
+ - 在 `CcdiEnterpriseBaseInfoMapper` 接口添加 `importEntityBatch` 方法
+ - 在对应的XML文件实现SQL语句
+
+3. **Service层重构**
+ - 修改 `CcdiIntermediaryPersonImportServiceImpl.importPersonAsync` 方法
+ - 修改 `CcdiIntermediaryEntityImportServiceImpl.importEntityAsync` 方法
+ - 简化逻辑,移除删除操作
+
+4. **单元测试**
+ - 编写Mapper层测试
+ - 编写Service层测试
+
+5. **集成测试**
+ - 使用现有测试数据验证功能
+ - 对比优化前后的性能
+
+6. **文档更新**
+ - 更新API文档
+ - 记录性能优化结果
+
+### 6.2 向后兼容性
+
+- ✅ API接口保持不变,前端无需修改
+- ✅ 返回数据格式不变
+- ✅ 错误处理机制不变
+- ✅ Redis状态管理不变
+
+### 6.3 风险评估
+
+| 风险 | 影响 | 缓解措施 |
+|------|------|----------|
+| 唯一索引缺失 | 功能失败 | 实施前检查索引存在性 |
+| 数据库版本兼容性 | SQL语法不支持 | 确认MySQL 5.7+ |
+| 并发冲突 | 数据不一致 | 依赖数据库唯一索引和事务 |
+| 性能回退 | 响应变慢 | 进行性能测试对比 |
+
+---
+
+## 七、预期收益
+
+### 7.1 性能提升
+
+| 指标 | 优化前 | 优化后 | 提升 |
+|------|--------|--------|------|
+| 数据库操作次数 | 3次(查询+删除+插入) | 1次(UPSERT) | -66% |
+| 代码行数 | ~120行 | ~60行 | -50% |
+| 响应时间(1000条更新) | 基准 | 减少30-40% | 30-40% |
+
+### 7.2 代码质量
+
+- ✅ 逻辑更清晰,易于维护
+- ✅ 减少出错可能性
+- ✅ 更好的事务一致性
+- ✅ 符合数据库最佳实践
+
+### 7.3 可维护性
+
+- SQL集中在XML文件,易于优化
+- 业务逻辑简化,降低认知负担
+- 错误处理更精确
+- 测试覆盖更全面
+
+---
+
+## 八、附录
+
+### 8.1 相关文件
+
+- Controller: `CcdiIntermediaryController.java`
+- Service接口: `ICcdiIntermediaryService.java`
+- Service实现: `CcdiIntermediaryServiceImpl.java`
+- Import Service: `CcdiIntermediaryPersonImportServiceImpl.java`
+- Mapper接口: `CcdiBizIntermediaryMapper.java`
+- Mapper XML: `CcdiBizIntermediaryMapper.xml`
+
+### 8.2 数据库表结构
+
+**个人中介表 (cdi_biz_intermediary):**
+```sql
+UNIQUE KEY `uk_person_id` (`person_id`)
+```
+
+**实体中介表 (cdi_enterprise_base_info):**
+```sql
+PRIMARY KEY (`social_credit_code`)
+```
+
+### 8.3 测试数据
+
+- 测试文件: `doc/test-data/purchase_transaction/purchase_test_data_2000_final.xlsx`
+- 测试脚本: 待生成
+
+---
+
+**文档版本**: 1.0
+**最后更新**: 2026-02-08
+**状态**: 待评审
diff --git a/doc/plans/2026-02-08-purchase-transaction-import-fixes.md b/doc/plans/2026-02-08-purchase-transaction-import-fixes.md
new file mode 100644
index 0000000..5c19bbd
--- /dev/null
+++ b/doc/plans/2026-02-08-purchase-transaction-import-fixes.md
@@ -0,0 +1,209 @@
+# 采购交易导入功能问题修复总结
+
+## 修复日期
+2026-02-08
+
+## 问题描述
+
+### 问题1: 导入全部失败,提示"采购数量不能为空"
+**现象**:
+- 使用 `purchase_test_data_2000.xlsx` 导入,2000条记录全部失败
+- 错误信息:`采购数量不能为空`
+- 查询失败记录接口返回2000条记录
+
+**根本原因**:
+- Excel实体类 `CcdiPurchaseTransactionExcel` 中,数值字段(purchaseQty、budgetAmount等)类型为 **String**
+- AddDTO `CcdiPurchaseTransactionAddDTO` 中,对应字段类型为 **BigDecimal**
+- `BeanUtils.copyProperties()` 进行 String → BigDecimal 转换时,空字符串转换为null
+- 测试数据中这些列为空,导致验证失败
+
+**修复方案**:
+修改 `CcdiPurchaseTransactionExcel.java`,将数值字段类型从 String 改为 BigDecimal
+
+**修改文件**:
+- `ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/excel/CcdiPurchaseTransactionExcel.java:52-82`
+
+**修改内容**:
+```java
+// 修改前
+private String purchaseQty;
+private String budgetAmount;
+private String bidAmount;
+// ... 其他金额字段
+
+// 修改后
+private BigDecimal purchaseQty;
+private BigDecimal budgetAmount;
+private BigDecimal bidAmount;
+// ... 其他金额字段
+```
+
+---
+
+### 问题2: 查看失败记录弹窗显示"暂无数据"
+**现象**:
+- 导入失败后,点击"查看导入失败记录"按钮
+- 后端接口返回了失败记录数据
+- 前端页面显示"暂无数据"
+
+**根本原因**:
+- 前端期望接口返回分页格式:`{rows: [...], total: N}`
+- 后端接口返回的是简单列表:`{data: [...]}`
+- 后端接口缺少分页参数和分页逻辑
+
+**修复方案**:
+参照员工信息管理模块,修改采购交易管理的查询失败记录接口:
+1. 添加分页参数(pageNum、pageSize)
+2. 实现手动分页逻辑
+3. 返回类型从 `AjaxResult` 改为 `TableDataInfo`
+4. 使用 `getDataTable()` 方法返回分页格式
+
+**修改文件**:
+- `ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/controller/CcdiPurchaseTransactionController.java:173-196`
+
+**修改内容**:
+```java
+// 修改前
+@GetMapping("/importFailures/{taskId}")
+public AjaxResult getImportFailures(@PathVariable String taskId) {
+ List failures = transactionImportService.getImportFailures(taskId);
+ return success(failures); // 返回 {data: [...]}
+}
+
+// 修改后
+@GetMapping("/importFailures/{taskId}")
+public TableDataInfo getImportFailures(
+ @PathVariable String taskId,
+ @RequestParam(defaultValue = "1") Integer pageNum,
+ @RequestParam(defaultValue = "10") Integer pageSize) {
+
+ List failures = transactionImportService.getImportFailures(taskId);
+
+ // 手动分页
+ int fromIndex = (pageNum - 1) * pageSize;
+ int toIndex = Math.min(fromIndex + pageSize, failures.size());
+ List pageData = failures.subList(fromIndex, toIndex);
+
+ return getDataTable(pageData, failures.size()); // 返回 {rows: [...], total: N}
+}
+```
+
+---
+
+## 修复后的完整流程
+
+### 1. 正常导入场景(数据完整)
+1. 上传Excel文件
+2. 后端异步处理,验证数据
+3. 所有数据通过验证,成功插入数据库
+4. 前端收到完成通知:`导入完成!全部成功!共导入2000条数据`
+5. 列表刷新,显示新导入的数据
+
+### 2. 部分失败场景(数据有误)
+1. 上传Excel文件
+2. 后端异步处理,验证数据
+3. 部分数据验证失败,失败记录保存到Redis
+4. 前端收到完成通知:`导入完成!成功1800条,失败200条`
+5. 操作栏显示"查看导入失败记录"按钮
+6. 点击按钮,打开失败记录对话框
+7. 对话框显示分页的失败记录列表:
+ - 采购事项ID
+ - 项目名称
+ - 标的物名称
+ - 失败原因
+8. 支持分页查询(每页10条)
+9. 支持清除历史记录
+
+---
+
+## 测试建议
+
+### 1. 测试正常导入
+- 使用修复后的测试数据:`purchase_test_data_2000_fixed.xlsx`
+- 预期结果:全部成功,2000条记录导入成功
+
+### 2. 测试失败记录查看
+- 使用有问题的测试数据(故意制造错误数据)
+- 预期结果:
+ - 显示部分成功通知
+ - 显示"查看导入失败记录"按钮
+ - 点击后能看到失败记录列表
+ - 分页功能正常
+
+### 3. 测试状态持久化
+- 导入有失败的数据
+- 刷新页面
+- 预期结果:"查看导入失败记录"按钮仍然显示
+
+---
+
+## 修复验证清单
+
+- [x] 修改Excel实体类字段类型
+- [x] 重新编译后端成功
+- [x] 修改查询失败记录接口
+- [x] 添加分页支持
+- [x] 重新编译后端成功
+- [ ] 重启后端服务
+- [ ] 测试正常导入
+- [ ] 测试失败记录查看
+- [ ] 验证前端显示正常
+
+---
+
+## 下一步操作
+
+**需要手动执行**:
+1. 重启后端服务(加载新编译的代码)
+2. 使用修复后的测试数据进行导入测试
+3. 验证失败记录查看功能正常
+
+---
+
+## 技术说明
+
+### Excel数值字段处理
+- **EasyExcel** 会根据Java字段类型自动转换
+- String类型 → 读取为字符串(空值可能为空字符串)
+- BigDecimal类型 → 读取为数值(空值为null)
+- BeanUtils.copyProperties() 会自动处理类型转换
+
+### 分页数据格式
+```javascript
+// 前端期望的格式
+{
+ "code": 200,
+ "msg": "查询成功",
+ "rows": [...], // 当前页数据
+ "total": 100 // 总记录数
+}
+```
+
+### 若依框架分页方法
+```java
+// BaseController.getDataTable() 方法
+protected TableDataInfo getDataTable(List> list, long total) {
+ TableDataInfo rspData = new TableDataInfo();
+ rspData.setCode(200);
+ rspData.setMsg("查询成功");
+ rspData.setRows(list);
+ rspData.setTotal(total);
+ return rspData;
+}
+```
+
+---
+
+## 附录:相关文件
+
+### 修改的文件
+1. `ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/domain/excel/CcdiPurchaseTransactionExcel.java`
+2. `ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/controller/CcdiPurchaseTransactionController.java`
+
+### 参考文件
+1. `ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/controller/CcdiEmployeeController.java` (员工信息管理,作为参考)
+
+### 测试文件
+1. `doc/test-data/purchase_transaction/generate-test-data.js` (测试数据生成脚本)
+2. `doc/test-data/purchase_transaction/purchase_test_data_2000_fixed.xlsx` (修复后的测试数据)
+3. `doc/test-data/purchase_transaction/test-import-debug.js` (导入测试脚本)
diff --git a/doc/test-checklist-intermediary-import-failure-view.md b/doc/test-checklist-intermediary-import-failure-view.md
new file mode 100644
index 0000000..e273247
--- /dev/null
+++ b/doc/test-checklist-intermediary-import-failure-view.md
@@ -0,0 +1,324 @@
+# 中介库导入失败记录查看功能 - 测试清单
+
+## 测试环境
+- 前端: Vue 2.6.12 + Element UI
+- 后端: Spring Boot 3.5.8
+- 测试数据目录: `doc/test-data/purchase_transaction/`
+
+## 测试前准备
+
+### 1. 准备测试数据
+准备包含错误数据的Excel文件,用于测试导入失败场景:
+
+**个人中介测试数据应包含的错误类型:**
+- 缺少必填字段(姓名、证件号)
+- 证件号格式错误
+- 手机号格式错误
+- 重复数据(唯一键冲突)
+
+**实体中介测试数据应包含的错误类型:**
+- 缺少必填字段(机构名称、统一社会信用代码)
+- 统一社会信用代码格式错误
+- 重复数据(唯一键冲突)
+
+### 2. 清理环境
+打开浏览器开发者工具 → Application → Local Storage,清除以下key:
+- `intermediary_person_import_last_task`
+- `intermediary_entity_import_last_task`
+
+## 功能测试清单
+
+### 测试1: 个人中介导入失败记录查看
+
+#### 步骤
+1. 访问中介库管理页面
+2. 点击"导入"按钮
+3. 选择"个人中介"导入类型
+4. 上传包含错误数据的个人中介Excel文件
+5. 等待导入完成(观察通知消息)
+6. 验证"查看个人导入失败记录"按钮是否显示
+7. 点击按钮查看失败记录
+
+#### 预期结果
+- ✅ 导入完成后显示通知:"成功X条,失败Y条"
+- ✅ 工具栏显示"查看个人导入失败记录"按钮(黄色警告样式)
+- ✅ 按钮tooltip显示上次导入时间
+- ✅ 点击按钮打开对话框
+- ✅ 对话框标题:"个人中介导入失败记录"
+- ✅ 顶部显示统计信息:"导入时间: XXX | 总数: X条 | 成功: X条 | 失败: X条"
+- ✅ 表格显示失败记录,包含以下列:
+ - 姓名
+ - 证件号码
+ - 人员类型
+ - 性别
+ - 手机号码
+ - 所在公司
+ - **失败原因**(最小宽度200px,溢出显示tooltip)
+- ✅ 如果失败记录超过10条,分页组件正常显示
+
+### 测试2: 实体中介导入失败记录查看
+
+#### 步骤
+1. 访问中介库管理页面
+2. 点击"导入"按钮
+3. 选择"实体中介"导入类型
+4. 上传包含错误数据的实体中介Excel文件
+5. 等待导入完成(观察通知消息)
+6. 验证"查看实体导入失败记录"按钮是否显示
+7. 点击按钮查看失败记录
+
+#### 预期结果
+- ✅ 导入完成后显示通知:"成功X条,失败Y条"
+- ✅ 工具栏显示"查看实体导入失败记录"按钮(黄色警告样式)
+- ✅ 按钮tooltip显示上次导入时间
+- ✅ 点击按钮打开对话框
+- ✅ 对话框标题:"实体中介导入失败记录"
+- ✅ 顶部显示统计信息:"导入时间: XXX | 总数: X条 | 成功: X条 | 失败: X条"
+- ✅ 表格显示失败记录,包含以下列:
+ - 机构名称
+ - 统一社会信用代码
+ - 主体类型
+ - 企业性质
+ - 法定代表人
+ - 成立日期(格式: YYYY-MM-DD)
+ - **失败原因**(最小宽度200px,溢出显示tooltip)
+- ✅ 如果失败记录超过10条,分页组件正常显示
+
+### 测试3: localStorage持久化
+
+#### 步骤
+1. 执行个人中介导入,包含失败记录
+2. 观察按钮显示
+3. 刷新页面(F5)
+4. 观察"查看个人导入失败记录"按钮是否仍然显示
+5. 点击按钮验证能否正常查看失败记录
+
+#### 预期结果
+- ✅ 刷新页面后按钮仍然显示
+- ✅ 点击按钮能正常查看失败记录
+- ✅ localStorage中存在`intermediary_person_import_last_task`或`intermediary_entity_import_last_task`
+
+### 测试4: 分页功能
+
+#### 步骤
+1. 准备至少20条失败记录的数据
+2. 导入并等待完成
+3. 打开失败记录对话框
+4. 测试翻页功能
+
+#### 预期结果
+- ✅ 分页组件显示正确的总记录数
+- ✅ 每页显示10条记录
+- ✅ 点击下一页/上一页按钮正常切换
+- ✅ 修改每页显示数量正常工作
+
+### 测试5: 清除历史记录
+
+#### 步骤
+1. 打开失败记录对话框
+2. 点击"清除历史记录"按钮
+3. 确认清除操作
+4. 关闭对话框
+5. 观察工具栏按钮是否隐藏
+6. 检查localStorage是否已清除
+
+#### 预期结果
+- ✅ 弹出确认对话框:"确认清除上次导入记录?"
+- ✅ 确认后显示成功提示:"已清除"
+- ✅ 对话框关闭
+- ✅ 工具栏对应的"查看失败记录"按钮隐藏
+- ✅ localStorage中的对应key已删除
+
+### 测试6: 记录过期处理
+
+#### 方法1: 手动修改localStorage模拟过期
+1. 打开开发者工具 → Application → Local Storage
+2. 找到`intermediary_person_import_last_task`或`intermediary_entity_import_last_task`
+3. 修改`saveTime`为8天前的时间戳
+4. 刷新页面
+5. 观察按钮是否隐藏
+
+#### 方法2: 等待后端记录过期
+1. 导入数据并等待失败记录显示
+2. 等待后端清理过期记录(根据后端配置的过期时间)
+3. 点击"查看失败记录"按钮
+4. 观察错误提示
+
+#### 预期结果
+- ✅ 方法1: 刷新后按钮自动隐藏
+- ✅ 方法2: 显示提示"导入记录已过期,无法查看失败记录"
+- ✅ 方法2: localStorage自动清除
+- ✅ 方法2: 按钮自动隐藏
+
+### 测试7: 两种类型导入互不影响
+
+#### 步骤
+1. 先导入个人中介(有失败记录)
+2. 再导入实体中介(有失败记录)
+3. 验证两个按钮是否同时显示
+4. 分别点击两个按钮,验证显示的失败记录是否正确
+
+#### 预期结果
+- ✅ 两个按钮同时显示
+- ✅ "查看个人导入失败记录"按钮显示个人中介的失败记录
+- ✅ "查看实体导入失败记录"按钮显示实体中介的失败记录
+- ✅ 两个localStorage存储独立,互不影响
+
+### 测试8: 导入成功场景
+
+#### 步骤
+1. 准备完全正确的Excel文件(所有数据都符合要求)
+2. 导入数据
+3. 等待导入完成
+
+#### 预期结果
+- ✅ 显示成功通知:"全部成功!共导入X条数据"
+- ✅ 不显示"查看失败记录"按钮
+- ✅ localStorage中不存储该任务(或hasFailures为false)
+
+### 测试9: 网络错误处理
+
+#### 步骤
+1. 导入数据(有失败记录)
+2. 打开失败记录对话框
+3. 断开网络或使用浏览器开发者工具模拟离线
+4. 尝试翻页或重新加载失败记录
+
+#### 预期结果
+- ✅ 显示友好的错误提示:"网络连接失败,请检查网络"
+- ✅ 不影响页面其他功能的正常使用
+
+### 测试10: 服务器错误处理
+
+#### 步骤
+1. 导入数据(有失败记录)
+2. 使用浏览器开发者工具模拟服务器错误(500)
+3. 尝试加载失败记录
+
+#### 预期结果
+- ✅ 显示错误提示:"服务器错误,请稍后重试"
+
+## 边界情况测试
+
+### 测试11: 大数据量性能测试
+
+#### 步骤
+1. 准备1000条数据,其中100条失败
+2. 导入并等待完成
+3. 打开失败记录对话框
+4. 测试翻页性能
+
+#### 预期结果
+- ✅ 导入在合理时间内完成(参考员工模块:1000条约1-2分钟)
+- ✅ 查询失败记录响应时间 < 2秒
+- ✅ 翻页流畅,无卡顿
+
+### 测试12: 并发导入
+
+#### 步骤
+1. 快速连续执行两次个人中介导入
+2. 观察localStorage中的数据
+3. 观察按钮显示状态
+
+#### 预期结果
+- ✅ 只有最近一次导入的数据被保存
+- ✅ 按钮显示状态基于最新的导入结果
+
+## 浏览器兼容性测试
+
+### 测试13: 不同浏览器测试
+在以下浏览器中重复执行测试1和测试2:
+- ✅ Chrome (推荐)
+- ✅ Firefox
+- ✅ Edge
+- ✅ Safari (Mac)
+
+## 回归测试
+
+### 测试14: 原有功能不受影响
+验证以下原有功能仍正常工作:
+- ✅ 新增中介(个人/实体)
+- ✅ 编辑中介(个人/实体)
+- ✅ 查看详情
+- ✅ 删除中介
+- ✅ 搜索功能
+- ✅ 导入成功场景
+- ✅ 导入模板下载
+
+## 性能测试
+
+### 测试15: 内存泄漏检查
+1. 打开浏览器开发者工具 → Performance
+2. 开始录制
+3. 执行多次导入和查看失败记录操作
+4. 停止录制
+5. 检查内存使用情况
+
+#### 预期结果
+- ✅ 内存使用稳定,无明显泄漏
+- ✅ 定时器在组件销毁时正确清理
+
+## 自动化测试脚本(可选)
+
+### 测试16: API接口测试
+使用Postman或curl测试以下接口:
+
+```bash
+# 1. 测试个人中介导入失败记录查询
+curl -X GET "http://localhost:8080/ccdi/intermediary/importPersonFailures/{taskId}?pageNum=1&pageSize=10" \
+ -H "Authorization: Bearer {token}"
+
+# 2. 测试实体中介导入失败记录查询
+curl -X GET "http://localhost:8080/ccdi/intermediary/importEntityFailures/{taskId}?pageNum=1&pageSize=10" \
+ -H "Authorization: Bearer {token}"
+
+# 3. 测试过期记录查询(应返回404)
+curl -X GET "http://localhost:8080/ccdi/intermediary/importPersonFailures/expired-task-id?pageNum=1&pageSize=10" \
+ -H "Authorization: Bearer {token}"
+```
+
+## 测试结果记录表
+
+| 测试项 | 测试结果 | 问题描述 | 解决方案 | 验证日期 |
+|--------|---------|---------|---------|---------|
+| 测试1: 个人中介导入失败记录查看 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试2: 实体中介导入失败记录查看 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试3: localStorage持久化 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试4: 分页功能 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试5: 清除历史记录 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试6: 记录过期处理 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试7: 两种类型导入互不影响 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试8: 导入成功场景 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试9: 网络错误处理 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试10: 服务器错误处理 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试11: 大数据量性能测试 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试12: 并发导入 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试13: 浏览器兼容性 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试14: 原有功能不受影响 | ⬜ 通过 / ⬜ 失败 | | | |
+| 测试15: 内存泄漏检查 | ⬜ 通过 / ⬜ 失败 | | | |
+
+## 已知问题
+
+记录测试过程中发现的已知问题:
+
+| 问题编号 | 问题描述 | 严重程度 | 状态 | 解决方案 |
+|---------|---------|---------|------|---------|
+| | | | | |
+
+## 测试总结
+
+### 通过率统计
+- 总测试项: 15项
+- 通过: X项
+- 失败: Y项
+- 通过率: X%
+
+### 测试结论
+- ⬜ 测试通过,可以发布
+- ⬜ 存在问题,需要修复后再测试
+
+### 测试签名
+- 测试人员: ___________
+- 测试日期: ___________
+- 审核人员: ___________
+- 审核日期: ___________
diff --git a/doc/test-data/intermediary/person_1770542031351.xlsx b/doc/test-data/intermediary/person_1770542031351.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..0fc9659396c72cc78aeea3dda0920433a33b8467
GIT binary patch
literal 4135
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
zok
literal 0
HcmV?d00001
diff --git a/doc/test-data/intermediary/个人中介黑名单模板_1770258896626.xlsx b/doc/test-data/intermediary/个人中介黑名单模板_1770258896626.xlsx
deleted file mode 100644
index 92e8901420bf97636d0a3f47a53c8ff001735859..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 4131
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
ME(O9i_54cxKMm)^LI3~&
diff --git a/doc/test-data/purchase_transaction/generate-test-data.js b/doc/test-data/purchase_transaction/generate-test-data.js
new file mode 100644
index 0000000..a27a56a
--- /dev/null
+++ b/doc/test-data/purchase_transaction/generate-test-data.js
@@ -0,0 +1,226 @@
+const Excel = require('exceljs');
+
+// 配置
+const OUTPUT_FILE = 'purchase_test_data_2000_v2.xlsx';
+const RECORD_COUNT = 2000;
+
+// 数据池
+const PURCHASE_CATEGORIES = ['货物类', '工程类', '服务类', '软件系统', '办公设备', '家具用具', '专用设备', '通讯设备'];
+const PURCHASE_METHODS = ['公开招标', '邀请招标', '询价采购', '单一来源', '竞争性谈判'];
+const DEPARTMENTS = ['人事部', '行政部', '财务部', '技术部', '市场部', '采购部', '研发部'];
+const EMPLOYEES = [
+ { id: 'EMP0001', name: '张伟' },
+ { id: 'EMP0002', name: '王芳' },
+ { id: 'EMP0003', name: '李娜' },
+ { id: 'EMP0004', name: '刘洋' },
+ { id: 'EMP0005', name: '陈静' },
+ { id: 'EMP0006', name: '杨强' },
+ { id: 'EMP0007', name: '赵敏' },
+ { id: 'EMP0008', name: '孙杰' },
+ { id: 'EMP0009', name: '周涛' },
+ { id: 'EMP0010', name: '吴刚' },
+ { id: 'EMP0011', name: '郑丽' },
+ { id: 'EMP0012', name: '钱勇' },
+ { id: 'EMP0013', name: '何静' },
+ { id: 'EMP0014', name: '朱涛' },
+ { id: 'EMP0015', name: '马超' }
+];
+
+// 生成随机整数
+function randomInt(min, max) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+}
+
+// 生成随机浮点数
+function randomFloat(min, max, decimals = 2) {
+ const num = Math.random() * (max - min) + min;
+ return parseFloat(num.toFixed(decimals));
+}
+
+// 从数组中随机选择
+function randomChoice(arr) {
+ return arr[Math.floor(Math.random() * arr.length)];
+}
+
+// 生成随机日期
+function randomDate(start, end) {
+ return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
+}
+
+// 生成采购事项ID
+function generatePurchaseId(index) {
+ const timestamp = Date.now();
+ const num = String(index + 1).padStart(4, '0');
+ return `PUR${timestamp}${num}`;
+}
+
+// 生成测试数据
+function generateTestData(count) {
+ const data = [];
+ const startDate = new Date('2023-01-01');
+ const endDate = new Date('2025-12-31');
+
+ for (let i = 0; i < count; i++) {
+ const purchaseQty = randomFloat(1, 5000, 2);
+ const unitPrice = randomFloat(100, 50000, 2);
+ const budgetAmount = parseFloat((purchaseQty * unitPrice).toFixed(2));
+ const discount = randomFloat(0.85, 0.98, 2);
+ const actualAmount = parseFloat((budgetAmount * discount).toFixed(2));
+
+ const employee = randomChoice(EMPLOYEES);
+
+ // 生成Date对象
+ const applyDateObj = randomDate(startDate, endDate);
+
+ // 生成后续日期(都比申请日期晚)
+ const planApproveDate = new Date(applyDateObj);
+ planApproveDate.setDate(planApproveDate.getDate() + randomInt(1, 7));
+
+ const announceDate = new Date(planApproveDate);
+ announceDate.setDate(announceDate.getDate() + randomInt(3, 15));
+
+ const bidOpenDate = new Date(announceDate);
+ bidOpenDate.setDate(bidOpenDate.getDate() + randomInt(5, 20));
+
+ const contractSignDate = new Date(bidOpenDate);
+ contractSignDate.setDate(contractSignDate.getDate() + randomInt(3, 10));
+
+ const expectedDeliveryDate = new Date(contractSignDate);
+ expectedDeliveryDate.setDate(expectedDeliveryDate.getDate() + randomInt(15, 60));
+
+ const actualDeliveryDate = new Date(expectedDeliveryDate);
+ actualDeliveryDate.setDate(actualDeliveryDate.getDate() + randomInt(-2, 5));
+
+ const acceptanceDate = new Date(actualDeliveryDate);
+ acceptanceDate.setDate(acceptanceDate.getDate() + randomInt(1, 7));
+
+ const settlementDate = new Date(acceptanceDate);
+ settlementDate.setDate(settlementDate.getDate() + randomInt(7, 30));
+
+ data.push({
+ purchaseId: generatePurchaseId(i),
+ purchaseCategory: randomChoice(PURCHASE_CATEGORIES),
+ projectName: `${randomChoice(PURCHASE_CATEGORIES)}采购项目-${String(i + 1).padStart(4, '0')}`,
+ subjectName: `${randomChoice(PURCHASE_CATEGORIES).replace('类', '')}配件-${String(i + 1).padStart(4, '0')}`,
+ subjectDesc: `${randomChoice(PURCHASE_CATEGORIES)}采购项目标的物详细描述-${String(i + 1).padStart(4, '0')}`,
+ purchaseQty: purchaseQty,
+ budgetAmount: budgetAmount,
+ bidAmount: actualAmount,
+ actualAmount: actualAmount,
+ contractAmount: actualAmount,
+ settlementAmount: actualAmount,
+ purchaseMethod: randomChoice(PURCHASE_METHODS),
+ supplierName: `供应商公司-${String(i + 1).padStart(4, '0')}有限公司`,
+ contactPerson: `联系人-${String(i + 1).padStart(4, '0')}`,
+ contactPhone: `13${randomInt(0, 9)}${String(randomInt(10000000, 99999999))}`,
+ supplierUscc: `91${randomInt(10000000, 99999999)}MA${String(randomInt(1000, 9999))}`,
+ supplierBankAccount: `6222${String(randomInt(100000000000000, 999999999999999))}`,
+ applyDate: applyDateObj, // Date对象
+ planApproveDate: planApproveDate,
+ announceDate: announceDate,
+ bidOpenDate: bidOpenDate,
+ contractSignDate: contractSignDate,
+ expectedDeliveryDate: expectedDeliveryDate,
+ actualDeliveryDate: actualDeliveryDate,
+ acceptanceDate: acceptanceDate,
+ settlementDate: settlementDate,
+ applicantId: employee.id,
+ applicantName: employee.name,
+ applyDepartment: randomChoice(DEPARTMENTS),
+ purchaseLeaderId: randomChoice(EMPLOYEES).id,
+ purchaseLeaderName: randomChoice(EMPLOYEES).name,
+ purchaseDepartment: '采购部'
+ });
+ }
+
+ return data;
+}
+
+// 创建Excel文件
+async function createExcelFile() {
+ console.log('开始生成测试数据...');
+ console.log(`记录数: ${RECORD_COUNT}`);
+
+ // 生成测试数据
+ const testData = generateTestData(RECORD_COUNT);
+ console.log('测试数据生成完成');
+
+ // 创建工作簿
+ const workbook = new Excel.Workbook();
+ const worksheet = workbook.addWorksheet('采购交易数据');
+
+ // 定义列(按照Excel实体类的index顺序)
+ worksheet.columns = [
+ { header: '采购事项ID', key: 'purchaseId', width: 25 },
+ { header: '采购类别', key: 'purchaseCategory', width: 15 },
+ { header: '项目名称', key: 'projectName', width: 30 },
+ { header: '标的物名称', key: 'subjectName', width: 30 },
+ { header: '标的物描述', key: 'subjectDesc', width: 35 },
+ { header: '采购数量', key: 'purchaseQty', width: 15 },
+ { header: '预算金额', key: 'budgetAmount', width: 18 },
+ { header: '中标金额', key: 'bidAmount', width: 18 },
+ { header: '实际采购金额', key: 'actualAmount', width: 18 },
+ { header: '合同金额', key: 'contractAmount', width: 18 },
+ { header: '结算金额', key: 'settlementAmount', width: 18 },
+ { header: '采购方式', key: 'purchaseMethod', width: 15 },
+ { header: '中标供应商名称', key: 'supplierName', width: 30 },
+ { header: '供应商联系人', key: 'contactPerson', width: 15 },
+ { header: '供应商联系电话', key: 'contactPhone', width: 18 },
+ { header: '供应商统一信用代码', key: 'supplierUscc', width: 25 },
+ { header: '供应商银行账户', key: 'supplierBankAccount', width: 25 },
+ { header: '采购申请日期', key: 'applyDate', width: 18 },
+ { header: '采购计划批准日期', key: 'planApproveDate', width: 18 },
+ { header: '采购公告发布日期', key: 'announceDate', width: 18 },
+ { header: '开标日期', key: 'bidOpenDate', width: 18 },
+ { header: '合同签订日期', key: 'contractSignDate', width: 18 },
+ { header: '预计交货日期', key: 'expectedDeliveryDate', width: 18 },
+ { header: '实际交货日期', key: 'actualDeliveryDate', width: 18 },
+ { header: '验收日期', key: 'acceptanceDate', width: 18 },
+ { header: '结算日期', key: 'settlementDate', width: 18 },
+ { header: '申请人工号', key: 'applicantId', width: 15 },
+ { header: '申请人姓名', key: 'applicantName', width: 15 },
+ { header: '申请部门', key: 'applyDepartment', width: 18 },
+ { header: '采购负责人工号', key: 'purchaseLeaderId', width: 15 },
+ { header: '采购负责人姓名', key: 'purchaseLeaderName', width: 15 },
+ { header: '采购部门', key: 'purchaseDepartment', width: 18 }
+ ];
+
+ // 添加数据
+ worksheet.addRows(testData);
+
+ // 设置表头样式
+ const headerRow = worksheet.getRow(1);
+ headerRow.font = { bold: true };
+ headerRow.fill = {
+ type: 'pattern',
+ pattern: 'solid',
+ fgColor: { argb: 'FFE6E6FA' }
+ };
+
+ // 保存文件
+ console.log('正在写入Excel文件...');
+ await workbook.xlsx.writeFile(OUTPUT_FILE);
+ console.log(`✓ 文件已保存: ${OUTPUT_FILE}`);
+
+ // 显示统计信息
+ console.log('\n========================================');
+ console.log('数据统计');
+ console.log('========================================');
+ console.log(`总记录数: ${testData.length}`);
+ console.log(`采购数量范围: ${Math.min(...testData.map(d => d.purchaseQty))} - ${Math.max(...testData.map(d => d.purchaseQty))}`);
+ console.log(`预算金额范围: ${Math.min(...testData.map(d => d.budgetAmount))} - ${Math.max(...testData.map(d => d.budgetAmount))}`);
+ console.log('\n前3条记录预览:');
+ testData.slice(0, 3).forEach((record, index) => {
+ console.log(`\n记录 ${index + 1}:`);
+ console.log(` 采购事项ID: ${record.purchaseId}`);
+ console.log(` 项目名称: ${record.projectName}`);
+ console.log(` 采购数量: ${record.purchaseQty}`);
+ console.log(` 预算金额: ${record.budgetAmount}`);
+ console.log(` 申请人: ${record.applicantName} (${record.applicantId})`);
+ console.log(` 申请部门: ${record.applyDepartment}`);
+ console.log(` 申请日期: ${record.applyDate}`);
+ });
+}
+
+// 运行
+createExcelFile().catch(console.error);
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/crc32 b/doc/test-data/purchase_transaction/node_modules/.bin/crc32
new file mode 100644
index 0000000..b8e4f8e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/crc32
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../crc-32/bin/crc32.njs" "$@"
+else
+ exec node "$basedir/../crc-32/bin/crc32.njs" "$@"
+fi
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/crc32.cmd b/doc/test-data/purchase_transaction/node_modules/.bin/crc32.cmd
new file mode 100644
index 0000000..4862b1d
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/crc32.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\crc-32\bin\crc32.njs" %*
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/crc32.ps1 b/doc/test-data/purchase_transaction/node_modules/.bin/crc32.ps1
new file mode 100644
index 0000000..c286187
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/crc32.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../crc-32/bin/crc32.njs" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../crc-32/bin/crc32.njs" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../crc-32/bin/crc32.njs" $args
+ } else {
+ & "node$exe" "$basedir/../crc-32/bin/crc32.njs" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp b/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp
new file mode 100644
index 0000000..1ab9c81
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@"
+else
+ exec node "$basedir/../mkdirp/bin/cmd.js" "$@"
+fi
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp.cmd b/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp.cmd
new file mode 100644
index 0000000..a865dd9
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %*
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp.ps1 b/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp.ps1
new file mode 100644
index 0000000..911e854
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/mkdirp.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args
+ } else {
+ & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/rimraf b/doc/test-data/purchase_transaction/node_modules/.bin/rimraf
new file mode 100644
index 0000000..6d6240a
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/rimraf
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../rimraf/bin.js" "$@"
+else
+ exec node "$basedir/../rimraf/bin.js" "$@"
+fi
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/rimraf.cmd b/doc/test-data/purchase_transaction/node_modules/.bin/rimraf.cmd
new file mode 100644
index 0000000..13f45ec
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/rimraf.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rimraf\bin.js" %*
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/rimraf.ps1 b/doc/test-data/purchase_transaction/node_modules/.bin/rimraf.ps1
new file mode 100644
index 0000000..1716791
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/rimraf.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../rimraf/bin.js" $args
+ } else {
+ & "node$exe" "$basedir/../rimraf/bin.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/uuid b/doc/test-data/purchase_transaction/node_modules/.bin/uuid
new file mode 100644
index 0000000..0c2d469
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/uuid
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../uuid/dist/bin/uuid" "$@"
+else
+ exec node "$basedir/../uuid/dist/bin/uuid" "$@"
+fi
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/uuid.cmd b/doc/test-data/purchase_transaction/node_modules/.bin/uuid.cmd
new file mode 100644
index 0000000..0f2376e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/uuid.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\dist\bin\uuid" %*
diff --git a/doc/test-data/purchase_transaction/node_modules/.bin/uuid.ps1 b/doc/test-data/purchase_transaction/node_modules/.bin/uuid.ps1
new file mode 100644
index 0000000..7804628
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.bin/uuid.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args
+ } else {
+ & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/doc/test-data/purchase_transaction/node_modules/.package-lock.json b/doc/test-data/purchase_transaction/node_modules/.package-lock.json
new file mode 100644
index 0000000..d9e28b9
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/.package-lock.json
@@ -0,0 +1,1275 @@
+{
+ "name": "purchase_transaction",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "node_modules/@fast-csv/format": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmmirror.com/@fast-csv/format/-/format-4.3.5.tgz",
+ "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "^14.0.1",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isequal": "^4.5.0",
+ "lodash.isfunction": "^3.0.9",
+ "lodash.isnil": "^4.0.0"
+ }
+ },
+ "node_modules/@fast-csv/parse": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmmirror.com/@fast-csv/parse/-/parse-4.3.6.tgz",
+ "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "^14.0.1",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.groupby": "^4.6.0",
+ "lodash.isfunction": "^3.0.9",
+ "lodash.isnil": "^4.0.0",
+ "lodash.isundefined": "^3.0.1",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "14.18.63",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.63.tgz",
+ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==",
+ "license": "MIT"
+ },
+ "node_modules/archiver": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/archiver/-/archiver-5.3.2.tgz",
+ "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==",
+ "license": "MIT",
+ "dependencies": {
+ "archiver-utils": "^2.1.0",
+ "async": "^3.2.4",
+ "buffer-crc32": "^0.2.1",
+ "readable-stream": "^3.6.0",
+ "readdir-glob": "^1.1.2",
+ "tar-stream": "^2.2.0",
+ "zip-stream": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/archiver-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz",
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
+ "license": "MIT",
+ "dependencies": {
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.0",
+ "lazystream": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.union": "^4.6.0",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/archiver-utils/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmmirror.com/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
+ "license": "MIT"
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
+ },
+ "node_modules/axios": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-1.13.4.tgz",
+ "integrity": "sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==",
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.4",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/big-integer": {
+ "version": "1.6.52",
+ "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
+ "license": "Unlicense",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/binary": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz",
+ "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==",
+ "license": "MIT",
+ "dependencies": {
+ "buffers": "~0.1.1",
+ "chainsaw": "~0.1.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/bluebird": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz",
+ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==",
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/buffer-indexof-polyfill": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
+ "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/buffers": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz",
+ "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==",
+ "engines": {
+ "node": ">=0.2.0"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/chainsaw": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz",
+ "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==",
+ "license": "MIT/X11",
+ "dependencies": {
+ "traverse": ">=0.3.0 <0.4"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/compress-commons": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.2.tgz",
+ "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "^0.2.13",
+ "crc32-stream": "^4.0.2",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "license": "MIT"
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "license": "MIT"
+ },
+ "node_modules/crc-32": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+ "license": "Apache-2.0",
+ "bin": {
+ "crc32": "bin/crc32.njs"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/crc32-stream": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.3.tgz",
+ "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==",
+ "license": "MIT",
+ "dependencies": {
+ "crc-32": "^1.2.0",
+ "readable-stream": "^3.4.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.19",
+ "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.19.tgz",
+ "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
+ "license": "MIT"
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/duplexer2/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/duplexer2/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/duplexer2/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/exceljs": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/exceljs/-/exceljs-4.4.0.tgz",
+ "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==",
+ "license": "MIT",
+ "dependencies": {
+ "archiver": "^5.0.0",
+ "dayjs": "^1.8.34",
+ "fast-csv": "^4.3.1",
+ "jszip": "^3.10.1",
+ "readable-stream": "^3.6.0",
+ "saxes": "^5.0.1",
+ "tmp": "^0.2.0",
+ "unzipper": "^0.10.11",
+ "uuid": "^8.3.0"
+ },
+ "engines": {
+ "node": ">=8.3.0"
+ }
+ },
+ "node_modules/fast-csv": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmmirror.com/fast-csv/-/fast-csv-4.3.6.tgz",
+ "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==",
+ "license": "MIT",
+ "dependencies": {
+ "@fast-csv/format": "4.3.5",
+ "@fast-csv/parse": "4.3.6"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "license": "MIT"
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "license": "ISC"
+ },
+ "node_modules/fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "deprecated": "This package is no longer supported.",
+ "license": "ISC",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
+ "license": "MIT"
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "license": "MIT"
+ },
+ "node_modules/jszip": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz",
+ "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
+ "license": "(MIT OR GPL-3.0-or-later)",
+ "dependencies": {
+ "lie": "~3.3.0",
+ "pako": "~1.0.2",
+ "readable-stream": "~2.3.6",
+ "setimmediate": "^1.0.5"
+ }
+ },
+ "node_modules/jszip/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/jszip/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/jszip/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/lazystream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz",
+ "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "^2.0.5"
+ },
+ "engines": {
+ "node": ">= 0.6.3"
+ }
+ },
+ "node_modules/lazystream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/lazystream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/lazystream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz",
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "node_modules/listenercount": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/listenercount/-/listenercount-1.0.1.tgz",
+ "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==",
+ "license": "ISC"
+ },
+ "node_modules/lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.difference": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz",
+ "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.escaperegexp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+ "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.groupby": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmmirror.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
+ "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isfunction": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
+ "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isnil": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz",
+ "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isundefined": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz",
+ "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.union": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz",
+ "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
+ "license": "MIT"
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "license": "(MIT AND Zlib)"
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "license": "MIT"
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readdir-glob": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz",
+ "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "minimatch": "^5.1.0"
+ }
+ },
+ "node_modules/readdir-glob/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/readdir-glob/node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/saxes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+ "license": "ISC",
+ "dependencies": {
+ "xmlchars": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
+ "license": "MIT"
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.5.tgz",
+ "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/traverse": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz",
+ "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==",
+ "license": "MIT/X11",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/unzipper": {
+ "version": "0.10.14",
+ "resolved": "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.14.tgz",
+ "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==",
+ "license": "MIT",
+ "dependencies": {
+ "big-integer": "^1.6.17",
+ "binary": "~0.3.0",
+ "bluebird": "~3.4.1",
+ "buffer-indexof-polyfill": "~1.0.0",
+ "duplexer2": "~0.1.4",
+ "fstream": "^1.0.12",
+ "graceful-fs": "^4.2.2",
+ "listenercount": "~1.0.1",
+ "readable-stream": "~2.3.6",
+ "setimmediate": "~1.0.4"
+ }
+ },
+ "node_modules/unzipper/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/unzipper/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/unzipper/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "license": "MIT"
+ },
+ "node_modules/zip-stream": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.1.tgz",
+ "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==",
+ "license": "MIT",
+ "dependencies": {
+ "archiver-utils": "^3.0.4",
+ "compress-commons": "^4.1.2",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/zip-stream/node_modules/archiver-utils": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-3.0.4.tgz",
+ "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==",
+ "license": "MIT",
+ "dependencies": {
+ "glob": "^7.2.3",
+ "graceful-fs": "^4.2.0",
+ "lazystream": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.union": "^4.6.0",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ }
+ }
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/CHANGELOG.md b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/CHANGELOG.md
new file mode 100644
index 0000000..28d9c3c
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/CHANGELOG.md
@@ -0,0 +1,73 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [4.3.5](https://github.com/C2FO/fast-csv/compare/v4.3.4...v4.3.5) (2020-11-03)
+
+
+### Bug Fixes
+
+* **formatting,#446:** Do not quote fields that do not contain a quote ([13e688c](https://github.com/C2FO/fast-csv/commit/13e688cb38dcb67c7182211968c794146be54692)), closes [#446](https://github.com/C2FO/fast-csv/issues/446)
+
+
+
+
+
+## [4.3.4](https://github.com/C2FO/fast-csv/compare/v4.3.3...v4.3.4) (2020-11-03)
+
+
+### Bug Fixes
+
+* **formatter,#503:** Do not ignore rows when headers is false ([1560564](https://github.com/C2FO/fast-csv/commit/1560564819c8b1254ca4ad43487830a4296570f6)), closes [#503](https://github.com/C2FO/fast-csv/issues/503)
+
+
+
+
+
+## [4.3.3](https://github.com/C2FO/fast-csv/compare/v4.3.2...v4.3.3) (2020-10-30)
+
+**Note:** Version bump only for package @fast-csv/format
+
+
+
+
+
+## [4.3.1](https://github.com/C2FO/fast-csv/compare/v4.3.0...v4.3.1) (2020-06-23)
+
+**Note:** Version bump only for package @fast-csv/format
+
+
+
+
+
+# [4.3.0](https://github.com/C2FO/fast-csv/compare/v4.2.0...v4.3.0) (2020-05-27)
+
+**Note:** Version bump only for package @fast-csv/format
+
+
+
+
+
+# [4.2.0](https://github.com/C2FO/fast-csv/compare/v4.1.6...v4.2.0) (2020-05-19)
+
+
+### Features
+
+* **parsing:** Less restrictive row parsing type [#356](https://github.com/C2FO/fast-csv/issues/356) ([87d74ec](https://github.com/C2FO/fast-csv/commit/87d74ecd2cb16f3700b1942ebbbec221afe38790))
+
+
+
+
+
+## [4.1.5](https://github.com/C2FO/fast-csv/compare/v4.1.4...v4.1.5) (2020-05-15)
+
+**Note:** Version bump only for package @fast-csv/format
+
+
+
+
+
+## [4.1.4](https://github.com/C2FO/fast-csv/compare/v4.1.3...v4.1.4) (2020-05-15)
+
+**Note:** Version bump only for package @fast-csv/format
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/LICENSE b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/LICENSE
new file mode 100644
index 0000000..34de49d
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/LICENSE
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2011-2019 C2FO
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/README.md b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/README.md
new file mode 100644
index 0000000..c02da11
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/README.md
@@ -0,0 +1,20 @@
+
+
+
+
+[](https://www.npmjs.org/package/@fast-csv/format)
+[](https://travis-ci.org/C2FO/fast-csv)
+[](https://coveralls.io/github/C2FO/fast-csv?branch=master)
+[](https://snyk.io/test/github/C2FO/fast-csv?targetFile=packages/format/package.json)
+
+# `@fast-csv/format`
+
+`fast-csv` package to format CSVs.
+
+## Installation
+
+[Install Guide](https://c2fo.io/fast-csv/docs/introduction/install)
+
+## Usage
+
+To get started with `@fast-csv/format` [check out the docs](https://c2fo.io/fast-csv/docs/formatting/getting-started)
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.d.ts
new file mode 100644
index 0000000..2ee8f57
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.d.ts
@@ -0,0 +1,13 @@
+///
+import { Transform, TransformCallback } from 'stream';
+import { FormatterOptions } from './FormatterOptions';
+import { Row, RowTransformFunction } from './types';
+export declare class CsvFormatterStream extends Transform {
+ private formatterOptions;
+ private rowFormatter;
+ private hasWrittenBOM;
+ constructor(formatterOptions: FormatterOptions);
+ transform(transformFunction: RowTransformFunction): CsvFormatterStream;
+ _transform(row: I, encoding: string, cb: TransformCallback): void;
+ _flush(cb: TransformCallback): void;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js
new file mode 100644
index 0000000..d414614
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js
@@ -0,0 +1,63 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.CsvFormatterStream = void 0;
+const stream_1 = require("stream");
+const formatter_1 = require("./formatter");
+class CsvFormatterStream extends stream_1.Transform {
+ constructor(formatterOptions) {
+ super({ writableObjectMode: formatterOptions.objectMode });
+ this.hasWrittenBOM = false;
+ this.formatterOptions = formatterOptions;
+ this.rowFormatter = new formatter_1.RowFormatter(formatterOptions);
+ // if writeBOM is false then set to true
+ // if writeBOM is true then set to false by default so it is written out
+ this.hasWrittenBOM = !formatterOptions.writeBOM;
+ }
+ transform(transformFunction) {
+ this.rowFormatter.rowTransform = transformFunction;
+ return this;
+ }
+ _transform(row, encoding, cb) {
+ let cbCalled = false;
+ try {
+ if (!this.hasWrittenBOM) {
+ this.push(this.formatterOptions.BOM);
+ this.hasWrittenBOM = true;
+ }
+ this.rowFormatter.format(row, (err, rows) => {
+ if (err) {
+ cbCalled = true;
+ return cb(err);
+ }
+ if (rows) {
+ rows.forEach((r) => {
+ this.push(Buffer.from(r, 'utf8'));
+ });
+ }
+ cbCalled = true;
+ return cb();
+ });
+ }
+ catch (e) {
+ if (cbCalled) {
+ throw e;
+ }
+ cb(e);
+ }
+ }
+ _flush(cb) {
+ this.rowFormatter.finish((err, rows) => {
+ if (err) {
+ return cb(err);
+ }
+ if (rows) {
+ rows.forEach((r) => {
+ this.push(Buffer.from(r, 'utf8'));
+ });
+ }
+ return cb();
+ });
+ }
+}
+exports.CsvFormatterStream = CsvFormatterStream;
+//# sourceMappingURL=CsvFormatterStream.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js.map
new file mode 100644
index 0000000..1ee124b
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"CsvFormatterStream.js","sourceRoot":"","sources":["../../src/CsvFormatterStream.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAGtD,2CAA2C;AAE3C,MAAa,kBAAiD,SAAQ,kBAAS;IAO3E,YAAmB,gBAAwC;QACvD,KAAK,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;QAHvD,kBAAa,GAAG,KAAK,CAAC;QAI1B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,wBAAY,CAAC,gBAAgB,CAAC,CAAC;QACvD,wCAAwC;QACxC,wEAAwE;QACxE,IAAI,CAAC,aAAa,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IACpD,CAAC;IAEM,SAAS,CAAC,iBAA6C;QAC1D,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,iBAAiB,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,GAAM,EAAE,QAAgB,EAAE,EAAqB;QAC7D,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC7B;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAQ,EAAE;gBAC9C,IAAI,GAAG,EAAE;oBACL,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;iBAClB;gBACD,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAQ,EAAE;wBACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;iBACN;gBACD,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO,EAAE,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,QAAQ,EAAE;gBACV,MAAM,CAAC,CAAC;aACX;YACD,EAAE,CAAC,CAAC,CAAC,CAAC;SACT;IACL,CAAC;IAEM,MAAM,CAAC,EAAqB;QAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAQ,EAAE;YACzC,IAAI,GAAG,EAAE;gBACL,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;aAClB;YACD,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAQ,EAAE;oBACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;aACN;YACD,OAAO,EAAE,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA9DD,gDA8DC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.d.ts
new file mode 100644
index 0000000..b9e1c0e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.d.ts
@@ -0,0 +1,39 @@
+import { Row, RowTransformFunction } from './types';
+interface QuoteColumnMap {
+ [s: string]: boolean;
+}
+declare type QuoteColumns = boolean | boolean[] | QuoteColumnMap;
+export interface FormatterOptionsArgs {
+ objectMode?: boolean;
+ delimiter?: string;
+ rowDelimiter?: string;
+ quote?: string | boolean;
+ escape?: string;
+ quoteColumns?: QuoteColumns;
+ quoteHeaders?: QuoteColumns;
+ headers?: null | boolean | string[];
+ writeHeaders?: boolean;
+ includeEndRowDelimiter?: boolean;
+ writeBOM?: boolean;
+ transform?: RowTransformFunction;
+ alwaysWriteHeaders?: boolean;
+}
+export declare class FormatterOptions {
+ readonly objectMode: boolean;
+ readonly delimiter: string;
+ readonly rowDelimiter: string;
+ readonly quote: string;
+ readonly escape: string;
+ readonly quoteColumns: QuoteColumns;
+ readonly quoteHeaders: QuoteColumns;
+ readonly headers: null | string[];
+ readonly includeEndRowDelimiter: boolean;
+ readonly transform?: RowTransformFunction;
+ readonly shouldWriteHeaders: boolean;
+ readonly writeBOM: boolean;
+ readonly escapedQuote: string;
+ readonly BOM: string;
+ readonly alwaysWriteHeaders: boolean;
+ constructor(opts?: FormatterOptionsArgs);
+}
+export {};
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.js
new file mode 100644
index 0000000..cf9ed98
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.FormatterOptions = void 0;
+class FormatterOptions {
+ constructor(opts = {}) {
+ var _a;
+ this.objectMode = true;
+ this.delimiter = ',';
+ this.rowDelimiter = '\n';
+ this.quote = '"';
+ this.escape = this.quote;
+ this.quoteColumns = false;
+ this.quoteHeaders = this.quoteColumns;
+ this.headers = null;
+ this.includeEndRowDelimiter = false;
+ this.writeBOM = false;
+ this.BOM = '\ufeff';
+ this.alwaysWriteHeaders = false;
+ Object.assign(this, opts || {});
+ if (typeof (opts === null || opts === void 0 ? void 0 : opts.quoteHeaders) === 'undefined') {
+ this.quoteHeaders = this.quoteColumns;
+ }
+ if ((opts === null || opts === void 0 ? void 0 : opts.quote) === true) {
+ this.quote = '"';
+ }
+ else if ((opts === null || opts === void 0 ? void 0 : opts.quote) === false) {
+ this.quote = '';
+ }
+ if (typeof (opts === null || opts === void 0 ? void 0 : opts.escape) !== 'string') {
+ this.escape = this.quote;
+ }
+ this.shouldWriteHeaders = !!this.headers && ((_a = opts.writeHeaders) !== null && _a !== void 0 ? _a : true);
+ this.headers = Array.isArray(this.headers) ? this.headers : null;
+ this.escapedQuote = `${this.escape}${this.quote}`;
+ }
+}
+exports.FormatterOptions = FormatterOptions;
+//# sourceMappingURL=FormatterOptions.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.js.map
new file mode 100644
index 0000000..da56fee
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/FormatterOptions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"FormatterOptions.js","sourceRoot":"","sources":["../../src/FormatterOptions.ts"],"names":[],"mappings":";;;AAwBA,MAAa,gBAAgB;IA+BzB,YAAmB,OAAmC,EAAE;;QA9BxC,eAAU,GAAY,IAAI,CAAC;QAE3B,cAAS,GAAW,GAAG,CAAC;QAExB,iBAAY,GAAW,IAAI,CAAC;QAE5B,UAAK,GAAW,GAAG,CAAC;QAEpB,WAAM,GAAW,IAAI,CAAC,KAAK,CAAC;QAE5B,iBAAY,GAAiB,KAAK,CAAC;QAEnC,iBAAY,GAAiB,IAAI,CAAC,YAAY,CAAC;QAE/C,YAAO,GAAoB,IAAI,CAAC;QAEhC,2BAAsB,GAAY,KAAK,CAAC;QAMxC,aAAQ,GAAY,KAAK,CAAC;QAI1B,QAAG,GAAW,QAAQ,CAAC;QAEvB,uBAAkB,GAAY,KAAK,CAAC;QAGhD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAEhC,IAAI,QAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAA,KAAK,WAAW,EAAE;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SACzC;QACD,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,MAAK,IAAI,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;SACpB;aAAM,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,MAAK,KAAK,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACnB;QACD,IAAI,QAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,KAAK,QAAQ,EAAE;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;SAC5B;QACD,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAC,IAAI,CAAC,YAAY,mCAAI,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;CACJ;AAjDD,4CAiDC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.d.ts
new file mode 100644
index 0000000..f824b34
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.d.ts
@@ -0,0 +1,13 @@
+import { FormatterOptions } from '../FormatterOptions';
+import { Row } from '../types';
+export declare class FieldFormatter {
+ private readonly formatterOptions;
+ private _headers;
+ private readonly REPLACE_REGEXP;
+ private readonly ESCAPE_REGEXP;
+ constructor(formatterOptions: FormatterOptions);
+ set headers(headers: string[]);
+ private shouldQuote;
+ format(field: string, fieldIndex: number, isHeader: boolean): string;
+ private quoteField;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js
new file mode 100644
index 0000000..0c9fd89
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js
@@ -0,0 +1,58 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.FieldFormatter = void 0;
+const lodash_isboolean_1 = __importDefault(require("lodash.isboolean"));
+const lodash_isnil_1 = __importDefault(require("lodash.isnil"));
+const lodash_escaperegexp_1 = __importDefault(require("lodash.escaperegexp"));
+class FieldFormatter {
+ constructor(formatterOptions) {
+ this._headers = null;
+ this.formatterOptions = formatterOptions;
+ if (formatterOptions.headers !== null) {
+ this.headers = formatterOptions.headers;
+ }
+ this.REPLACE_REGEXP = new RegExp(formatterOptions.quote, 'g');
+ const escapePattern = `[${formatterOptions.delimiter}${lodash_escaperegexp_1.default(formatterOptions.rowDelimiter)}|\r|\n]`;
+ this.ESCAPE_REGEXP = new RegExp(escapePattern);
+ }
+ set headers(headers) {
+ this._headers = headers;
+ }
+ shouldQuote(fieldIndex, isHeader) {
+ const quoteConfig = isHeader ? this.formatterOptions.quoteHeaders : this.formatterOptions.quoteColumns;
+ if (lodash_isboolean_1.default(quoteConfig)) {
+ return quoteConfig;
+ }
+ if (Array.isArray(quoteConfig)) {
+ return quoteConfig[fieldIndex];
+ }
+ if (this._headers !== null) {
+ return quoteConfig[this._headers[fieldIndex]];
+ }
+ return false;
+ }
+ format(field, fieldIndex, isHeader) {
+ const preparedField = `${lodash_isnil_1.default(field) ? '' : field}`.replace(/\0/g, '');
+ const { formatterOptions } = this;
+ if (formatterOptions.quote !== '') {
+ const shouldEscape = preparedField.indexOf(formatterOptions.quote) !== -1;
+ if (shouldEscape) {
+ return this.quoteField(preparedField.replace(this.REPLACE_REGEXP, formatterOptions.escapedQuote));
+ }
+ }
+ const hasEscapeCharacters = preparedField.search(this.ESCAPE_REGEXP) !== -1;
+ if (hasEscapeCharacters || this.shouldQuote(fieldIndex, isHeader)) {
+ return this.quoteField(preparedField);
+ }
+ return preparedField;
+ }
+ quoteField(field) {
+ const { quote } = this.formatterOptions;
+ return `${quote}${field}${quote}`;
+ }
+}
+exports.FieldFormatter = FieldFormatter;
+//# sourceMappingURL=FieldFormatter.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js.map
new file mode 100644
index 0000000..b3a741e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"FieldFormatter.js","sourceRoot":"","sources":["../../../src/formatter/FieldFormatter.ts"],"names":[],"mappings":";;;;;;AAAA,wEAAyC;AACzC,gEAAiC;AACjC,8EAA+C;AAI/C,MAAa,cAAc;IASvB,YAAmB,gBAAwC;QANnD,aAAQ,GAAoB,IAAI,CAAC;QAOrC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,gBAAgB,CAAC,OAAO,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;SAC3C;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,IAAI,gBAAgB,CAAC,SAAS,GAAG,6BAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC;QAC5G,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,IAAW,OAAO,CAAC,OAAiB;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAEO,WAAW,CAAC,UAAkB,EAAE,QAAiB;QACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;QACvG,IAAI,0BAAS,CAAC,WAAW,CAAC,EAAE;YACxB,OAAO,WAAW,CAAC;SACtB;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC5B,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;SACjD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,KAAa,EAAE,UAAkB,EAAE,QAAiB;QAC9D,MAAM,aAAa,GAAG,GAAG,sBAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QAClC,IAAI,gBAAgB,CAAC,KAAK,KAAK,EAAE,EAAE;YAC/B,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,IAAI,YAAY,EAAE;gBACd,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;aACrG;SACJ;QACD,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,mBAAmB,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;YAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SACzC;QACD,OAAO,aAAa,CAAC;IACzB,CAAC;IAEO,UAAU,CAAC,KAAa;QAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACxC,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;IACtC,CAAC;CACJ;AAzDD,wCAyDC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.d.ts
new file mode 100644
index 0000000..fe06d37
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.d.ts
@@ -0,0 +1,25 @@
+import { FormatterOptions } from '../FormatterOptions';
+import { Row, RowArray, RowTransformFunction } from '../types';
+declare type RowFormatterCallback = (error: Error | null, data?: RowArray) => void;
+export declare class RowFormatter {
+ private static isRowHashArray;
+ private static isRowArray;
+ private static gatherHeaders;
+ private static createTransform;
+ private readonly formatterOptions;
+ private readonly fieldFormatter;
+ private readonly shouldWriteHeaders;
+ private _rowTransform?;
+ private headers;
+ private hasWrittenHeaders;
+ private rowCount;
+ constructor(formatterOptions: FormatterOptions);
+ set rowTransform(transformFunction: RowTransformFunction);
+ format(row: I, cb: RowFormatterCallback): void;
+ finish(cb: RowFormatterCallback): void;
+ private checkHeaders;
+ private gatherColumns;
+ private callTransformer;
+ private formatColumns;
+}
+export {};
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js
new file mode 100644
index 0000000..fd51bce
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js
@@ -0,0 +1,168 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.RowFormatter = void 0;
+const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
+const lodash_isequal_1 = __importDefault(require("lodash.isequal"));
+const FieldFormatter_1 = require("./FieldFormatter");
+const types_1 = require("../types");
+class RowFormatter {
+ constructor(formatterOptions) {
+ this.rowCount = 0;
+ this.formatterOptions = formatterOptions;
+ this.fieldFormatter = new FieldFormatter_1.FieldFormatter(formatterOptions);
+ this.headers = formatterOptions.headers;
+ this.shouldWriteHeaders = formatterOptions.shouldWriteHeaders;
+ this.hasWrittenHeaders = false;
+ if (this.headers !== null) {
+ this.fieldFormatter.headers = this.headers;
+ }
+ if (formatterOptions.transform) {
+ this.rowTransform = formatterOptions.transform;
+ }
+ }
+ static isRowHashArray(row) {
+ if (Array.isArray(row)) {
+ return Array.isArray(row[0]) && row[0].length === 2;
+ }
+ return false;
+ }
+ static isRowArray(row) {
+ return Array.isArray(row) && !this.isRowHashArray(row);
+ }
+ // get headers from a row item
+ static gatherHeaders(row) {
+ if (RowFormatter.isRowHashArray(row)) {
+ // lets assume a multi-dimesional array with item 0 being the header
+ return row.map((it) => it[0]);
+ }
+ if (Array.isArray(row)) {
+ return row;
+ }
+ return Object.keys(row);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-shadow
+ static createTransform(transformFunction) {
+ if (types_1.isSyncTransform(transformFunction)) {
+ return (row, cb) => {
+ let transformedRow = null;
+ try {
+ transformedRow = transformFunction(row);
+ }
+ catch (e) {
+ return cb(e);
+ }
+ return cb(null, transformedRow);
+ };
+ }
+ return (row, cb) => {
+ transformFunction(row, cb);
+ };
+ }
+ set rowTransform(transformFunction) {
+ if (!lodash_isfunction_1.default(transformFunction)) {
+ throw new TypeError('The transform should be a function');
+ }
+ this._rowTransform = RowFormatter.createTransform(transformFunction);
+ }
+ format(row, cb) {
+ this.callTransformer(row, (err, transformedRow) => {
+ if (err) {
+ return cb(err);
+ }
+ if (!row) {
+ return cb(null);
+ }
+ const rows = [];
+ if (transformedRow) {
+ const { shouldFormatColumns, headers } = this.checkHeaders(transformedRow);
+ if (this.shouldWriteHeaders && headers && !this.hasWrittenHeaders) {
+ rows.push(this.formatColumns(headers, true));
+ this.hasWrittenHeaders = true;
+ }
+ if (shouldFormatColumns) {
+ const columns = this.gatherColumns(transformedRow);
+ rows.push(this.formatColumns(columns, false));
+ }
+ }
+ return cb(null, rows);
+ });
+ }
+ finish(cb) {
+ const rows = [];
+ // check if we should write headers and we didnt get any rows
+ if (this.formatterOptions.alwaysWriteHeaders && this.rowCount === 0) {
+ if (!this.headers) {
+ return cb(new Error('`alwaysWriteHeaders` option is set to true but `headers` option not provided.'));
+ }
+ rows.push(this.formatColumns(this.headers, true));
+ }
+ if (this.formatterOptions.includeEndRowDelimiter) {
+ rows.push(this.formatterOptions.rowDelimiter);
+ }
+ return cb(null, rows);
+ }
+ // check if we need to write header return true if we should also write a row
+ // could be false if headers is true and the header row(first item) is passed in
+ checkHeaders(row) {
+ if (this.headers) {
+ // either the headers were provided by the user or we have already gathered them.
+ return { shouldFormatColumns: true, headers: this.headers };
+ }
+ const headers = RowFormatter.gatherHeaders(row);
+ this.headers = headers;
+ this.fieldFormatter.headers = headers;
+ if (!this.shouldWriteHeaders) {
+ // if we are not supposed to write the headers then
+ // always format the columns
+ return { shouldFormatColumns: true, headers: null };
+ }
+ // if the row is equal to headers dont format
+ return { shouldFormatColumns: !lodash_isequal_1.default(headers, row), headers };
+ }
+ // todo change this method to unknown[]
+ gatherColumns(row) {
+ if (this.headers === null) {
+ throw new Error('Headers is currently null');
+ }
+ if (!Array.isArray(row)) {
+ return this.headers.map((header) => row[header]);
+ }
+ if (RowFormatter.isRowHashArray(row)) {
+ return this.headers.map((header, i) => {
+ const col = row[i];
+ if (col) {
+ return col[1];
+ }
+ return '';
+ });
+ }
+ // if its a one dimensional array and headers were not provided
+ // then just return the row
+ if (RowFormatter.isRowArray(row) && !this.shouldWriteHeaders) {
+ return row;
+ }
+ return this.headers.map((header, i) => row[i]);
+ }
+ callTransformer(row, cb) {
+ if (!this._rowTransform) {
+ return cb(null, row);
+ }
+ return this._rowTransform(row, cb);
+ }
+ formatColumns(columns, isHeadersRow) {
+ const formattedCols = columns
+ .map((field, i) => this.fieldFormatter.format(field, i, isHeadersRow))
+ .join(this.formatterOptions.delimiter);
+ const { rowCount } = this;
+ this.rowCount += 1;
+ if (rowCount) {
+ return [this.formatterOptions.rowDelimiter, formattedCols].join('');
+ }
+ return formattedCols;
+ }
+}
+exports.RowFormatter = RowFormatter;
+//# sourceMappingURL=RowFormatter.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js.map
new file mode 100644
index 0000000..fe18025
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"RowFormatter.js","sourceRoot":"","sources":["../../../src/formatter/RowFormatter.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.d.ts
new file mode 100644
index 0000000..1fa7606
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.d.ts
@@ -0,0 +1,2 @@
+export { RowFormatter } from './RowFormatter';
+export { FieldFormatter } from './FieldFormatter';
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.js
new file mode 100644
index 0000000..bf3c26d
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.js
@@ -0,0 +1,8 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.FieldFormatter = exports.RowFormatter = void 0;
+var RowFormatter_1 = require("./RowFormatter");
+Object.defineProperty(exports, "RowFormatter", { enumerable: true, get: function () { return RowFormatter_1.RowFormatter; } });
+var FieldFormatter_1 = require("./FieldFormatter");
+Object.defineProperty(exports, "FieldFormatter", { enumerable: true, get: function () { return FieldFormatter_1.FieldFormatter; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.js.map
new file mode 100644
index 0000000..f36c547
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/formatter/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatter/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.d.ts
new file mode 100644
index 0000000..235d93f
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.d.ts
@@ -0,0 +1,14 @@
+///
+import * as fs from 'fs';
+import { Row } from './types';
+import { FormatterOptionsArgs } from './FormatterOptions';
+import { CsvFormatterStream } from './CsvFormatterStream';
+export * from './types';
+export { CsvFormatterStream } from './CsvFormatterStream';
+export { FormatterOptions, FormatterOptionsArgs } from './FormatterOptions';
+export declare const format: (options?: FormatterOptionsArgs | undefined) => CsvFormatterStream;
+export declare const write: (rows: I[], options?: FormatterOptionsArgs | undefined) => CsvFormatterStream;
+export declare const writeToStream: (ws: T, rows: I[], options?: FormatterOptionsArgs | undefined) => T;
+export declare const writeToBuffer: (rows: I[], opts?: FormatterOptionsArgs) => Promise;
+export declare const writeToString: (rows: I[], options?: FormatterOptionsArgs | undefined) => Promise;
+export declare const writeToPath: (path: string, rows: I[], options?: FormatterOptionsArgs | undefined) => fs.WriteStream;
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.js
new file mode 100644
index 0000000..f1418b8
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.js
@@ -0,0 +1,68 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.writeToPath = exports.writeToString = exports.writeToBuffer = exports.writeToStream = exports.write = exports.format = exports.FormatterOptions = exports.CsvFormatterStream = void 0;
+const util_1 = require("util");
+const stream_1 = require("stream");
+const fs = __importStar(require("fs"));
+const FormatterOptions_1 = require("./FormatterOptions");
+const CsvFormatterStream_1 = require("./CsvFormatterStream");
+__exportStar(require("./types"), exports);
+var CsvFormatterStream_2 = require("./CsvFormatterStream");
+Object.defineProperty(exports, "CsvFormatterStream", { enumerable: true, get: function () { return CsvFormatterStream_2.CsvFormatterStream; } });
+var FormatterOptions_2 = require("./FormatterOptions");
+Object.defineProperty(exports, "FormatterOptions", { enumerable: true, get: function () { return FormatterOptions_2.FormatterOptions; } });
+exports.format = (options) => new CsvFormatterStream_1.CsvFormatterStream(new FormatterOptions_1.FormatterOptions(options));
+exports.write = (rows, options) => {
+ const csvStream = exports.format(options);
+ const promiseWrite = util_1.promisify((row, cb) => {
+ csvStream.write(row, undefined, cb);
+ });
+ rows.reduce((prev, row) => prev.then(() => promiseWrite(row)), Promise.resolve())
+ .then(() => csvStream.end())
+ .catch((err) => {
+ csvStream.emit('error', err);
+ });
+ return csvStream;
+};
+exports.writeToStream = (ws, rows, options) => exports.write(rows, options).pipe(ws);
+exports.writeToBuffer = (rows, opts = {}) => {
+ const buffers = [];
+ const ws = new stream_1.Writable({
+ write(data, enc, writeCb) {
+ buffers.push(data);
+ writeCb();
+ },
+ });
+ return new Promise((res, rej) => {
+ ws.on('error', rej).on('finish', () => res(Buffer.concat(buffers)));
+ exports.write(rows, opts).pipe(ws);
+ });
+};
+exports.writeToString = (rows, options) => exports.writeToBuffer(rows, options).then((buffer) => buffer.toString());
+exports.writeToPath = (path, rows, options) => {
+ const stream = fs.createWriteStream(path, { encoding: 'utf8' });
+ return exports.write(rows, options).pipe(stream);
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.js.map
new file mode 100644
index 0000000..57efc76
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAiC;AACjC,mCAAkC;AAClC,uCAAyB;AAEzB,yDAA4E;AAC5E,6DAA0D;AAE1D,0CAAwB;AACxB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,uDAA4E;AAAnE,oHAAA,gBAAgB,OAAA;AAEZ,QAAA,MAAM,GAAG,CAA+B,OAAoC,EAA4B,EAAE,CACnH,IAAI,uCAAkB,CAAC,IAAI,mCAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7C,QAAA,KAAK,GAAG,CACjB,IAAS,EACT,OAAoC,EACZ,EAAE;IAC1B,MAAM,SAAS,GAAG,cAAM,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,gBAAS,CAAC,CAAC,GAAM,EAAE,EAAkC,EAAQ,EAAE;QAChF,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CACP,CAAC,IAAmB,EAAE,GAAM,EAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAkB,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EACjG,OAAO,CAAC,OAAO,EAAE,CACpB;SACI,IAAI,CAAC,GAAS,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACjC,KAAK,CAAC,CAAC,GAAG,EAAQ,EAAE;QACjB,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACP,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEW,QAAA,aAAa,GAAG,CACzB,EAAK,EACL,IAAS,EACT,OAAoC,EACnC,EAAE,CAAC,aAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEzB,QAAA,aAAa,GAAG,CACzB,IAAS,EACT,OAAmC,EAAE,EACtB,EAAE;IACjB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,IAAI,iBAAQ,CAAC;QACpB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO;YACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,EAAE,CAAC;QACd,CAAC;KACJ,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAQ,EAAE;QAClC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAS,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,aAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEW,QAAA,aAAa,GAAG,CACzB,IAAS,EACT,OAAoC,EACrB,EAAE,CAAC,qBAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAElF,QAAA,WAAW,GAAG,CACvB,IAAY,EACZ,IAAS,EACT,OAAoC,EACtB,EAAE;IAChB,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,OAAO,aAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC,CAAC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.d.ts
new file mode 100644
index 0000000..c59e099
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.d.ts
@@ -0,0 +1,9 @@
+export declare type RowMap = Record;
+export declare type RowHashArray = [string, V][];
+export declare type RowArray = string[];
+export declare type Row = RowArray | RowHashArray | RowMap;
+export declare type RowTransformCallback = (error?: Error | null, row?: R) => void;
+export declare type SyncRowTransform = (row: I) => O;
+export declare type AsyncRowTransform = (row: I, cb: RowTransformCallback) => void;
+export declare type RowTransformFunction = SyncRowTransform | AsyncRowTransform;
+export declare const isSyncTransform: (transform: RowTransformFunction) => transform is SyncRowTransform;
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.js
new file mode 100644
index 0000000..58cdf80
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.js
@@ -0,0 +1,6 @@
+"use strict";
+/* eslint-disable @typescript-eslint/no-explicit-any */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isSyncTransform = void 0;
+exports.isSyncTransform = (transform) => transform.length === 1;
+//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.js.map
new file mode 100644
index 0000000..c706c03
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/build/src/types.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAY1C,QAAA,eAAe,GAAG,CAC3B,SAAqC,EACF,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/package.json b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/package.json
new file mode 100644
index 0000000..9eb5826
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/format/package.json
@@ -0,0 +1,55 @@
+{
+ "name": "@fast-csv/format",
+ "version": "4.3.5",
+ "description": "fast-csv formatting module",
+ "keywords": [
+ "csv",
+ "format",
+ "write"
+ ],
+ "author": "doug-martin ",
+ "homepage": "http://c2fo.github.com/fast-csv/packages/format",
+ "license": "MIT",
+ "main": "build/src/index.js",
+ "types": "build/src/index.d.ts",
+ "directories": {
+ "lib": "src",
+ "test": "__tests__"
+ },
+ "files": [
+ "build/src/**"
+ ],
+ "publishConfig": {
+ "access": "public"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/C2FO/fast-csv.git",
+ "directory": "packages/format"
+ },
+ "scripts": {
+ "prepublishOnly": "npm run build",
+ "build": "npm run clean && npm run compile",
+ "clean": "rm -rf ./build && rm -rf tsconfig.tsbuildinfo",
+ "compile": "tsc"
+ },
+ "bugs": {
+ "url": "https://github.com/C2FO/fast-csv/issues"
+ },
+ "dependencies": {
+ "@types/node": "^14.0.1",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isequal": "^4.5.0",
+ "lodash.isfunction": "^3.0.9",
+ "lodash.isnil": "^4.0.0"
+ },
+ "devDependencies": {
+ "@types/lodash.escaperegexp": "4.1.6",
+ "@types/lodash.isboolean": "3.0.6",
+ "@types/lodash.isequal": "4.5.5",
+ "@types/lodash.isfunction": "3.0.6",
+ "@types/lodash.isnil": "4.0.6"
+ },
+ "gitHead": "b908170cb49398ae12847d050af5c8e5b0dc812f"
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/CHANGELOG.md b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/CHANGELOG.md
new file mode 100644
index 0000000..3763965
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/CHANGELOG.md
@@ -0,0 +1,87 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [4.3.6](https://github.com/C2FO/fast-csv/compare/v4.3.5...v4.3.6) (2020-12-04)
+
+
+### Bug Fixes
+
+* Simplify empty row check by removing complex regex ([4bbd39f](https://github.com/C2FO/fast-csv/commit/4bbd39f26a8cd7382151ab4f5fb102234b2f829e))
+
+
+
+
+
+## [4.3.3](https://github.com/C2FO/fast-csv/compare/v4.3.2...v4.3.3) (2020-10-30)
+
+**Note:** Version bump only for package @fast-csv/parse
+
+
+
+
+
+## [4.3.2](https://github.com/C2FO/fast-csv/compare/v4.3.1...v4.3.2) (2020-09-02)
+
+
+### Bug Fixes
+
+* **parsing, #423:** Prevent callback from being called multiple times ([040febe](https://github.com/C2FO/fast-csv/commit/040febe17f5fe763a00f45b1d83c5acd47bbbe0b)), closes [#423](https://github.com/C2FO/fast-csv/issues/423)
+
+
+
+
+
+## [4.3.1](https://github.com/C2FO/fast-csv/compare/v4.3.0...v4.3.1) (2020-06-23)
+
+
+### Bug Fixes
+
+* **parsing:** Pass errors through callbacks ([84ecdf6](https://github.com/C2FO/fast-csv/commit/84ecdf6ed18b15d68b4ed3e2bfec7eb41b438ad8))
+
+
+
+
+
+# [4.3.0](https://github.com/C2FO/fast-csv/compare/v4.2.0...v4.3.0) (2020-05-27)
+
+**Note:** Version bump only for package @fast-csv/parse
+
+
+
+
+
+# [4.2.0](https://github.com/C2FO/fast-csv/compare/v4.1.6...v4.2.0) (2020-05-19)
+
+
+### Features
+
+* **parsing:** Less restrictive row parsing type [#356](https://github.com/C2FO/fast-csv/issues/356) ([87d74ec](https://github.com/C2FO/fast-csv/commit/87d74ecd2cb16f3700b1942ebbbec221afe38790))
+
+
+
+
+
+## [4.1.6](https://github.com/C2FO/fast-csv/compare/v4.1.5...v4.1.6) (2020-05-15)
+
+
+### Bug Fixes
+
+* **parse:** Handle escaped escape properly [#340](https://github.com/C2FO/fast-csv/issues/340) ([78d9b16](https://github.com/C2FO/fast-csv/commit/78d9b160152ee399f31086cc6b5f66a7ca7f9e24))
+
+
+
+
+
+## [4.1.5](https://github.com/C2FO/fast-csv/compare/v4.1.4...v4.1.5) (2020-05-15)
+
+**Note:** Version bump only for package @fast-csv/parse
+
+
+
+
+
+## [4.1.4](https://github.com/C2FO/fast-csv/compare/v4.1.3...v4.1.4) (2020-05-15)
+
+**Note:** Version bump only for package @fast-csv/parse
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/LICENSE b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/LICENSE
new file mode 100644
index 0000000..34de49d
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/LICENSE
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2011-2019 C2FO
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/README.md b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/README.md
new file mode 100644
index 0000000..a5fba88
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/README.md
@@ -0,0 +1,20 @@
+
+
+
+
+[](https://www.npmjs.org/package/@fast-csv/parse)
+[](https://travis-ci.org/C2FO/fast-csv)
+[](https://coveralls.io/github/C2FO/fast-csv?branch=master)
+[](https://snyk.io/test/github/C2FO/fast-csv?targetFile=packages/parse/package.json)
+
+# `@fast-csv/parse`
+
+`fast-csv` package to parse CSVs.
+
+## Installation
+
+[Install Guide](https://c2fo.io/fast-csv/docs/introduction/install)
+
+## Usage
+
+To get started with `@fast-csv/parse` [check out the docs](https://c2fo.io/fast-csv/docs/parsing/getting-started)
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.d.ts
new file mode 100644
index 0000000..757582e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.d.ts
@@ -0,0 +1,33 @@
+///
+import { Transform, TransformCallback } from 'stream';
+import { ParserOptions } from './ParserOptions';
+import { Row, RowTransformFunction, RowValidate } from './types';
+export declare class CsvParserStream extends Transform {
+ private readonly parserOptions;
+ private readonly decoder;
+ private readonly parser;
+ private readonly headerTransformer;
+ private readonly rowTransformerValidator;
+ private lines;
+ private rowCount;
+ private parsedRowCount;
+ private parsedLineCount;
+ private endEmitted;
+ private headersEmitted;
+ constructor(parserOptions: ParserOptions);
+ private get hasHitRowLimit();
+ private get shouldEmitRows();
+ private get shouldSkipLine();
+ transform(transformFunction: RowTransformFunction): CsvParserStream;
+ validate(validateFunction: RowValidate): CsvParserStream;
+ emit(event: string | symbol, ...rest: any[]): boolean;
+ _transform(data: Buffer, encoding: string, done: TransformCallback): void;
+ _flush(done: TransformCallback): void;
+ private parse;
+ private processRows;
+ private transformRow;
+ private checkAndEmitHeaders;
+ private skipRow;
+ private pushRow;
+ private static wrapDoneCallback;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.js
new file mode 100644
index 0000000..c207a00
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.js
@@ -0,0 +1,212 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.CsvParserStream = void 0;
+const string_decoder_1 = require("string_decoder");
+const stream_1 = require("stream");
+const transforms_1 = require("./transforms");
+const parser_1 = require("./parser");
+class CsvParserStream extends stream_1.Transform {
+ constructor(parserOptions) {
+ super({ objectMode: parserOptions.objectMode });
+ this.lines = '';
+ this.rowCount = 0;
+ this.parsedRowCount = 0;
+ this.parsedLineCount = 0;
+ this.endEmitted = false;
+ this.headersEmitted = false;
+ this.parserOptions = parserOptions;
+ this.parser = new parser_1.Parser(parserOptions);
+ this.headerTransformer = new transforms_1.HeaderTransformer(parserOptions);
+ this.decoder = new string_decoder_1.StringDecoder(parserOptions.encoding);
+ this.rowTransformerValidator = new transforms_1.RowTransformerValidator();
+ }
+ get hasHitRowLimit() {
+ return this.parserOptions.limitRows && this.rowCount >= this.parserOptions.maxRows;
+ }
+ get shouldEmitRows() {
+ return this.parsedRowCount > this.parserOptions.skipRows;
+ }
+ get shouldSkipLine() {
+ return this.parsedLineCount <= this.parserOptions.skipLines;
+ }
+ transform(transformFunction) {
+ this.rowTransformerValidator.rowTransform = transformFunction;
+ return this;
+ }
+ validate(validateFunction) {
+ this.rowTransformerValidator.rowValidator = validateFunction;
+ return this;
+ }
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ emit(event, ...rest) {
+ if (event === 'end') {
+ if (!this.endEmitted) {
+ this.endEmitted = true;
+ super.emit('end', this.rowCount);
+ }
+ return false;
+ }
+ return super.emit(event, ...rest);
+ }
+ _transform(data, encoding, done) {
+ // if we have hit our maxRows parsing limit then skip parsing
+ if (this.hasHitRowLimit) {
+ return done();
+ }
+ const wrappedCallback = CsvParserStream.wrapDoneCallback(done);
+ try {
+ const { lines } = this;
+ const newLine = lines + this.decoder.write(data);
+ const rows = this.parse(newLine, true);
+ return this.processRows(rows, wrappedCallback);
+ }
+ catch (e) {
+ return wrappedCallback(e);
+ }
+ }
+ _flush(done) {
+ const wrappedCallback = CsvParserStream.wrapDoneCallback(done);
+ // if we have hit our maxRows parsing limit then skip parsing
+ if (this.hasHitRowLimit) {
+ return wrappedCallback();
+ }
+ try {
+ const newLine = this.lines + this.decoder.end();
+ const rows = this.parse(newLine, false);
+ return this.processRows(rows, wrappedCallback);
+ }
+ catch (e) {
+ return wrappedCallback(e);
+ }
+ }
+ parse(data, hasMoreData) {
+ if (!data) {
+ return [];
+ }
+ const { line, rows } = this.parser.parse(data, hasMoreData);
+ this.lines = line;
+ return rows;
+ }
+ processRows(rows, cb) {
+ const rowsLength = rows.length;
+ const iterate = (i) => {
+ const callNext = (err) => {
+ if (err) {
+ return cb(err);
+ }
+ if (i % 100 === 0) {
+ // incase the transform are sync insert a next tick to prevent stack overflow
+ setImmediate(() => iterate(i + 1));
+ return undefined;
+ }
+ return iterate(i + 1);
+ };
+ this.checkAndEmitHeaders();
+ // if we have emitted all rows or we have hit the maxRows limit option
+ // then end
+ if (i >= rowsLength || this.hasHitRowLimit) {
+ return cb();
+ }
+ this.parsedLineCount += 1;
+ if (this.shouldSkipLine) {
+ return callNext();
+ }
+ const row = rows[i];
+ this.rowCount += 1;
+ this.parsedRowCount += 1;
+ const nextRowCount = this.rowCount;
+ return this.transformRow(row, (err, transformResult) => {
+ if (err) {
+ this.rowCount -= 1;
+ return callNext(err);
+ }
+ if (!transformResult) {
+ return callNext(new Error('expected transform result'));
+ }
+ if (!transformResult.isValid) {
+ this.emit('data-invalid', transformResult.row, nextRowCount, transformResult.reason);
+ }
+ else if (transformResult.row) {
+ return this.pushRow(transformResult.row, callNext);
+ }
+ return callNext();
+ });
+ };
+ iterate(0);
+ }
+ transformRow(parsedRow, cb) {
+ try {
+ this.headerTransformer.transform(parsedRow, (err, withHeaders) => {
+ if (err) {
+ return cb(err);
+ }
+ if (!withHeaders) {
+ return cb(new Error('Expected result from header transform'));
+ }
+ if (!withHeaders.isValid) {
+ if (this.shouldEmitRows) {
+ return cb(null, { isValid: false, row: parsedRow });
+ }
+ // skipped because of skipRows option remove from total row count
+ return this.skipRow(cb);
+ }
+ if (withHeaders.row) {
+ if (this.shouldEmitRows) {
+ return this.rowTransformerValidator.transformAndValidate(withHeaders.row, cb);
+ }
+ // skipped because of skipRows option remove from total row count
+ return this.skipRow(cb);
+ }
+ // this is a header row dont include in the rowCount or parsedRowCount
+ this.rowCount -= 1;
+ this.parsedRowCount -= 1;
+ return cb(null, { row: null, isValid: true });
+ });
+ }
+ catch (e) {
+ cb(e);
+ }
+ }
+ checkAndEmitHeaders() {
+ if (!this.headersEmitted && this.headerTransformer.headers) {
+ this.headersEmitted = true;
+ this.emit('headers', this.headerTransformer.headers);
+ }
+ }
+ skipRow(cb) {
+ // skipped because of skipRows option remove from total row count
+ this.rowCount -= 1;
+ return cb(null, { row: null, isValid: true });
+ }
+ pushRow(row, cb) {
+ try {
+ if (!this.parserOptions.objectMode) {
+ this.push(JSON.stringify(row));
+ }
+ else {
+ this.push(row);
+ }
+ cb();
+ }
+ catch (e) {
+ cb(e);
+ }
+ }
+ static wrapDoneCallback(done) {
+ let errorCalled = false;
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ return (err, ...args) => {
+ if (err) {
+ if (errorCalled) {
+ throw err;
+ }
+ errorCalled = true;
+ done(err);
+ return;
+ }
+ done(...args);
+ };
+ }
+}
+exports.CsvParserStream = CsvParserStream;
+//# sourceMappingURL=CsvParserStream.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.js.map
new file mode 100644
index 0000000..872b48b
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/CsvParserStream.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"CsvParserStream.js","sourceRoot":"","sources":["../../src/CsvParserStream.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.d.ts
new file mode 100644
index 0000000..d1a15c6
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.d.ts
@@ -0,0 +1,47 @@
+///
+import { HeaderArray, HeaderTransformFunction } from './types';
+export interface ParserOptionsArgs {
+ objectMode?: boolean;
+ delimiter?: string;
+ quote?: string | null;
+ escape?: string;
+ headers?: boolean | HeaderTransformFunction | HeaderArray;
+ renameHeaders?: boolean;
+ ignoreEmpty?: boolean;
+ comment?: string;
+ strictColumnHandling?: boolean;
+ discardUnmappedColumns?: boolean;
+ trim?: boolean;
+ ltrim?: boolean;
+ rtrim?: boolean;
+ encoding?: string;
+ maxRows?: number;
+ skipLines?: number;
+ skipRows?: number;
+}
+export declare class ParserOptions {
+ readonly escapedDelimiter: string;
+ readonly objectMode: boolean;
+ readonly delimiter: string;
+ readonly ignoreEmpty: boolean;
+ readonly quote: string | null;
+ readonly escape: string | null;
+ readonly escapeChar: string | null;
+ readonly comment: string | null;
+ readonly supportsComments: boolean;
+ readonly ltrim: boolean;
+ readonly rtrim: boolean;
+ readonly trim: boolean;
+ readonly headers: boolean | HeaderTransformFunction | HeaderArray | null;
+ readonly renameHeaders: boolean;
+ readonly strictColumnHandling: boolean;
+ readonly discardUnmappedColumns: boolean;
+ readonly carriageReturn: string;
+ readonly NEXT_TOKEN_REGEXP: RegExp;
+ readonly encoding: BufferEncoding;
+ readonly limitRows: boolean;
+ readonly maxRows: number;
+ readonly skipLines: number;
+ readonly skipRows: number;
+ constructor(opts?: ParserOptionsArgs);
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.js
new file mode 100644
index 0000000..9fcbe74
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.js
@@ -0,0 +1,47 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ParserOptions = void 0;
+const lodash_escaperegexp_1 = __importDefault(require("lodash.escaperegexp"));
+const lodash_isnil_1 = __importDefault(require("lodash.isnil"));
+class ParserOptions {
+ constructor(opts) {
+ var _a;
+ this.objectMode = true;
+ this.delimiter = ',';
+ this.ignoreEmpty = false;
+ this.quote = '"';
+ this.escape = null;
+ this.escapeChar = this.quote;
+ this.comment = null;
+ this.supportsComments = false;
+ this.ltrim = false;
+ this.rtrim = false;
+ this.trim = false;
+ this.headers = null;
+ this.renameHeaders = false;
+ this.strictColumnHandling = false;
+ this.discardUnmappedColumns = false;
+ this.carriageReturn = '\r';
+ this.encoding = 'utf8';
+ this.limitRows = false;
+ this.maxRows = 0;
+ this.skipLines = 0;
+ this.skipRows = 0;
+ Object.assign(this, opts || {});
+ if (this.delimiter.length > 1) {
+ throw new Error('delimiter option must be one character long');
+ }
+ this.escapedDelimiter = lodash_escaperegexp_1.default(this.delimiter);
+ this.escapeChar = (_a = this.escape) !== null && _a !== void 0 ? _a : this.quote;
+ this.supportsComments = !lodash_isnil_1.default(this.comment);
+ this.NEXT_TOKEN_REGEXP = new RegExp(`([^\\s]|\\r\\n|\\n|\\r|${this.escapedDelimiter})`);
+ if (this.maxRows > 0) {
+ this.limitRows = true;
+ }
+ }
+}
+exports.ParserOptions = ParserOptions;
+//# sourceMappingURL=ParserOptions.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.js.map
new file mode 100644
index 0000000..85b1f2e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/ParserOptions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ParserOptions.js","sourceRoot":"","sources":["../../src/ParserOptions.ts"],"names":[],"mappings":";;;;;;AAAA,8EAA+C;AAC/C,gEAAiC;AAuBjC,MAAa,aAAa;IA+CtB,YAAmB,IAAwB;;QA5C3B,eAAU,GAAY,IAAI,CAAC;QAE3B,cAAS,GAAW,GAAG,CAAC;QAExB,gBAAW,GAAY,KAAK,CAAC;QAE7B,UAAK,GAAkB,GAAG,CAAC;QAE3B,WAAM,GAAkB,IAAI,CAAC;QAE7B,eAAU,GAAkB,IAAI,CAAC,KAAK,CAAC;QAEvC,YAAO,GAAkB,IAAI,CAAC;QAE9B,qBAAgB,GAAY,KAAK,CAAC;QAElC,UAAK,GAAY,KAAK,CAAC;QAEvB,UAAK,GAAY,KAAK,CAAC;QAEvB,SAAI,GAAY,KAAK,CAAC;QAEtB,YAAO,GAA2D,IAAI,CAAC;QAEvE,kBAAa,GAAY,KAAK,CAAC;QAE/B,yBAAoB,GAAY,KAAK,CAAC;QAEtC,2BAAsB,GAAY,KAAK,CAAC;QAExC,mBAAc,GAAW,IAAI,CAAC;QAI9B,aAAQ,GAAmB,MAAM,CAAC;QAElC,cAAS,GAAY,KAAK,CAAC;QAE3B,YAAO,GAAW,CAAC,CAAC;QAEpB,cAAS,GAAW,CAAC,CAAC;QAEtB,aAAQ,GAAW,CAAC,CAAC;QAGjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAClE;QACD,IAAI,CAAC,gBAAgB,GAAG,6BAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,SAAG,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,CAAC,sBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,IAAI,MAAM,CAAC,0BAA0B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAExF,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;IACL,CAAC;CACJ;AA7DD,sCA6DC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.d.ts
new file mode 100644
index 0000000..0ec5fad
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.d.ts
@@ -0,0 +1,11 @@
+///
+import { ParserOptionsArgs } from './ParserOptions';
+import { CsvParserStream } from './CsvParserStream';
+import { Row } from './types';
+export * from './types';
+export { CsvParserStream } from './CsvParserStream';
+export { ParserOptions, ParserOptionsArgs } from './ParserOptions';
+export declare const parse: , O extends Row>(args?: ParserOptionsArgs | undefined) => CsvParserStream;
+export declare const parseStream: , O extends Row>(stream: NodeJS.ReadableStream, options?: ParserOptionsArgs | undefined) => CsvParserStream;
+export declare const parseFile: , O extends Row>(location: string, options?: ParserOptionsArgs) => CsvParserStream;
+export declare const parseString: , O extends Row>(string: string, options?: ParserOptionsArgs | undefined) => CsvParserStream;
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.js
new file mode 100644
index 0000000..1a4239f
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.js
@@ -0,0 +1,44 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.parseString = exports.parseFile = exports.parseStream = exports.parse = exports.ParserOptions = exports.CsvParserStream = void 0;
+const fs = __importStar(require("fs"));
+const stream_1 = require("stream");
+const ParserOptions_1 = require("./ParserOptions");
+const CsvParserStream_1 = require("./CsvParserStream");
+__exportStar(require("./types"), exports);
+var CsvParserStream_2 = require("./CsvParserStream");
+Object.defineProperty(exports, "CsvParserStream", { enumerable: true, get: function () { return CsvParserStream_2.CsvParserStream; } });
+var ParserOptions_2 = require("./ParserOptions");
+Object.defineProperty(exports, "ParserOptions", { enumerable: true, get: function () { return ParserOptions_2.ParserOptions; } });
+exports.parse = (args) => new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(args));
+exports.parseStream = (stream, options) => stream.pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));
+exports.parseFile = (location, options = {}) => fs.createReadStream(location).pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));
+exports.parseString = (string, options) => {
+ const rs = new stream_1.Readable();
+ rs.push(string);
+ rs.push(null);
+ return rs.pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.js.map
new file mode 100644
index 0000000..5fd268a
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,mCAAkC;AAClC,mDAAmE;AACnE,uDAAoD;AAGpD,0CAAwB;AACxB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,iDAAmE;AAA1D,8GAAA,aAAa,OAAA;AAET,QAAA,KAAK,GAAG,CAA+B,IAAwB,EAAyB,EAAE,CACnG,IAAI,iCAAe,CAAC,IAAI,6BAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAEpC,QAAA,WAAW,GAAG,CACvB,MAA6B,EAC7B,OAA2B,EACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iCAAe,CAAC,IAAI,6BAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE5E,QAAA,SAAS,GAAG,CACrB,QAAgB,EAChB,UAA6B,EAAE,EACV,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,iCAAe,CAAC,IAAI,6BAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnG,QAAA,WAAW,GAAG,CACvB,MAAc,EACd,OAA2B,EACN,EAAE;IACvB,MAAM,EAAE,GAAG,IAAI,iBAAQ,EAAE,CAAC;IAC1B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,iCAAe,CAAC,IAAI,6BAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.d.ts
new file mode 100644
index 0000000..4121332
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.d.ts
@@ -0,0 +1,15 @@
+import { ParserOptions } from '../ParserOptions';
+export interface ParseResult {
+ line: string;
+ rows: string[][];
+}
+export declare class Parser {
+ private static removeBOM;
+ private readonly parserOptions;
+ private readonly rowParser;
+ constructor(parserOptions: ParserOptions);
+ parse(line: string, hasMoreData: boolean): ParseResult;
+ private parseWithoutComments;
+ private parseWithComments;
+ private parseRow;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.js
new file mode 100644
index 0000000..4b3d234
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.js
@@ -0,0 +1,76 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Parser = void 0;
+const Scanner_1 = require("./Scanner");
+const RowParser_1 = require("./RowParser");
+const Token_1 = require("./Token");
+class Parser {
+ constructor(parserOptions) {
+ this.parserOptions = parserOptions;
+ this.rowParser = new RowParser_1.RowParser(this.parserOptions);
+ }
+ static removeBOM(line) {
+ // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
+ // conversion translates it to FEFF (UTF-16 BOM)
+ if (line && line.charCodeAt(0) === 0xfeff) {
+ return line.slice(1);
+ }
+ return line;
+ }
+ parse(line, hasMoreData) {
+ const scanner = new Scanner_1.Scanner({
+ line: Parser.removeBOM(line),
+ parserOptions: this.parserOptions,
+ hasMoreData,
+ });
+ if (this.parserOptions.supportsComments) {
+ return this.parseWithComments(scanner);
+ }
+ return this.parseWithoutComments(scanner);
+ }
+ parseWithoutComments(scanner) {
+ const rows = [];
+ let shouldContinue = true;
+ while (shouldContinue) {
+ shouldContinue = this.parseRow(scanner, rows);
+ }
+ return { line: scanner.line, rows };
+ }
+ parseWithComments(scanner) {
+ const { parserOptions } = this;
+ const rows = [];
+ for (let nextToken = scanner.nextCharacterToken; nextToken !== null; nextToken = scanner.nextCharacterToken) {
+ if (Token_1.Token.isTokenComment(nextToken, parserOptions)) {
+ const cursor = scanner.advancePastLine();
+ if (cursor === null) {
+ return { line: scanner.lineFromCursor, rows };
+ }
+ if (!scanner.hasMoreCharacters) {
+ return { line: scanner.lineFromCursor, rows };
+ }
+ scanner.truncateToCursor();
+ }
+ else if (!this.parseRow(scanner, rows)) {
+ break;
+ }
+ }
+ return { line: scanner.line, rows };
+ }
+ parseRow(scanner, rows) {
+ const nextToken = scanner.nextNonSpaceToken;
+ if (!nextToken) {
+ return false;
+ }
+ const row = this.rowParser.parse(scanner);
+ if (row === null) {
+ return false;
+ }
+ if (this.parserOptions.ignoreEmpty && RowParser_1.RowParser.isEmptyRow(row)) {
+ return true;
+ }
+ rows.push(row);
+ return true;
+ }
+}
+exports.Parser = Parser;
+//# sourceMappingURL=Parser.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.js.map
new file mode 100644
index 0000000..db36225
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Parser.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../src/parser/Parser.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.d.ts
new file mode 100644
index 0000000..49c1f60
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.d.ts
@@ -0,0 +1,12 @@
+import { Scanner } from './Scanner';
+import { ParserOptions } from '../ParserOptions';
+import { RowArray } from '../types';
+export declare class RowParser {
+ static isEmptyRow(row: RowArray): boolean;
+ private readonly parserOptions;
+ private readonly columnParser;
+ constructor(parserOptions: ParserOptions);
+ parse(scanner: Scanner): RowArray | null;
+ private getStartToken;
+ private shouldSkipColumnParse;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.js
new file mode 100644
index 0000000..98a326f
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.js
@@ -0,0 +1,76 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.RowParser = void 0;
+const column_1 = require("./column");
+const Token_1 = require("./Token");
+const EMPTY_STRING = '';
+class RowParser {
+ constructor(parserOptions) {
+ this.parserOptions = parserOptions;
+ this.columnParser = new column_1.ColumnParser(parserOptions);
+ }
+ static isEmptyRow(row) {
+ return row.join(EMPTY_STRING).replace(/\s+/g, EMPTY_STRING) === EMPTY_STRING;
+ }
+ parse(scanner) {
+ const { parserOptions } = this;
+ const { hasMoreData } = scanner;
+ const currentScanner = scanner;
+ const columns = [];
+ let currentToken = this.getStartToken(currentScanner, columns);
+ while (currentToken) {
+ if (Token_1.Token.isTokenRowDelimiter(currentToken)) {
+ currentScanner.advancePastToken(currentToken);
+ // if ends with CR and there is more data, keep unparsed due to possible
+ // coming LF in CRLF
+ if (!currentScanner.hasMoreCharacters &&
+ Token_1.Token.isTokenCarriageReturn(currentToken, parserOptions) &&
+ hasMoreData) {
+ return null;
+ }
+ currentScanner.truncateToCursor();
+ return columns;
+ }
+ if (!this.shouldSkipColumnParse(currentScanner, currentToken, columns)) {
+ const item = this.columnParser.parse(currentScanner);
+ if (item === null) {
+ return null;
+ }
+ columns.push(item);
+ }
+ currentToken = currentScanner.nextNonSpaceToken;
+ }
+ if (!hasMoreData) {
+ currentScanner.truncateToCursor();
+ return columns;
+ }
+ return null;
+ }
+ getStartToken(scanner, columns) {
+ const currentToken = scanner.nextNonSpaceToken;
+ if (currentToken !== null && Token_1.Token.isTokenDelimiter(currentToken, this.parserOptions)) {
+ columns.push('');
+ return scanner.nextNonSpaceToken;
+ }
+ return currentToken;
+ }
+ shouldSkipColumnParse(scanner, currentToken, columns) {
+ const { parserOptions } = this;
+ if (Token_1.Token.isTokenDelimiter(currentToken, parserOptions)) {
+ scanner.advancePastToken(currentToken);
+ // if the delimiter is at the end of a line
+ const nextToken = scanner.nextCharacterToken;
+ if (!scanner.hasMoreCharacters || (nextToken !== null && Token_1.Token.isTokenRowDelimiter(nextToken))) {
+ columns.push('');
+ return true;
+ }
+ if (nextToken !== null && Token_1.Token.isTokenDelimiter(nextToken, parserOptions)) {
+ columns.push('');
+ return true;
+ }
+ }
+ return false;
+ }
+}
+exports.RowParser = RowParser;
+//# sourceMappingURL=RowParser.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.js.map
new file mode 100644
index 0000000..e6b223e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/RowParser.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"RowParser.js","sourceRoot":"","sources":["../../../src/parser/RowParser.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.d.ts
new file mode 100644
index 0000000..bbd0802
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.d.ts
@@ -0,0 +1,25 @@
+import { ParserOptions } from '../ParserOptions';
+import { MaybeToken, Token } from './Token';
+export interface ScannerArgs {
+ line: string;
+ parserOptions: ParserOptions;
+ hasMoreData: boolean;
+ cursor?: number;
+}
+export declare class Scanner {
+ line: string;
+ private readonly parserOptions;
+ lineLength: number;
+ readonly hasMoreData: boolean;
+ cursor: number;
+ constructor(args: ScannerArgs);
+ get hasMoreCharacters(): boolean;
+ get nextNonSpaceToken(): MaybeToken;
+ get nextCharacterToken(): MaybeToken;
+ get lineFromCursor(): string;
+ advancePastLine(): Scanner | null;
+ advanceTo(cursor: number): Scanner;
+ advanceToToken(token: Token): Scanner;
+ advancePastToken(token: Token): Scanner;
+ truncateToCursor(): Scanner;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.js
new file mode 100644
index 0000000..f00c967
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.js
@@ -0,0 +1,82 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Scanner = void 0;
+const Token_1 = require("./Token");
+const ROW_DELIMITER = /((?:\r\n)|\n|\r)/;
+class Scanner {
+ constructor(args) {
+ this.cursor = 0;
+ this.line = args.line;
+ this.lineLength = this.line.length;
+ this.parserOptions = args.parserOptions;
+ this.hasMoreData = args.hasMoreData;
+ this.cursor = args.cursor || 0;
+ }
+ get hasMoreCharacters() {
+ return this.lineLength > this.cursor;
+ }
+ get nextNonSpaceToken() {
+ const { lineFromCursor } = this;
+ const regex = this.parserOptions.NEXT_TOKEN_REGEXP;
+ if (lineFromCursor.search(regex) === -1) {
+ return null;
+ }
+ const match = regex.exec(lineFromCursor);
+ if (match == null) {
+ return null;
+ }
+ const token = match[1];
+ const startCursor = this.cursor + (match.index || 0);
+ return new Token_1.Token({
+ token,
+ startCursor,
+ endCursor: startCursor + token.length - 1,
+ });
+ }
+ get nextCharacterToken() {
+ const { cursor, lineLength } = this;
+ if (lineLength <= cursor) {
+ return null;
+ }
+ return new Token_1.Token({
+ token: this.line[cursor],
+ startCursor: cursor,
+ endCursor: cursor,
+ });
+ }
+ get lineFromCursor() {
+ return this.line.substr(this.cursor);
+ }
+ advancePastLine() {
+ const match = ROW_DELIMITER.exec(this.lineFromCursor);
+ if (!match) {
+ if (this.hasMoreData) {
+ return null;
+ }
+ this.cursor = this.lineLength;
+ return this;
+ }
+ this.cursor += (match.index || 0) + match[0].length;
+ return this;
+ }
+ advanceTo(cursor) {
+ this.cursor = cursor;
+ return this;
+ }
+ advanceToToken(token) {
+ this.cursor = token.startCursor;
+ return this;
+ }
+ advancePastToken(token) {
+ this.cursor = token.endCursor + 1;
+ return this;
+ }
+ truncateToCursor() {
+ this.line = this.lineFromCursor;
+ this.lineLength = this.line.length;
+ this.cursor = 0;
+ return this;
+ }
+}
+exports.Scanner = Scanner;
+//# sourceMappingURL=Scanner.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.js.map
new file mode 100644
index 0000000..f812311
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Scanner.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Scanner.js","sourceRoot":"","sources":["../../../src/parser/Scanner.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.d.ts
new file mode 100644
index 0000000..2f2bdf3
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.d.ts
@@ -0,0 +1,19 @@
+import { ParserOptions } from '../ParserOptions';
+export declare type MaybeToken = Token | null;
+export interface TokenArgs {
+ token: string;
+ startCursor: number;
+ endCursor: number;
+}
+export declare class Token {
+ static isTokenRowDelimiter(token: Token): boolean;
+ static isTokenCarriageReturn(token: Token, parserOptions: ParserOptions): boolean;
+ static isTokenComment(token: Token, parserOptions: ParserOptions): boolean;
+ static isTokenEscapeCharacter(token: Token, parserOptions: ParserOptions): boolean;
+ static isTokenQuote(token: Token, parserOptions: ParserOptions): boolean;
+ static isTokenDelimiter(token: Token, parserOptions: ParserOptions): boolean;
+ readonly token: string;
+ readonly startCursor: number;
+ readonly endCursor: number;
+ constructor(tokenArgs: TokenArgs);
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.js
new file mode 100644
index 0000000..d61b23c
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Token = void 0;
+class Token {
+ constructor(tokenArgs) {
+ this.token = tokenArgs.token;
+ this.startCursor = tokenArgs.startCursor;
+ this.endCursor = tokenArgs.endCursor;
+ }
+ static isTokenRowDelimiter(token) {
+ const content = token.token;
+ return content === '\r' || content === '\n' || content === '\r\n';
+ }
+ static isTokenCarriageReturn(token, parserOptions) {
+ return token.token === parserOptions.carriageReturn;
+ }
+ static isTokenComment(token, parserOptions) {
+ return parserOptions.supportsComments && !!token && token.token === parserOptions.comment;
+ }
+ static isTokenEscapeCharacter(token, parserOptions) {
+ return token.token === parserOptions.escapeChar;
+ }
+ static isTokenQuote(token, parserOptions) {
+ return token.token === parserOptions.quote;
+ }
+ static isTokenDelimiter(token, parserOptions) {
+ return token.token === parserOptions.delimiter;
+ }
+}
+exports.Token = Token;
+//# sourceMappingURL=Token.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.js.map
new file mode 100644
index 0000000..403e802
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/Token.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../src/parser/Token.ts"],"names":[],"mappings":";;;AAUA,MAAa,KAAK;IAgCd,YAAmB,SAAoB;QACnC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IACzC,CAAC;IAnCM,MAAM,CAAC,mBAAmB,CAAC,KAAY;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,CAAC;IACtE,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,KAAY,EAAE,aAA4B;QAC1E,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,cAAc,CAAC;IACxD,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,KAAY,EAAE,aAA4B;QACnE,OAAO,aAAa,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,OAAO,CAAC;IAC9F,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,KAAY,EAAE,aAA4B;QAC3E,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,UAAU,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,KAAY,EAAE,aAA4B;QACjE,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,KAAY,EAAE,aAA4B;QACrE,OAAO,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,SAAS,CAAC;IACnD,CAAC;CAaJ;AArCD,sBAqCC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.d.ts
new file mode 100644
index 0000000..35be4d9
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.d.ts
@@ -0,0 +1,5 @@
+import { ParserOptions } from '../../ParserOptions';
+export declare class ColumnFormatter {
+ readonly format: (col: string) => string;
+ constructor(parserOptions: ParserOptions);
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js
new file mode 100644
index 0000000..721aa12
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js
@@ -0,0 +1,21 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ColumnFormatter = void 0;
+class ColumnFormatter {
+ constructor(parserOptions) {
+ if (parserOptions.trim) {
+ this.format = (col) => col.trim();
+ }
+ else if (parserOptions.ltrim) {
+ this.format = (col) => col.trimLeft();
+ }
+ else if (parserOptions.rtrim) {
+ this.format = (col) => col.trimRight();
+ }
+ else {
+ this.format = (col) => col;
+ }
+ }
+}
+exports.ColumnFormatter = ColumnFormatter;
+//# sourceMappingURL=ColumnFormatter.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js.map
new file mode 100644
index 0000000..331d269
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ColumnFormatter.js","sourceRoot":"","sources":["../../../../src/parser/column/ColumnFormatter.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAGxB,YAAmB,aAA4B;QAC3C,IAAI,aAAa,CAAC,IAAI,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACrD;aAAM,IAAI,aAAa,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SACzD;aAAM,IAAI,aAAa,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;SAC1D;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC;SAC9C;IACL,CAAC;CACJ;AAdD,0CAcC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.d.ts
new file mode 100644
index 0000000..6dd99cd
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.d.ts
@@ -0,0 +1,11 @@
+import { ParserOptions } from '../../ParserOptions';
+import { NonQuotedColumnParser } from './NonQuotedColumnParser';
+import { QuotedColumnParser } from './QuotedColumnParser';
+import { Scanner } from '../Scanner';
+export declare class ColumnParser {
+ private readonly parserOptions;
+ readonly nonQuotedColumnParser: NonQuotedColumnParser;
+ readonly quotedColumnParser: QuotedColumnParser;
+ constructor(parserOptions: ParserOptions);
+ parse(scanner: Scanner): string | null;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js
new file mode 100644
index 0000000..e811b59
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ColumnParser = void 0;
+const NonQuotedColumnParser_1 = require("./NonQuotedColumnParser");
+const QuotedColumnParser_1 = require("./QuotedColumnParser");
+const Token_1 = require("../Token");
+class ColumnParser {
+ constructor(parserOptions) {
+ this.parserOptions = parserOptions;
+ this.quotedColumnParser = new QuotedColumnParser_1.QuotedColumnParser(parserOptions);
+ this.nonQuotedColumnParser = new NonQuotedColumnParser_1.NonQuotedColumnParser(parserOptions);
+ }
+ parse(scanner) {
+ const { nextNonSpaceToken } = scanner;
+ if (nextNonSpaceToken !== null && Token_1.Token.isTokenQuote(nextNonSpaceToken, this.parserOptions)) {
+ scanner.advanceToToken(nextNonSpaceToken);
+ return this.quotedColumnParser.parse(scanner);
+ }
+ return this.nonQuotedColumnParser.parse(scanner);
+ }
+}
+exports.ColumnParser = ColumnParser;
+//# sourceMappingURL=ColumnParser.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js.map
new file mode 100644
index 0000000..8f7258e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ColumnParser.js","sourceRoot":"","sources":["../../../../src/parser/column/ColumnParser.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAChE,6DAA0D;AAE1D,oCAAiC;AAEjC,MAAa,YAAY;IAOrB,YAAmB,aAA4B;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,CAAC,qBAAqB,GAAG,IAAI,6CAAqB,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC;IAEM,KAAK,CAAC,OAAgB;QACzB,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QACtC,IAAI,iBAAiB,KAAK,IAAI,IAAI,aAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;YACzF,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACjD;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;CACJ;AArBD,oCAqBC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.d.ts
new file mode 100644
index 0000000..f06f971
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.d.ts
@@ -0,0 +1,8 @@
+import { ParserOptions } from '../../ParserOptions';
+import { Scanner } from '../Scanner';
+export declare class NonQuotedColumnParser {
+ private readonly parserOptions;
+ private readonly columnFormatter;
+ constructor(parserOptions: ParserOptions);
+ parse(scanner: Scanner): string | null;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js
new file mode 100644
index 0000000..5bc2fe9
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js
@@ -0,0 +1,29 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.NonQuotedColumnParser = void 0;
+const ColumnFormatter_1 = require("./ColumnFormatter");
+const Token_1 = require("../Token");
+class NonQuotedColumnParser {
+ constructor(parserOptions) {
+ this.parserOptions = parserOptions;
+ this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);
+ }
+ parse(scanner) {
+ if (!scanner.hasMoreCharacters) {
+ return null;
+ }
+ const { parserOptions } = this;
+ const characters = [];
+ let nextToken = scanner.nextCharacterToken;
+ for (; nextToken; nextToken = scanner.nextCharacterToken) {
+ if (Token_1.Token.isTokenDelimiter(nextToken, parserOptions) || Token_1.Token.isTokenRowDelimiter(nextToken)) {
+ break;
+ }
+ characters.push(nextToken.token);
+ scanner.advancePastToken(nextToken);
+ }
+ return this.columnFormatter.format(characters.join(''));
+ }
+}
+exports.NonQuotedColumnParser = NonQuotedColumnParser;
+//# sourceMappingURL=NonQuotedColumnParser.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js.map
new file mode 100644
index 0000000..0bb118e
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"NonQuotedColumnParser.js","sourceRoot":"","sources":["../../../../src/parser/column/NonQuotedColumnParser.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAEpD,oCAAiC;AAEjC,MAAa,qBAAqB;IAK9B,YAAmB,aAA4B;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,aAAa,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC5B,OAAO,IAAI,CAAC;SACf;QACD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAC3C,OAAO,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,EAAE;YACtD,IAAI,aAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,aAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;gBAC1F,MAAM;aACT;YACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;SACvC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;CACJ;AA1BD,sDA0BC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.d.ts
new file mode 100644
index 0000000..7983fd9
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.d.ts
@@ -0,0 +1,10 @@
+import { ParserOptions } from '../../ParserOptions';
+import { Scanner } from '../Scanner';
+export declare class QuotedColumnParser {
+ private readonly parserOptions;
+ private readonly columnFormatter;
+ constructor(parserOptions: ParserOptions);
+ parse(scanner: Scanner): string | null;
+ private gatherDataBetweenQuotes;
+ private checkForMalformedColumn;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js
new file mode 100644
index 0000000..06ebca1
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js
@@ -0,0 +1,97 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.QuotedColumnParser = void 0;
+const ColumnFormatter_1 = require("./ColumnFormatter");
+const Token_1 = require("../Token");
+class QuotedColumnParser {
+ constructor(parserOptions) {
+ this.parserOptions = parserOptions;
+ this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);
+ }
+ parse(scanner) {
+ if (!scanner.hasMoreCharacters) {
+ return null;
+ }
+ const originalCursor = scanner.cursor;
+ const { foundClosingQuote, col } = this.gatherDataBetweenQuotes(scanner);
+ if (!foundClosingQuote) {
+ // reset the cursor to the original
+ scanner.advanceTo(originalCursor);
+ // if we didnt find a closing quote but we potentially have more data then skip the parsing
+ // and return the original scanner.
+ if (!scanner.hasMoreData) {
+ throw new Error(`Parse Error: missing closing: '${this.parserOptions.quote || ''}' in line: at '${scanner.lineFromCursor.replace(/[\r\n]/g, "\\n'")}'`);
+ }
+ return null;
+ }
+ this.checkForMalformedColumn(scanner);
+ return col;
+ }
+ gatherDataBetweenQuotes(scanner) {
+ const { parserOptions } = this;
+ let foundStartingQuote = false;
+ let foundClosingQuote = false;
+ const characters = [];
+ let nextToken = scanner.nextCharacterToken;
+ for (; !foundClosingQuote && nextToken !== null; nextToken = scanner.nextCharacterToken) {
+ const isQuote = Token_1.Token.isTokenQuote(nextToken, parserOptions);
+ // ignore first quote
+ if (!foundStartingQuote && isQuote) {
+ foundStartingQuote = true;
+ }
+ else if (foundStartingQuote) {
+ if (Token_1.Token.isTokenEscapeCharacter(nextToken, parserOptions)) {
+ // advance past the escape character so we can get the next one in line
+ scanner.advancePastToken(nextToken);
+ const tokenFollowingEscape = scanner.nextCharacterToken;
+ // if the character following the escape is a quote character then just add
+ // the quote and advance to that character
+ if (tokenFollowingEscape !== null &&
+ (Token_1.Token.isTokenQuote(tokenFollowingEscape, parserOptions) ||
+ Token_1.Token.isTokenEscapeCharacter(tokenFollowingEscape, parserOptions))) {
+ characters.push(tokenFollowingEscape.token);
+ nextToken = tokenFollowingEscape;
+ }
+ else if (isQuote) {
+ // if the escape is also a quote then we found our closing quote and finish early
+ foundClosingQuote = true;
+ }
+ else {
+ // other wise add the escape token to the characters since it wast escaping anything
+ characters.push(nextToken.token);
+ }
+ }
+ else if (isQuote) {
+ // we found our closing quote!
+ foundClosingQuote = true;
+ }
+ else {
+ // add the token to the characters
+ characters.push(nextToken.token);
+ }
+ }
+ scanner.advancePastToken(nextToken);
+ }
+ return { col: this.columnFormatter.format(characters.join('')), foundClosingQuote };
+ }
+ checkForMalformedColumn(scanner) {
+ const { parserOptions } = this;
+ const { nextNonSpaceToken } = scanner;
+ if (nextNonSpaceToken) {
+ const isNextTokenADelimiter = Token_1.Token.isTokenDelimiter(nextNonSpaceToken, parserOptions);
+ const isNextTokenARowDelimiter = Token_1.Token.isTokenRowDelimiter(nextNonSpaceToken);
+ if (!(isNextTokenADelimiter || isNextTokenARowDelimiter)) {
+ // if the final quote was NOT followed by a column (,) or row(\n) delimiter then its a bad column
+ // tldr: only part of the column was quoted
+ const linePreview = scanner.lineFromCursor.substr(0, 10).replace(/[\r\n]/g, "\\n'");
+ throw new Error(`Parse Error: expected: '${parserOptions.escapedDelimiter}' OR new line got: '${nextNonSpaceToken.token}'. at '${linePreview}`);
+ }
+ scanner.advanceToToken(nextNonSpaceToken);
+ }
+ else if (!scanner.hasMoreData) {
+ scanner.advancePastLine();
+ }
+ }
+}
+exports.QuotedColumnParser = QuotedColumnParser;
+//# sourceMappingURL=QuotedColumnParser.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js.map
new file mode 100644
index 0000000..74eeb40
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"QuotedColumnParser.js","sourceRoot":"","sources":["../../../../src/parser/column/QuotedColumnParser.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.d.ts
new file mode 100644
index 0000000..2c574ea
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.d.ts
@@ -0,0 +1,4 @@
+export { ColumnParser } from './ColumnParser';
+export { NonQuotedColumnParser } from './NonQuotedColumnParser';
+export { QuotedColumnParser } from './QuotedColumnParser';
+export { ColumnFormatter } from './ColumnFormatter';
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.js
new file mode 100644
index 0000000..d173b45
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.js
@@ -0,0 +1,12 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ColumnFormatter = exports.QuotedColumnParser = exports.NonQuotedColumnParser = exports.ColumnParser = void 0;
+var ColumnParser_1 = require("./ColumnParser");
+Object.defineProperty(exports, "ColumnParser", { enumerable: true, get: function () { return ColumnParser_1.ColumnParser; } });
+var NonQuotedColumnParser_1 = require("./NonQuotedColumnParser");
+Object.defineProperty(exports, "NonQuotedColumnParser", { enumerable: true, get: function () { return NonQuotedColumnParser_1.NonQuotedColumnParser; } });
+var QuotedColumnParser_1 = require("./QuotedColumnParser");
+Object.defineProperty(exports, "QuotedColumnParser", { enumerable: true, get: function () { return QuotedColumnParser_1.QuotedColumnParser; } });
+var ColumnFormatter_1 = require("./ColumnFormatter");
+Object.defineProperty(exports, "ColumnFormatter", { enumerable: true, get: function () { return ColumnFormatter_1.ColumnFormatter; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.js.map
new file mode 100644
index 0000000..87996c1
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/column/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/parser/column/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.d.ts
new file mode 100644
index 0000000..2f64fcb
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.d.ts
@@ -0,0 +1,5 @@
+export { Parser } from './Parser';
+export { RowParser } from './RowParser';
+export { Scanner } from './Scanner';
+export { Token, MaybeToken } from './Token';
+export { ColumnParser, NonQuotedColumnParser, QuotedColumnParser } from './column';
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.js
new file mode 100644
index 0000000..658e7e8
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.js
@@ -0,0 +1,16 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.QuotedColumnParser = exports.NonQuotedColumnParser = exports.ColumnParser = exports.Token = exports.Scanner = exports.RowParser = exports.Parser = void 0;
+var Parser_1 = require("./Parser");
+Object.defineProperty(exports, "Parser", { enumerable: true, get: function () { return Parser_1.Parser; } });
+var RowParser_1 = require("./RowParser");
+Object.defineProperty(exports, "RowParser", { enumerable: true, get: function () { return RowParser_1.RowParser; } });
+var Scanner_1 = require("./Scanner");
+Object.defineProperty(exports, "Scanner", { enumerable: true, get: function () { return Scanner_1.Scanner; } });
+var Token_1 = require("./Token");
+Object.defineProperty(exports, "Token", { enumerable: true, get: function () { return Token_1.Token; } });
+var column_1 = require("./column");
+Object.defineProperty(exports, "ColumnParser", { enumerable: true, get: function () { return column_1.ColumnParser; } });
+Object.defineProperty(exports, "NonQuotedColumnParser", { enumerable: true, get: function () { return column_1.NonQuotedColumnParser; } });
+Object.defineProperty(exports, "QuotedColumnParser", { enumerable: true, get: function () { return column_1.QuotedColumnParser; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.js.map
new file mode 100644
index 0000000..245bcb6
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/parser/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parser/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,iCAA4C;AAAnC,8FAAA,KAAK,OAAA;AACd,mCAAmF;AAA1E,sGAAA,YAAY,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAAE,4GAAA,kBAAkB,OAAA"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.d.ts
new file mode 100644
index 0000000..433daa1
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.d.ts
@@ -0,0 +1,17 @@
+import { ParserOptions } from '../ParserOptions';
+import { HeaderArray, Row, RowArray, RowValidatorCallback } from '../types';
+export declare class HeaderTransformer {
+ private readonly parserOptions;
+ headers: HeaderArray | null;
+ private receivedHeaders;
+ private readonly shouldUseFirstRow;
+ private processedFirstRow;
+ private headersLength;
+ private readonly headersTransform?;
+ constructor(parserOptions: ParserOptions);
+ transform(row: RowArray, cb: RowValidatorCallback): void;
+ private shouldMapRow;
+ private processRow;
+ private mapHeaders;
+ private setHeaders;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js
new file mode 100644
index 0000000..dd42491
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js
@@ -0,0 +1,115 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HeaderTransformer = void 0;
+const lodash_isundefined_1 = __importDefault(require("lodash.isundefined"));
+const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
+const lodash_uniq_1 = __importDefault(require("lodash.uniq"));
+const lodash_groupby_1 = __importDefault(require("lodash.groupby"));
+class HeaderTransformer {
+ constructor(parserOptions) {
+ this.headers = null;
+ this.receivedHeaders = false;
+ this.shouldUseFirstRow = false;
+ this.processedFirstRow = false;
+ this.headersLength = 0;
+ this.parserOptions = parserOptions;
+ if (parserOptions.headers === true) {
+ this.shouldUseFirstRow = true;
+ }
+ else if (Array.isArray(parserOptions.headers)) {
+ this.setHeaders(parserOptions.headers);
+ }
+ else if (lodash_isfunction_1.default(parserOptions.headers)) {
+ this.headersTransform = parserOptions.headers;
+ }
+ }
+ transform(row, cb) {
+ if (!this.shouldMapRow(row)) {
+ return cb(null, { row: null, isValid: true });
+ }
+ return cb(null, this.processRow(row));
+ }
+ shouldMapRow(row) {
+ const { parserOptions } = this;
+ if (!this.headersTransform && parserOptions.renameHeaders && !this.processedFirstRow) {
+ if (!this.receivedHeaders) {
+ throw new Error('Error renaming headers: new headers must be provided in an array');
+ }
+ this.processedFirstRow = true;
+ return false;
+ }
+ if (!this.receivedHeaders && Array.isArray(row)) {
+ if (this.headersTransform) {
+ this.setHeaders(this.headersTransform(row));
+ }
+ else if (this.shouldUseFirstRow) {
+ this.setHeaders(row);
+ }
+ else {
+ // dont do anything with the headers if we didnt receive a transform or shouldnt use the first row.
+ return true;
+ }
+ return false;
+ }
+ return true;
+ }
+ processRow(row) {
+ if (!this.headers) {
+ return { row: row, isValid: true };
+ }
+ const { parserOptions } = this;
+ if (!parserOptions.discardUnmappedColumns && row.length > this.headersLength) {
+ if (!parserOptions.strictColumnHandling) {
+ throw new Error(`Unexpected Error: column header mismatch expected: ${this.headersLength} columns got: ${row.length}`);
+ }
+ return {
+ row: row,
+ isValid: false,
+ reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`,
+ };
+ }
+ if (parserOptions.strictColumnHandling && row.length < this.headersLength) {
+ return {
+ row: row,
+ isValid: false,
+ reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`,
+ };
+ }
+ return { row: this.mapHeaders(row), isValid: true };
+ }
+ mapHeaders(row) {
+ const rowMap = {};
+ const { headers, headersLength } = this;
+ for (let i = 0; i < headersLength; i += 1) {
+ const header = headers[i];
+ if (!lodash_isundefined_1.default(header)) {
+ const val = row[i];
+ // eslint-disable-next-line no-param-reassign
+ if (lodash_isundefined_1.default(val)) {
+ rowMap[header] = '';
+ }
+ else {
+ rowMap[header] = val;
+ }
+ }
+ }
+ return rowMap;
+ }
+ setHeaders(headers) {
+ var _a;
+ const filteredHeaders = headers.filter((h) => !!h);
+ if (lodash_uniq_1.default(filteredHeaders).length !== filteredHeaders.length) {
+ const grouped = lodash_groupby_1.default(filteredHeaders);
+ const duplicates = Object.keys(grouped).filter((dup) => grouped[dup].length > 1);
+ throw new Error(`Duplicate headers found ${JSON.stringify(duplicates)}`);
+ }
+ this.headers = headers;
+ this.receivedHeaders = true;
+ this.headersLength = ((_a = this.headers) === null || _a === void 0 ? void 0 : _a.length) || 0;
+ }
+}
+exports.HeaderTransformer = HeaderTransformer;
+//# sourceMappingURL=HeaderTransformer.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js.map
new file mode 100644
index 0000000..350999d
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"HeaderTransformer.js","sourceRoot":"","sources":["../../../src/transforms/HeaderTransformer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.d.ts
new file mode 100644
index 0000000..55a5173
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.d.ts
@@ -0,0 +1,12 @@
+import { Row, RowTransformFunction, RowValidatorCallback, RowValidate } from '../types';
+export declare class RowTransformerValidator {
+ private static createTransform;
+ private static createValidator;
+ private _rowTransform;
+ private _rowValidator;
+ set rowTransform(transformFunction: RowTransformFunction);
+ set rowValidator(validateFunction: RowValidate);
+ transformAndValidate(row: I, cb: RowValidatorCallback): void;
+ private callTransformer;
+ private callValidator;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js
new file mode 100644
index 0000000..c7c69f8
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js
@@ -0,0 +1,93 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.RowTransformerValidator = void 0;
+const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
+const types_1 = require("../types");
+class RowTransformerValidator {
+ constructor() {
+ this._rowTransform = null;
+ this._rowValidator = null;
+ }
+ // eslint-disable-next-line @typescript-eslint/no-shadow
+ static createTransform(transformFunction) {
+ if (types_1.isSyncTransform(transformFunction)) {
+ return (row, cb) => {
+ let transformed = null;
+ try {
+ transformed = transformFunction(row);
+ }
+ catch (e) {
+ return cb(e);
+ }
+ return cb(null, transformed);
+ };
+ }
+ return transformFunction;
+ }
+ static createValidator(validateFunction) {
+ if (types_1.isSyncValidate(validateFunction)) {
+ return (row, cb) => {
+ cb(null, { row, isValid: validateFunction(row) });
+ };
+ }
+ return (row, cb) => {
+ validateFunction(row, (err, isValid, reason) => {
+ if (err) {
+ return cb(err);
+ }
+ if (isValid) {
+ return cb(null, { row, isValid, reason });
+ }
+ return cb(null, { row, isValid: false, reason });
+ });
+ };
+ }
+ set rowTransform(transformFunction) {
+ if (!lodash_isfunction_1.default(transformFunction)) {
+ throw new TypeError('The transform should be a function');
+ }
+ this._rowTransform = RowTransformerValidator.createTransform(transformFunction);
+ }
+ set rowValidator(validateFunction) {
+ if (!lodash_isfunction_1.default(validateFunction)) {
+ throw new TypeError('The validate should be a function');
+ }
+ this._rowValidator = RowTransformerValidator.createValidator(validateFunction);
+ }
+ transformAndValidate(row, cb) {
+ return this.callTransformer(row, (transformErr, transformedRow) => {
+ if (transformErr) {
+ return cb(transformErr);
+ }
+ if (!transformedRow) {
+ return cb(null, { row: null, isValid: true });
+ }
+ return this.callValidator(transformedRow, (validateErr, validationResult) => {
+ if (validateErr) {
+ return cb(validateErr);
+ }
+ if (validationResult && !validationResult.isValid) {
+ return cb(null, { row: transformedRow, isValid: false, reason: validationResult.reason });
+ }
+ return cb(null, { row: transformedRow, isValid: true });
+ });
+ });
+ }
+ callTransformer(row, cb) {
+ if (!this._rowTransform) {
+ return cb(null, row);
+ }
+ return this._rowTransform(row, cb);
+ }
+ callValidator(row, cb) {
+ if (!this._rowValidator) {
+ return cb(null, { row, isValid: true });
+ }
+ return this._rowValidator(row, cb);
+ }
+}
+exports.RowTransformerValidator = RowTransformerValidator;
+//# sourceMappingURL=RowTransformerValidator.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js.map
new file mode 100644
index 0000000..008e028
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"RowTransformerValidator.js","sourceRoot":"","sources":["../../../src/transforms/RowTransformerValidator.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.d.ts
new file mode 100644
index 0000000..26df69b
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.d.ts
@@ -0,0 +1,2 @@
+export { RowTransformerValidator } from './RowTransformerValidator';
+export { HeaderTransformer } from './HeaderTransformer';
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.js
new file mode 100644
index 0000000..2b8caf4
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.js
@@ -0,0 +1,8 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HeaderTransformer = exports.RowTransformerValidator = void 0;
+var RowTransformerValidator_1 = require("./RowTransformerValidator");
+Object.defineProperty(exports, "RowTransformerValidator", { enumerable: true, get: function () { return RowTransformerValidator_1.RowTransformerValidator; } });
+var HeaderTransformer_1 = require("./HeaderTransformer");
+Object.defineProperty(exports, "HeaderTransformer", { enumerable: true, get: function () { return HeaderTransformer_1.HeaderTransformer; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.js.map
new file mode 100644
index 0000000..dacea91
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/transforms/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transforms/index.ts"],"names":[],"mappings":";;;AAAA,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.d.ts b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.d.ts
new file mode 100644
index 0000000..625cb99
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.d.ts
@@ -0,0 +1,21 @@
+export declare type RowMap = Record;
+export declare type RowArray = V[];
+export declare type Row = RowMap | RowArray;
+export interface RowValidationResult {
+ row: R | null;
+ isValid: boolean;
+ reason?: string;
+}
+export declare type RowValidatorCallback = (error: Error | null, result?: RowValidationResult) => void;
+export declare type RowTransformCallback = (error?: Error | null, row?: R) => void;
+export declare type SyncRowTransform = (row: I) => O;
+export declare type AsyncRowTransform = (row: I, cb: RowTransformCallback) => void;
+export declare type RowTransformFunction = SyncRowTransform | AsyncRowTransform;
+export declare const isSyncTransform: , O extends Row>(transform: RowTransformFunction) => transform is SyncRowTransform;
+export declare type RowValidateCallback = (error?: Error | null, isValid?: boolean, reason?: string) => void;
+export declare type SyncRowValidate = (row: R) => boolean;
+export declare type AsyncRowValidate = (row: R, cb: RowValidateCallback) => void;
+export declare type RowValidate = AsyncRowValidate | SyncRowValidate;
+export declare const isSyncValidate: >(validate: RowValidate) => validate is SyncRowValidate;
+export declare type HeaderArray = (string | undefined | null)[];
+export declare type HeaderTransformFunction = (headers: HeaderArray) => HeaderArray;
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.js b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.js
new file mode 100644
index 0000000..92dc9f7
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.js
@@ -0,0 +1,6 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isSyncValidate = exports.isSyncTransform = void 0;
+exports.isSyncTransform = (transform) => transform.length === 1;
+exports.isSyncValidate = (validate) => validate.length === 1;
+//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.js.map b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.js.map
new file mode 100644
index 0000000..f335163
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/build/src/types.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAoBa,QAAA,eAAe,GAAG,CAC3B,SAAqC,EACF,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;AAQpD,QAAA,cAAc,GAAG,CAAgB,QAAwB,EAAkC,EAAE,CACtG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC"}
\ No newline at end of file
diff --git a/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/package.json b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/package.json
new file mode 100644
index 0000000..1fda641
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@fast-csv/parse/package.json
@@ -0,0 +1,62 @@
+{
+ "name": "@fast-csv/parse",
+ "version": "4.3.6",
+ "description": "fast-csv parsing package",
+ "keywords": [
+ "csv",
+ "parse",
+ "fast-csv",
+ "parser"
+ ],
+ "author": "doug-martin ",
+ "homepage": "http://c2fo.github.com/fast-csv/packages/parse",
+ "license": "MIT",
+ "main": "build/src/index.js",
+ "types": "build/src/index.d.ts",
+ "directories": {
+ "lib": "src",
+ "test": "__tests__"
+ },
+ "files": [
+ "build/src/**"
+ ],
+ "publishConfig": {
+ "access": "public"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/C2FO/fast-csv.git",
+ "directory": "packages/parse"
+ },
+ "scripts": {
+ "prepublishOnly": "npm run build",
+ "build": "npm run clean && npm run compile",
+ "clean": "rm -rf ./build && rm -rf tsconfig.tsbuildinfo",
+ "compile": "tsc"
+ },
+ "bugs": {
+ "url": "https://github.com/C2FO/fast-csv/issues"
+ },
+ "dependencies": {
+ "@types/node": "^14.0.1",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.groupby": "^4.6.0",
+ "lodash.isfunction": "^3.0.9",
+ "lodash.isnil": "^4.0.0",
+ "lodash.isundefined": "^3.0.1",
+ "lodash.uniq": "^4.5.0"
+ },
+ "devDependencies": {
+ "@types/lodash.escaperegexp": "4.1.6",
+ "@types/lodash.groupby": "4.6.6",
+ "@types/lodash.isfunction": "3.0.6",
+ "@types/lodash.isnil": "4.0.6",
+ "@types/lodash.isundefined": "3.0.6",
+ "@types/lodash.partition": "4.6.6",
+ "@types/lodash.uniq": "4.5.6",
+ "@types/sinon": "9.0.9",
+ "lodash.partition": "4.6.0",
+ "sinon": "9.2.1"
+ },
+ "gitHead": "3dc859edb19924b315051e4c87d6273808a0de73"
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/LICENSE b/doc/test-data/purchase_transaction/node_modules/@types/node/LICENSE
new file mode 100644
index 0000000..9e841e7
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/LICENSE
@@ -0,0 +1,21 @@
+ MIT License
+
+ Copyright (c) Microsoft Corporation.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/README.md b/doc/test-data/purchase_transaction/node_modules/@types/node/README.md
new file mode 100644
index 0000000..4685d19
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/README.md
@@ -0,0 +1,16 @@
+# Installation
+> `npm install --save @types/node`
+
+# Summary
+This package contains type definitions for Node.js (https://nodejs.org/).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node/v14.
+
+### Additional Details
+ * Last updated: Sat, 23 Sep 2023 20:38:33 GMT
+ * Dependencies: none
+ * Global values: `AbortController`, `AbortSignal`, `Buffer`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `queueMicrotask`, `require`, `setImmediate`, `setInterval`, `setTimeout`
+
+# Credits
+These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Hoàng Văn Khải](https://github.com/KSXGitHub), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Seth Westphal](https://github.com/westy92), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [Bond](https://github.com/bondz), and [Linus Unnebäck](https://github.com/LinusU).
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/assert.d.ts b/doc/test-data/purchase_transaction/node_modules/@types/node/assert.d.ts
new file mode 100644
index 0000000..e1d8d92
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/assert.d.ts
@@ -0,0 +1,130 @@
+declare module "assert" {
+ /** An alias of `assert.ok()`. */
+ function assert(value: any, message?: string | Error): asserts value;
+ namespace assert {
+ class AssertionError extends Error {
+ actual: any;
+ expected: any;
+ operator: string;
+ generatedMessage: boolean;
+ code: "ERR_ASSERTION";
+
+ constructor(options?: {
+ /** If provided, the error message is set to this value. */
+ message?: string | undefined;
+ /** The `actual` property on the error instance. */
+ actual?: any;
+ /** The `expected` property on the error instance. */
+ expected?: any;
+ /** The `operator` property on the error instance. */
+ operator?: string | undefined;
+ /** If provided, the generated stack trace omits frames before this function. */
+ // tslint:disable-next-line:ban-types
+ stackStartFn?: Function | undefined;
+ });
+ }
+
+ class CallTracker {
+ calls(exact?: number): () => void;
+ calls any>(fn?: Func, exact?: number): Func;
+ report(): CallTrackerReportInformation[];
+ verify(): void;
+ }
+ interface CallTrackerReportInformation {
+ message: string;
+ /** The actual number of times the function was called. */
+ actual: number;
+ /** The number of times the function was expected to be called. */
+ expected: number;
+ /** The name of the function that is wrapped. */
+ operator: string;
+ /** A stack trace of the function. */
+ stack: object;
+ }
+
+ type AssertPredicate = RegExp | (new() => object) | ((thrown: any) => boolean) | object | Error;
+
+ function fail(message?: string | Error): never;
+ /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */
+ function fail(
+ actual: any,
+ expected: any,
+ message?: string | Error,
+ operator?: string,
+ // tslint:disable-next-line:ban-types
+ stackStartFn?: Function,
+ ): never;
+ function ok(value: any, message?: string | Error): asserts value;
+ /** @deprecated since v9.9.0 - use strictEqual() instead. */
+ function equal(actual: any, expected: any, message?: string | Error): void;
+ /** @deprecated since v9.9.0 - use notStrictEqual() instead. */
+ function notEqual(actual: any, expected: any, message?: string | Error): void;
+ /** @deprecated since v9.9.0 - use deepStrictEqual() instead. */
+ function deepEqual(actual: any, expected: any, message?: string | Error): void;
+ /** @deprecated since v9.9.0 - use notDeepStrictEqual() instead. */
+ function notDeepEqual(actual: any, expected: any, message?: string | Error): void;
+ function strictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T;
+ function notStrictEqual(actual: any, expected: any, message?: string | Error): void;
+ function deepStrictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T;
+ function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void;
+
+ function throws(block: () => any, message?: string | Error): void;
+ function throws(block: () => any, error: AssertPredicate, message?: string | Error): void;
+ function doesNotThrow(block: () => any, message?: string | Error): void;
+ function doesNotThrow(block: () => any, error: AssertPredicate, message?: string | Error): void;
+
+ function ifError(value: any): asserts value is null | undefined;
+
+ function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise;
+ function rejects(
+ block: (() => Promise) | Promise,
+ error: AssertPredicate,
+ message?: string | Error,
+ ): Promise;
+ function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise;
+ function doesNotReject(
+ block: (() => Promise) | Promise,
+ error: AssertPredicate,
+ message?: string | Error,
+ ): Promise;
+
+ function match(value: string, regExp: RegExp, message?: string | Error): void;
+ function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;
+
+ const strict:
+ & Omit<
+ typeof assert,
+ | "equal"
+ | "notEqual"
+ | "deepEqual"
+ | "notDeepEqual"
+ | "ok"
+ | "strictEqual"
+ | "deepStrictEqual"
+ | "ifError"
+ | "strict"
+ >
+ & {
+ (value: any, message?: string | Error): asserts value;
+ equal: typeof strictEqual;
+ notEqual: typeof notStrictEqual;
+ deepEqual: typeof deepStrictEqual;
+ notDeepEqual: typeof notDeepStrictEqual;
+
+ // Mapped types and assertion functions are incompatible?
+ // TS2775: Assertions require every name in the call target
+ // to be declared with an explicit type annotation.
+ ok: typeof ok;
+ strictEqual: typeof strictEqual;
+ deepStrictEqual: typeof deepStrictEqual;
+ ifError: typeof ifError;
+ strict: typeof strict;
+ };
+ }
+
+ export = assert;
+}
+declare module "node:assert" {
+ import assert = require("assert");
+ export = assert;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/async_hooks.d.ts b/doc/test-data/purchase_transaction/node_modules/@types/node/async_hooks.d.ts
new file mode 100644
index 0000000..ec1dad9
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/async_hooks.d.ts
@@ -0,0 +1,237 @@
+/**
+ * Async Hooks module: https://nodejs.org/api/async_hooks.html
+ */
+declare module "async_hooks" {
+ /**
+ * Returns the asyncId of the current execution context.
+ */
+ function executionAsyncId(): number;
+
+ /**
+ * The resource representing the current execution.
+ * Useful to store data within the resource.
+ *
+ * Resource objects returned by `executionAsyncResource()` are most often internal
+ * Node.js handle objects with undocumented APIs. Using any functions or properties
+ * on the object is likely to crash your application and should be avoided.
+ *
+ * Using `executionAsyncResource()` in the top-level execution context will
+ * return an empty object as there is no handle or request object to use,
+ * but having an object representing the top-level can be helpful.
+ */
+ function executionAsyncResource(): object;
+
+ /**
+ * Returns the ID of the resource responsible for calling the callback that is currently being executed.
+ */
+ function triggerAsyncId(): number;
+
+ interface HookCallbacks {
+ /**
+ * Called when a class is constructed that has the possibility to emit an asynchronous event.
+ * @param asyncId a unique ID for the async resource
+ * @param type the type of the async resource
+ * @param triggerAsyncId the unique ID of the async resource in whose execution context this async resource was created
+ * @param resource reference to the resource representing the async operation, needs to be released during destroy
+ */
+ init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void;
+
+ /**
+ * When an asynchronous operation is initiated or completes a callback is called to notify the user.
+ * The before callback is called just before said callback is executed.
+ * @param asyncId the unique identifier assigned to the resource about to execute the callback.
+ */
+ before?(asyncId: number): void;
+
+ /**
+ * Called immediately after the callback specified in before is completed.
+ * @param asyncId the unique identifier assigned to the resource which has executed the callback.
+ */
+ after?(asyncId: number): void;
+
+ /**
+ * Called when a promise has resolve() called. This may not be in the same execution id
+ * as the promise itself.
+ * @param asyncId the unique id for the promise that was resolve()d.
+ */
+ promiseResolve?(asyncId: number): void;
+
+ /**
+ * Called after the resource corresponding to asyncId is destroyed
+ * @param asyncId a unique ID for the async resource
+ */
+ destroy?(asyncId: number): void;
+ }
+
+ interface AsyncHook {
+ /**
+ * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop.
+ */
+ enable(): this;
+
+ /**
+ * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled.
+ */
+ disable(): this;
+ }
+
+ /**
+ * Registers functions to be called for different lifetime events of each async operation.
+ * @param options the callbacks to register
+ * @return an AsyncHooks instance used for disabling and enabling hooks
+ */
+ function createHook(options: HookCallbacks): AsyncHook;
+
+ interface AsyncResourceOptions {
+ /**
+ * The ID of the execution context that created this async event.
+ * @default executionAsyncId()
+ */
+ triggerAsyncId?: number | undefined;
+
+ /**
+ * Disables automatic `emitDestroy` when the object is garbage collected.
+ * This usually does not need to be set (even if `emitDestroy` is called
+ * manually), unless the resource's `asyncId` is retrieved and the
+ * sensitive API's `emitDestroy` is called with it.
+ * @default false
+ */
+ requireManualDestroy?: boolean | undefined;
+ }
+
+ /**
+ * The class AsyncResource was designed to be extended by the embedder's async resources.
+ * Using this users can easily trigger the lifetime events of their own resources.
+ */
+ class AsyncResource {
+ /**
+ * AsyncResource() is meant to be extended. Instantiating a
+ * new AsyncResource() also triggers init. If triggerAsyncId is omitted then
+ * async_hook.executionAsyncId() is used.
+ * @param type The type of async event.
+ * @param triggerAsyncId The ID of the execution context that created
+ * this async event (default: `executionAsyncId()`), or an
+ * AsyncResourceOptions object (since v9.3.0)
+ */
+ constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions);
+
+ /**
+ * Binds the given function to the current execution context.
+ * @param fn The function to bind to the current execution context.
+ * @param type An optional name to associate with the underlying `AsyncResource`.
+ */
+ static bind any>(
+ fn: Func,
+ type?: string,
+ ): Func & { asyncResource: AsyncResource };
+
+ /**
+ * Binds the given function to execute to this `AsyncResource`'s scope.
+ * @param fn The function to bind to the current `AsyncResource`.
+ */
+ bind any>(fn: Func): Func & { asyncResource: AsyncResource };
+
+ /**
+ * Call the provided function with the provided arguments in the
+ * execution context of the async resource. This will establish the
+ * context, trigger the AsyncHooks before callbacks, call the function,
+ * trigger the AsyncHooks after callbacks, and then restore the original
+ * execution context.
+ * @param fn The function to call in the execution context of this
+ * async resource.
+ * @param thisArg The receiver to be used for the function call.
+ * @param args Optional arguments to pass to the function.
+ */
+ runInAsyncScope(
+ fn: (this: This, ...args: any[]) => Result,
+ thisArg?: This,
+ ...args: any[]
+ ): Result;
+
+ /**
+ * Call AsyncHooks destroy callbacks.
+ */
+ emitDestroy(): this;
+
+ /**
+ * @return the unique ID assigned to this AsyncResource instance.
+ */
+ asyncId(): number;
+
+ /**
+ * @return the trigger ID for this AsyncResource instance.
+ */
+ triggerAsyncId(): number;
+ }
+
+ /**
+ * When having multiple instances of `AsyncLocalStorage`, they are independent
+ * from each other. It is safe to instantiate this class multiple times.
+ */
+ class AsyncLocalStorage {
+ /**
+ * This method disables the instance of `AsyncLocalStorage`. All subsequent calls
+ * to `asyncLocalStorage.getStore()` will return `undefined` until
+ * `asyncLocalStorage.run()` is called again.
+ *
+ * When calling `asyncLocalStorage.disable()`, all current contexts linked to the
+ * instance will be exited.
+ *
+ * Calling `asyncLocalStorage.disable()` is required before the
+ * `asyncLocalStorage` can be garbage collected. This does not apply to stores
+ * provided by the `asyncLocalStorage`, as those objects are garbage collected
+ * along with the corresponding async resources.
+ *
+ * This method is to be used when the `asyncLocalStorage` is not in use anymore
+ * in the current process.
+ */
+ disable(): void;
+
+ /**
+ * This method returns the current store. If this method is called outside of an
+ * asynchronous context initialized by calling `asyncLocalStorage.run`, it will
+ * return `undefined`.
+ */
+ getStore(): T | undefined;
+
+ /**
+ * This methods runs a function synchronously within a context and return its
+ * return value. The store is not accessible outside of the callback function or
+ * the asynchronous operations created within the callback.
+ *
+ * Optionally, arguments can be passed to the function. They will be passed to the
+ * callback function.
+ *
+ * I the callback function throws an error, it will be thrown by `run` too. The
+ * stacktrace will not be impacted by this call and the context will be exited.
+ */
+ // TODO: Apply generic vararg once available
+ run(store: T, callback: () => R): R;
+ run(store: T, callback: (...args: any[]) => R, ...args: any[]): R;
+
+ /**
+ * This methods runs a function synchronously outside of a context and return its
+ * return value. The store is not accessible within the callback function or the
+ * asynchronous operations created within the callback.
+ *
+ * Optionally, arguments can be passed to the function. They will be passed to the
+ * callback function.
+ *
+ * If the callback function throws an error, it will be thrown by `exit` too. The
+ * stacktrace will not be impacted by this call and the context will be
+ * re-entered.
+ */
+ // TODO: Apply generic vararg once available
+ exit(callback: (...args: any[]) => R, ...args: any[]): R;
+
+ /**
+ * Calling `asyncLocalStorage.enterWith(store)` will transition into the context
+ * for the remainder of the current synchronous execution and will persist
+ * through any following asynchronous calls.
+ */
+ enterWith(store: T): void;
+ }
+}
+declare module "node:async_hooks" {
+ export * from "async_hooks";
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/buffer.d.ts b/doc/test-data/purchase_transaction/node_modules/@types/node/buffer.d.ts
new file mode 100644
index 0000000..112b034
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/buffer.d.ts
@@ -0,0 +1,89 @@
+declare module "buffer" {
+ import { BinaryLike } from "node:crypto";
+ export const INSPECT_MAX_BYTES: number;
+ export const kMaxLength: number;
+ export const kStringMaxLength: number;
+ export const constants: {
+ MAX_LENGTH: number;
+ MAX_STRING_LENGTH: number;
+ };
+ const BuffType: typeof Buffer;
+
+ export type TranscodeEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "latin1" | "binary";
+
+ export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer;
+
+ export const SlowBuffer: {
+ /** @deprecated since v6.0.0, use `Buffer.allocUnsafeSlow()` */
+ new(size: number): Buffer;
+ prototype: Buffer;
+ };
+ /**
+ * @experimental
+ */
+ export interface BlobOptions {
+ /**
+ * @default 'utf8'
+ */
+ encoding?: BufferEncoding | undefined;
+ /**
+ * The Blob content-type. The intent is for `type` to convey
+ * the MIME media type of the data, however no validation of the type format
+ * is performed.
+ */
+ type?: string | undefined;
+ }
+ /**
+ * A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) encapsulates immutable, raw data that can be safely shared across
+ * multiple worker threads.
+ * @since v14.18.0
+ * @experimental
+ */
+ export class Blob {
+ /**
+ * The total size of the `Blob` in bytes.
+ * @since v14.18.0
+ */
+ readonly size: number;
+ /**
+ * The content-type of the `Blob`.
+ * @since v14.18.0
+ */
+ readonly type: string;
+ /**
+ * Creates a new `Blob` object containing a concatenation of the given sources.
+ *
+ * {ArrayBuffer}, {TypedArray}, {DataView}, and {Buffer} sources are copied into
+ * the 'Blob' and can therefore be safely modified after the 'Blob' is created.
+ *
+ * String sources are also copied into the `Blob`.
+ */
+ constructor(sources: Array, options?: BlobOptions);
+ /**
+ * Returns a promise that fulfills with an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) containing a copy of
+ * the `Blob` data.
+ * @since v14.18.0
+ */
+ arrayBuffer(): Promise;
+ /**
+ * Creates and returns a new `Blob` containing a subset of this `Blob` objects
+ * data. The original `Blob` is not altered.
+ * @since v14.18.0
+ * @param start The starting index.
+ * @param end The ending index.
+ * @param type The content-type for the new `Blob`
+ */
+ slice(start?: number, end?: number, type?: string): Blob;
+ /**
+ * Returns a promise that fulfills with the contents of the `Blob` decoded as a
+ * UTF-8 string.
+ * @since v14.18.0
+ */
+ text(): Promise;
+ }
+
+ export { BuffType as Buffer };
+}
+declare module "node:buffer" {
+ export * from "buffer";
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/child_process.d.ts b/doc/test-data/purchase_transaction/node_modules/@types/node/child_process.d.ts
new file mode 100644
index 0000000..e86922b
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/child_process.d.ts
@@ -0,0 +1,682 @@
+declare module "child_process" {
+ import { BaseEncodingOptions } from "fs";
+ import * as events from "events";
+ import * as net from "net";
+ import { Pipe, Readable, Stream, Writable } from "stream";
+
+ type Serializable = string | object | number | boolean;
+ type SendHandle = net.Socket | net.Server;
+
+ interface ChildProcess extends events.EventEmitter {
+ stdin: Writable | null;
+ stdout: Readable | null;
+ stderr: Readable | null;
+ readonly channel?: Pipe | null | undefined;
+ readonly stdio: [
+ Writable | null, // stdin
+ Readable | null, // stdout
+ Readable | null, // stderr
+ Readable | Writable | null | undefined, // extra
+ Readable | Writable | null | undefined, // extra
+ ];
+ readonly killed: boolean;
+ readonly pid: number;
+ readonly connected: boolean;
+ readonly exitCode: number | null;
+ readonly signalCode: NodeJS.Signals | null;
+ readonly spawnargs: string[];
+ readonly spawnfile: string;
+ kill(signal?: NodeJS.Signals | number): boolean;
+ send(message: Serializable, callback?: (error: Error | null) => void): boolean;
+ send(message: Serializable, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean;
+ send(
+ message: Serializable,
+ sendHandle?: SendHandle,
+ options?: MessageOptions,
+ callback?: (error: Error | null) => void,
+ ): boolean;
+ disconnect(): void;
+ unref(): void;
+ ref(): void;
+
+ /**
+ * events.EventEmitter
+ * 1. close
+ * 2. disconnect
+ * 3. error
+ * 4. exit
+ * 5. message
+ */
+
+ addListener(event: string, listener: (...args: any[]) => void): this;
+ addListener(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
+ addListener(event: "disconnect", listener: () => void): this;
+ addListener(event: "error", listener: (err: Error) => void): this;
+ addListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
+ addListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
+
+ emit(event: string | symbol, ...args: any[]): boolean;
+ emit(event: "close", code: number | null, signal: NodeJS.Signals | null): boolean;
+ emit(event: "disconnect"): boolean;
+ emit(event: "error", err: Error): boolean;
+ emit(event: "exit", code: number | null, signal: NodeJS.Signals | null): boolean;
+ emit(event: "message", message: Serializable, sendHandle: SendHandle): boolean;
+
+ on(event: string, listener: (...args: any[]) => void): this;
+ on(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
+ on(event: "disconnect", listener: () => void): this;
+ on(event: "error", listener: (err: Error) => void): this;
+ on(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
+ on(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
+
+ once(event: string, listener: (...args: any[]) => void): this;
+ once(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
+ once(event: "disconnect", listener: () => void): this;
+ once(event: "error", listener: (err: Error) => void): this;
+ once(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
+ once(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
+
+ prependListener(event: string, listener: (...args: any[]) => void): this;
+ prependListener(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
+ prependListener(event: "disconnect", listener: () => void): this;
+ prependListener(event: "error", listener: (err: Error) => void): this;
+ prependListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
+ prependListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
+
+ prependOnceListener(event: string, listener: (...args: any[]) => void): this;
+ prependOnceListener(
+ event: "close",
+ listener: (code: number | null, signal: NodeJS.Signals | null) => void,
+ ): this;
+ prependOnceListener(event: "disconnect", listener: () => void): this;
+ prependOnceListener(event: "error", listener: (err: Error) => void): this;
+ prependOnceListener(
+ event: "exit",
+ listener: (code: number | null, signal: NodeJS.Signals | null) => void,
+ ): this;
+ prependOnceListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
+ }
+
+ // return this object when stdio option is undefined or not specified
+ interface ChildProcessWithoutNullStreams extends ChildProcess {
+ stdin: Writable;
+ stdout: Readable;
+ stderr: Readable;
+ readonly stdio: [
+ Writable, // stdin
+ Readable, // stdout
+ Readable, // stderr
+ Readable | Writable | null | undefined, // extra, no modification
+ Readable | Writable | null | undefined, // extra, no modification
+ ];
+ }
+
+ // return this object when stdio option is a tuple of 3
+ interface ChildProcessByStdio<
+ I extends null | Writable,
+ O extends null | Readable,
+ E extends null | Readable,
+ > extends ChildProcess {
+ stdin: I;
+ stdout: O;
+ stderr: E;
+ readonly stdio: [
+ I,
+ O,
+ E,
+ Readable | Writable | null | undefined, // extra, no modification
+ Readable | Writable | null | undefined, // extra, no modification
+ ];
+ }
+
+ interface MessageOptions {
+ keepOpen?: boolean | undefined;
+ }
+
+ type StdioOptions =
+ | "pipe"
+ | "ignore"
+ | "inherit"
+ | Array<("pipe" | "ipc" | "ignore" | "inherit" | Stream | number | null | undefined)>;
+
+ type SerializationType = "json" | "advanced";
+
+ interface MessagingOptions {
+ /**
+ * Specify the kind of serialization used for sending messages between processes.
+ * @default 'json'
+ */
+ serialization?: SerializationType | undefined;
+ }
+
+ interface ProcessEnvOptions {
+ uid?: number | undefined;
+ gid?: number | undefined;
+ cwd?: string | undefined;
+ env?: NodeJS.ProcessEnv | undefined;
+ }
+
+ interface CommonOptions extends ProcessEnvOptions {
+ /**
+ * @default false
+ */
+ windowsHide?: boolean | undefined;
+ /**
+ * @default 0
+ */
+ timeout?: number | undefined;
+ }
+
+ interface CommonSpawnOptions extends CommonOptions, MessagingOptions {
+ argv0?: string | undefined;
+ /**
+ * Can be set to 'pipe', 'inherit', 'overlapped', or 'ignore', or an array of these strings.
+ * If passed as an array, the first element is used for `stdin`, the second for
+ * `stdout`, and the third for `stderr`. A fourth element can be used to
+ * specify the `stdio` behavior beyond the standard streams. See
+ * {@link ChildProcess.stdio} for more information.
+ *
+ * @default 'pipe'
+ */
+ stdio?: StdioOptions | undefined;
+ shell?: boolean | string | undefined;
+ windowsVerbatimArguments?: boolean | undefined;
+ }
+
+ interface SpawnOptions extends CommonSpawnOptions {
+ detached?: boolean | undefined;
+ }
+
+ interface SpawnOptionsWithoutStdio extends SpawnOptions {
+ stdio?: "pipe" | Array | undefined;
+ }
+
+ type StdioNull = "inherit" | "ignore" | Stream;
+ type StdioPipe = undefined | null | "pipe";
+
+ interface SpawnOptionsWithStdioTuple<
+ Stdin extends StdioNull | StdioPipe,
+ Stdout extends StdioNull | StdioPipe,
+ Stderr extends StdioNull | StdioPipe,
+ > extends SpawnOptions {
+ stdio: [Stdin, Stdout, Stderr];
+ }
+
+ // overloads of spawn without 'args'
+ function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams;
+
+ function spawn(
+ command: string,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+
+ function spawn(command: string, options: SpawnOptions): ChildProcess;
+
+ // overloads of spawn with 'args'
+ function spawn(
+ command: string,
+ args?: ReadonlyArray,
+ options?: SpawnOptionsWithoutStdio,
+ ): ChildProcessWithoutNullStreams;
+
+ function spawn(
+ command: string,
+ args: ReadonlyArray,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ args: ReadonlyArray,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ args: ReadonlyArray,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ args: ReadonlyArray,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ args: ReadonlyArray,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ args: ReadonlyArray,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ args: ReadonlyArray,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+ function spawn(
+ command: string,
+ args: ReadonlyArray,
+ options: SpawnOptionsWithStdioTuple,
+ ): ChildProcessByStdio;
+
+ function spawn(command: string, args: ReadonlyArray, options: SpawnOptions): ChildProcess;
+
+ interface ExecOptions extends CommonOptions {
+ shell?: string | undefined;
+ maxBuffer?: number | undefined;
+ killSignal?: NodeJS.Signals | number | undefined;
+ }
+
+ interface ExecOptionsWithStringEncoding extends ExecOptions {
+ encoding: BufferEncoding;
+ }
+
+ interface ExecOptionsWithBufferEncoding extends ExecOptions {
+ encoding: BufferEncoding | null; // specify `null`.
+ }
+
+ interface ExecException extends Error {
+ cmd?: string | undefined;
+ killed?: boolean | undefined;
+ code?: number | undefined;
+ signal?: NodeJS.Signals | undefined;
+ }
+
+ // no `options` definitely means stdout/stderr are `string`.
+ function exec(
+ command: string,
+ callback?: (error: ExecException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+
+ // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
+ function exec(
+ command: string,
+ options: { encoding: "buffer" | null } & ExecOptions,
+ callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void,
+ ): ChildProcess;
+
+ // `options` with well known `encoding` means stdout/stderr are definitely `string`.
+ function exec(
+ command: string,
+ options: { encoding: BufferEncoding } & ExecOptions,
+ callback?: (error: ExecException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+
+ // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.
+ // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.
+ function exec(
+ command: string,
+ options: { encoding: BufferEncoding } & ExecOptions,
+ callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
+ ): ChildProcess;
+
+ // `options` without an `encoding` means stdout/stderr are definitely `string`.
+ function exec(
+ command: string,
+ options: ExecOptions,
+ callback?: (error: ExecException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+
+ // fallback if nothing else matches. Worst case is always `string | Buffer`.
+ function exec(
+ command: string,
+ options: (BaseEncodingOptions & ExecOptions) | undefined | null,
+ callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
+ ): ChildProcess;
+
+ interface PromiseWithChild extends Promise {
+ child: ChildProcess;
+ }
+
+ // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
+ namespace exec {
+ function __promisify__(command: string): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ command: string,
+ options: { encoding: "buffer" | null } & ExecOptions,
+ ): PromiseWithChild<{ stdout: Buffer; stderr: Buffer }>;
+ function __promisify__(
+ command: string,
+ options: { encoding: BufferEncoding } & ExecOptions,
+ ): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ command: string,
+ options: ExecOptions,
+ ): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ command: string,
+ options?: (BaseEncodingOptions & ExecOptions) | null,
+ ): PromiseWithChild<{ stdout: string | Buffer; stderr: string | Buffer }>;
+ }
+
+ interface ExecFileOptions extends CommonOptions {
+ maxBuffer?: number | undefined;
+ killSignal?: NodeJS.Signals | number | undefined;
+ windowsVerbatimArguments?: boolean | undefined;
+ shell?: boolean | string | undefined;
+ }
+ interface ExecFileOptionsWithStringEncoding extends ExecFileOptions {
+ encoding: BufferEncoding;
+ }
+ interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions {
+ encoding: "buffer" | null;
+ }
+ interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions {
+ encoding: BufferEncoding;
+ }
+ type ExecFileException =
+ & Omit
+ & Omit
+ & { code?: string | number | undefined | null };
+
+ function execFile(file: string): ChildProcess;
+ function execFile(file: string, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;
+ function execFile(file: string, args?: ReadonlyArray | null): ChildProcess;
+ function execFile(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
+ ): ChildProcess;
+
+ // no `options` definitely means stdout/stderr are `string`.
+ function execFile(
+ file: string,
+ callback: (error: ExecFileException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+ function execFile(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ callback: (error: ExecFileException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+
+ // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
+ function execFile(
+ file: string,
+ options: ExecFileOptionsWithBufferEncoding,
+ callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void,
+ ): ChildProcess;
+ function execFile(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: ExecFileOptionsWithBufferEncoding,
+ callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void,
+ ): ChildProcess;
+
+ // `options` with well known `encoding` means stdout/stderr are definitely `string`.
+ function execFile(
+ file: string,
+ options: ExecFileOptionsWithStringEncoding,
+ callback: (error: ExecFileException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+ function execFile(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: ExecFileOptionsWithStringEncoding,
+ callback: (error: ExecFileException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+
+ // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.
+ // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.
+ function execFile(
+ file: string,
+ options: ExecFileOptionsWithOtherEncoding,
+ callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
+ ): ChildProcess;
+ function execFile(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: ExecFileOptionsWithOtherEncoding,
+ callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
+ ): ChildProcess;
+
+ // `options` without an `encoding` means stdout/stderr are definitely `string`.
+ function execFile(
+ file: string,
+ options: ExecFileOptions,
+ callback: (error: ExecFileException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+ function execFile(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: ExecFileOptions,
+ callback: (error: ExecFileException | null, stdout: string, stderr: string) => void,
+ ): ChildProcess;
+
+ // fallback if nothing else matches. Worst case is always `string | Buffer`.
+ function execFile(
+ file: string,
+ options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
+ callback:
+ | ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void)
+ | undefined
+ | null,
+ ): ChildProcess;
+ function execFile(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
+ callback:
+ | ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void)
+ | undefined
+ | null,
+ ): ChildProcess;
+
+ // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
+ namespace execFile {
+ function __promisify__(file: string): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ ): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ file: string,
+ options: ExecFileOptionsWithBufferEncoding,
+ ): PromiseWithChild<{ stdout: Buffer; stderr: Buffer }>;
+ function __promisify__(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: ExecFileOptionsWithBufferEncoding,
+ ): PromiseWithChild<{ stdout: Buffer; stderr: Buffer }>;
+ function __promisify__(
+ file: string,
+ options: ExecFileOptionsWithStringEncoding,
+ ): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: ExecFileOptionsWithStringEncoding,
+ ): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ file: string,
+ options: ExecFileOptionsWithOtherEncoding,
+ ): PromiseWithChild<{ stdout: string | Buffer; stderr: string | Buffer }>;
+ function __promisify__(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: ExecFileOptionsWithOtherEncoding,
+ ): PromiseWithChild<{ stdout: string | Buffer; stderr: string | Buffer }>;
+ function __promisify__(
+ file: string,
+ options: ExecFileOptions,
+ ): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: ExecFileOptions,
+ ): PromiseWithChild<{ stdout: string; stderr: string }>;
+ function __promisify__(
+ file: string,
+ options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
+ ): PromiseWithChild<{ stdout: string | Buffer; stderr: string | Buffer }>;
+ function __promisify__(
+ file: string,
+ args: ReadonlyArray | undefined | null,
+ options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
+ ): PromiseWithChild<{ stdout: string | Buffer; stderr: string | Buffer }>;
+ }
+
+ interface ForkOptions extends ProcessEnvOptions, MessagingOptions {
+ execPath?: string | undefined;
+ execArgv?: string[] | undefined;
+ silent?: boolean | undefined;
+ /**
+ * Can be set to 'pipe', 'inherit', 'overlapped', or 'ignore', or an array of these strings.
+ * If passed as an array, the first element is used for `stdin`, the second for
+ * `stdout`, and the third for `stderr`. A fourth element can be used to
+ * specify the `stdio` behavior beyond the standard streams. See
+ * {@link ChildProcess.stdio} for more information.
+ *
+ * @default 'pipe'
+ */
+ stdio?: StdioOptions | undefined;
+ detached?: boolean | undefined;
+ windowsVerbatimArguments?: boolean | undefined;
+ }
+ function fork(modulePath: string, options?: ForkOptions): ChildProcess;
+ function fork(modulePath: string, args?: ReadonlyArray, options?: ForkOptions): ChildProcess;
+
+ interface SpawnSyncOptions extends CommonSpawnOptions {
+ input?: string | NodeJS.ArrayBufferView | undefined;
+ killSignal?: NodeJS.Signals | number | undefined;
+ maxBuffer?: number | undefined;
+ encoding?: BufferEncoding | "buffer" | null | undefined;
+ }
+ interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {
+ encoding: BufferEncoding;
+ }
+ interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {
+ encoding?: "buffer" | null | undefined;
+ }
+ interface SpawnSyncReturns {
+ pid: number;
+ output: Array;
+ stdout: T;
+ stderr: T;
+ status: number | null;
+ signal: NodeJS.Signals | null;
+ error?: Error | undefined;
+ }
+ function spawnSync(command: string): SpawnSyncReturns;
+ function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns;
+ function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns;
+ function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns;
+ function spawnSync(
+ command: string,
+ args?: ReadonlyArray,
+ options?: SpawnSyncOptionsWithStringEncoding,
+ ): SpawnSyncReturns;
+ function spawnSync(
+ command: string,
+ args?: ReadonlyArray,
+ options?: SpawnSyncOptionsWithBufferEncoding,
+ ): SpawnSyncReturns;
+ function spawnSync(
+ command: string,
+ args?: ReadonlyArray,
+ options?: SpawnSyncOptions,
+ ): SpawnSyncReturns;
+
+ interface ExecSyncOptions extends CommonOptions {
+ input?: string | Uint8Array | undefined;
+ /**
+ * Can be set to 'pipe', 'inherit', 'overlapped', or 'ignore', or an array of these strings.
+ * If passed as an array, the first element is used for `stdin`, the second for
+ * `stdout`, and the third for `stderr`. A fourth element can be used to
+ * specify the `stdio` behavior beyond the standard streams. See
+ * {@link ChildProcess.stdio} for more information.
+ *
+ * @default 'pipe'
+ */
+ stdio?: StdioOptions | undefined;
+ shell?: string | undefined;
+ killSignal?: NodeJS.Signals | number | undefined;
+ maxBuffer?: number | undefined;
+ encoding?: BufferEncoding | "buffer" | null | undefined;
+ }
+ interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {
+ encoding: BufferEncoding;
+ }
+ interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {
+ encoding?: "buffer" | null | undefined;
+ }
+ function execSync(command: string): Buffer;
+ function execSync(command: string, options: ExecSyncOptionsWithStringEncoding): string;
+ function execSync(command: string, options: ExecSyncOptionsWithBufferEncoding): Buffer;
+ function execSync(command: string, options?: ExecSyncOptions): string | Buffer;
+
+ interface ExecFileSyncOptions extends CommonOptions {
+ input?: string | NodeJS.ArrayBufferView | undefined;
+ /**
+ * Can be set to 'pipe', 'inherit', 'overlapped', or 'ignore', or an array of these strings.
+ * If passed as an array, the first element is used for `stdin`, the second for
+ * `stdout`, and the third for `stderr`. A fourth element can be used to
+ * specify the `stdio` behavior beyond the standard streams. See
+ * {@link ChildProcess.stdio} for more information.
+ *
+ * @default 'pipe'
+ */
+ stdio?: StdioOptions | undefined;
+ killSignal?: NodeJS.Signals | number | undefined;
+ maxBuffer?: number | undefined;
+ encoding?: BufferEncoding | undefined;
+ shell?: boolean | string | undefined;
+ }
+ interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {
+ encoding: BufferEncoding;
+ }
+ interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {
+ encoding: BufferEncoding; // specify `null`.
+ }
+ function execFileSync(command: string): Buffer;
+ function execFileSync(command: string, options: ExecFileSyncOptionsWithStringEncoding): string;
+ function execFileSync(command: string, options: ExecFileSyncOptionsWithBufferEncoding): Buffer;
+ function execFileSync(command: string, options?: ExecFileSyncOptions): string | Buffer;
+ function execFileSync(command: string, args: ReadonlyArray): Buffer;
+ function execFileSync(
+ command: string,
+ args: ReadonlyArray,
+ options: ExecFileSyncOptionsWithStringEncoding,
+ ): string;
+ function execFileSync(
+ command: string,
+ args: ReadonlyArray,
+ options: ExecFileSyncOptionsWithBufferEncoding,
+ ): Buffer;
+ function execFileSync(
+ command: string,
+ args?: ReadonlyArray,
+ options?: ExecFileSyncOptions,
+ ): string | Buffer;
+}
+declare module "node:child_process" {
+ export * from "child_process";
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/cluster.d.ts b/doc/test-data/purchase_transaction/node_modules/@types/node/cluster.d.ts
new file mode 100644
index 0000000..29eb984
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/cluster.d.ts
@@ -0,0 +1,300 @@
+declare module "cluster" {
+ import * as child from "child_process";
+ import EventEmitter = require("events");
+ import * as net from "net";
+
+ // interfaces
+ type SerializationType = "json" | "advanced";
+ interface ClusterSettings {
+ execArgv?: string[] | undefined; // default: process.execArgv
+ exec?: string | undefined;
+ args?: string[] | undefined;
+ silent?: boolean | undefined;
+ stdio?: any[] | undefined;
+ uid?: number | undefined;
+ gid?: number | undefined;
+ inspectPort?: number | (() => number) | undefined;
+ serialization?: SerializationType | undefined;
+ cwd?: string | undefined;
+ windowsHide?: boolean | undefined;
+ }
+
+ interface Address {
+ address: string;
+ port: number;
+ addressType: number | "udp4" | "udp6"; // 4, 6, -1, "udp4", "udp6"
+ }
+
+ class Worker extends EventEmitter {
+ id: number;
+ process: child.ChildProcess;
+ send(
+ message: child.Serializable,
+ sendHandle?: child.SendHandle,
+ callback?: (error: Error | null) => void,
+ ): boolean;
+ kill(signal?: string): void;
+ destroy(signal?: string): void;
+ disconnect(): void;
+ isConnected(): boolean;
+ isDead(): boolean;
+ exitedAfterDisconnect: boolean;
+
+ /**
+ * events.EventEmitter
+ * 1. disconnect
+ * 2. error
+ * 3. exit
+ * 4. listening
+ * 5. message
+ * 6. online
+ */
+ addListener(event: string, listener: (...args: any[]) => void): this;
+ addListener(event: "disconnect", listener: () => void): this;
+ addListener(event: "error", listener: (error: Error) => void): this;
+ addListener(event: "exit", listener: (code: number, signal: string) => void): this;
+ addListener(event: "listening", listener: (address: Address) => void): this;
+ addListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
+ addListener(event: "online", listener: () => void): this;
+
+ emit(event: string | symbol, ...args: any[]): boolean;
+ emit(event: "disconnect"): boolean;
+ emit(event: "error", error: Error): boolean;
+ emit(event: "exit", code: number, signal: string): boolean;
+ emit(event: "listening", address: Address): boolean;
+ emit(event: "message", message: any, handle: net.Socket | net.Server): boolean;
+ emit(event: "online"): boolean;
+
+ on(event: string, listener: (...args: any[]) => void): this;
+ on(event: "disconnect", listener: () => void): this;
+ on(event: "error", listener: (error: Error) => void): this;
+ on(event: "exit", listener: (code: number, signal: string) => void): this;
+ on(event: "listening", listener: (address: Address) => void): this;
+ on(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
+ on(event: "online", listener: () => void): this;
+
+ once(event: string, listener: (...args: any[]) => void): this;
+ once(event: "disconnect", listener: () => void): this;
+ once(event: "error", listener: (error: Error) => void): this;
+ once(event: "exit", listener: (code: number, signal: string) => void): this;
+ once(event: "listening", listener: (address: Address) => void): this;
+ once(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
+ once(event: "online", listener: () => void): this;
+
+ prependListener(event: string, listener: (...args: any[]) => void): this;
+ prependListener(event: "disconnect", listener: () => void): this;
+ prependListener(event: "error", listener: (error: Error) => void): this;
+ prependListener(event: "exit", listener: (code: number, signal: string) => void): this;
+ prependListener(event: "listening", listener: (address: Address) => void): this;
+ prependListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
+ prependListener(event: "online", listener: () => void): this;
+
+ prependOnceListener(event: string, listener: (...args: any[]) => void): this;
+ prependOnceListener(event: "disconnect", listener: () => void): this;
+ prependOnceListener(event: "error", listener: (error: Error) => void): this;
+ prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this;
+ prependOnceListener(event: "listening", listener: (address: Address) => void): this;
+ prependOnceListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
+ prependOnceListener(event: "online", listener: () => void): this;
+ }
+
+ interface Cluster extends EventEmitter {
+ Worker: Worker;
+ disconnect(callback?: () => void): void;
+ fork(env?: any): Worker;
+ isMaster: boolean;
+ isWorker: boolean;
+ schedulingPolicy: number;
+ settings: ClusterSettings;
+ setupMaster(settings?: ClusterSettings): void;
+ worker?: Worker | undefined;
+ workers?: NodeJS.Dict | undefined;
+
+ readonly SCHED_NONE: number;
+ readonly SCHED_RR: number;
+
+ /**
+ * events.EventEmitter
+ * 1. disconnect
+ * 2. exit
+ * 3. fork
+ * 4. listening
+ * 5. message
+ * 6. online
+ * 7. setup
+ */
+ addListener(event: string, listener: (...args: any[]) => void): this;
+ addListener(event: "disconnect", listener: (worker: Worker) => void): this;
+ addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
+ addListener(event: "fork", listener: (worker: Worker) => void): this;
+ addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
+ addListener(
+ event: "message",
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
+ ): this; // the handle is a net.Socket or net.Server object, or undefined.
+ addListener(event: "online", listener: (worker: Worker) => void): this;
+ addListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
+
+ emit(event: string | symbol, ...args: any[]): boolean;
+ emit(event: "disconnect", worker: Worker): boolean;
+ emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
+ emit(event: "fork", worker: Worker): boolean;
+ emit(event: "listening", worker: Worker, address: Address): boolean;
+ emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
+ emit(event: "online", worker: Worker): boolean;
+ emit(event: "setup", settings: ClusterSettings): boolean;
+
+ on(event: string, listener: (...args: any[]) => void): this;
+ on(event: "disconnect", listener: (worker: Worker) => void): this;
+ on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
+ on(event: "fork", listener: (worker: Worker) => void): this;
+ on(event: "listening", listener: (worker: Worker, address: Address) => void): this;
+ on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
+ on(event: "online", listener: (worker: Worker) => void): this;
+ on(event: "setup", listener: (settings: ClusterSettings) => void): this;
+
+ once(event: string, listener: (...args: any[]) => void): this;
+ once(event: "disconnect", listener: (worker: Worker) => void): this;
+ once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
+ once(event: "fork", listener: (worker: Worker) => void): this;
+ once(event: "listening", listener: (worker: Worker, address: Address) => void): this;
+ once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
+ once(event: "online", listener: (worker: Worker) => void): this;
+ once(event: "setup", listener: (settings: ClusterSettings) => void): this;
+
+ prependListener(event: string, listener: (...args: any[]) => void): this;
+ prependListener(event: "disconnect", listener: (worker: Worker) => void): this;
+ prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
+ prependListener(event: "fork", listener: (worker: Worker) => void): this;
+ prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
+ prependListener(
+ event: "message",
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
+ ): this; // the handle is a net.Socket or net.Server object, or undefined.
+ prependListener(event: "online", listener: (worker: Worker) => void): this;
+ prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
+
+ prependOnceListener(event: string, listener: (...args: any[]) => void): this;
+ prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this;
+ prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
+ prependOnceListener(event: "fork", listener: (worker: Worker) => void): this;
+ prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
+ // the handle is a net.Socket or net.Server object, or undefined.
+ prependOnceListener(
+ event: "message",
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
+ ): this;
+ prependOnceListener(event: "online", listener: (worker: Worker) => void): this;
+ prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
+ }
+
+ const SCHED_NONE: number;
+ const SCHED_RR: number;
+
+ function disconnect(callback?: () => void): void;
+ function fork(env?: any): Worker;
+ const isMaster: boolean;
+ const isWorker: boolean;
+ let schedulingPolicy: number;
+ const settings: ClusterSettings;
+ function setupMaster(settings?: ClusterSettings): void;
+ const worker: Worker;
+ const workers: NodeJS.Dict;
+
+ /**
+ * events.EventEmitter
+ * 1. disconnect
+ * 2. exit
+ * 3. fork
+ * 4. listening
+ * 5. message
+ * 6. online
+ * 7. setup
+ */
+ function addListener(event: string, listener: (...args: any[]) => void): Cluster;
+ function addListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
+ function addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
+ function addListener(event: "fork", listener: (worker: Worker) => void): Cluster;
+ function addListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
+ // the handle is a net.Socket or net.Server object, or undefined.
+ function addListener(
+ event: "message",
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
+ ): Cluster;
+ function addListener(event: "online", listener: (worker: Worker) => void): Cluster;
+ function addListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
+
+ function emit(event: string | symbol, ...args: any[]): boolean;
+ function emit(event: "disconnect", worker: Worker): boolean;
+ function emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
+ function emit(event: "fork", worker: Worker): boolean;
+ function emit(event: "listening", worker: Worker, address: Address): boolean;
+ function emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
+ function emit(event: "online", worker: Worker): boolean;
+ function emit(event: "setup", settings: ClusterSettings): boolean;
+
+ function on(event: string, listener: (...args: any[]) => void): Cluster;
+ function on(event: "disconnect", listener: (worker: Worker) => void): Cluster;
+ function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
+ function on(event: "fork", listener: (worker: Worker) => void): Cluster;
+ function on(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
+ function on(
+ event: "message",
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
+ ): Cluster; // the handle is a net.Socket or net.Server object, or undefined.
+ function on(event: "online", listener: (worker: Worker) => void): Cluster;
+ function on(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
+
+ function once(event: string, listener: (...args: any[]) => void): Cluster;
+ function once(event: "disconnect", listener: (worker: Worker) => void): Cluster;
+ function once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
+ function once(event: "fork", listener: (worker: Worker) => void): Cluster;
+ function once(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
+ function once(
+ event: "message",
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
+ ): Cluster; // the handle is a net.Socket or net.Server object, or undefined.
+ function once(event: "online", listener: (worker: Worker) => void): Cluster;
+ function once(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
+
+ function removeListener(event: string, listener: (...args: any[]) => void): Cluster;
+ function removeAllListeners(event?: string): Cluster;
+ function setMaxListeners(n: number): Cluster;
+ function getMaxListeners(): number;
+ function listeners(event: string): Function[];
+ function listenerCount(type: string): number;
+
+ function prependListener(event: string, listener: (...args: any[]) => void): Cluster;
+ function prependListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
+ function prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
+ function prependListener(event: "fork", listener: (worker: Worker) => void): Cluster;
+ function prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
+ // the handle is a net.Socket or net.Server object, or undefined.
+ function prependListener(
+ event: "message",
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
+ ): Cluster;
+ function prependListener(event: "online", listener: (worker: Worker) => void): Cluster;
+ function prependListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
+
+ function prependOnceListener(event: string, listener: (...args: any[]) => void): Cluster;
+ function prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
+ function prependOnceListener(
+ event: "exit",
+ listener: (worker: Worker, code: number, signal: string) => void,
+ ): Cluster;
+ function prependOnceListener(event: "fork", listener: (worker: Worker) => void): Cluster;
+ function prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
+ // the handle is a net.Socket or net.Server object, or undefined.
+ function prependOnceListener(
+ event: "message",
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
+ ): Cluster;
+ function prependOnceListener(event: "online", listener: (worker: Worker) => void): Cluster;
+ function prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
+
+ function eventNames(): string[];
+}
+declare module "node:cluster" {
+ export * from "cluster";
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/console.d.ts b/doc/test-data/purchase_transaction/node_modules/@types/node/console.d.ts
new file mode 100644
index 0000000..016f646
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/console.d.ts
@@ -0,0 +1,142 @@
+declare module "console" {
+ import console = require("node:console");
+ export = console;
+}
+declare module "node:console" {
+ import { InspectOptions } from "util";
+
+ global {
+ // This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build
+ interface Console {
+ Console: NodeJS.ConsoleConstructor;
+ /**
+ * A simple assertion test that verifies whether `value` is truthy.
+ * If it is not, an `AssertionError` is thrown.
+ * If provided, the error `message` is formatted using `util.format()` and used as the error message.
+ */
+ assert(value: any, message?: string, ...optionalParams: any[]): void;
+ /**
+ * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the TTY.
+ * When `stdout` is not a TTY, this method does nothing.
+ */
+ clear(): void;
+ /**
+ * Maintains an internal counter specific to `label` and outputs to `stdout` the number of times `console.count()` has been called with the given `label`.
+ */
+ count(label?: string): void;
+ /**
+ * Resets the internal counter specific to `label`.
+ */
+ countReset(label?: string): void;
+ /**
+ * The `console.debug()` function is an alias for {@link console.log}.
+ */
+ debug(message?: any, ...optionalParams: any[]): void;
+ /**
+ * Uses {@link util.inspect} on `obj` and prints the resulting string to `stdout`.
+ * This function bypasses any custom `inspect()` function defined on `obj`.
+ */
+ dir(obj: any, options?: InspectOptions): void;
+ /**
+ * This method calls {@link console.log} passing it the arguments received. Please note that this method does not produce any XML formatting
+ */
+ dirxml(...data: any[]): void;
+ /**
+ * Prints to `stderr` with newline.
+ */
+ error(message?: any, ...optionalParams: any[]): void;
+ /**
+ * Increases indentation of subsequent lines by two spaces.
+ * If one or more `label`s are provided, those are printed first without the additional indentation.
+ */
+ group(...label: any[]): void;
+ /**
+ * The `console.groupCollapsed()` function is an alias for {@link console.group}.
+ */
+ groupCollapsed(...label: any[]): void;
+ /**
+ * Decreases indentation of subsequent lines by two spaces.
+ */
+ groupEnd(): void;
+ /**
+ * The {@link console.info} function is an alias for {@link console.log}.
+ */
+ info(message?: any, ...optionalParams: any[]): void;
+ /**
+ * Prints to `stdout` with newline.
+ */
+ log(message?: any, ...optionalParams: any[]): void;
+ /**
+ * This method does not display anything unless used in the inspector.
+ * Prints to `stdout` the array `array` formatted as a table.
+ */
+ table(tabularData: any, properties?: ReadonlyArray): void;
+ /**
+ * Starts a timer that can be used to compute the duration of an operation. Timers are identified by a unique `label`.
+ */
+ time(label?: string): void;
+ /**
+ * Stops a timer that was previously started by calling {@link console.time} and prints the result to `stdout`.
+ */
+ timeEnd(label?: string): void;
+ /**
+ * For a timer that was previously started by calling {@link console.time}, prints the elapsed time and other `data` arguments to `stdout`.
+ */
+ timeLog(label?: string, ...data: any[]): void;
+ /**
+ * Prints to `stderr` the string 'Trace :', followed by the {@link util.format} formatted message and stack trace to the current position in the code.
+ */
+ trace(message?: any, ...optionalParams: any[]): void;
+ /**
+ * The {@link console.warn} function is an alias for {@link console.error}.
+ */
+ warn(message?: any, ...optionalParams: any[]): void;
+
+ // --- Inspector mode only ---
+ /**
+ * This method does not display anything unless used in the inspector.
+ * Starts a JavaScript CPU profile with an optional label.
+ */
+ profile(label?: string): void;
+ /**
+ * This method does not display anything unless used in the inspector.
+ * Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector.
+ */
+ profileEnd(label?: string): void;
+ /**
+ * This method does not display anything unless used in the inspector.
+ * Adds an event with the label `label` to the Timeline panel of the inspector.
+ */
+ timeStamp(label?: string): void;
+ }
+
+ var console: Console;
+
+ namespace NodeJS {
+ interface ConsoleConstructorOptions {
+ stdout: WritableStream;
+ stderr?: WritableStream | undefined;
+ ignoreErrors?: boolean | undefined;
+ colorMode?: boolean | "auto" | undefined;
+ inspectOptions?: InspectOptions | undefined;
+ /**
+ * Set group indentation
+ * @default 2
+ */
+ groupIndentation?: number | undefined;
+ }
+
+ interface ConsoleConstructor {
+ prototype: Console;
+ new(stdout: WritableStream, stderr?: WritableStream, ignoreErrors?: boolean): Console;
+ new(options: ConsoleConstructorOptions): Console;
+ }
+
+ interface Global {
+ console: typeof console;
+ }
+ }
+ }
+
+ export = console;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/constants.d.ts b/doc/test-data/purchase_transaction/node_modules/@types/node/constants.d.ts
new file mode 100644
index 0000000..8793423
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/constants.d.ts
@@ -0,0 +1,19 @@
+/** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */
+declare module "constants" {
+ import { constants as osConstants, SignalConstants } from "os";
+ import { constants as cryptoConstants } from "crypto";
+ import { constants as fsConstants } from "fs";
+
+ const exp:
+ & typeof osConstants.errno
+ & typeof osConstants.priority
+ & SignalConstants
+ & typeof cryptoConstants
+ & typeof fsConstants;
+ export = exp;
+}
+
+declare module "node:constants" {
+ import constants = require("constants");
+ export = constants;
+}
diff --git a/doc/test-data/purchase_transaction/node_modules/@types/node/crypto.d.ts b/doc/test-data/purchase_transaction/node_modules/@types/node/crypto.d.ts
new file mode 100644
index 0000000..96eb3dd
--- /dev/null
+++ b/doc/test-data/purchase_transaction/node_modules/@types/node/crypto.d.ts
@@ -0,0 +1,1287 @@
+declare module "crypto" {
+ import * as stream from "stream";
+
+ interface Certificate {
+ /**
+ * @param spkac
+ * @returns The challenge component of the `spkac` data structure,
+ * which includes a public key and a challenge.
+ */
+ exportChallenge(spkac: BinaryLike): Buffer;
+ /**
+ * @param spkac
+ * @param encoding The encoding of the spkac string.
+ * @returns The public key component of the `spkac` data structure,
+ * which includes a public key and a challenge.
+ */
+ exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer;
+ /**
+ * @param spkac
+ * @returns `true` if the given `spkac` data structure is valid,
+ * `false` otherwise.
+ */
+ verifySpkac(spkac: NodeJS.ArrayBufferView): boolean;
+ }
+ const Certificate: Certificate & {
+ /** @deprecated since v14.9.0 - Use static methods of `crypto.Certificate` instead. */
+ new(): Certificate;
+ /** @deprecated since v14.9.0 - Use static methods of `crypto.Certificate` instead. */
+ (): Certificate;
+ };
+
+ namespace constants {
+ // https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_constants
+ const OPENSSL_VERSION_NUMBER: number;
+
+ /** Applies multiple bug workarounds within OpenSSL. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html for detail. */
+ const SSL_OP_ALL: number;
+ /** Allows legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */
+ const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;
+ /** Attempts to use the server's preferences instead of the client's when selecting a cipher. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */
+ const SSL_OP_CIPHER_SERVER_PREFERENCE: number;
+ /** Instructs OpenSSL to use Cisco's "speshul" version of DTLS_BAD_VER. */
+ const SSL_OP_CISCO_ANYCONNECT: number;
+ /** Instructs OpenSSL to turn on cookie exchange. */
+ const SSL_OP_COOKIE_EXCHANGE: number;
+ /** Instructs OpenSSL to add server-hello extension from an early version of the cryptopro draft. */
+ const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;
+ /** Instructs OpenSSL to disable a SSL 3.0/TLS 1.0 vulnerability workaround added in OpenSSL 0.9.6d. */
+ const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;
+ /** Instructs OpenSSL to always use the tmp_rsa key when performing RSA operations. */
+ const SSL_OP_EPHEMERAL_RSA: number;
+ /** Allows initial connection to servers that do not support RI. */
+ const SSL_OP_LEGACY_SERVER_CONNECT: number;
+ const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number;
+ const SSL_OP_MICROSOFT_SESS_ID_BUG: number;
+ /** Instructs OpenSSL to disable the workaround for a man-in-the-middle protocol-version vulnerability in the SSL 2.0 server implementation. */
+ const SSL_OP_MSIE_SSLV2_RSA_PADDING: number;
+ const SSL_OP_NETSCAPE_CA_DN_BUG: number;
+ const SSL_OP_NETSCAPE_CHALLENGE_BUG: number;
+ const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number;
+ const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number;
+ /** Instructs OpenSSL to disable support for SSL/TLS compression. */
+ const SSL_OP_NO_COMPRESSION: number;
+ const SSL_OP_NO_QUERY_MTU: number;
+ /** Instructs OpenSSL to always start a new session when performing renegotiation. */
+ const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;
+ const SSL_OP_NO_SSLv2: number;
+ const SSL_OP_NO_SSLv3: number;
+ const SSL_OP_NO_TICKET: number;
+ const SSL_OP_NO_TLSv1: number;
+ const SSL_OP_NO_TLSv1_1: number;
+ const SSL_OP_NO_TLSv1_2: number;
+ const SSL_OP_PKCS1_CHECK_1: number;
+ const SSL_OP_PKCS1_CHECK_2: number;
+ /** Instructs OpenSSL to always create a new key when using temporary/ephemeral DH parameters. */
+ const SSL_OP_SINGLE_DH_USE: number;
+ /** Instructs OpenSSL to always create a new key when using temporary/ephemeral ECDH parameters. */
+ const SSL_OP_SINGLE_ECDH_USE: number;
+ const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number;
+ const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number;
+ const SSL_OP_TLS_BLOCK_PADDING_BUG: number;
+ const SSL_OP_TLS_D5_BUG: number;
+ /** Instructs OpenSSL to disable version rollback attack detection. */
+ const SSL_OP_TLS_ROLLBACK_BUG: number;
+
+ const ENGINE_METHOD_RSA: number;
+ const ENGINE_METHOD_DSA: number;
+ const ENGINE_METHOD_DH: number;
+ const ENGINE_METHOD_RAND: number;
+ const ENGINE_METHOD_EC: number;
+ const ENGINE_METHOD_CIPHERS: number;
+ const ENGINE_METHOD_DIGESTS: number;
+ const ENGINE_METHOD_PKEY_METHS: number;
+ const ENGINE_METHOD_PKEY_ASN1_METHS: number;
+ const ENGINE_METHOD_ALL: number;
+ const ENGINE_METHOD_NONE: number;
+
+ const DH_CHECK_P_NOT_SAFE_PRIME: number;
+ const DH_CHECK_P_NOT_PRIME: number;
+ const DH_UNABLE_TO_CHECK_GENERATOR: number;
+ const DH_NOT_SUITABLE_GENERATOR: number;
+
+ const ALPN_ENABLED: number;
+
+ const RSA_PKCS1_PADDING: number;
+ const RSA_SSLV23_PADDING: number;
+ const RSA_NO_PADDING: number;
+ const RSA_PKCS1_OAEP_PADDING: number;
+ const RSA_X931_PADDING: number;
+ const RSA_PKCS1_PSS_PADDING: number;
+ /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the digest size when signing or verifying. */
+ const RSA_PSS_SALTLEN_DIGEST: number;
+ /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the maximum permissible value when signing data. */
+ const RSA_PSS_SALTLEN_MAX_SIGN: number;
+ /** Causes the salt length for RSA_PKCS1_PSS_PADDING to be determined automatically when verifying a signature. */
+ const RSA_PSS_SALTLEN_AUTO: number;
+
+ const POINT_CONVERSION_COMPRESSED: number;
+ const POINT_CONVERSION_UNCOMPRESSED: number;
+ const POINT_CONVERSION_HYBRID: number;
+
+ /** Specifies the built-in default cipher list used by Node.js (colon-separated values). */
+ const defaultCoreCipherList: string;
+ /** Specifies the active default cipher list used by the current Node.js process (colon-separated values). */
+ const defaultCipherList: string;
+ }
+
+ interface HashOptions extends stream.TransformOptions {
+ /**
+ * For XOF hash functions such as `shake256`, the
+ * outputLength option can be used to specify the desired output length in bytes.
+ */
+ outputLength?: number | undefined;
+ }
+
+ /** @deprecated since v10.0.0 */
+ const fips: boolean;
+
+ function createHash(algorithm: string, options?: HashOptions): Hash;
+ function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac;
+
+ // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings
+ type BinaryToTextEncoding = "base64" | "base64url" | "hex";
+ type CharacterEncoding = "utf8" | "utf-8" | "utf16le" | "latin1";
+ type LegacyCharacterEncoding = "ascii" | "binary" | "ucs2" | "ucs-2";
+
+ type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding;
+
+ type ECDHKeyFormat = "compressed" | "uncompressed" | "hybrid";
+
+ class Hash extends stream.Transform {
+ private constructor();
+ copy(): Hash;
+ update(data: BinaryLike): Hash;
+ update(data: string, input_encoding: Encoding): Hash;
+ digest(): Buffer;
+ digest(encoding: BinaryToTextEncoding): string;
+ }
+ class Hmac extends stream.Transform {
+ private constructor();
+ update(data: BinaryLike): Hmac;
+ update(data: string, input_encoding: Encoding): Hmac;
+ digest(): Buffer;
+ digest(encoding: BinaryToTextEncoding): string;
+ }
+
+ type KeyObjectType = "secret" | "public" | "private";
+
+ interface KeyExportOptions {
+ type: "pkcs1" | "spki" | "pkcs8" | "sec1";
+ format: T;
+ cipher?: string | undefined;
+ passphrase?: string | Buffer | undefined;
+ }
+
+ class KeyObject {
+ private constructor();
+ asymmetricKeyType?: KeyType | undefined;
+ /**
+ * For asymmetric keys, this property represents the size of the embedded key in
+ * bytes. This property is `undefined` for symmetric keys.
+ */
+ asymmetricKeySize?: number | undefined;
+ export(options: KeyExportOptions<"pem">): string | Buffer;
+ export(options?: KeyExportOptions<"der">): Buffer;
+ symmetricKeySize?: number | undefined;
+ type: KeyObjectType;
+ }
+
+ type CipherCCMTypes = "aes-128-ccm" | "aes-192-ccm" | "aes-256-ccm" | "chacha20-poly1305";
+ type CipherGCMTypes = "aes-128-gcm" | "aes-192-gcm" | "aes-256-gcm";
+ type CipherOCBTypes = "aes-128-ocb" | "aes-192-ocb" | "aes-256-ocb";
+
+ type BinaryLike = string | NodeJS.ArrayBufferView;
+
+ type CipherKey = BinaryLike | KeyObject;
+
+ interface CipherCCMOptions extends stream.TransformOptions {
+ authTagLength: number;
+ }
+ interface CipherGCMOptions extends stream.TransformOptions {
+ authTagLength?: number | undefined;
+ }
+ interface CipherOCBOptions extends stream.TransformOptions {
+ authTagLength: number;
+ }
+ /** @deprecated since v10.0.0 use `createCipheriv()` */
+ function createCipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): CipherCCM;
+ /** @deprecated since v10.0.0 use `createCipheriv()` */
+ function createCipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): CipherGCM;
+ /** @deprecated since v10.0.0 use `createCipheriv()` */
+ function createCipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Cipher;
+
+ function createCipheriv(
+ algorithm: CipherCCMTypes,
+ key: CipherKey,
+ iv: BinaryLike,
+ options: CipherCCMOptions,
+ ): CipherCCM;
+ function createCipheriv(
+ algorithm: CipherOCBTypes,
+ key: CipherKey,
+ iv: BinaryLike,
+ options: CipherOCBOptions,
+ ): CipherOCB;
+ function createCipheriv(
+ algorithm: CipherGCMTypes,
+ key: CipherKey,
+ iv: BinaryLike,
+ options?: CipherGCMOptions,
+ ): CipherGCM;
+ function createCipheriv(
+ algorithm: string,
+ key: CipherKey,
+ iv: BinaryLike | null,
+ options?: stream.TransformOptions,
+ ): Cipher;
+
+ class Cipher extends stream.Transform {
+ private constructor();
+ update(data: BinaryLike): Buffer;
+ update(data: string, input_encoding: Encoding): Buffer;
+ update(data: NodeJS.ArrayBufferView, input_encoding: undefined, output_encoding: Encoding): string;
+ update(data: string, input_encoding: Encoding | undefined, output_encoding: Encoding): string;
+ final(): Buffer;
+ final(output_encoding: BufferEncoding): string;
+ setAutoPadding(auto_padding?: boolean): this;
+ // getAuthTag(): Buffer;
+ // setAAD(buffer: NodeJS.ArrayBufferView): this;
+ }
+ interface CipherCCM extends Cipher {
+ setAAD(buffer: NodeJS.ArrayBufferView, options: { plaintextLength: number }): this;
+ getAuthTag(): Buffer;
+ }
+ interface CipherGCM extends Cipher {
+ setAAD(buffer: NodeJS.ArrayBufferView, options?: { plaintextLength: number }): this;
+ getAuthTag(): Buffer;
+ }
+ interface CipherOCB extends Cipher {
+ setAAD(buffer: NodeJS.ArrayBufferView, options?: { plaintextLength: number }): this;
+ getAuthTag(): Buffer;
+ }
+ /** @deprecated since v10.0.0 use `createDecipheriv()` */
+ function createDecipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): DecipherCCM;
+ /** @deprecated since v10.0.0 use `createDecipheriv()` */
+ function createDecipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): DecipherGCM;
+ /** @deprecated since v10.0.0 use `createDecipheriv()` */
+ function createDecipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Decipher;
+
+ function createDecipheriv(
+ algorithm: CipherCCMTypes,
+ key: CipherKey,
+ iv: BinaryLike,
+ options: CipherCCMOptions,
+ ): DecipherCCM;
+ function createDecipheriv(
+ algorithm: CipherOCBTypes,
+ key: CipherKey,
+ iv: BinaryLike,
+ options: CipherOCBOptions,
+ ): DecipherOCB;
+ function createDecipheriv(
+ algorithm: CipherGCMTypes,
+ key: CipherKey,
+ iv: BinaryLike,
+ options?: CipherGCMOptions,
+ ): DecipherGCM;
+ function createDecipheriv(
+ algorithm: string,
+ key: CipherKey,
+ iv: BinaryLike | null,
+ options?: stream.TransformOptions,
+ ): Decipher;
+
+ class Decipher extends stream.Transform {
+ private constructor();
+ update(data: NodeJS.ArrayBufferView): Buffer;
+ update(data: string, input_encoding: Encoding): Buffer;
+ update(data: NodeJS.ArrayBufferView, input_encoding: undefined, output_encoding: Encoding): string;
+ update(data: string, input_encoding: Encoding | undefined, output_encoding: Encoding): string;
+ final(): Buffer;
+ final(output_encoding: BufferEncoding): string;
+ setAutoPadding(auto_padding?: boolean): this;
+ // setAuthTag(tag: NodeJS.ArrayBufferView): this;
+ // setAAD(buffer: NodeJS.ArrayBufferView): this;
+ }
+ interface DecipherCCM extends Decipher {
+ setAuthTag(buffer: NodeJS.ArrayBufferView): this;
+ setAAD(buffer: NodeJS.ArrayBufferView, options: { plaintextLength: number }): this;
+ }
+ interface DecipherGCM extends Decipher {
+ setAuthTag(buffer: NodeJS.ArrayBufferView): this;
+ setAAD(buffer: NodeJS.ArrayBufferView, options?: { plaintextLength: number }): this;
+ }
+ interface DecipherOCB extends Decipher {
+ setAuthTag(buffer: NodeJS.ArrayBufferView): this;
+ setAAD(buffer: NodeJS.ArrayBufferView, options?: { plaintextLength: number }): this;
+ }
+
+ interface PrivateKeyInput {
+ key: string | Buffer;
+ format?: KeyFormat | undefined;
+ type?: "pkcs1" | "pkcs8" | "sec1" | undefined;
+ passphrase?: string | Buffer | undefined;
+ }
+
+ interface PublicKeyInput {
+ key: string | Buffer;
+ format?: KeyFormat | undefined;
+ type?: "pkcs1" | "spki" | undefined;
+ }
+
+ function createPrivateKey(key: PrivateKeyInput | string | Buffer): KeyObject;
+ function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject): KeyObject;
+ function createSecretKey(key: NodeJS.ArrayBufferView): KeyObject;
+
+ function createSign(algorithm: string, options?: stream.WritableOptions): Sign;
+
+ type DSAEncoding = "der" | "ieee-p1363";
+
+ interface SigningOptions {
+ /**
+ * @see crypto.constants.RSA_PKCS1_PADDING
+ */
+ padding?: number | undefined;
+ saltLength?: number | undefined;
+ dsaEncoding?: DSAEncoding | undefined;
+ }
+
+ interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {}
+ interface SignKeyObjectInput extends SigningOptions {
+ key: KeyObject;
+ }
+ interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {}
+ interface VerifyKeyObjectInput extends SigningOptions {
+ key: KeyObject;
+ }
+
+ type KeyLike = string | Buffer | KeyObject;
+
+ class Sign extends stream.Writable {
+ private constructor();
+
+ update(data: BinaryLike): Sign;
+ update(data: string, input_encoding: Encoding): Sign;
+ sign(private_key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer;
+ sign(
+ private_key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput,
+ output_format: BinaryToTextEncoding,
+ ): string;
+ }
+
+ function createVerify(algorithm: string, options?: stream.WritableOptions): Verify;
+ class Verify extends stream.Writable {
+ private constructor();
+
+ update(data: BinaryLike): Verify;
+ update(data: string, input_encoding: Encoding): Verify;
+ verify(
+ object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput,
+ signature: NodeJS.ArrayBufferView,
+ ): boolean;
+ verify(
+ object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput,
+ signature: string,
+ signature_format?: BinaryToTextEncoding,
+ ): boolean;
+ // https://nodejs.org/api/crypto.html#crypto_verifier_verify_object_signature_signature_format
+ // The signature field accepts a TypedArray type, but it is only available starting ES2017
+ }
+ function createDiffieHellman(prime_length: number, generator?: number | NodeJS.ArrayBufferView): DiffieHellman;
+ function createDiffieHellman(prime: NodeJS.ArrayBufferView): DiffieHellman;
+ function createDiffieHellman(prime: string, prime_encoding: BinaryToTextEncoding): DiffieHellman;
+ function createDiffieHellman(
+ prime: string,
+ prime_encoding: BinaryToTextEncoding,
+ generator: number | NodeJS.ArrayBufferView,
+ ): DiffieHellman;
+ function createDiffieHellman(
+ prime: string,
+ prime_encoding: BinaryToTextEncoding,
+ generator: string,
+ generator_encoding: BinaryToTextEncoding,
+ ): DiffieHellman;
+ class DiffieHellman {
+ private constructor();
+ generateKeys(): Buffer;
+ generateKeys(encoding: BinaryToTextEncoding): string;
+ computeSecret(otherPublicKey: NodeJS.ArrayBufferView, inputEncoding?: null, outputEncoding?: null): Buffer;
+ computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding?: null): Buffer;
+ computeSecret(
+ otherPublicKey: NodeJS.ArrayBufferView,
+ inputEncoding: null,
+ outputEncoding: BinaryToTextEncoding,
+ ): string;
+ computeSecret(
+ other_public_key: string,
+ input_encoding: BinaryToTextEncoding,
+ output_encoding: BinaryToTextEncoding,
+ ): string;
+ getPrime(): Buffer;
+ getPrime(encoding: BinaryToTextEncoding): string;
+ getGenerator(): Buffer;
+ getGenerator(encoding: BinaryToTextEncoding): string;
+ getPublicKey(): Buffer;
+ getPublicKey(encoding: BinaryToTextEncoding): string;
+ getPrivateKey(): Buffer;
+ getPrivateKey(encoding: BinaryToTextEncoding): string;
+ setPublicKey(public_key: NodeJS.ArrayBufferView): void;
+ setPublicKey(public_key: string, encoding: BufferEncoding): void;
+ setPrivateKey(private_key: NodeJS.ArrayBufferView): void;
+ setPrivateKey(private_key: string, encoding: BufferEncoding): void;
+ verifyError: number;
+ }
+ /**
+ * The `DiffieHellmanGroup` class takes a well-known modp group as its argument.
+ * It works the same as `DiffieHellman`, except that it does not allow changing its keys after creation.
+ * In other words, it does not implement `setPublicKey()` or `setPrivateKey()` methods.
+ *
+ * ```js
+ * const { createDiffieHellmanGroup } = await import('node:crypto');
+ * const dh = createDiffieHellmanGroup('modp1');
+ * ```
+ * The name (e.g. `'modp1'`) is taken from [RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt) (modp1 and 2) and [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt):
+ * ```bash
+ * $ perl -ne 'print "$1\n" if /"(modp\d+)"/' src/node_crypto_groups.h
+ * modp1 # 768 bits
+ * modp2 # 1024 bits
+ * modp5 # 1536 bits
+ * modp14 # 2048 bits
+ * modp15 # etc.
+ * modp16
+ * modp17
+ * modp18
+ * ```
+ * @since v0.7.5
+ */
+ const DiffieHellmanGroup: DiffieHellmanGroupConstructor;
+ interface DiffieHellmanGroupConstructor {
+ new(name: string): DiffieHellmanGroup;
+ (name: string): DiffieHellmanGroup;
+ readonly prototype: DiffieHellmanGroup;
+ }
+ type DiffieHellmanGroup = Omit;
+ function getDiffieHellman(groupName: string): DiffieHellmanGroup;
+ /**
+ * An alias for {@link getDiffieHellman}
+ * @since v0.9.3
+ */
+ function createDiffieHellmanGroup(name: string): DiffieHellmanGroup;
+ function pbkdf2(
+ password: BinaryLike,
+ salt: BinaryLike,
+ iterations: number,
+ keylen: number,
+ digest: string,
+ callback: (err: Error | null, derivedKey: Buffer) => any,
+ ): void;
+ function pbkdf2Sync(
+ password: BinaryLike,
+ salt: BinaryLike,
+ iterations: number,
+ keylen: number,
+ digest: string,
+ ): Buffer;
+
+ function randomBytes(size: number): Buffer;
+ function randomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void;
+ function pseudoRandomBytes(size: number): Buffer;
+ function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void;
+
+ function randomInt(max: number): number;
+ function randomInt(min: number, max: number): number;
+ function randomInt(max: number, callback: (err: Error | null, value: number) => void): void;
+ function randomInt(min: number, max: number, callback: (err: Error | null, value: number) => void): void;
+
+ function randomFillSync(buffer: T, offset?: number, size?: number): T;
+ function randomFill(
+ buffer: T,
+ callback: (err: Error | null, buf: T) => void,
+ ): void;
+ function randomFill(
+ buffer: T,
+ offset: number,
+ callback: (err: Error | null, buf: T) => void,
+ ): void;
+ function randomFill(
+ buffer: T,
+ offset: number,
+ size: number,
+ callback: (err: Error | null, buf: T) => void,
+ ): void;
+
+ interface RandomUUIDOptions {
+ /**
+ * By default, to improve performance,
+ * Node.js will pre-emptively generate and persistently cache enough
+ * random data to generate up to 128 random UUIDs. To generate a UUID
+ * without using the cache, set `disableEntropyCache` to `true`.
+ *
+ * @default `false`
+ */
+ disableEntropyCache?: boolean | undefined;
+ }
+ type UUID = `${string}-${string}-${string}-${string}-${string}`;
+ function randomUUID(options?: RandomUUIDOptions): UUID;
+
+ interface ScryptOptions {
+ cost?: number | undefined;
+ blockSize?: number | undefined;
+ parallelization?: number | undefined;
+ N?: number | undefined;
+ r?: number | undefined;
+ p?: number | undefined;
+ maxmem?: number | undefined;
+ }
+ function scrypt(
+ password: BinaryLike,
+ salt: BinaryLike,
+ keylen: number,
+ callback: (err: Error | null, derivedKey: Buffer) => void,
+ ): void;
+ function scrypt(
+ password: BinaryLike,
+ salt: BinaryLike,
+ keylen: number,
+ options: ScryptOptions,
+ callback: (err: Error | null, derivedKey: Buffer) => void,
+ ): void;
+ function scryptSync(password: BinaryLike, salt: BinaryLike, keylen: number, options?: ScryptOptions): Buffer;
+
+ interface RsaPublicKey {
+ key: KeyLike;
+ padding?: number | undefined;
+ }
+ interface RsaPrivateKey {
+ key: KeyLike;
+ passphrase?: string | undefined;
+ /**
+ * @default 'sha1'
+ */
+ oaepHash?: string | undefined;
+ oaepLabel?: NodeJS.TypedArray | undefined;
+ padding?: number | undefined;
+ }
+ function publicEncrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;
+ function publicDecrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;
+ function privateDecrypt(private_key: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;
+ function privateEncrypt(private_key: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;
+ function getCiphers(): string[];
+ function getCurves(): string[];
+ function getFips(): 1 | 0;
+ /**
+ * Enables the FIPS compliant crypto provider in a FIPS-enabled Node.js build. Throws an error if FIPS mode is not available.
+ * @since v10.0.0
+ * @param bool `true` to enable FIPS mode.
+ */
+ function setFips(bool: boolean): void;
+ function getHashes(): string[];
+ class ECDH {
+ private constructor();
+ static convertKey(
+ key: BinaryLike,
+ curve: string,
+ inputEncoding?: BinaryToTextEncoding,
+ outputEncoding?: "latin1" | "hex" | "base64" | "base64url",
+ format?: "uncompressed" | "compressed" | "hybrid",
+ ): Buffer | string;
+ generateKeys(): Buffer;
+ generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
+ computeSecret(other_public_key: NodeJS.ArrayBufferView): Buffer;
+ computeSecret(other_public_key: string, input_encoding: BinaryToTextEncoding): Buffer;
+ computeSecret(other_public_key: NodeJS.ArrayBufferView, output_encoding: BinaryToTextEncoding): string;
+ computeSecret(
+ other_public_key: string,
+ input_encoding: BinaryToTextEncoding,
+ output_encoding: BinaryToTextEncoding,
+ ): string;
+ getPrivateKey(): Buffer;
+ getPrivateKey(encoding: BinaryToTextEncoding): string;
+ getPublicKey(): Buffer;
+ getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
+ setPrivateKey(private_key: NodeJS.ArrayBufferView): void;
+ setPrivateKey(private_key: string, encoding: BinaryToTextEncoding): void;
+ }
+ function createECDH(curve_name: string): ECDH;
+ function timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean;
+ /** @deprecated since v10.0.0 */
+ const DEFAULT_ENCODING: BufferEncoding;
+
+ type KeyType = "rsa" | "dsa" | "ec" | "ed25519" | "ed448" | "x25519" | "x448";
+ type KeyFormat = "pem" | "der";
+
+ interface BasePrivateKeyEncodingOptions {
+ format: T;
+ cipher?: string | undefined;
+ passphrase?: string | undefined;
+ }
+
+ interface KeyPairKeyObjectResult {
+ publicKey: KeyObject;
+ privateKey: KeyObject;
+ }
+
+ interface ED25519KeyPairKeyObjectOptions {
+ /**
+ * No options.
+ */
+ }
+
+ interface ED448KeyPairKeyObjectOptions {
+ /**
+ * No options.
+ */
+ }
+
+ interface X25519KeyPairKeyObjectOptions {
+ /**
+ * No options.
+ */
+ }
+
+ interface X448KeyPairKeyObjectOptions {
+ /**
+ * No options.
+ */
+ }
+
+ interface ECKeyPairKeyObjectOptions {
+ /**
+ * Name of the curve to use.
+ */
+ namedCurve: string;
+ }
+
+ interface RSAKeyPairKeyObjectOptions {
+ /**
+ * Key size in bits
+ */
+ modulusLength: number;
+
+ /**
+ * @default 0x10001
+ */
+ publicExponent?: number | undefined;
+ }
+
+ interface DSAKeyPairKeyObjectOptions {
+ /**
+ * Key size in bits
+ */
+ modulusLength: number;
+
+ /**
+ * Size of q in bits
+ */
+ divisorLength: number;
+ }
+
+ interface RSAKeyPairOptions