web-csv-toolbox 0.12.0-next-fc4fc577fe49e68164909f314c7d5ec6b4e82a46 → 0.12.0-next-b221fc714faa4b33d33a3349982a1608d8a19b2f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -22
- package/dist/Lexer.js.map +1 -0
- package/dist/LexerTransformer.js.map +1 -0
- package/dist/RecordAssembler.js.map +1 -0
- package/dist/RecordAssemblerTransformer.js.map +1 -0
- package/dist/{es/_virtual → _virtual}/web_csv_toolbox_wasm_bg.wasm.js +1 -1
- package/dist/assertCommonOptions.js.map +1 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/errors.js.map +1 -0
- package/dist/commonParseErrorHandling.js.map +1 -0
- package/dist/constants.js.map +1 -0
- package/dist/getOptionsFromResponse.js.map +1 -0
- package/dist/loadWASM.js.map +1 -0
- package/dist/loadWASM.web.js.map +1 -0
- package/dist/parse.js.map +1 -0
- package/dist/parseBinary.js.map +1 -0
- package/dist/parseBinaryToArraySync.js.map +1 -0
- package/dist/parseBinaryToIterableIterator.js.map +1 -0
- package/dist/parseBinaryToStream.js.map +1 -0
- package/dist/parseResponse.js.map +1 -0
- package/dist/parseResponseToStream.js.map +1 -0
- package/dist/parseString.js.map +1 -0
- package/dist/parseStringStream.js.map +1 -0
- package/dist/parseStringStreamToStream.js.map +1 -0
- package/dist/parseStringToArraySync.js.map +1 -0
- package/dist/parseStringToArraySyncWASM.js.map +1 -0
- package/dist/parseStringToIterableIterator.js.map +1 -0
- package/dist/parseStringToStream.js.map +1 -0
- package/dist/parseUint8ArrayStream.js.map +1 -0
- package/dist/parseUint8ArrayStreamToStream.js.map +1 -0
- package/dist/utils/convertBinaryToString.js.map +1 -0
- package/dist/utils/convertIterableIteratorToAsync.js.map +1 -0
- package/dist/utils/convertStreamToAsyncIterableIterator.js.map +1 -0
- package/dist/utils/convertThisAsyncIterableIteratorToArray.js.map +1 -0
- package/dist/utils/escapeRegExp.js.map +1 -0
- package/dist/utils/parseMime.js.map +1 -0
- package/dist/utils/pipeline.js.map +1 -0
- package/dist/web_csv_toolbox_wasm_bg.wasm +0 -0
- package/package.json +15 -32
- package/dist/cjs/Lexer.cjs +0 -2
- package/dist/cjs/Lexer.cjs.map +0 -1
- package/dist/cjs/LexerTransformer.cjs +0 -2
- package/dist/cjs/LexerTransformer.cjs.map +0 -1
- package/dist/cjs/RecordAssembler.cjs +0 -2
- package/dist/cjs/RecordAssembler.cjs.map +0 -1
- package/dist/cjs/RecordAssemblerTransformer.cjs +0 -2
- package/dist/cjs/RecordAssemblerTransformer.cjs.map +0 -1
- package/dist/cjs/_virtual/_web-csv-toolbox-wasm.cjs +0 -2
- package/dist/cjs/_virtual/_web-csv-toolbox-wasm.cjs.map +0 -1
- package/dist/cjs/_virtual/web_csv_toolbox_wasm_bg.wasm.cjs +0 -2
- package/dist/cjs/_virtual/web_csv_toolbox_wasm_bg.wasm.cjs.map +0 -1
- package/dist/cjs/assertCommonOptions.cjs +0 -2
- package/dist/cjs/assertCommonOptions.cjs.map +0 -1
- package/dist/cjs/common/constants.cjs +0 -2
- package/dist/cjs/common/constants.cjs.map +0 -1
- package/dist/cjs/common/errors.cjs +0 -2
- package/dist/cjs/common/errors.cjs.map +0 -1
- package/dist/cjs/commonParseErrorHandling.cjs +0 -2
- package/dist/cjs/commonParseErrorHandling.cjs.map +0 -1
- package/dist/cjs/constants.cjs +0 -2
- package/dist/cjs/constants.cjs.map +0 -1
- package/dist/cjs/getOptionsFromResponse.cjs +0 -2
- package/dist/cjs/getOptionsFromResponse.cjs.map +0 -1
- package/dist/cjs/loadWASM.cjs +0 -2
- package/dist/cjs/loadWASM.cjs.map +0 -1
- package/dist/cjs/loadWASM.web.cjs +0 -2
- package/dist/cjs/loadWASM.web.cjs.map +0 -1
- package/dist/cjs/parse.cjs +0 -2
- package/dist/cjs/parse.cjs.map +0 -1
- package/dist/cjs/parseBinary.cjs +0 -2
- package/dist/cjs/parseBinary.cjs.map +0 -1
- package/dist/cjs/parseBinaryToArraySync.cjs +0 -2
- package/dist/cjs/parseBinaryToArraySync.cjs.map +0 -1
- package/dist/cjs/parseBinaryToIterableIterator.cjs +0 -2
- package/dist/cjs/parseBinaryToIterableIterator.cjs.map +0 -1
- package/dist/cjs/parseBinaryToStream.cjs +0 -2
- package/dist/cjs/parseBinaryToStream.cjs.map +0 -1
- package/dist/cjs/parseResponse.cjs +0 -2
- package/dist/cjs/parseResponse.cjs.map +0 -1
- package/dist/cjs/parseResponseToStream.cjs +0 -2
- package/dist/cjs/parseResponseToStream.cjs.map +0 -1
- package/dist/cjs/parseString.cjs +0 -2
- package/dist/cjs/parseString.cjs.map +0 -1
- package/dist/cjs/parseStringStream.cjs +0 -2
- package/dist/cjs/parseStringStream.cjs.map +0 -1
- package/dist/cjs/parseStringStreamToStream.cjs +0 -2
- package/dist/cjs/parseStringStreamToStream.cjs.map +0 -1
- package/dist/cjs/parseStringToArraySync.cjs +0 -2
- package/dist/cjs/parseStringToArraySync.cjs.map +0 -1
- package/dist/cjs/parseStringToArraySyncWASM.cjs +0 -2
- package/dist/cjs/parseStringToArraySyncWASM.cjs.map +0 -1
- package/dist/cjs/parseStringToIterableIterator.cjs +0 -2
- package/dist/cjs/parseStringToIterableIterator.cjs.map +0 -1
- package/dist/cjs/parseStringToStream.cjs +0 -2
- package/dist/cjs/parseStringToStream.cjs.map +0 -1
- package/dist/cjs/parseUint8ArrayStream.cjs +0 -2
- package/dist/cjs/parseUint8ArrayStream.cjs.map +0 -1
- package/dist/cjs/parseUint8ArrayStreamToStream.cjs +0 -2
- package/dist/cjs/parseUint8ArrayStreamToStream.cjs.map +0 -1
- package/dist/cjs/utils/convertBinaryToString.cjs +0 -2
- package/dist/cjs/utils/convertBinaryToString.cjs.map +0 -1
- package/dist/cjs/utils/convertIterableIteratorToAsync.cjs +0 -2
- package/dist/cjs/utils/convertIterableIteratorToAsync.cjs.map +0 -1
- package/dist/cjs/utils/convertStreamToAsyncIterableIterator.cjs +0 -2
- package/dist/cjs/utils/convertStreamToAsyncIterableIterator.cjs.map +0 -1
- package/dist/cjs/utils/convertThisAsyncIterableIteratorToArray.cjs +0 -2
- package/dist/cjs/utils/convertThisAsyncIterableIteratorToArray.cjs.map +0 -1
- package/dist/cjs/utils/escapeRegExp.cjs +0 -2
- package/dist/cjs/utils/escapeRegExp.cjs.map +0 -1
- package/dist/cjs/utils/parseMime.cjs +0 -2
- package/dist/cjs/utils/parseMime.cjs.map +0 -1
- package/dist/cjs/utils/pipeline.cjs +0 -2
- package/dist/cjs/utils/pipeline.cjs.map +0 -1
- package/dist/cjs/web-csv-toolbox.cjs +0 -2
- package/dist/cjs/web-csv-toolbox.cjs.map +0 -1
- package/dist/es/Lexer.js.map +0 -1
- package/dist/es/LexerTransformer.js.map +0 -1
- package/dist/es/RecordAssembler.js.map +0 -1
- package/dist/es/RecordAssemblerTransformer.js.map +0 -1
- package/dist/es/assertCommonOptions.js.map +0 -1
- package/dist/es/common/constants.js.map +0 -1
- package/dist/es/common/errors.js.map +0 -1
- package/dist/es/commonParseErrorHandling.js.map +0 -1
- package/dist/es/constants.js.map +0 -1
- package/dist/es/getOptionsFromResponse.js.map +0 -1
- package/dist/es/loadWASM.js.map +0 -1
- package/dist/es/loadWASM.web.js.map +0 -1
- package/dist/es/parse.js.map +0 -1
- package/dist/es/parseBinary.js.map +0 -1
- package/dist/es/parseBinaryToArraySync.js.map +0 -1
- package/dist/es/parseBinaryToIterableIterator.js.map +0 -1
- package/dist/es/parseBinaryToStream.js.map +0 -1
- package/dist/es/parseResponse.js.map +0 -1
- package/dist/es/parseResponseToStream.js.map +0 -1
- package/dist/es/parseString.js.map +0 -1
- package/dist/es/parseStringStream.js.map +0 -1
- package/dist/es/parseStringStreamToStream.js.map +0 -1
- package/dist/es/parseStringToArraySync.js.map +0 -1
- package/dist/es/parseStringToArraySyncWASM.js.map +0 -1
- package/dist/es/parseStringToIterableIterator.js.map +0 -1
- package/dist/es/parseStringToStream.js.map +0 -1
- package/dist/es/parseUint8ArrayStream.js.map +0 -1
- package/dist/es/parseUint8ArrayStreamToStream.js.map +0 -1
- package/dist/es/utils/convertBinaryToString.js.map +0 -1
- package/dist/es/utils/convertIterableIteratorToAsync.js.map +0 -1
- package/dist/es/utils/convertStreamToAsyncIterableIterator.js.map +0 -1
- package/dist/es/utils/convertThisAsyncIterableIteratorToArray.js.map +0 -1
- package/dist/es/utils/escapeRegExp.js.map +0 -1
- package/dist/es/utils/parseMime.js.map +0 -1
- package/dist/es/utils/pipeline.js.map +0 -1
- package/dist/web-csv-toolbox.umd.cjs +0 -2
- package/dist/web-csv-toolbox.umd.cjs.map +0 -1
- /package/dist/{types/Lexer.d.ts → Lexer.d.ts} +0 -0
- /package/dist/{es/Lexer.js → Lexer.js} +0 -0
- /package/dist/{types/LexerTransformer.d.ts → LexerTransformer.d.ts} +0 -0
- /package/dist/{es/LexerTransformer.js → LexerTransformer.js} +0 -0
- /package/dist/{types/RecordAssembler.d.ts → RecordAssembler.d.ts} +0 -0
- /package/dist/{es/RecordAssembler.js → RecordAssembler.js} +0 -0
- /package/dist/{types/RecordAssemblerTransformer.d.ts → RecordAssemblerTransformer.d.ts} +0 -0
- /package/dist/{es/RecordAssemblerTransformer.js → RecordAssemblerTransformer.js} +0 -0
- /package/dist/{es/_virtual → _virtual}/_web-csv-toolbox-wasm.js +0 -0
- /package/dist/{es/_virtual → _virtual}/_web-csv-toolbox-wasm.js.map +0 -0
- /package/dist/{es/_virtual → _virtual}/web_csv_toolbox_wasm_bg.wasm.js.map +0 -0
- /package/dist/{types/assertCommonOptions.d.ts → assertCommonOptions.d.ts} +0 -0
- /package/dist/{es/assertCommonOptions.js → assertCommonOptions.js} +0 -0
- /package/dist/{types/common → common}/constants.d.ts +0 -0
- /package/dist/{es/common → common}/constants.js +0 -0
- /package/dist/{types/common → common}/errors.d.ts +0 -0
- /package/dist/{es/common → common}/errors.js +0 -0
- /package/dist/{types/common → common}/types.d.ts +0 -0
- /package/dist/{types/commonParseErrorHandling.d.ts → commonParseErrorHandling.d.ts} +0 -0
- /package/dist/{es/commonParseErrorHandling.js → commonParseErrorHandling.js} +0 -0
- /package/dist/{types/constants.d.ts → constants.d.ts} +0 -0
- /package/dist/{es/constants.js → constants.js} +0 -0
- /package/dist/{types/escapeField.d.ts → escapeField.d.ts} +0 -0
- /package/dist/{types/getOptionsFromResponse.d.ts → getOptionsFromResponse.d.ts} +0 -0
- /package/dist/{es/getOptionsFromResponse.js → getOptionsFromResponse.js} +0 -0
- /package/dist/{types/loadWASM.d.ts → loadWASM.d.ts} +0 -0
- /package/dist/{es/loadWASM.js → loadWASM.js} +0 -0
- /package/dist/{types/loadWASM.web.d.ts → loadWASM.web.d.ts} +0 -0
- /package/dist/{es/loadWASM.web.js → loadWASM.web.js} +0 -0
- /package/dist/{types/parse.d.ts → parse.d.ts} +0 -0
- /package/dist/{es/parse.js → parse.js} +0 -0
- /package/dist/{types/parseBinary.d.ts → parseBinary.d.ts} +0 -0
- /package/dist/{es/parseBinary.js → parseBinary.js} +0 -0
- /package/dist/{types/parseBinaryToArraySync.d.ts → parseBinaryToArraySync.d.ts} +0 -0
- /package/dist/{es/parseBinaryToArraySync.js → parseBinaryToArraySync.js} +0 -0
- /package/dist/{types/parseBinaryToIterableIterator.d.ts → parseBinaryToIterableIterator.d.ts} +0 -0
- /package/dist/{es/parseBinaryToIterableIterator.js → parseBinaryToIterableIterator.js} +0 -0
- /package/dist/{types/parseBinaryToStream.d.ts → parseBinaryToStream.d.ts} +0 -0
- /package/dist/{es/parseBinaryToStream.js → parseBinaryToStream.js} +0 -0
- /package/dist/{types/parseResponse.d.ts → parseResponse.d.ts} +0 -0
- /package/dist/{es/parseResponse.js → parseResponse.js} +0 -0
- /package/dist/{types/parseResponseToStream.d.ts → parseResponseToStream.d.ts} +0 -0
- /package/dist/{es/parseResponseToStream.js → parseResponseToStream.js} +0 -0
- /package/dist/{types/parseString.d.ts → parseString.d.ts} +0 -0
- /package/dist/{es/parseString.js → parseString.js} +0 -0
- /package/dist/{types/parseStringStream.d.ts → parseStringStream.d.ts} +0 -0
- /package/dist/{es/parseStringStream.js → parseStringStream.js} +0 -0
- /package/dist/{types/parseStringStreamToStream.d.ts → parseStringStreamToStream.d.ts} +0 -0
- /package/dist/{es/parseStringStreamToStream.js → parseStringStreamToStream.js} +0 -0
- /package/dist/{types/parseStringToArraySync.d.ts → parseStringToArraySync.d.ts} +0 -0
- /package/dist/{es/parseStringToArraySync.js → parseStringToArraySync.js} +0 -0
- /package/dist/{types/parseStringToArraySyncWASM.d.ts → parseStringToArraySyncWASM.d.ts} +0 -0
- /package/dist/{es/parseStringToArraySyncWASM.js → parseStringToArraySyncWASM.js} +0 -0
- /package/dist/{types/parseStringToIterableIterator.d.ts → parseStringToIterableIterator.d.ts} +0 -0
- /package/dist/{es/parseStringToIterableIterator.js → parseStringToIterableIterator.js} +0 -0
- /package/dist/{types/parseStringToStream.d.ts → parseStringToStream.d.ts} +0 -0
- /package/dist/{es/parseStringToStream.js → parseStringToStream.js} +0 -0
- /package/dist/{types/parseUint8ArrayStream.d.ts → parseUint8ArrayStream.d.ts} +0 -0
- /package/dist/{es/parseUint8ArrayStream.js → parseUint8ArrayStream.js} +0 -0
- /package/dist/{types/parseUint8ArrayStreamToStream.d.ts → parseUint8ArrayStreamToStream.d.ts} +0 -0
- /package/dist/{es/parseUint8ArrayStreamToStream.js → parseUint8ArrayStreamToStream.js} +0 -0
- /package/dist/{types/utils → utils}/SingleValueReadableStream.d.ts +0 -0
- /package/dist/{types/utils → utils}/convertBinaryToString.d.ts +0 -0
- /package/dist/{es/utils → utils}/convertBinaryToString.js +0 -0
- /package/dist/{types/utils → utils}/convertIterableIteratorToAsync.d.ts +0 -0
- /package/dist/{es/utils → utils}/convertIterableIteratorToAsync.js +0 -0
- /package/dist/{types/utils → utils}/convertStreamToAsyncIterableIterator.d.ts +0 -0
- /package/dist/{es/utils → utils}/convertStreamToAsyncIterableIterator.js +0 -0
- /package/dist/{types/utils → utils}/convertThisAsyncIterableIteratorToArray.d.ts +0 -0
- /package/dist/{es/utils → utils}/convertThisAsyncIterableIteratorToArray.js +0 -0
- /package/dist/{types/utils → utils}/escapeRegExp.d.ts +0 -0
- /package/dist/{es/utils → utils}/escapeRegExp.js +0 -0
- /package/dist/{types/utils → utils}/occurrences.d.ts +0 -0
- /package/dist/{types/utils → utils}/parseMime.d.ts +0 -0
- /package/dist/{es/utils → utils}/parseMime.js +0 -0
- /package/dist/{types/utils → utils}/pipeline.d.ts +0 -0
- /package/dist/{es/utils → utils}/pipeline.js +0 -0
- /package/dist/{types/utils → utils}/types.d.ts +0 -0
- /package/dist/{types/web-csv-toolbox-wasm.d.ts → web-csv-toolbox-wasm.d.ts} +0 -0
- /package/dist/{types/web-csv-toolbox.d.ts → web-csv-toolbox.d.ts} +0 -0
- /package/dist/{es/web-csv-toolbox.js → web-csv-toolbox.js} +0 -0
- /package/dist/{es/web-csv-toolbox.js.map → web-csv-toolbox.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});exports.default="data:application/wasm;base64,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wAAQewALqCYDCX8HfgF8AkACQAJAAkACQAJAAkACQCAALQAAQQFrDgUBAgMEBQALIAEoAgAiACgCACAAKAIIIgJrQQNNBEAgACACQQRBAUEBEDUgACgCCCECCyAAIAJBBGo2AgggACgCBCACakHu6rHjBjYAAAwFCyABKAIAIQEgAC0AAUUEQCABKAIAIAEoAggiAGtBBE0EQCABIABBBUEBQQEQNSABKAIIIQALIAEgAEEFajYCCCABKAIEIABqIgBBuI/AACgAADYAACAAQQRqQbyPwAAtAAA6AABBAA8LIAEoAgAgASgCCCIAa0EDTQRAIAEgAEEEQQFBARA1IAEoAgghAAsgASAAQQRqNgIIIAEoAgQgAGpB9OTVqwY2AAAMBAsjAEEwayIFJAAgASgCACEDAkACQAJAAkACQAJAIABBCGoiACgCAEEBaw4CAQIAC0EUIQIgACkDCCILQpDOAFQEQCALIQwMBAsDQCAFQQhqIAJqIgBBBGsgCyALQpDOAIAiDEKQzgB+faciAUH//wNxQeQAbiIEQQF0LwCokUA7AAAgAEECayABIARB5ABsa0H//wNxQQF0LwCokUA7AAAgAkEEayECIAtC/8HXL1YgDCELDQALDAMLQRQhAiAAKQMIIg4gDkI/hyILhSALfSILQpDOAFQEQCALIQwMAgsDQCAFQQhqIAJqIgBBBGsgCyALQpDOAIAiDEKQzgB+faciAUH//wNxQeQAbiIEQQF0LwCokUA7AAAgAEECayABIARB5ABsa0H//wNxQQF0LwCokUA7AAAgAkEEayECIAtC/8HXL1YgDCELDQALDAELIAArAwgiEr1C////////////AINCgICAgICAgPj/AFoEQCADKAIAIAMoAggiAGtBA00EfyADIABBBEEBQQEQNSADKAIIBSAACyADKAIEakHu6rHjBjYAACADIAMoAghBBGo2AggMAwsgBUEIaiEEIwBBoAJrIgAkACASvSIMQv////////8HgyELIAxCAFMEQCAEQS06AABBASEHCwJAAn8CQAJAAkACQAJAAkACQAJAIAxCNIinQf8PcSIBRSALUHFFBEAgAUECSSALQgBSciECIAtCgICAgICAgAiEIAsgARsiC0IChiEMIAtCAYMhEQJAAkACQCABQbUIa0HMdyABGyIBQQBIBEAgAEGQAmpB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mAMoApgDKAKYAyEBIARBCGsiBA0ACwtBACECCwJAIAEvAZIDIAJLBEAgAiEGIAEhBAwBCwNAIAEoAogCIgQEQCABLwGQAyEGIAFByANBmAMgABtBCBB6IABBAWohACAEIgEvAZIDIAZNDQEMAgsLIAFByANBmAMgABtBCBB6QcyMwAAQewALIAZBAWohAgJAIABFBEAgBCEDDAELIAQgAkECdGpBmANqIQECQCAAQQdxIgJFBEAgACEFDAELIAAhBQNAIAVBAWshBSABKAIAIgNBmANqIQEgAkEBayICDQALC0EAIQIgAEEISQ0AA0AgASgCACgCmAMoApgDKAKYAygCmAMoApgDKAKYAygCmAMiA0GYA2ohASAFQQhrIgUNAAsLIAQgBkEMbGoiASgCjAIiAARAIAFBjAJqKAIEIABBARB6CwJAAkACQAJAIAQgBkEYbGoiAS0AAA4FAwMDAQIACyABQQRqEA4MAgsgASgCBCIARQ0BIAEoAgggAEEBEHoMAQsgAUEEahAuIAEoAgQiAEUNACABKAIIIABBGGxBCBB6C0EAIQEgB0EBayIHDQALDAELIAJFBEAgASEDDAELAkAgAkEHcSIARQRAIAEhAyACIQEMAQsgASEDIAIhAQNAIAFBAWshASADKAKYAyEDIABBAWsiAA0ACwsgAkEISQ0AA0AgAygCmAMoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDIQMgAUEIayIBDQALCyADKAKIAiIABH9BACEBA0AgA0HIA0GYAyABG0EIEHogAUEBayEBIAAhAyAAKAKIAiIADQALQcgDQZgDIAEbBUGYAwshASADIAFBCBB6CwuMBgEHfwJAAn8CQCABKAIgIgJFBEAgASgCACABQQA2AgBBAXFFDQMgASgCCCIDIAEoAgQiAg0CGiABKAIMIgFFDQECQCABQQdxIgRFBEAgASECDAELIAEhAgNAIAJBAWshAiADKAKYAyEDIARBAWsiBA0ACwsgAUEISQ0BA0AgAygCmAMoApgDKAKYAygCmAMoApgDKAKYAygCmAMoApgDIQMgAkEIayICDQALDAELIAEgAkEBazYCIAJAIAEoAgBBAUYEQCABKAIEIgMEQCABKAIMIQYgASgCCCECDAILIAEoAgghAwJAIAEoAgwiBUUNAAJAIAVBB3EiBEUEQCAF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QQEhAAtBACACIAMbRQRAIABBAWsiACAEQQ1qaiADQQF0LQCplUE6AAALIAFBAUEBQQAgBEENaiAAakEDIABrEBAgBEEQaiQADwsjAEEQayIDJAAgAi0AACEAQQAhAgNAIAIgA2pBD2ogAEEPcUGAl8EAai0AADoAACACQQFrIQIgACIEQQR2IQAgBEEPSw0ACyABQQFBg5XBAEECIAIgA2pBEGpBACACaxAQIANBEGokAA8LIwBBEGsiAyQAIAItAAAhAEEAIQIDQCACIANqQQ9qIABBD3FB8JbBAGotAAA6AAAgAkEBayECIAAiBEEEdiEAIARBD0sNAAsgAUEBQYOVwQBBAiACIANqQRBqQQAgAmsQECADQRBqJAALPAEBfyAAKAIAIQAgASgCCCICQYCAgBBxRQRAIAJBgICAIHFFBEAgACABECAPCyAAIAEQQQ8LIAAgARBACzMBAX8jAEEQayICJAAgAiAAKAIANgIMIAFBnJXAAEEPIAJBDGpBjJXAABA2IAJBEGokAAszAQF/IwBBEGsiAiQAIAIgACgCADYCDCABQeSUwABBDSACQQxqQdSUwAAQNiACQRBqJAALOAACQCACQYCAxABGDQAgACACIAEoAhARAABFDQBBAQ8LIANFBEBBAA8LIAAgAyAEIAEoAgwRAQALNQEBfyABKAIIIgJBgICAEHFFBEAgAkGAgIAgcUUEQCAAIAEQIA8LIAAgARBBDwsgACABEEALNQEBfyABKAIIIgJBgICAEHFFBEAgAkGAgIAgcUUEQCAAIAEQIg8LIAAgARA/DwsgACABED4LNQEBfyABKAIIIgJBgICAEHFFBEAgAkGAgIAgcUUEQCAAIAEQHg8LIAAgARA/DwsgACABED4LMAEBfyMAQRBrIgIkACACIAA2AgwgAUH4isAAQQUgAkEMakHoisAAECkgAkEQaiQACyIAAkAgACABEGxFDQAgAARAIAAgARB+IgFFDQELIAEPCwAL+gECAn8BfiMAQRBrIgIkACACQQE7AQwgAiABNgIIIAIgADYCBCMAQRBrIgEkACACQQRqIgApAgAhBCABIAA2AgwgASAENwIEIwBBEGsiACQAIAFBBGoiASgCACICKAIMIQMCQAJAAkACQCACKAIEDgIAAQILIAMNAUEBIQJBACEDDAILIAMNACACKAIAIgIoAgQh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ARB+Ig4NAkEBIAIQawALQQAgDyABQdiKwAAQUgALQQAgASANQciKwAAQUgALIAIEQCAOIAEgAvwKAAALAkAgEUUNACATIAwoAgAiDUkEQEEAIQEMCQsCQAJAAkACQCAIIA0gA0GQAWoQGCIELQAADgUDAwMBAAILIARBBGoQLiAEKAIEIgFFDQIgBCgCCCABQRhsQQgQegwCCyAEKAIEIgFFDQEgBCgCCCABQQEQegwBCyADAn8gBCgCBCIBRQRAQQAhDUEADAELIAMgATYCwAEgA0EANgK8ASADIAE2ArABIANBADYCrAEgAyAEKAIIIgE2AsQBIAMgATYCtAFBASENIAQoAgwLNgLIASADIA02ArgBIAMgDTYCqAEgA0GoAWoQDQsgBCACNgIMIAQgDjYCCCAEIAI2AgQgBEEDOgAAIA9BAUYNAUEBIRBBACEUA0AgAiEBAkACQCAAKAIsIgogACgCKCIETQRAIAogEE0NASAAKAIkIBRqQQRqKAIAIgIgAUkgACgCOCINIAJJcg0NQQAhDSACIAFrIgRBAEgNCyAAKAI0IQogBEUEQEEBIQ4MAwtBASENIARBARB+Ig4NAiAEIQ4MCwtBACAKIARB2IrAABBSAAsgECAKQcCOwAAQQwALIAQEQCAOIAEgCmogBPwKAAALIBAgEkYNASAMIBRqIgooAgAhASAKQQRqKAIAIg0gE0sgASANS3INCQJAAkACQAJAIAEgCGogDSABayADQZABahAYIgktAAAOBQMDAwECAAsCfyAJKAIEIgFFBEBBACEKQQAMAQsgAyABNgLAASADQQA2ArwBIAMgATYCsAEgA0EANgKsASADIAkoAggiATYCxAEgAyABNgK0ASAJKAIMIQpBAQshASADIAo2AsgBIAMgATYCuAEgAyABNgKoASADQagBahANDAILIAkoAgQiAUUNASAJKAIIIAFBARB6DAELIAlBBGoQLiAJKAIEIgFFDQAgCSgCCCABQRhsQQgQegsgCSAENgIMIAkgDjYCCCAJIAQ2AgQgCUEDOgAAIBRBBGohFCAPIBBBAWoiEEcNAAsMAQtB+InAABB7AAsgA0G4AWoiCiADQaABaikDADcDACADQbABaiIEIANBmAFqKQMANwMAIAMgAykDkAE3A6gBIAMoAoQBIhAgAygCfEYEQCMAQRBrIgkkACAJ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bgsNACAAQZSfwAAgARAXCw0AIABBhIHBACABEBcLDAAgACABKQIANwMACxkAIAAgAUGArsEAKAIAIgBBKCAAGxECAAALCgAgAiAAIAEQEwsNACAAQZyXwQAgARAXCwkAIABBADYCAAsL+6UBJABBgIDAAAvVFgEAAAAEAAAABAAAAAIAAABjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlL3J1c3RjLzYzODA4OTlmMzI1OTllYTI1NjE1ZDRjY2Q3MDhkMGU4ZGE2NTJiMGMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbWFwL2VudHJ5LnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0MC9zcmMvdmFsdWUvaW5kZXgucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQwL3NyYy9zZXIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY3N2LWNvcmUtMC4xLjExL3NyYy9yZWFkZXIucnMAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvY3N2LTEuMy4xL3NyYy9yZWFkZXIucnMAL3J1c3RjLzYzODA4OTlmMzI1OTllYTI1NjE1ZDRjY2Q3MDhkMGU4ZGE2NTJiMGMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAC9ydXN0Yy82MzgwODk5ZjMyNTk5ZWEyNTYxNWQ0Y2NkNzA4ZDBlOGRhNjUyYjBjL2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL2J0cmVlL25hdmlnYXRlLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAL3J1c3RjLzYzODA4OTlmMzI1OTllYTI1NjE1ZDRjY2Q3MDhkMGU4ZGE2NTJiMGMvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYnRyZWUvbm9kZS5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jc3YtMS4zLjEvc3JjL2J5dGVfcmVjb3JkLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMC9zcmMvZGxtYWxsb2MucnMAbGlicmFyeS9zdGQvc3JjL2FsbG9jLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2Nzdi1jb3JlLTAuMS4xMS9zcmMvbGliLnJzAC9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL29uY2VfY2VsbC0xLjE5LjAvc3JjL2xpYi5ycwAA3AQQAAoAAAAZAAAANAAAANwEEAAKAAAAFAAAACEAAAADAAAABAAAAAQAAAAEAAAA3AQQAAoAAAARAAAAHQAAANwEEAAKAAAADAAAACEAAABMAxAAXgAAABEBAAA4AAAATAMQAF4AAAD0AQAAFwAAAEwDEABeAAAAtQIAABMAAAAAAAAABAAAAAQAAAAFAAAARXJyb3IAAAAAAAAABAAAAAQAAAAGAAAASW8AAAAAAAAgAAAACAAAAAcAAAAAAAAABAAAAAQAAAAIAAAAVXRmOHBvc2VycgAAAAAAAAgAAAAIAAAACQAAAAAAAAAEAAAABAAAAAoAAABVbmVxdWFsTGVuZ3Roc2V4cGVjdGVkX2xlbmxlblNlZWsAAAAAAAAABAAAAAQAAAALAAAAU2VyaWFsaXplAAAAAAAAAAQAAAAEAAAADAAAAERlc2VyaWFsaXplX19Ob25leGhhdXN0aXZlAABqAhAAXwAAAFgCAAAwAAAATm9uZQAAAAAEAAAABAAAAA0AAABTb21lAAAAABAAAAAIAAAADgAAAAAAAAAEAAAABAAAAA8AAABEZXNlcmlhbGl6ZUVycm9yZmllbGRraW5kTWVzc2FnZVVuc3VwcG9ydGVkVW5leHBlY3RlZEVuZE9mUm93AAAAAAAAAAQAAAAEAAAAEAAAAEludmFsaWRVdGY4AAAAAAAEAAAABAAAABEAAABQYXJzZUJvb2wAAAAAAAAABAAAAAQAAAASAAAAUGFyc2VJbnQAAAAABAAAAAQAAAATAAAAUGFyc2VGbG9hdAAATAMQAF4AAAA0AwAAFwAAAEwDEABeAAAANwMAACIAAAAEARAAXwAAAD8IAABAAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZQQBEABfAAAADQYAABIAAAAEARAAXwAAAEwIAAAzAAAAZmFsc2VcIlxcXGJcZlxuXHJcdABqAhAAXwAAABYCAAAvAAAATAMQAF4AAAD/AQAAJAAAAEwDEABeAAAA9AEAABcAAABMAxAAXgAAACMCAAAZAAAATAMQAF4AAAC1AgAAEwAAAMQBEABZAAAAXAcAADIAAABhc3NlcnRpb24gZmFpbGVkOiBsaW5lID4gMAAATAMQAF4AAAB4AgAACQAAAMQBEABZAAAAagYAAB4AAADEARAAWQAAAGkGAAAgAAAAxAEQAFkAAAAxBQAAMwAAAEwDEABeAAAANAMAABcAAABMAxAAXgAAADcDAAAiAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTkAAAAABAAAAAQAAAAUAAAAAAAAAAQAAAAEAAAAFQAAAFV0ZjhFcnJvcmZpZWxkdmFsaWRfdXBfdG8AAABqAhAAXwAAAMYAAAAnAAAAAAAAAAgAAAAIAAAAFgAAAAAAAAAEAAAABAAAAAoAAABQb3NpdGlvbmJ5dGVsaW5lcmVjb3JkAAAAAAAABAAAAAQAAAAXAAAAZXJyb3JfbGVuTm9uZQAAAAAAAAAEAAAABAAAABgAAABTb21lRW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAAZAAAAUGFyc2VJbnRFcnJvcmtpbmRQYXJzZUJvb2xFcnJvckludmFsaWQAAAAAAAAEAAAABAAAABoAAABQYXJzZUZsb2F0RXJyb3IABQAAAAwAAAALAAAACwAAAAQAAAAoChAALQoQADkKEABEChAATwoQAExhenkgaW5zdGFuY2UgaGFzIHByZXZpb3VzbHkgYmVlbiBwb2lzb25lZAAA1AoQACoAAACJBBAAXQAAAAgDAAAZAAAAcmVlbnRyYW50IGluaXQAABgLEAAOAAAAiQQQAF0AAAB6AgAADQAAAB4AAAAMAAAABAAAAB8AAAAgAAAAIQBB4JbAAAvvCAEAAAAiAAAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQAeAhAASwAAAPgKAAAOAAAARXJyb3JFcnJvcigsIGxpbmU6ICwgY29sdW1uOiApAAC1CxAABgAAALsLEAAIAAAAwwsQAAoAAADNCxAAAQAAAEVPRiB3aGlsZSBwYXJzaW5nIGEgbGlzdEVPRiB3aGlsZSBwYXJzaW5nIGFuIG9iamVjdEVPRiB3aGlsZSBwYXJzaW5nIGEgc3RyaW5nRU9GIHdoaWxlIHBhcnNpbmcgYSB2YWx1ZWV4cGVjdGVkIGA6YGV4cGVjdGVkIGAsYCBvciBgXWBleHBlY3RlZCBgLGAgb3IgYH1gZXhwZWN0ZWQgaWRlbnRleHBlY3RlZCB2YWx1ZWV4cGVjdGVkIGAiYGludmFsaWQgZXNjYXBlaW52YWxpZCBudW1iZXJudW1iZXIgb3V0IG9mIHJhbmdlaW52YWxpZCB1bmljb2RlIGNvZGUgcG9pbnRjb250cm9sIGNoYXJhY3RlciAoXHUwMDAwLVx1MDAxRikgZm91bmQgd2hpbGUgcGFyc2luZyBhIHN0cmluZ2tleSBtdXN0IGJlIGEgc3RyaW5naW52YWxpZCB2YWx1ZTogZXhwZWN0ZWQga2V5IHRvIGJlIGEgbnVtYmVyIGluIHF1b3Rlc2Zsb2F0IGtleSBtdXN0IGJlIGZpbml0ZSAoZ290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AAA7AAAAAAEHAgMEBQYICQAAZAEQAF8AAAA1AwAAEgAAABAHR8m/fI3MZPiNZRTst8FtXcvWLFDrY3hBpldxG4u5AQAAAAAAAABPcwAAAAAAAAQAAAAEAAAALAAAAGNvZGUAAAAAAQAAAAEAAAAtAAAAa2luZC4AAAAMAAAABAAAAC8AAABtZXNzYWdlS2luZEVycm9yAAAAAAgAAAAEAAAAMAAAAAAAAAAEAAAABAAAADEAAABDdXN0b21lcnJvcmVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yb3BlcmF0aW9uIHN1Y2Nlc3NmdWxtZW1vcnkgYWxsb2NhdGlvbiBvZiAgYnl0ZXMgZmFpbGVkAABAQBAAFQAAAFVAEAANAAAAEwQQABgAAABkAQAACQAAAC4AAAAMAAAABAAAADIAAAAzAAAANAAAAAAAAAAIAAAABAAAADUAAAA2AAAANwAAADgAAAA5AAAAEAAAAAQAAAA6AAAAOwAAADwAAAA9AAAAV291bGRCbG9jayAob3MgZXJyb3IgKQAAAQAAAAAAAADeQBAACwAAAOlAEAABAAAATm90Rm91bmRQZXJtaXNzaW9uRGVuaWVkQ29ubmVjdGlvblJlZnVzZWRDb25uZWN0aW9uUmVzZXRIb3N0VW5yZWFjaGFibGVOZXR3b3JrVW5yZWFjaGFibGVDb25uZWN0aW9uQWJvcnRlZE5vdENvbm5lY3RlZEFkZHJJblVzZUFkZHJOb3RBdmFpbGFibGVOZXR3b3JrRG93bkJyb2tlblBpcGVBbHJlYWR5RXhpc3RzTm90QURpcmVjdG9yeUlzQURpcmVjdG9yeURpcmVjdG9yeU5vdEVtcHR5UmVhZE9ubHlGaWxlc3lzdGVtRmlsZXN5c3RlbUxvb3BTdGFsZU5ldHdvcmtGaWxlSGFuZGxlSW52YWxpZElucHV0SW52YWxpZERhdGFUaW1lZE91dFdyaXRlWmVyb1N0b3JhZ2VGdWxsTm90U2Vla2FibGVRdW90YUV4Y2VlZGVkRmlsZVRvb0xhcmdlUmVzb3VyY2VCdXN5RXhlY3V0YWJsZUZpbGVCdXN5RGVhZGxvY2tDcm9zc2VzRGV2aWNlc1Rvb01hbnlMaW5rc0ludmFsaWRGaWxlbmFtZUFyZ3VtZW50TGlzdFRvb0xvbmdJbnRlcnJ1cHRlZFVuc3VwcG9ydGVkVW5leHBlY3RlZEVvZk91dE9mTWVtb3J5SW5Qcm9ncmVzc090aGVyVW5jYXRlZ29yaXplZAAAAAAIAAAABAAAAD4AAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAADoAxAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6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";
|
|
2
|
-
//# sourceMappingURL=web_csv_toolbox_wasm_bg.wasm.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web_csv_toolbox_wasm_bg.wasm.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./constants.cjs");function t(t,r){if("string"!=typeof t)throw new TypeError(`${r} must be a string`);switch(!0){case 0===t.length:throw new RangeError(`${r} must not be empty`);case t.length>1:throw new RangeError(`${r} must be a single character`);case t===e.LF:case t===e.CR:throw new RangeError(`${r} must not include CR or LF`)}}exports.assertCommonOptions=function(e){for(const r of["delimiter","quotation"])t(e[r],r);if(e.delimiter===e.quotation)throw new RangeError("delimiter must not be the same as quotation, use different characters")};
|
|
2
|
-
//# sourceMappingURL=assertCommonOptions.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assertCommonOptions.cjs","sources":["../../src/assertCommonOptions.ts"],"sourcesContent":["import type { CommonOptions } from \"./common/types.ts\";\nimport { CR, LF } from \"./constants.ts\";\n\n/**\n * Asserts that the provided value is a string and satisfies certain conditions.\n * @param value - The value to be checked.\n * @param name - The name of the option.\n * @throws {RangeError} If the value is empty, longer than 1 byte, or includes CR or LF.\n * @throws {TypeError} If the value is not a string.\n */\nfunction assertOptionValue(\n value: string,\n name: string,\n): asserts value is string {\n if (typeof value === \"string\") {\n switch (true) {\n case value.length === 0:\n throw new RangeError(`${name} must not be empty`);\n case value.length > 1:\n throw new RangeError(`${name} must be a single character`);\n case value === LF:\n case value === CR:\n throw new RangeError(`${name} must not include CR or LF`);\n default:\n break;\n }\n } else {\n throw new TypeError(`${name} must be a string`);\n }\n}\n\n/**\n * Asserts that the provided options object contains all the required properties.\n * Throws an error if any required property is missing\n * or if the delimiter and quotation length is not 1 byte character,\n * or if the delimiter is the same as the quotation.\n *\n * @example\n *\n * ```ts\n * assertCommonOptions({\n * quotation: '\"',\n * delimiter: ',',\n * });\n * ```\n *\n * @param options - The options object to be validated.\n * @throws {RangeError} If any required property is missing or if the delimiter is the same as the quotation.\n * @throws {TypeError} If any required property is not a string.\n */\nexport function assertCommonOptions<\n Delimiter extends string,\n Quotation extends string,\n>(\n options: Required<CommonOptions<Delimiter, Quotation>>,\n): asserts options is Required<CommonOptions<Delimiter, Quotation>> {\n for (const name of [\"delimiter\", \"quotation\"] as const) {\n assertOptionValue(options[name], name);\n }\n // @ts-ignore: TS doesn't understand that the values are strings\n if (options.delimiter === options.quotation) {\n throw new RangeError(\n \"delimiter must not be the same as quotation, use different characters\",\n );\n }\n}\n"],"names":["assertOptionValue","value","name","TypeError","length","RangeError","LF","CR","options","delimiter","quotation"],"mappings":"mHAUA,SAASA,EACPC,EACAC,GAEI,GAAiB,iBAAVD,EAaT,MAAM,IAAIE,UAAU,GAAGD,sBAZvB,QAAQ,GACN,KAAsB,IAAjBD,EAAMG,OACT,MAAM,IAAIC,WAAW,GAAGH,uBAC1B,KAAKD,EAAMG,OAAS,EAClB,MAAM,IAAIC,WAAW,GAAGH,gCAC1B,KAAKD,IAAUK,EAAAA,GACf,KAAKL,IAAUM,EAAAA,GACb,MAAM,IAAIF,WAAW,GAAGH,+BAOhC,6BAqBO,SAILM,GAEA,IAAA,MAAWN,IAAQ,CAAC,YAAa,aACbF,EAAAQ,EAAQN,GAAOA,GAG/B,GAAAM,EAAQC,YAAcD,EAAQE,UAChC,MAAM,IAAIL,WACR,wEAGN"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=Symbol.for("web-csv-toolbox.FieldDelimiter"),o=Symbol.for("web-csv-toolbox.RecordDelimiter"),t=Symbol.for("web-csv-toolbox.Field");exports.Field=t,exports.FieldDelimiter=e,exports.RecordDelimiter=o;
|
|
2
|
-
//# sourceMappingURL=constants.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","sources":["../../../src/common/constants.ts"],"sourcesContent":["/**\n * FiledDelimiter is a symbol for field delimiter of CSV.\n * @category Constants\n */\nexport const FieldDelimiter = Symbol.for(\"web-csv-toolbox.FieldDelimiter\");\n/**\n * RecordDelimiter is a symbol for record delimiter of CSV.\n * @category Constants\n */\nexport const RecordDelimiter = Symbol.for(\"web-csv-toolbox.RecordDelimiter\");\n/**\n * Field is a symbol for field of CSV.\n * @category Constants\n */\nexport const Field = Symbol.for(\"web-csv-toolbox.Field\");\n"],"names":["FieldDelimiter","Symbol","for","RecordDelimiter","Field"],"mappings":"gFAIa,MAAAA,EAAiBC,OAAOC,IAAI,kCAK5BC,EAAkBF,OAAOC,IAAI,mCAK7BE,EAAQH,OAAOC,IAAI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.cjs","sources":["../../../src/common/errors.ts"],"sourcesContent":["import type { Position } from \"./types.js\";\n\n/**\n * Options for creating a parse error.\n */\nexport interface ParseErrorOptions extends ErrorOptions {\n /**\n * The position where the error occurred.\n */\n position?: Position;\n}\n\n/**\n * Error class for parse errors.\n *\n * @remarks\n * This error is thrown when a parsing error occurs.\n * {@link ParseError} is a subclass of {@link !SyntaxError}.\n *\n * This is in reference to the specification\n * that the error thrown when a parse error occurs in the {@link !JSON.parse} function is {@link !SyntaxError}.\n */\nexport class ParseError extends SyntaxError {\n /**\n * The position where the error occurred.\n */\n public position?: Position;\n\n constructor(message?: string, options?: ParseErrorOptions) {\n super(message, { cause: options?.cause });\n this.name = \"ParseError\";\n this.position = options?.position;\n }\n}\n"],"names":["ParseError","SyntaxError","position","constructor","message","options","super","cause","this","name"],"mappings":"gFAsBO,MAAMA,UAAmBC,YAIvBC,SAEP,WAAAC,CAAYC,EAAkBC,GAC5BC,MAAMF,EAAS,CAAEG,MAAOF,GAASE,QACjCC,KAAKC,KAAO,aACZD,KAAKN,SAAWG,GAASH,QAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./common/errors.cjs");exports.commonParseErrorHandling=function(e){if(e instanceof r.ParseError||e instanceof RangeError||e instanceof TypeError)throw e;throw new r.ParseError("An error occurred while parsing the CSV data.",{cause:e})};
|
|
2
|
-
//# sourceMappingURL=commonParseErrorHandling.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commonParseErrorHandling.cjs","sources":["../../src/commonParseErrorHandling.ts"],"sourcesContent":["import { ParseError } from \"./common/errors\";\n\n/**\n * Common error handling for parsing CSV data.\n *\n * @param error - The error to handle.\n * @throws {ParseError} When an error occurs while parsing the CSV data.\n * @throws {RangeError} When an invalid option is provided.\n * @throws {TypeError} When an invalid option is provided.\n */\n\nexport function commonParseErrorHandling(error: unknown): never {\n if (\n error instanceof ParseError ||\n error instanceof RangeError ||\n error instanceof TypeError\n ) {\n throw error;\n }\n throw new ParseError(\"An error occurred while parsing the CSV data.\", {\n cause: error,\n });\n}\n"],"names":["error","ParseError","RangeError","TypeError","cause"],"mappings":"wJAWO,SAAkCA,GACvC,GACEA,aAAiBC,EAAAA,YACjBD,aAAiBE,YACjBF,aAAiBG,UAEX,MAAAH,EAEF,MAAA,IAAIC,aAAW,gDAAiD,CACpEG,MAAOJ,GAEX"}
|
package/dist/cjs/constants.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","sources":["../../src/constants.ts"],"sourcesContent":["export const CR = \"\\r\";\nexport type CR = typeof CR;\n\nexport const CRLF = \"\\r\\n\";\nexport type CRLF = typeof CRLF;\n\nexport const LF = \"\\n\";\nexport type LF = typeof LF;\n\nexport type Newline = CRLF | CR | LF;\n\n/**\n * COMMA is a symbol for comma(,).\n */\nexport const COMMA = \",\";\n\n/**\n * DOUBLE_QUOTE is a symbol for double quote(\").\n */\nexport const DOUBLE_QUOTE = '\"';\n\nexport const DEFAULT_DELIMITER = COMMA;\nexport type DEFAULT_DELIMITER = typeof DEFAULT_DELIMITER;\n\nexport const DEFAULT_QUOTATION = DOUBLE_QUOTE;\nexport type DEFAULT_QUOTATION = typeof DEFAULT_QUOTATION;\n"],"names":[],"mappings":"8FAcqB,eAdH,kBAGE,iCAWC,8BAKO,yBAAA,eAbV"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./utils/parseMime.cjs");exports.getOptionsFromResponse=function(t,r={}){const{headers:o}=t,s=o.get("content-type")??"text/csv",n=e.parseMime(s);if("text/csv"!==n.type)throw new RangeError(`Invalid mime type: "${s}"`);return{decomposition:o.get("content-encoding")??void 0,charset:n.parameters.charset??"utf-8",...r}};
|
|
2
|
-
//# sourceMappingURL=getOptionsFromResponse.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getOptionsFromResponse.cjs","sources":["../../src/getOptionsFromResponse.ts"],"sourcesContent":["import type { ParseBinaryOptions } from \"./common/types.ts\";\nimport { parseMime } from \"./utils/parseMime.ts\";\n\n/**\n * Extracts the options from the response object.\n *\n * @param response - The response object from which to extract the options.\n * @param options - The options to merge with the extracted options.\n * @returns The options extracted from the response.\n * @throws {RangeError} - The content type is not supported.\n */\nexport function getOptionsFromResponse<Header extends ReadonlyArray<string>>(\n response: Response,\n options: ParseBinaryOptions<Header> = {},\n): ParseBinaryOptions<Header> {\n const { headers } = response;\n const contentType = headers.get(\"content-type\") ?? \"text/csv\";\n const mime = parseMime(contentType);\n if (mime.type !== \"text/csv\") {\n throw new RangeError(`Invalid mime type: \"${contentType}\"`);\n }\n const decomposition =\n (headers.get(\"content-encoding\") as CompressionFormat) ?? undefined;\n const charset = mime.parameters.charset ?? \"utf-8\";\n // TODO: Support header=present and header=absent\n // const header = mime.parameters.header ?? \"present\";\n return {\n decomposition,\n charset,\n ...options,\n };\n}\n"],"names":["response","options","headers","contentType","get","mime","parseMime","type","RangeError","decomposition","charset","parameters"],"mappings":"wJAWO,SACLA,EACAC,EAAsC,IAEhC,MAAAC,QAAEA,GAAYF,EACdG,EAAcD,EAAQE,IAAI,iBAAmB,WAC7CC,EAAOC,YAAUH,GACnB,GAAc,aAAdE,EAAKE,KACP,MAAM,IAAIC,WAAW,uBAAuBL,MAOvC,MAAA,CACLM,cALCP,EAAQE,IAAI,0BAA6C,EAM1DM,QALcL,EAAKM,WAAWD,SAAW,WAMtCT,EAEP"}
|
package/dist/cjs/loadWASM.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./_virtual/_web-csv-toolbox-wasm.cjs"),t=require("./_virtual/web_csv_toolbox_wasm_bg.wasm.cjs");exports.loadWASM=async function(o){await e.default(o??t.default)};
|
|
2
|
-
//# sourceMappingURL=loadWASM.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadWASM.cjs","sources":["../../src/loadWASM.ts"],"sourcesContent":["import init, { type InitInput } from \"web-csv-toolbox-wasm\";\n\nimport dataURL from \"web-csv-toolbox-wasm/web_csv_toolbox_wasm_bg.wasm\";\n\n/**\n * Load WASM module.\n *\n * This must be called before calling WebAssembly functions.\n *\n * @example\n *\n * ```ts\n * import { loadWASM, parseStringWASM } from \"web-csv-toolbox\";\n *\n * await loadWASM();\n *\n * const csv = \"a,b,c\\n1,2,3\";\n * const parsed = parseStringWASM(csv);\n * ```\n */\nexport async function loadWASM(input?: InitInput | Promise<InitInput>) {\n await init(input ?? dataURL);\n}\n"],"names":["async","input","init","default","dataURL"],"mappings":"kNAoBAA,eAA+BC,SACvBC,EAAAC,QAAKF,GAASG,UACtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadWASM.web.cjs","sources":["../../src/loadWASM.web.ts"],"sourcesContent":["import init, { type InitInput } from \"web-csv-toolbox-wasm\";\n\n/**\n * Load WASM module.\n *\n * This must be called before calling WebAssembly functions.\n *\n * @example\n *\n * ```ts\n * import { loadWASM, parseStringWASM } from \"web-csv-toolbox\";\n *\n * await loadWASM();\n *\n * const csv = \"a,b,c\\n1,2,3\";\n * const parsed = parseStringWASM(csv);\n * ```\n */\nexport async function loadWASM(input?: InitInput | Promise<InitInput>) {\n await init(input);\n}\n"],"names":["async","input","init"],"mappings":"yJAkBAA,eAA+BC,SACvBC,EAAAA,QAAKD,EACb"}
|
package/dist/cjs/parse.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./parseBinary.cjs"),r=require("./parseResponse.cjs"),a=require("./parseString.cjs"),t=require("./parseStringStream.cjs"),s=require("./parseUint8ArrayStream.cjs"),i=require("./utils/convertThisAsyncIterableIteratorToArray.cjs");async function*n(i,n){if("string"==typeof i)yield*a.parseString(i,n);else if(i instanceof Uint8Array||i instanceof ArrayBuffer)yield*e.parseBinary(i,n);else if(i instanceof ReadableStream){const[e,r]=i.tee(),a=e.getReader(),{value:o}=await a.read();a.releaseLock(),"string"==typeof o?yield*t.parseStringStream(r,n):o instanceof Uint8Array&&(yield*s.parseUint8ArrayStream(r,n))}else i instanceof Response&&(yield*r.parseResponse(i,n))}Object.defineProperties(n,{toArray:{enumerable:!0,writable:!1,value:i.convertThisAsyncIterableIteratorToArray}}),exports.parse=n;
|
|
2
|
-
//# sourceMappingURL=parse.cjs.map
|
package/dist/cjs/parse.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.cjs","sources":["../../src/parse.ts"],"sourcesContent":["import type {\n CSV,\n CSVBinary,\n CSVRecord,\n CSVString,\n ParseBinaryOptions,\n ParseOptions,\n} from \"./common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport { parseBinary } from \"./parseBinary.ts\";\nimport { parseResponse } from \"./parseResponse.ts\";\nimport { parseString } from \"./parseString.ts\";\nimport { parseStringStream } from \"./parseStringStream.ts\";\nimport { parseUint8ArrayStream } from \"./parseUint8ArrayStream.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\n/**\n * Parse CSV to records.\n *\n * {@link !String}, {@link !ReadableStream}<string | {@link !Uint8Array}> and {@link !Response} are supported.\n *\n *\n * @typeParam Header Header type like `['name', 'age']`.\n *\n * @param csv CSV string to parse.\n * @param options Parsing options for CSV string parsing.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parse.toArray} function.\n * @category High-level API\n *\n * @remarks\n * {@link parseString}, {@link parseBinary}, {@link parseUint8ArrayStream},\n * {@link parseStringStream} and {@link parseResponse} are used internally.\n *\n * If you known the type of the CSV, it performs better to use them directly.\n *\n * | If you want to parse a... | Use... | Options... |\n * | -------------------------------------------- | ----------------------------- | -------------------------- |\n * | {@link !String} | {@link parseString} | {@link ParseOptions} |\n * | {@link !ReadableStream}<{@link !String}> | {@link parseStringStream} | {@link ParseOptions} |\n * | {@link !Uint8Array} \\| {@link !ArrayBuffer} | {@link parseBinary} | {@link ParseBinaryOptions} |\n * | {@link !ReadableStream}<{@link !Uint8Array}> | {@link parseUint8ArrayStream} | {@link ParseBinaryOptions} |\n * | {@link !Response} | {@link parseResponse} | {@link ParseBinaryOptions} |\n *\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for await (const record of parse(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n * @example Parsing CSV files from streams\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * }\n * });\n *\n * for await (const record of parse(stream)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n *\n * @example Parsing CSV files with headers\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * // This CSV has no header.\n * const csv = `Alice,42\n * Bob,69`;\n *\n * for await (const record of parse(csv, { header: ['name', 'age'] })) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n * @example Parsing CSV files with different delimiters characters\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name\\tage\n * Alice\\t42\n * Bob\\t69`;\n *\n * for await (const record of parse(csv, { delimiter: '\\t' })) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport function parse<const CSVSource extends CSVString>(\n csv: CSVSource,\n): AsyncIterableIterator<CSVRecord<PickCSVHeader<CSVSource>>>;\nexport function parse<const Header extends ReadonlyArray<string>>(\n csv: CSVString,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parse<const Header extends ReadonlyArray<string>>(\n csv: CSVString,\n options: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parse<\n const CSVSource extends CSVString,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>>;\n/**\n * Parse CSV binary to records.\n *\n * @param csv CSV binary to parse.\n * @param options Parsing options for CSV binary parsing.\n *\n * @example Parsing CSV files from responses\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * // This CSV data is not gzipped and encoded in utf-8.\n * const response = await fetch('https://example.com/data.csv');\n *\n * for await (const record of parse(response)) {\n * // ...\n * }\n * ```\n *\n * @example Parsing CSV files with options spcialized for binary\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * // This CSV data is gzipped and encoded in shift-jis and has BOM.\n * const response = await fetch('https://example.com/data.csv.gz');\n *\n * for await (const record of parse(response, {\n * charset: 'shift-jis',\n * ignoreBOM: true,\n * decomposition: 'gzip',\n * })) {\n * // ...\n * }\n * ```\n */\nexport function parse<const Header extends ReadonlyArray<string>>(\n csv: CSVBinary,\n options?: ParseBinaryOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport async function* parse<const Header extends ReadonlyArray<string>>(\n csv: CSV,\n options?: ParseBinaryOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n if (typeof csv === \"string\") {\n yield* parseString(csv, options);\n } else if (csv instanceof Uint8Array || csv instanceof ArrayBuffer) {\n yield* parseBinary(csv, options);\n } else if (csv instanceof ReadableStream) {\n const [branch1, branch2] = csv.tee();\n const reader1 = branch1.getReader();\n const { value: firstChunk } = await reader1.read();\n reader1.releaseLock();\n if (typeof firstChunk === \"string\") {\n yield* parseStringStream(branch2 as ReadableStream<string>, options);\n } else if (firstChunk instanceof Uint8Array) {\n yield* parseUint8ArrayStream(\n branch2 as ReadableStream<Uint8Array>,\n options,\n );\n }\n } else if (csv instanceof Response) {\n yield* parseResponse(csv, options);\n }\n}\n\nexport declare namespace parse {\n /**\n * Parse CSV string to array of records,\n * ideal for smaller data sets.\n *\n * @example Parse a CSV as array of records\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const records = await parse.toArray(csv);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n csv: CSVString,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV string to array of records,\n * ideal for smaller data sets.\n *\n * @example Parse a CSV as array of records\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const response = await fetch('https://example.com/data.csv');\n *\n * const records = await parse.toArray(response);\n * console.log(records);\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n csv: CSVBinary,\n options?: ParseBinaryOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n}\n\nObject.defineProperties(parse, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n});\n"],"names":["async","parse","csv","options","parseString","Uint8Array","ArrayBuffer","parseBinary","ReadableStream","branch1","branch2","tee","reader1","getReader","value","firstChunk","read","releaseLock","parseStringStream","parseUint8ArrayStream","Response","parseResponse","Object","defineProperties","toArray","enumerable","writable","internal.convertThisAsyncIterableIteratorToArray"],"mappings":"oUAyLuBA,eAAAC,EACrBC,EACAC,GAEI,GAAe,iBAARD,QACFE,EAAAA,YAAYF,EAAKC,QACf,GAAAD,aAAeG,YAAcH,aAAeI,kBAC9CC,EAAAA,YAAYL,EAAKC,QAC1B,GAAWD,aAAeM,eAAgB,CACxC,MAAOC,EAASC,GAAWR,EAAIS,MACzBC,EAAUH,EAAQI,aAChBC,MAAOC,SAAqBH,EAAQI,OAC5CJ,EAAQK,cACkB,iBAAfF,QACFG,EAAAA,kBAAkBR,EAAmCP,GACnDY,aAAsBV,mBACxBc,EAAAA,sBACLT,EACAP,GAEJ,MACSD,aAAekB,iBACjBC,EAAAA,cAAcnB,EAAKC,GAE9B,CA+CAmB,OAAOC,iBAAiBtB,EAAO,CAC7BuB,QAAS,CACPC,YAAY,EACZC,UAAU,EACVZ,MAAOa,EAAAA"}
|
package/dist/cjs/parseBinary.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./parseBinaryToArraySync.cjs"),e=require("./parseBinaryToIterableIterator.cjs"),a=require("./parseBinaryToStream.cjs"),t=require("./utils/convertIterableIteratorToAsync.cjs"),o=require("./utils/convertThisAsyncIterableIteratorToArray.cjs");function n(r,a){const o=e.parseBinaryToIterableIterator(r,a);return t.convertIterableIteratorToAsync(o)}Object.defineProperties(n,{toArray:{enumerable:!0,writable:!1,value:o.convertThisAsyncIterableIteratorToArray},toArraySync:{enumerable:!0,writable:!1,value:r.parseBinaryToArraySync},toIterableIterator:{enumerable:!0,writable:!1,value:e.parseBinaryToIterableIterator},toStream:{enumerable:!0,writable:!1,value:a.parseBinaryToStream}}),exports.parseBinary=n;
|
|
2
|
-
//# sourceMappingURL=parseBinary.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseBinary.cjs","sources":["../../src/parseBinary.ts"],"sourcesContent":["import type { CSVRecord, ParseBinaryOptions } from \"./common/types.ts\";\nimport { parseBinaryToArraySync } from \"./parseBinaryToArraySync.ts\";\nimport { parseBinaryToIterableIterator } from \"./parseBinaryToIterableIterator.ts\";\nimport { parseBinaryToStream } from \"./parseBinaryToStream.ts\";\nimport { convertIterableIteratorToAsync } from \"./utils/convertIterableIteratorToAsync.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\n\n/**\n * Parse a binary from an {@link !Uint8Array}.\n *\n * @category Middle-level API\n *\n * @param bytes CSV bytes to parse.\n * @param options Parsing options\n * @returns Async iterable iterator of records.\n *\n * @example Parsing CSV binary\n *\n * ```ts\n * import { parseUint8Array } from 'web-csv-toolbox';\n *\n * const csv = Uint8Array.from([\n * // ...\n * ]);\n *\n * for await (const record of parseUint8Array(csv)) {\n * console.log(record);\n * }\n * ```\n */\nexport function parseBinary<Header extends ReadonlyArray<string>>(\n bytes: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n const iterator = parseBinaryToIterableIterator(bytes, options);\n return convertIterableIteratorToAsync(iterator);\n}\n\nexport declare namespace parseBinary {\n /**\n * Parse a binary from an {@link !Uint8Array} to an array of records.\n *\n * @param bytes CSV bytes to parse.\n * @param options Parsing options\n * @returns Array of records\n *\n * @example\n * ```ts\n * import { parseUint8Array } from 'web-csv-toolbox';\n *\n * const csv = Uint8Array.from([\n * // ...\n * ]);\n *\n * const records = await parseUint8Array.toArray(csv);\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n bytes: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse a binary from an {@link !Uint8Array} to an array of records.\n *\n * @param bytes CSV bytes to parse.\n * @param options Parsing options\n * @returns Array of records\n * @example\n *\n * ```ts\n * import { parseUint8Array } from 'web-csv-toolbox';\n *\n * const csv = Uint8Array.from([\n * // ...\n * ]);\n *\n * const records = parseUint8Array.toArraySync(csv);\n * ```\n */\n export function toArraySync<Header extends ReadonlyArray<string>>(\n bytes: Uint8Array | ArrayBuffer,\n options?: ParseBinaryOptions<Header>,\n ): CSVRecord<Header>[];\n\n /**\n * Parse a binary from an {@link !Uint8Array} to an iterable iterator of records.\n *\n * @param bytes CSV bytes to parse.\n * @param options Parsing options\n * @returns Async iterable iterator of records.\n * @example\n * ```ts\n * import { parseUint8Array } from 'web-csv-toolbox';\n *\n * const csv = Uint8Array.from([\n * // ...\n * ]);\n *\n * for (const record of parseUint8Array.toIterableIterator(csv)) {\n * console.log(record);\n * }\n * ```\n */\n export function toIterableIterator<Header extends ReadonlyArray<string>>(\n bytes: Uint8Array,\n options?: ParseBinaryOptions<Header>,\n ): IterableIterator<CSVRecord<Header>>;\n\n /**\n * Parse a binary from an {@link !Uint8Array} to a stream of records.\n *\n * @param bytes CSV bytes to parse.\n * @param options Parsing options\n * @returns Stream of records.\n *\n * @example\n *\n * ```ts\n * import { parseUint8Array } from 'web-csv-toolbox';\n *\n * const csv = Uint8Array.from([\n * // ...\n * ]);\n *\n * const stream = parseUint8Array.toStream(csv);\n *\n * await stream.pipeTo(\n * new WritableStream({\n * write(record) {\n * console.log(record);\n * },\n * }),\n * );\n * ```\n */\n export function toStream<Header extends ReadonlyArray<string>>(\n bytes: Uint8Array,\n options?: ParseBinaryOptions<Header>,\n ): ReadableStream<CSVRecord<Header>>;\n}\n\nObject.defineProperties(parseBinary, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n toArraySync: {\n enumerable: true,\n writable: false,\n value: parseBinaryToArraySync,\n },\n toIterableIterator: {\n enumerable: true,\n writable: false,\n value: parseBinaryToIterableIterator,\n },\n toStream: {\n enumerable: true,\n writable: false,\n value: parseBinaryToStream,\n },\n});\n"],"names":["parseBinary","bytes","options","iterator","parseBinaryToIterableIterator","convertIterableIteratorToAsync","Object","defineProperties","toArray","enumerable","writable","value","internal.convertThisAsyncIterableIteratorToArray","toArraySync","parseBinaryToArraySync","toIterableIterator","toStream","parseBinaryToStream"],"mappings":"iVA8BgB,SAAAA,EACdC,EACAC,GAEM,MAAAC,EAAWC,EAAAA,8BAA8BH,EAAOC,GACtD,OAAOG,EAAAA,+BAA+BF,EACxC,CAyGAG,OAAOC,iBAAiBP,EAAa,CACnCQ,QAAS,CACPC,YAAY,EACZC,UAAU,EACVC,MAAOC,EAAAA,yCAETC,YAAa,CACXJ,YAAY,EACZC,UAAU,EACVC,MAAOG,EAAAA,wBAETC,mBAAoB,CAClBN,YAAY,EACZC,UAAU,EACVC,MAAOP,EAAAA,+BAETY,SAAU,CACRP,YAAY,EACZC,UAAU,EACVC,MAAOM,EAAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./commonParseErrorHandling.cjs"),n=require("./parseStringToArraySync.cjs"),e=require("./utils/convertBinaryToString.cjs");exports.parseBinaryToArraySync=function(o,t={}){try{const r=e.convertBinaryToString(o,t);return n.parseStringToArraySync(r,t)}catch(c){r.commonParseErrorHandling(c)}};
|
|
2
|
-
//# sourceMappingURL=parseBinaryToArraySync.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseBinaryToArraySync.cjs","sources":["../../src/parseBinaryToArraySync.ts"],"sourcesContent":["import type { CSVRecord, ParseBinaryOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport { parseStringToArraySync } from \"./parseStringToArraySync.ts\";\nimport { convertBinaryToString } from \"./utils/convertBinaryToString.ts\";\n\nexport function parseBinaryToArraySync<Header extends ReadonlyArray<string>>(\n binary: Uint8Array | ArrayBuffer,\n options: ParseBinaryOptions<Header> = {},\n): CSVRecord<Header>[] {\n try {\n const csv = convertBinaryToString(binary, options);\n return parseStringToArraySync(csv, options);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\n"],"names":["binary","options","csv","convertBinaryToString","parseStringToArraySync","error","commonParseErrorHandling"],"mappings":"0PAKO,SACLA,EACAC,EAAsC,IAElC,IACI,MAAAC,EAAMC,EAAAA,sBAAsBH,EAAQC,GACnC,OAAAG,EAAAA,uBAAuBF,EAAKD,SAC5BI,GACPC,EAAAA,yBAAyBD,EAAK,CAElC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./commonParseErrorHandling.cjs"),e=require("./parseStringToIterableIterator.cjs"),t=require("./utils/convertBinaryToString.cjs");exports.parseBinaryToIterableIterator=function(o,n={}){try{const r=t.convertBinaryToString(o,n);return e.parseStringToIterableIterator(r,n)}catch(a){r.commonParseErrorHandling(a)}};
|
|
2
|
-
//# sourceMappingURL=parseBinaryToIterableIterator.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseBinaryToIterableIterator.cjs","sources":["../../src/parseBinaryToIterableIterator.ts"],"sourcesContent":["import type { CSVRecord, ParseBinaryOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport { parseStringToIterableIterator } from \"./parseStringToIterableIterator.ts\";\nimport { convertBinaryToString } from \"./utils/convertBinaryToString.ts\";\n\n/**\n * Parses the given binary data into an iterable iterator of CSV records.\n *\n * @param binary - The binary data to parse.\n * @param options - The parse options.\n * @returns An iterable iterator of CSV records.\n * @throws {ParseError} When an error occurs while parsing the CSV data.\n */\nexport function parseBinaryToIterableIterator<\n Header extends ReadonlyArray<string>,\n>(\n binary: Uint8Array | ArrayBuffer,\n options: ParseBinaryOptions<Header> = {},\n): IterableIterator<CSVRecord<Header>> {\n try {\n const csv = convertBinaryToString(binary, options);\n return parseStringToIterableIterator(csv, options);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\n"],"names":["binary","options","csv","convertBinaryToString","parseStringToIterableIterator","error","commonParseErrorHandling"],"mappings":"wQAaO,SAGLA,EACAC,EAAsC,IAElC,IACI,MAAAC,EAAMC,EAAAA,sBAAsBH,EAAQC,GACnC,OAAAG,EAAAA,8BAA8BF,EAAKD,SACnCI,GACPC,EAAAA,yBAAyBD,EAAK,CAElC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./commonParseErrorHandling.cjs"),e=require("./parseStringToStream.cjs"),t=require("./utils/convertBinaryToString.cjs");exports.parseBinaryToStream=function(n,o={}){try{const r=t.convertBinaryToString(n,o);return e.parseStringToStream(r,o)}catch(i){r.commonParseErrorHandling(i)}};
|
|
2
|
-
//# sourceMappingURL=parseBinaryToStream.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseBinaryToStream.cjs","sources":["../../src/parseBinaryToStream.ts"],"sourcesContent":["import type { CSVRecord, ParseBinaryOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport { parseStringToStream } from \"./parseStringToStream.ts\";\nimport { convertBinaryToString } from \"./utils/convertBinaryToString.ts\";\n\nexport function parseBinaryToStream<Header extends ReadonlyArray<string>>(\n binary: Uint8Array | ArrayBuffer,\n options: ParseBinaryOptions<Header> = {},\n): ReadableStream<CSVRecord<Header>> {\n try {\n const csv = convertBinaryToString(binary, options);\n return parseStringToStream(csv, options);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\n"],"names":["binary","options","csv","convertBinaryToString","parseStringToStream","error","commonParseErrorHandling"],"mappings":"oPAKO,SACLA,EACAC,EAAsC,IAElC,IACI,MAAAC,EAAMC,EAAAA,sBAAsBH,EAAQC,GACnC,OAAAG,EAAAA,oBAAoBF,EAAKD,SACzBI,GACPC,EAAAA,yBAAyBD,EAAK,CAElC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./commonParseErrorHandling.cjs"),r=require("./getOptionsFromResponse.cjs"),o=require("./parseResponseToStream.cjs"),t=require("./parseUint8ArrayStream.cjs"),s=require("./utils/convertThisAsyncIterableIteratorToArray.cjs");function n(o,s){try{const e=r.getOptionsFromResponse(o,s);if(null===o.body)throw new RangeError("Response body is null");return t.parseUint8ArrayStream(o.body,e)}catch(n){e.commonParseErrorHandling(n)}}Object.defineProperties(n,{toArray:{enumerable:!0,writable:!1,value:s.convertThisAsyncIterableIteratorToArray},toStreamSync:{enumerable:!0,writable:!1,value:o.parseResponseToStream}}),exports.parseResponse=n;
|
|
2
|
-
//# sourceMappingURL=parseResponse.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseResponse.cjs","sources":["../../src/parseResponse.ts"],"sourcesContent":["import type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport { getOptionsFromResponse } from \"./getOptionsFromResponse.ts\";\nimport { parseResponseToStream } from \"./parseResponseToStream.ts\";\nimport { parseUint8ArrayStream } from \"./parseUint8ArrayStream.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\n\n/**\n * Parse HTTP Response what contains CSV to records,\n * ideal for smaller data sets.\n *\n * @remarks\n * This function automatically treats response headers.\n *\n * - If `Content-Type` header is not set, it assumes `text/csv`.\n * - If `Content-Type` header is not `text/csv`, it throws an error.\n * - If `Content-Type` header has charset parameter, it uses it for decoding.\n * - If `Content-Encoding` header is set, it decompresses the response.\n * - Should there be any conflicting information between the header and the options, the option's value will take precedence.\n *\n * @category Middle-level API\n * @param response\n * @param options\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parseResponse.toArray} function.\n *\n * @example Parsing CSV Response\n *\n * ```ts\n * import { parseResponse } from 'web-csv-toolbox';\n *\n * const response = await fetch('https://example.com/data.csv');\n *\n * for await (const record of parseResponse(response)) {\n * console.log(record);\n * }\n * ```\n */\nexport function parseResponse<Header extends ReadonlyArray<string>>(\n response: Response,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n try {\n const options_ = getOptionsFromResponse(response, options);\n if (response.body === null) {\n throw new RangeError(\"Response body is null\");\n }\n return parseUint8ArrayStream(response.body, options_);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\n\nexport declare namespace parseResponse {\n /**\n * Parse CSV Response to array of records.\n *\n * @returns Array of records\n *\n * @example Parsing CSV Response\n *\n * ```ts\n * import { parseResponse } from 'web-csv-toolbox';\n *\n * const response = await fetch('https://example.com/data.csv');\n *\n * const records = await parseResponse.toArray(response);\n * console.log(records);\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n response: Response,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV Response to stream of records.\n *\n * @param response Response to parse\n * @returns Stream of records\n *\n * @example Parsing CSV Response\n *\n * ```ts\n * import { parseResponse } from 'web-csv-toolbox';\n *\n * const response = await fetch('https://example.com/data.csv');\n *\n * await parseResponse.toStream(response)\n * .pipeTo(\n * new WritableStream({\n * write(record) {\n * console.log(record);\n * },\n * }),\n * );\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\n export function toStream<Header extends ReadonlyArray<string>>(\n response: Response,\n options?: ParseOptions<Header>,\n ): ReadableStream<CSVRecord<Header>[]>;\n}\n\nObject.defineProperties(parseResponse, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n toStreamSync: {\n enumerable: true,\n writable: false,\n value: parseResponseToStream,\n },\n});\n"],"names":["parseResponse","response","options","options_","getOptionsFromResponse","body","RangeError","parseUint8ArrayStream","error","commonParseErrorHandling","Object","defineProperties","toArray","enumerable","writable","value","internal.convertThisAsyncIterableIteratorToArray","toStreamSync","parseResponseToStream"],"mappings":"+TAuCgB,SAAAA,EACdC,EACAC,GAEI,IACI,MAAAC,EAAWC,EAAAA,uBAAuBH,EAAUC,GAC9C,GAAkB,OAAlBD,EAASI,KACL,MAAA,IAAIC,WAAW,yBAEhB,OAAAC,wBAAsBN,EAASI,KAAMF,SACrCK,GACPC,EAAAA,yBAAyBD,EAAK,CAElC,CAuDAE,OAAOC,iBAAiBX,EAAe,CACrCY,QAAS,CACPC,YAAY,EACZC,UAAU,EACVC,MAAOC,EAAAA,yCAETC,aAAc,CACZJ,YAAY,EACZC,UAAU,EACVC,MAAOG,EAAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./commonParseErrorHandling.cjs"),e=require("./getOptionsFromResponse.cjs"),o=require("./parseUint8ArrayStreamToStream.cjs");exports.parseResponseToStream=function(t,n){try{const r=e.getOptionsFromResponse(t,n);if(null===t.body)throw new RangeError("Response body is null");return o.parseUint8ArrayStreamToStream(t.body,r)}catch(s){r.commonParseErrorHandling(s)}};
|
|
2
|
-
//# sourceMappingURL=parseResponseToStream.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseResponseToStream.cjs","sources":["../../src/parseResponseToStream.ts"],"sourcesContent":["import type { CSVRecord, ParseBinaryOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport { getOptionsFromResponse } from \"./getOptionsFromResponse.ts\";\nimport { parseUint8ArrayStreamToStream } from \"./parseUint8ArrayStreamToStream.ts\";\n\nexport function parseResponseToStream<Header extends ReadonlyArray<string>>(\n response: Response,\n options?: ParseBinaryOptions<Header>,\n): ReadableStream<CSVRecord<Header>> {\n try {\n const options_ = getOptionsFromResponse(response, options);\n if (response.body === null) {\n throw new RangeError(\"Response body is null\");\n }\n return parseUint8ArrayStreamToStream(response.body, options_);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\n"],"names":["response","options","options_","getOptionsFromResponse","body","RangeError","parseUint8ArrayStreamToStream","error","commonParseErrorHandling"],"mappings":"2PAKgB,SACdA,EACAC,GAEI,IACI,MAAAC,EAAWC,EAAAA,uBAAuBH,EAAUC,GAC9C,GAAkB,OAAlBD,EAASI,KACL,MAAA,IAAIC,WAAW,yBAEhB,OAAAC,gCAA8BN,EAASI,KAAMF,SAC7CK,GACPC,EAAAA,yBAAyBD,EAAK,CAElC"}
|
package/dist/cjs/parseString.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./commonParseErrorHandling.cjs"),e=require("./parseStringToArraySync.cjs"),t=require("./parseStringToIterableIterator.cjs"),a=require("./parseStringToStream.cjs"),o=require("./utils/convertThisAsyncIterableIteratorToArray.cjs");async function*n(e,a){try{yield*t.parseStringToIterableIterator(e,a)}catch(o){r.commonParseErrorHandling(o)}}Object.defineProperties(n,{toArray:{enumerable:!0,writable:!1,value:o.convertThisAsyncIterableIteratorToArray},toArraySync:{enumerable:!0,writable:!1,value:e.parseStringToArraySync},toIterableIterator:{enumerable:!0,writable:!1,value:t.parseStringToIterableIterator},toStream:{enumerable:!0,writable:!1,value:a.parseStringToStream}}),exports.parseString=n;
|
|
2
|
-
//# sourceMappingURL=parseString.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseString.cjs","sources":["../../src/parseString.ts"],"sourcesContent":["import type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport { parseStringToArraySync } from \"./parseStringToArraySync.ts\";\nimport { parseStringToIterableIterator } from \"./parseStringToIterableIterator.ts\";\nimport { parseStringToStream } from \"./parseStringToStream.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\n/**\n * Parse CSV string to records.\n *\n * @category Middle-level API\n * @param csv CSV string to parse\n * @param options Parsing options. See {@link ParseOptions}.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parseString.toArray} function.\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for await (const record of parseString(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport function parseString<const CSVSource extends string>(\n csv: CSVSource,\n): AsyncIterableIterator<CSVRecord<PickCSVHeader<CSVSource>>>;\nexport function parseString<const Header extends ReadonlyArray<string>>(\n csv: string,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseString<const Header extends ReadonlyArray<string>>(\n csv: string,\n options: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseString<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseString(\n csv: string,\n options?: ParseOptions,\n): AsyncIterableIterator<CSVRecord<string[]>>;\nexport async function* parseString<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n try {\n yield* parseStringToIterableIterator(csv, options);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\nexport declare namespace parseString {\n /**\n * Parse CSV string to records.\n *\n * @returns Array of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const records = await parseString.toArray(csv);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV string to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const records = parseString.toArraySync(csv);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArraySync<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): CSVRecord<Header>[];\n /**\n * Parse CSV string to records.\n *\n * @returns Async iterable iterator of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for (const record of parseString.toIterableIterator(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\n export function toIterableIterator<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): IterableIterator<CSVRecord<Header>>;\n /**\n * Parse CSV string to records.\n *\n * @returns Readable stream of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * await parseString.toStream(csv)\n * .pipeTo(\n * new WritableStream({\n * write(record) {\n * console.log(record);\n * },\n * }),\n * );\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\n export function toStream<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): ReadableStream<CSVRecord<Header>>;\n}\nObject.defineProperties(parseString, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n toArraySync: {\n enumerable: true,\n writable: false,\n value: parseStringToArraySync,\n },\n toIterableIterator: {\n enumerable: true,\n writable: false,\n value: parseStringToIterableIterator,\n },\n toStream: {\n enumerable: true,\n writable: false,\n value: parseStringToStream,\n },\n});\n"],"names":["async","parseString","csv","options","parseStringToIterableIterator","error","commonParseErrorHandling","Object","defineProperties","toArray","enumerable","writable","value","internal.convertThisAsyncIterableIteratorToArray","toArraySync","parseStringToArraySync","toIterableIterator","toStream","parseStringToStream"],"mappings":"qUA8DuBA,eAAAC,EACrBC,EACAC,GAEI,UACKC,EAAAA,8BAA8BF,EAAKC,SACnCE,GACPC,EAAAA,yBAAyBD,EAAK,CAElC,CAyGAE,OAAOC,iBAAiBP,EAAa,CACnCQ,QAAS,CACPC,YAAY,EACZC,UAAU,EACVC,MAAOC,EAAAA,yCAETC,YAAa,CACXJ,YAAY,EACZC,UAAU,EACVC,MAAOG,EAAAA,wBAETC,mBAAoB,CAClBN,YAAY,EACZC,UAAU,EACVC,MAAOR,EAAAA,+BAETa,SAAU,CACRP,YAAY,EACZC,UAAU,EACVC,MAAOM,EAAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./parseStringStreamToStream.cjs"),r=require("./utils/convertStreamToAsyncIterableIterator.cjs"),t=require("./utils/convertThisAsyncIterableIteratorToArray.cjs");function a(t,a){const o=e.parseStringStreamToStream(t,a);return r.convertStreamToAsyncIterableIterator(o)}Object.defineProperties(a,{toArray:{enumerable:!0,writable:!1,value:t.convertThisAsyncIterableIteratorToArray},toStream:{enumerable:!0,writable:!1,value:e.parseStringStreamToStream}}),exports.parseStringStream=a;
|
|
2
|
-
//# sourceMappingURL=parseStringStream.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringStream.cjs","sources":["../../src/parseStringStream.ts"],"sourcesContent":["import type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport { parseStringStreamToStream } from \"./parseStringStreamToStream.ts\";\nimport { convertStreamToAsyncIterableIterator } from \"./utils/convertStreamToAsyncIterableIterator.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\n/**\n * Parse CSV string stream to records.\n *\n * @category Middle-level API\n * @param stream CSV string stream to parse\n * @param options Parsing options.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parseStringStream.toArray} function.\n *\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * for await (const record of parseStringStream(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport function parseStringStream<\n const CSVSource extends ReadableStream<string>,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseStringStream<\n const CSVSource extends ReadableStream<string>,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(\n csv: CSVSource,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseStringStream<const Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseStringStream<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n const recordStream = parseStringStreamToStream(stream, options);\n return convertStreamToAsyncIterableIterator(recordStream);\n}\n\nexport declare namespace parseStringStream {\n /**\n * Parse CSV string stream to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * const records = await parseStringStream.toArray(stream);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV string stream to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * await parseStringStream.toStream(stream)\n * .pipeTo(\n * new WritableStream({\n * write(record) {\n * console.log(record);\n * },\n * }),\n * );\n * ```\n */\n export function toStream<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n ): ReadableStream<CSVRecord<Header>>;\n}\n\nObject.defineProperties(parseStringStream, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n toStream: {\n enumerable: true,\n writable: false,\n value: parseStringStreamToStream,\n },\n});\n"],"names":["parseStringStream","stream","options","recordStream","parseStringStreamToStream","convertStreamToAsyncIterableIterator","Object","defineProperties","toArray","enumerable","writable","value","internal.convertThisAsyncIterableIteratorToArray","toStream"],"mappings":"kQAiEgB,SAAAA,EACdC,EACAC,GAEM,MAAAC,EAAeC,EAAAA,0BAA0BH,EAAQC,GACvD,OAAOG,EAAAA,qCAAqCF,EAC9C,CAuEAG,OAAOC,iBAAiBP,EAAmB,CACzCQ,QAAS,CACPC,YAAY,EACZC,UAAU,EACVC,MAAOC,EAAAA,yCAETC,SAAU,CACRJ,YAAY,EACZC,UAAU,EACVC,MAAOP,EAAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./LexerTransformer.cjs"),r=require("./RecordAssemblerTransformer.cjs"),s=require("./utils/pipeline.cjs");exports.parseStringStreamToStream=function(n,o){return s.pipeline(n,new e.LexerTransformer(o),new r.RecordAssemblerTransformer(o))};
|
|
2
|
-
//# sourceMappingURL=parseStringStreamToStream.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringStreamToStream.cjs","sources":["../../src/parseStringStreamToStream.ts"],"sourcesContent":["import { LexerTransformer } from \"./LexerTransformer.ts\";\nimport { RecordAssemblerTransformer } from \"./RecordAssemblerTransformer.ts\";\nimport type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport { pipeline } from \"./utils/pipeline.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\nexport function parseStringStreamToStream<\n const CSVSource extends ReadableStream<string>,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n stream: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringStreamToStream<\n const CSVSource extends ReadableStream<string>,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(\n stream: CSVSource,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringStreamToStream<\n const Header extends ReadonlyArray<string>,\n>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringStreamToStream<\n const Header extends ReadonlyArray<string>,\n>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>> {\n return pipeline(\n stream,\n new LexerTransformer(options),\n new RecordAssemblerTransformer(options),\n );\n}\n"],"names":["stream","options","pipeline","LexerTransformer","RecordAssemblerTransformer"],"mappings":"4OAiCgB,SAGdA,EACAC,GAEO,OAAAC,EAAAA,SACLF,EACA,IAAIG,EAAAA,iBAAiBF,GACrB,IAAIG,6BAA2BH,GAEnC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./Lexer.cjs"),r=require("./RecordAssembler.cjs"),o=require("./commonParseErrorHandling.cjs");exports.parseStringToArraySync=function(s,n){try{const o=new e.Lexer(n),c=new r.RecordAssembler(n),t=o.lex(s);return[...c.assemble(t)]}catch(c){o.commonParseErrorHandling(c)}};
|
|
2
|
-
//# sourceMappingURL=parseStringToArraySync.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringToArraySync.cjs","sources":["../../src/parseStringToArraySync.ts"],"sourcesContent":["import { Lexer } from \"./Lexer.ts\";\nimport { RecordAssembler } from \"./RecordAssembler.ts\";\nimport type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\nexport function parseStringToArraySync<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): CSVRecord<Header>[];\nexport function parseStringToArraySync<\n const CSVSource extends string,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(csv: CSVSource, options?: ParseOptions<Header>): CSVRecord<Header>[];\nexport function parseStringToArraySync<\n const Header extends ReadonlyArray<string>,\n>(csv: string, options?: ParseOptions<Header>): CSVRecord<Header>[];\nexport function parseStringToArraySync<\n const Header extends ReadonlyArray<string>,\n>(csv: string, options?: ParseOptions<Header>): CSVRecord<Header>[] {\n try {\n const lexer = new Lexer(options);\n const assembler = new RecordAssembler(options);\n const tokens = lexer.lex(csv);\n return [...assembler.assemble(tokens)];\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\n"],"names":["csv","options","lexer","Lexer","assembler","RecordAssembler","tokens","lex","assemble","error","commonParseErrorHandling"],"mappings":"6NA2BgB,SAEdA,EAAaC,GACT,IACI,MAAAC,EAAQ,IAAIC,EAAAA,MAAMF,GAClBG,EAAY,IAAIC,EAAAA,gBAAgBJ,GAChCK,EAASJ,EAAMK,IAAIP,GACzB,MAAO,IAAII,EAAUI,SAASF,UACvBG,GACPC,EAAAA,yBAAyBD,EAAK,CAElC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./_virtual/_web-csv-toolbox-wasm.cjs"),e=require("./assertCommonOptions.cjs"),r=require("./constants.cjs");exports.parseStringToArraySyncWASM=function(o,n={}){const{delimiter:i=r.DEFAULT_DELIMITER,quotation:s=r.DEFAULT_QUOTATION}=n;if("string"!=typeof i||1!==i.length)throw new RangeError("Invalid delimiter, must be a single character on WASM.");if(s!==r.DOUBLE_QUOTE)throw new RangeError("Invalid quotation, must be double quote on WASM.");e.assertCommonOptions({delimiter:i,quotation:s});const a=i.charCodeAt(0);return JSON.parse(t.parseStringToArraySync(o,a))};
|
|
2
|
-
//# sourceMappingURL=parseStringToArraySyncWASM.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringToArraySyncWASM.cjs","sources":["../../src/parseStringToArraySyncWASM.ts"],"sourcesContent":["import { parseStringToArraySync } from \"web-csv-toolbox-wasm\";\nimport { assertCommonOptions } from \"./assertCommonOptions.ts\";\nimport type { CSVRecord, CommonOptions } from \"./common/types.ts\";\nimport {\n DEFAULT_DELIMITER,\n DEFAULT_QUOTATION,\n DOUBLE_QUOTE,\n} from \"./constants.ts\";\nimport type { loadWASM } from \"./loadWASM.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\n/**\n * Parse CSV string to record of arrays.\n *\n * @param csv CSV string\n * @param options Parse options\n * @returns Record of arrays\n *\n * @remarks\n * This function uses WebAssembly to parse CSV string.\n * Before calling this function, you must call {@link loadWASM} function.\n *\n * This function only supports UTF-8 string.\n * If you pass a string that is not UTF-8, like UTF-16, it throws an error.\n * This function only supports double quote as quotation.\n * So, `options.quotation` must be `\"` (double quote). Otherwise, it throws an error.\n *\n * And this function only supports single character as delimiter.\n * So, `options.delimiter` must be a single character. Otherwise, it throws an error.\n *\n * @example\n *\n * ```ts\n * import { loadWASM, parseStringWASM } from \"web-csv-toolbox\";\n *\n * await loadWASM();\n *\n * const csv = \"a,b,c\\n1,2,3\";\n *\n * const result = parseStringToArraySyncWASM(csv);\n * console.log(result);\n * // Prints:\n * // [{ a: \"1\", b: \"2\", c: \"3\" }]\n * ```\n * @beta\n * @throws {RangeError | TypeError} - If provided options are invalid.\n */\nexport function parseStringToArraySyncWASM<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options: CommonOptions<Delimiter, Quotation>,\n): CSVRecord<Header>[];\nexport function parseStringToArraySyncWASM<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(\n csv: CSVSource,\n options?: CommonOptions<Delimiter, Quotation>,\n): CSVRecord<Header>[];\nexport function parseStringToArraySyncWASM<\n const Header extends ReadonlyArray<string>,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: CommonOptions<Delimiter, Quotation>,\n): CSVRecord<Header>[];\nexport function parseStringToArraySyncWASM<\n const Header extends readonly string[],\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options: CommonOptions<Delimiter, Quotation> = {},\n): CSVRecord<Header>[] {\n const { delimiter = DEFAULT_DELIMITER, quotation = DEFAULT_QUOTATION } =\n options;\n if (typeof delimiter !== \"string\" || delimiter.length !== 1) {\n throw new RangeError(\n \"Invalid delimiter, must be a single character on WASM.\",\n );\n }\n if (quotation !== DOUBLE_QUOTE) {\n throw new RangeError(\"Invalid quotation, must be double quote on WASM.\");\n }\n assertCommonOptions({ delimiter, quotation });\n const demiliterCode = delimiter.charCodeAt(0);\n return JSON.parse(parseStringToArraySync(csv, demiliterCode));\n}\n"],"names":["csv","options","delimiter","DEFAULT_DELIMITER","quotation","DEFAULT_QUOTATION","length","RangeError","DOUBLE_QUOTE","assertCommonOptions","demiliterCode","charCodeAt","JSON","parse","parseStringToArraySync"],"mappings":"+OA6EO,SAKLA,EACAC,EAA+C,IAE/C,MAAMC,UAAEA,EAAYC,EAAAA,kBAAmBC,UAAAA,EAAYC,EAAAA,mBACjDJ,EACF,GAAyB,iBAAdC,GAA+C,IAArBA,EAAUI,OAC7C,MAAM,IAAIC,WACR,0DAGJ,GAAIH,IAAcI,EAAAA,aACV,MAAA,IAAID,WAAW,oDAEHE,sBAAA,CAAEP,YAAWE,cAC3B,MAAAM,EAAgBR,EAAUS,WAAW,GAC3C,OAAOC,KAAKC,MAAMC,EAAuBA,uBAAAd,EAAKU,GAChD"}
|