@loaders.gl/json 3.4.0-alpha.3 → 3.4.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/es5/geojson-loader.js +1 -1
  2. package/dist/es5/geojson-loader.js.map +1 -1
  3. package/dist/es5/json-loader.js +1 -1
  4. package/dist/es5/json-loader.js.map +1 -1
  5. package/dist/es5/lib/clarinet/clarinet.js.map +1 -1
  6. package/dist/es5/lib/jsonpath/jsonpath.js.map +1 -1
  7. package/dist/es5/lib/parse-json-in-batches.js.map +1 -1
  8. package/dist/es5/lib/parse-ndjson-in-batches.js.map +1 -1
  9. package/dist/es5/lib/parse-ndjson.js.map +1 -1
  10. package/dist/es5/lib/parser/json-parser.js.map +1 -1
  11. package/dist/es5/lib/parser/streaming-json-parser.js.map +1 -1
  12. package/dist/es5/ndgeoson-loader.js +1 -1
  13. package/dist/es5/ndgeoson-loader.js.map +1 -1
  14. package/dist/es5/ndjson-loader.js +1 -1
  15. package/dist/es5/ndjson-loader.js.map +1 -1
  16. package/dist/esm/geojson-loader.js +1 -1
  17. package/dist/esm/geojson-loader.js.map +1 -1
  18. package/dist/esm/json-loader.js +1 -1
  19. package/dist/esm/json-loader.js.map +1 -1
  20. package/dist/esm/lib/clarinet/clarinet.js.map +1 -1
  21. package/dist/esm/lib/jsonpath/jsonpath.js.map +1 -1
  22. package/dist/esm/lib/parse-json-in-batches.js.map +1 -1
  23. package/dist/esm/lib/parse-ndjson-in-batches.js.map +1 -1
  24. package/dist/esm/lib/parse-ndjson.js.map +1 -1
  25. package/dist/esm/lib/parser/json-parser.js.map +1 -1
  26. package/dist/esm/lib/parser/streaming-json-parser.js.map +1 -1
  27. package/dist/esm/ndgeoson-loader.js +1 -1
  28. package/dist/esm/ndgeoson-loader.js.map +1 -1
  29. package/dist/esm/ndjson-loader.js +1 -1
  30. package/dist/esm/ndjson-loader.js.map +1 -1
  31. package/dist/geojson-worker.js +1 -1
  32. package/package.json +5 -5
@@ -17,7 +17,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
17
17
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
18
  function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
19
19
  function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
20
- var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
20
+ var VERSION = typeof "3.4.0-alpha.5" !== 'undefined' ? "3.4.0-alpha.5" : 'latest';
21
21
  var DEFAULT_GEOJSON_LOADER_OPTIONS = {
22
22
  geojson: {
23
23
  shape: 'object-row-table'
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-loader.js","names":["_gis","require","_parseJson","_interopRequireDefault","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","VERSION","DEFAULT_GEOJSON_LOADER_OPTIONS","geojson","shape","json","jsonpaths","gis","format","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","exports","GeoJSONLoader","parse","parseTextSync","parseInBatches","_x2","_x3","_parse","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","wrap","_callee2$","_context2","prev","abrupt","TextDecoder","decode","stop","parseJSONSync","geojsonToBinary","geojsonIterator","parseJSONInBatches","makeBinaryGeometryIterator","_x","_makeBinaryGeometryIterator","_wrapAsyncGenerator2","_callee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee$","_context","_awaitAsyncGenerator2","sent","data","t0","finish"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport parseJSONSync from './lib/parse-json';\nimport parseJSONInBatches from './lib/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\nconst DEFAULT_GEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: DEFAULT_GEOJSON_LOADER_OPTIONS\n};\n\nexport const GeoJSONLoader: LoaderWithParser = {\n ...GeoJSONWorkerLoader,\n parse,\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer, options) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text, options) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n options.gis = options.gis || {};\n const json = parseJSONSync(text, options);\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(json);\n default:\n return json;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<any> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"geojson-loader.js","names":["_gis","require","_parseJson","_interopRequireDefault","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","VERSION","DEFAULT_GEOJSON_LOADER_OPTIONS","geojson","shape","json","jsonpaths","gis","format","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","exports","GeoJSONLoader","parse","parseTextSync","parseInBatches","_x2","_x3","_parse","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","wrap","_callee2$","_context2","prev","abrupt","TextDecoder","decode","stop","parseJSONSync","geojsonToBinary","geojsonIterator","parseJSONInBatches","makeBinaryGeometryIterator","_x","_makeBinaryGeometryIterator","_wrapAsyncGenerator2","_callee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee$","_context","_awaitAsyncGenerator2","sent","data","t0","finish"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport parseJSONSync from './lib/parse-json';\nimport parseJSONInBatches from './lib/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\nconst DEFAULT_GEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: DEFAULT_GEOJSON_LOADER_OPTIONS\n};\n\nexport const GeoJSONLoader: LoaderWithParser = {\n ...GeoJSONWorkerLoader,\n parse,\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer, options) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text, options) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n options.gis = options.gis || {};\n const json = parseJSONSync(text, options);\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(json);\n default:\n return json;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<any> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
@@ -12,7 +12,7 @@ var _parseJson = _interopRequireDefault(require("./lib/parse-json"));
12
12
  var _parseJsonInBatches = _interopRequireDefault(require("./lib/parse-json-in-batches"));
13
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
- var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
15
+ var VERSION = typeof "3.4.0-alpha.5" !== 'undefined' ? "3.4.0-alpha.5" : 'latest';
16
16
  var DEFAULT_JSON_LOADER_OPTIONS = {
17
17
  json: {
18
18
  shape: 'row-table',
@@ -1 +1 @@
1
- {"version":3,"file":"json-loader.js","names":["_parseJson","_interopRequireDefault","require","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","VERSION","DEFAULT_JSON_LOADER_OPTIONS","json","shape","table","jsonpaths","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","parseTextSync","parseInBatches","options","exports","_x","_x2","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","TextDecoder","decode","stop","jsonOptions","parseJSONSync","asyncIterator","parseJSONInBatches"],"sources":["../../src/json-loader.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport parseJSONSync from './lib/parse-json';\nimport parseJSONInBatches from './lib/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * @param table -\n * @param jsonpaths -\n */\nexport type JSONLoaderOptions = LoaderOptions & {\n json?: {\n shape?: 'row-table';\n table?: false;\n jsonpaths?: string[];\n };\n};\n\nconst DEFAULT_JSON_LOADER_OPTIONS = {\n json: {\n shape: 'row-table',\n table: false,\n jsonpaths: []\n // batchSize: 'auto'\n }\n};\n\nexport const JSONLoader: LoaderWithParser = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'table',\n text: true,\n parse,\n parseTextSync,\n parseInBatches,\n options: DEFAULT_JSON_LOADER_OPTIONS\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: JSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: JSONLoaderOptions) {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONSync(text, jsonOptions as JSONLoaderOptions);\n}\n\nfunction parseInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: JSONLoaderOptions\n): AsyncIterable<Batch> {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONInBatches(asyncIterator, jsonOptions as JSONLoaderOptions);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"json-loader.js","names":["_parseJson","_interopRequireDefault","require","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","VERSION","DEFAULT_JSON_LOADER_OPTIONS","json","shape","table","jsonpaths","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","parseTextSync","parseInBatches","options","exports","_x","_x2","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","TextDecoder","decode","stop","jsonOptions","parseJSONSync","asyncIterator","parseJSONInBatches"],"sources":["../../src/json-loader.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport parseJSONSync from './lib/parse-json';\nimport parseJSONInBatches from './lib/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * @param table -\n * @param jsonpaths -\n */\nexport type JSONLoaderOptions = LoaderOptions & {\n json?: {\n shape?: 'row-table';\n table?: false;\n jsonpaths?: string[];\n };\n};\n\nconst DEFAULT_JSON_LOADER_OPTIONS = {\n json: {\n shape: 'row-table',\n table: false,\n jsonpaths: []\n // batchSize: 'auto'\n }\n};\n\nexport const JSONLoader: LoaderWithParser = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'table',\n text: true,\n parse,\n parseTextSync,\n parseInBatches,\n options: DEFAULT_JSON_LOADER_OPTIONS\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: JSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: JSONLoaderOptions) {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONSync(text, jsonOptions as JSONLoaderOptions);\n}\n\nfunction parseInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: JSONLoaderOptions\n): AsyncIterable<Batch> {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONInBatches(asyncIterator, jsonOptions as JSONLoaderOptions);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clarinet.js","names":["MAX_BUFFER_LENGTH","Number","MAX_SAFE_INTEGER","STATE","Char","tab","lineFeed","carriageReturn","space","doubleQuote","plus","comma","minus","period","_0","_9","colon","E","openBracket","backslash","closeBracket","a","b","e","f","l","n","r","s","t","u","openBrace","closeBrace","stringTokenPattern","DEFAULT_OPTIONS","onready","onopenobject","onkey","oncloseobject","onopenarray","onclosearray","onvalue","onerror","onend","onchunkparsed","ClarinetParser","options","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","BEGIN","_objectSpread","textNode","numberNode","emit","_createClass2","key","value","end","state","VALUE","depth","_error","_closeValue","c","closed","resume","error","close","write","event","data","_this$options$event","_this$options","call","emitNode","chunk","i","charCodeAt","p","position","line","column","OPEN_OBJECT","OPEN_ARRAY","isWhitespace","OPEN_KEY","stack","push","CLOSE_KEY","pop","CLOSE_OBJECT","STRING","CLOSE_ARRAY","TRUE","FALSE","NULL","String","fromCharCode","NUMBER_DIGIT","starti","slashed","unicodeI","STRING_BIGLOOP","unicodeS","parseInt","substring","lastIndex","reResult","exec","index","TRUE2","concat","TRUE3","FALSE2","FALSE3","FALSE4","NULL2","NULL3","NUMBER_DECIMAL_POINT","indexOf","_closeNumber","bufferCheckPosition","checkBufferLength","parseFloat","message","Error","exports","parser","maxAllowed","Math","max","maxActual","_i","_arr","buffer","len"],"sources":["../../../../src/lib/clarinet/clarinet.ts"],"sourcesContent":["// loaders.gl, MIT license\n// This is a fork of the clarinet library, originally BSD license (see LICENSE file)\n// loaders.gl changes:\n// - typescript port\n\nexport type ClarinetEvent =\n | 'onvalue'\n | 'onstring'\n | 'onkey'\n | 'onopenobject'\n | 'oncloseobject'\n | 'onopenarray'\n | 'onclosearray'\n | 'onerror'\n | 'onend'\n | 'onready';\n\n// Removes the MAX_BUFFER_LENGTH, originally set to 64 * 1024\nconst MAX_BUFFER_LENGTH = Number.MAX_SAFE_INTEGER;\n// const DEBUG = false;\n\nenum STATE {\n BEGIN = 0,\n VALUE, // general stuff\n OPEN_OBJECT, // {\n CLOSE_OBJECT, // }\n OPEN_ARRAY, // [\n CLOSE_ARRAY, // ]\n TEXT_ESCAPE, // \\ stuff\n STRING, // \"\"\n BACKSLASH,\n END, // No more stack\n OPEN_KEY, // , \"a\"\n CLOSE_KEY, // :\n TRUE, // r\n TRUE2, // u\n TRUE3, // e\n FALSE, // a\n FALSE2, // l\n FALSE3, // s\n FALSE4, // e\n NULL, // u\n NULL2, // l\n NULL3, // l\n NUMBER_DECIMAL_POINT, // .\n NUMBER_DIGIT // [0-9]\n}\n\nconst Char = {\n tab: 0x09, // \\t\n lineFeed: 0x0a, // \\n\n carriageReturn: 0x0d, // \\r\n space: 0x20, // \" \"\n\n doubleQuote: 0x22, // \"\n plus: 0x2b, // +\n comma: 0x2c, // ,\n minus: 0x2d, // -\n period: 0x2e, // .\n\n _0: 0x30, // 0\n _9: 0x39, // 9\n\n colon: 0x3a, // :\n\n E: 0x45, // E\n\n openBracket: 0x5b, // [\n backslash: 0x5c, // \\\n closeBracket: 0x5d, // ]\n\n a: 0x61, // a\n b: 0x62, // b\n e: 0x65, // e\n f: 0x66, // f\n l: 0x6c, // l\n n: 0x6e, // n\n r: 0x72, // r\n s: 0x73, // s\n t: 0x74, // t\n u: 0x75, // u\n\n openBrace: 0x7b, // {\n closeBrace: 0x7d // }\n};\n\nconst stringTokenPattern = /[\\\\\"\\n]/g;\n\ntype ParserEvent = (parser: ClarinetParser, event: string, data?: any) => void;\n\nexport type ClarinetParserOptions = {\n onready?: ParserEvent;\n onopenobject?: ParserEvent;\n onkey?: ParserEvent;\n oncloseobject?: ParserEvent;\n onopenarray?: ParserEvent;\n onclosearray?: ParserEvent;\n onvalue?: ParserEvent;\n onerror?: ParserEvent;\n onend?: ParserEvent;\n onchunkparsed?: ParserEvent;\n};\n\nconst DEFAULT_OPTIONS: Required<ClarinetParserOptions> = {\n onready: () => {},\n onopenobject: () => {},\n onkey: () => {},\n oncloseobject: () => {},\n onopenarray: () => {},\n onclosearray: () => {},\n onvalue: () => {},\n onerror: () => {},\n onend: () => {},\n onchunkparsed: () => {}\n};\nexport default class ClarinetParser {\n protected options: Required<ClarinetParserOptions> = DEFAULT_OPTIONS;\n\n bufferCheckPosition = MAX_BUFFER_LENGTH;\n q = '';\n c = '';\n p = '';\n closed = false;\n closedRoot = false;\n sawRoot = false;\n // tag = null;\n error: Error | null = null;\n state = STATE.BEGIN;\n stack: STATE[] = [];\n // mostly just for error reporting\n position: number = 0;\n column: number = 0;\n line: number = 1;\n slashed: boolean = false;\n unicodeI: number = 0;\n unicodeS: string | null = null;\n depth: number = 0;\n\n textNode;\n numberNode;\n\n constructor(options: ClarinetParserOptions = {}) {\n this.options = {...DEFAULT_OPTIONS, ...options};\n this.textNode = undefined;\n this.numberNode = '';\n this.emit('onready');\n }\n\n end() {\n if (this.state !== STATE.VALUE || this.depth !== 0) this._error('Unexpected end');\n\n this._closeValue();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return this;\n }\n\n resume() {\n this.error = null;\n return this;\n }\n\n close() {\n return this.write(null);\n }\n\n // protected\n\n emit(event: string, data?: any): void {\n // if (DEBUG) console.log('-- emit', event, data);\n this.options[event]?.(data, this);\n }\n\n emitNode(event: string, data?: any): void {\n this._closeValue();\n this.emit(event, data);\n }\n\n /* eslint-disable no-continue */\n // eslint-disable-next-line complexity, max-statements\n write(chunk) {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this._error('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n let i = 0;\n let c = chunk.charCodeAt(0);\n let p = this.p;\n // if (DEBUG) console.log(`write -> [${ chunk }]`);\n while (c) {\n p = c;\n this.c = c = chunk.charCodeAt(i++);\n // if chunk doesnt have next, like streaming char by char\n // this way we need to check if previous is really previous\n // if not we need to reset to what the this says is the previous\n // from buffer\n if (p !== c) {\n this.p = p;\n } else {\n p = this.p;\n }\n\n if (!c) break;\n\n // if (DEBUG) console.log(i, c, STATE[this.state]);\n this.position++;\n if (c === Char.lineFeed) {\n this.line++;\n this.column = 0;\n } else this.column++;\n\n switch (this.state) {\n case STATE.BEGIN:\n if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (!isWhitespace(c)) {\n this._error('Non-whitespace before {[.');\n }\n continue;\n\n case STATE.OPEN_KEY:\n case STATE.OPEN_OBJECT:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_KEY) this.stack.push(STATE.CLOSE_KEY);\n else if (c === Char.closeBrace) {\n this.emit('onopenobject');\n this.depth++;\n this.emit('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else this.stack.push(STATE.CLOSE_OBJECT);\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else this._error('Malformed object key should start with \"');\n continue;\n\n case STATE.CLOSE_KEY:\n case STATE.CLOSE_OBJECT:\n if (isWhitespace(c)) continue;\n // let event = this.state === STATE.CLOSE_KEY ? 'key' : 'object';\n if (c === Char.colon) {\n if (this.state === STATE.CLOSE_OBJECT) {\n this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue('onopenobject');\n this.depth++;\n } else this._closeValue('onkey');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBrace) {\n this.emitNode('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (c === Char.comma) {\n if (this.state === STATE.CLOSE_OBJECT) this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue();\n this.state = STATE.OPEN_KEY;\n } else this._error('Bad object');\n continue;\n\n case STATE.OPEN_ARRAY: // after an array there always a value\n case STATE.VALUE:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_ARRAY) {\n this.emit('onopenarray');\n this.depth++;\n this.state = STATE.VALUE;\n if (c === Char.closeBracket) {\n this.emit('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else {\n this.stack.push(STATE.CLOSE_ARRAY);\n }\n }\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (c === Char.t) this.state = STATE.TRUE;\n else if (c === Char.f) this.state = STATE.FALSE;\n else if (c === Char.n) this.state = STATE.NULL;\n else if (c === Char.minus) {\n // keep and continue\n this.numberNode += '-';\n } else if (Char._0 <= c && c <= Char._9) {\n this.numberNode += String.fromCharCode(c);\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Bad value');\n continue;\n\n case STATE.CLOSE_ARRAY:\n if (c === Char.comma) {\n this.stack.push(STATE.CLOSE_ARRAY);\n this._closeValue('onvalue');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBracket) {\n this.emitNode('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (isWhitespace(c)) continue;\n else this._error('Bad array');\n continue;\n\n case STATE.STRING:\n if (this.textNode === undefined) {\n this.textNode = '';\n }\n\n // thanks thejh, this is an about 50% performance improvement.\n let starti = i - 1;\n let slashed = this.slashed;\n let unicodeI = this.unicodeI;\n // eslint-disable-next-line no-constant-condition, no-labels\n STRING_BIGLOOP: while (true) {\n // if (DEBUG) console.log(i, c, STATE[this.state], slashed);\n // zero means \"no unicode active\". 1-4 mean \"parse some more\". end after 4.\n while (unicodeI > 0) {\n this.unicodeS += String.fromCharCode(c);\n c = chunk.charCodeAt(i++);\n this.position++;\n if (unicodeI === 4) {\n // TODO this might be slow? well, probably not used too often anyway\n this.textNode += String.fromCharCode(parseInt(this.unicodeS as string, 16));\n unicodeI = 0;\n starti = i - 1;\n } else {\n unicodeI++;\n }\n // we can just break here: no stuff we skipped that still has to be sliced out or so\n // eslint-disable-next-line no-labels\n if (!c) break STRING_BIGLOOP;\n }\n if (c === Char.doubleQuote && !slashed) {\n this.state = this.stack.pop() || STATE.VALUE;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n if (c === Char.backslash && !slashed) {\n slashed = true;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n c = chunk.charCodeAt(i++);\n this.position++;\n if (!c) break;\n }\n if (slashed) {\n slashed = false;\n if (c === Char.n) {\n this.textNode += '\\n';\n } else if (c === Char.r) {\n this.textNode += '\\r';\n } else if (c === Char.t) {\n this.textNode += '\\t';\n } else if (c === Char.f) {\n this.textNode += '\\f';\n } else if (c === Char.b) {\n this.textNode += '\\b';\n } else if (c === Char.u) {\n // \\uxxxx. meh!\n unicodeI = 1;\n this.unicodeS = '';\n } else {\n this.textNode += String.fromCharCode(c);\n }\n c = chunk.charCodeAt(i++);\n this.position++;\n starti = i - 1;\n if (!c) break;\n else continue;\n }\n\n stringTokenPattern.lastIndex = i;\n const reResult = stringTokenPattern.exec(chunk);\n if (reResult === null) {\n i = chunk.length + 1;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n i = reResult.index + 1;\n c = chunk.charCodeAt(reResult.index);\n if (!c) {\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n }\n this.slashed = slashed;\n this.unicodeI = unicodeI;\n continue;\n\n case STATE.TRUE:\n if (c === Char.r) this.state = STATE.TRUE2;\n else this._error(`Invalid true started with t${c}`);\n continue;\n\n case STATE.TRUE2:\n if (c === Char.u) this.state = STATE.TRUE3;\n else this._error(`Invalid true started with tr${c}`);\n continue;\n\n case STATE.TRUE3:\n if (c === Char.e) {\n this.emit('onvalue', true);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid true started with tru${c}`);\n continue;\n\n case STATE.FALSE:\n if (c === Char.a) this.state = STATE.FALSE2;\n else this._error(`Invalid false started with f${c}`);\n continue;\n\n case STATE.FALSE2:\n if (c === Char.l) this.state = STATE.FALSE3;\n else this._error(`Invalid false started with fa${c}`);\n continue;\n\n case STATE.FALSE3:\n if (c === Char.s) this.state = STATE.FALSE4;\n else this._error(`Invalid false started with fal${c}`);\n continue;\n\n case STATE.FALSE4:\n if (c === Char.e) {\n this.emit('onvalue', false);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid false started with fals${c}`);\n continue;\n\n case STATE.NULL:\n if (c === Char.u) this.state = STATE.NULL2;\n else this._error(`Invalid null started with n${c}`);\n continue;\n\n case STATE.NULL2:\n if (c === Char.l) this.state = STATE.NULL3;\n else this._error(`Invalid null started with nu${c}`);\n continue;\n\n case STATE.NULL3:\n if (c === Char.l) {\n this.emit('onvalue', null);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid null started with nul${c}`);\n continue;\n\n case STATE.NUMBER_DECIMAL_POINT:\n if (c === Char.period) {\n this.numberNode += '.';\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Leading zero not followed by .');\n continue;\n\n case STATE.NUMBER_DIGIT:\n if (Char._0 <= c && c <= Char._9) this.numberNode += String.fromCharCode(c);\n else if (c === Char.period) {\n if (this.numberNode.indexOf('.') !== -1) this._error('Invalid number has two dots');\n this.numberNode += '.';\n } else if (c === Char.e || c === Char.E) {\n if (this.numberNode.indexOf('e') !== -1 || this.numberNode.indexOf('E') !== -1)\n this._error('Invalid number has two exponential');\n this.numberNode += 'e';\n } else if (c === Char.plus || c === Char.minus) {\n // @ts-expect-error\n if (!(p === Char.e || p === Char.E)) this._error('Invalid symbol in number');\n this.numberNode += String.fromCharCode(c);\n } else {\n this._closeNumber();\n i--; // go back one\n this.state = this.stack.pop() || STATE.VALUE;\n }\n continue;\n\n default:\n this._error(`Unknown state: ${this.state}`);\n }\n }\n if (this.position >= this.bufferCheckPosition) {\n checkBufferLength(this);\n }\n\n this.emit('onchunkparsed');\n\n return this;\n }\n\n _closeValue(event: string = 'onvalue'): void {\n if (this.textNode !== undefined) {\n this.emit(event, this.textNode);\n }\n this.textNode = undefined;\n }\n\n _closeNumber(): void {\n if (this.numberNode) this.emit('onvalue', parseFloat(this.numberNode));\n this.numberNode = '';\n }\n\n _error(message: string = ''): void {\n this._closeValue();\n message += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n const error = new Error(message);\n this.error = error;\n this.emit('onerror', error);\n }\n}\n\nfunction isWhitespace(c): boolean {\n return c === Char.carriageReturn || c === Char.lineFeed || c === Char.space || c === Char.tab;\n}\n\nfunction checkBufferLength(parser) {\n const maxAllowed = Math.max(MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n\n for (const buffer of ['textNode', 'numberNode']) {\n const len = parser[buffer] === undefined ? 0 : parser[buffer].length;\n if (len > maxAllowed) {\n switch (buffer) {\n case 'text':\n // TODO - should this be closeValue?\n // closeText(parser);\n break;\n\n default:\n parser._error(`Max buffer length exceeded: ${buffer}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n parser.bufferCheckPosition = MAX_BUFFER_LENGTH - maxActual + parser.position;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"clarinet.js","names":["MAX_BUFFER_LENGTH","Number","MAX_SAFE_INTEGER","STATE","Char","tab","lineFeed","carriageReturn","space","doubleQuote","plus","comma","minus","period","_0","_9","colon","E","openBracket","backslash","closeBracket","a","b","e","f","l","n","r","s","t","u","openBrace","closeBrace","stringTokenPattern","DEFAULT_OPTIONS","onready","onopenobject","onkey","oncloseobject","onopenarray","onclosearray","onvalue","onerror","onend","onchunkparsed","ClarinetParser","options","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","BEGIN","_objectSpread","textNode","numberNode","emit","_createClass2","key","value","end","state","VALUE","depth","_error","_closeValue","c","closed","resume","error","close","write","event","data","_this$options$event","_this$options","call","emitNode","chunk","i","charCodeAt","p","position","line","column","OPEN_OBJECT","OPEN_ARRAY","isWhitespace","OPEN_KEY","stack","push","CLOSE_KEY","pop","CLOSE_OBJECT","STRING","CLOSE_ARRAY","TRUE","FALSE","NULL","String","fromCharCode","NUMBER_DIGIT","starti","slashed","unicodeI","STRING_BIGLOOP","unicodeS","parseInt","substring","lastIndex","reResult","exec","index","TRUE2","concat","TRUE3","FALSE2","FALSE3","FALSE4","NULL2","NULL3","NUMBER_DECIMAL_POINT","indexOf","_closeNumber","bufferCheckPosition","checkBufferLength","parseFloat","message","Error","exports","parser","maxAllowed","Math","max","maxActual","_i","_arr","buffer","len"],"sources":["../../../../src/lib/clarinet/clarinet.ts"],"sourcesContent":["// loaders.gl, MIT license\n// This is a fork of the clarinet library, originally BSD license (see LICENSE file)\n// loaders.gl changes:\n// - typescript port\n\nexport type ClarinetEvent =\n | 'onvalue'\n | 'onstring'\n | 'onkey'\n | 'onopenobject'\n | 'oncloseobject'\n | 'onopenarray'\n | 'onclosearray'\n | 'onerror'\n | 'onend'\n | 'onready';\n\n// Removes the MAX_BUFFER_LENGTH, originally set to 64 * 1024\nconst MAX_BUFFER_LENGTH = Number.MAX_SAFE_INTEGER;\n// const DEBUG = false;\n\nenum STATE {\n BEGIN = 0,\n VALUE, // general stuff\n OPEN_OBJECT, // {\n CLOSE_OBJECT, // }\n OPEN_ARRAY, // [\n CLOSE_ARRAY, // ]\n TEXT_ESCAPE, // \\ stuff\n STRING, // \"\"\n BACKSLASH,\n END, // No more stack\n OPEN_KEY, // , \"a\"\n CLOSE_KEY, // :\n TRUE, // r\n TRUE2, // u\n TRUE3, // e\n FALSE, // a\n FALSE2, // l\n FALSE3, // s\n FALSE4, // e\n NULL, // u\n NULL2, // l\n NULL3, // l\n NUMBER_DECIMAL_POINT, // .\n NUMBER_DIGIT // [0-9]\n}\n\nconst Char = {\n tab: 0x09, // \\t\n lineFeed: 0x0a, // \\n\n carriageReturn: 0x0d, // \\r\n space: 0x20, // \" \"\n\n doubleQuote: 0x22, // \"\n plus: 0x2b, // +\n comma: 0x2c, // ,\n minus: 0x2d, // -\n period: 0x2e, // .\n\n _0: 0x30, // 0\n _9: 0x39, // 9\n\n colon: 0x3a, // :\n\n E: 0x45, // E\n\n openBracket: 0x5b, // [\n backslash: 0x5c, // \\\n closeBracket: 0x5d, // ]\n\n a: 0x61, // a\n b: 0x62, // b\n e: 0x65, // e\n f: 0x66, // f\n l: 0x6c, // l\n n: 0x6e, // n\n r: 0x72, // r\n s: 0x73, // s\n t: 0x74, // t\n u: 0x75, // u\n\n openBrace: 0x7b, // {\n closeBrace: 0x7d // }\n};\n\nconst stringTokenPattern = /[\\\\\"\\n]/g;\n\ntype ParserEvent = (parser: ClarinetParser, event: string, data?: any) => void;\n\nexport type ClarinetParserOptions = {\n onready?: ParserEvent;\n onopenobject?: ParserEvent;\n onkey?: ParserEvent;\n oncloseobject?: ParserEvent;\n onopenarray?: ParserEvent;\n onclosearray?: ParserEvent;\n onvalue?: ParserEvent;\n onerror?: ParserEvent;\n onend?: ParserEvent;\n onchunkparsed?: ParserEvent;\n};\n\nconst DEFAULT_OPTIONS: Required<ClarinetParserOptions> = {\n onready: () => {},\n onopenobject: () => {},\n onkey: () => {},\n oncloseobject: () => {},\n onopenarray: () => {},\n onclosearray: () => {},\n onvalue: () => {},\n onerror: () => {},\n onend: () => {},\n onchunkparsed: () => {}\n};\nexport default class ClarinetParser {\n protected options: Required<ClarinetParserOptions> = DEFAULT_OPTIONS;\n\n bufferCheckPosition = MAX_BUFFER_LENGTH;\n q = '';\n c = '';\n p = '';\n closed = false;\n closedRoot = false;\n sawRoot = false;\n // tag = null;\n error: Error | null = null;\n state = STATE.BEGIN;\n stack: STATE[] = [];\n // mostly just for error reporting\n position: number = 0;\n column: number = 0;\n line: number = 1;\n slashed: boolean = false;\n unicodeI: number = 0;\n unicodeS: string | null = null;\n depth: number = 0;\n\n textNode;\n numberNode;\n\n constructor(options: ClarinetParserOptions = {}) {\n this.options = {...DEFAULT_OPTIONS, ...options};\n this.textNode = undefined;\n this.numberNode = '';\n this.emit('onready');\n }\n\n end() {\n if (this.state !== STATE.VALUE || this.depth !== 0) this._error('Unexpected end');\n\n this._closeValue();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return this;\n }\n\n resume() {\n this.error = null;\n return this;\n }\n\n close() {\n return this.write(null);\n }\n\n // protected\n\n emit(event: string, data?: any): void {\n // if (DEBUG) console.log('-- emit', event, data);\n this.options[event]?.(data, this);\n }\n\n emitNode(event: string, data?: any): void {\n this._closeValue();\n this.emit(event, data);\n }\n\n /* eslint-disable no-continue */\n // eslint-disable-next-line complexity, max-statements\n write(chunk) {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this._error('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n let i = 0;\n let c = chunk.charCodeAt(0);\n let p = this.p;\n // if (DEBUG) console.log(`write -> [${ chunk }]`);\n while (c) {\n p = c;\n this.c = c = chunk.charCodeAt(i++);\n // if chunk doesnt have next, like streaming char by char\n // this way we need to check if previous is really previous\n // if not we need to reset to what the this says is the previous\n // from buffer\n if (p !== c) {\n this.p = p;\n } else {\n p = this.p;\n }\n\n if (!c) break;\n\n // if (DEBUG) console.log(i, c, STATE[this.state]);\n this.position++;\n if (c === Char.lineFeed) {\n this.line++;\n this.column = 0;\n } else this.column++;\n\n switch (this.state) {\n case STATE.BEGIN:\n if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (!isWhitespace(c)) {\n this._error('Non-whitespace before {[.');\n }\n continue;\n\n case STATE.OPEN_KEY:\n case STATE.OPEN_OBJECT:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_KEY) this.stack.push(STATE.CLOSE_KEY);\n else if (c === Char.closeBrace) {\n this.emit('onopenobject');\n this.depth++;\n this.emit('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else this.stack.push(STATE.CLOSE_OBJECT);\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else this._error('Malformed object key should start with \"');\n continue;\n\n case STATE.CLOSE_KEY:\n case STATE.CLOSE_OBJECT:\n if (isWhitespace(c)) continue;\n // let event = this.state === STATE.CLOSE_KEY ? 'key' : 'object';\n if (c === Char.colon) {\n if (this.state === STATE.CLOSE_OBJECT) {\n this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue('onopenobject');\n this.depth++;\n } else this._closeValue('onkey');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBrace) {\n this.emitNode('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (c === Char.comma) {\n if (this.state === STATE.CLOSE_OBJECT) this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue();\n this.state = STATE.OPEN_KEY;\n } else this._error('Bad object');\n continue;\n\n case STATE.OPEN_ARRAY: // after an array there always a value\n case STATE.VALUE:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_ARRAY) {\n this.emit('onopenarray');\n this.depth++;\n this.state = STATE.VALUE;\n if (c === Char.closeBracket) {\n this.emit('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else {\n this.stack.push(STATE.CLOSE_ARRAY);\n }\n }\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (c === Char.t) this.state = STATE.TRUE;\n else if (c === Char.f) this.state = STATE.FALSE;\n else if (c === Char.n) this.state = STATE.NULL;\n else if (c === Char.minus) {\n // keep and continue\n this.numberNode += '-';\n } else if (Char._0 <= c && c <= Char._9) {\n this.numberNode += String.fromCharCode(c);\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Bad value');\n continue;\n\n case STATE.CLOSE_ARRAY:\n if (c === Char.comma) {\n this.stack.push(STATE.CLOSE_ARRAY);\n this._closeValue('onvalue');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBracket) {\n this.emitNode('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (isWhitespace(c)) continue;\n else this._error('Bad array');\n continue;\n\n case STATE.STRING:\n if (this.textNode === undefined) {\n this.textNode = '';\n }\n\n // thanks thejh, this is an about 50% performance improvement.\n let starti = i - 1;\n let slashed = this.slashed;\n let unicodeI = this.unicodeI;\n // eslint-disable-next-line no-constant-condition, no-labels\n STRING_BIGLOOP: while (true) {\n // if (DEBUG) console.log(i, c, STATE[this.state], slashed);\n // zero means \"no unicode active\". 1-4 mean \"parse some more\". end after 4.\n while (unicodeI > 0) {\n this.unicodeS += String.fromCharCode(c);\n c = chunk.charCodeAt(i++);\n this.position++;\n if (unicodeI === 4) {\n // TODO this might be slow? well, probably not used too often anyway\n this.textNode += String.fromCharCode(parseInt(this.unicodeS as string, 16));\n unicodeI = 0;\n starti = i - 1;\n } else {\n unicodeI++;\n }\n // we can just break here: no stuff we skipped that still has to be sliced out or so\n // eslint-disable-next-line no-labels\n if (!c) break STRING_BIGLOOP;\n }\n if (c === Char.doubleQuote && !slashed) {\n this.state = this.stack.pop() || STATE.VALUE;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n if (c === Char.backslash && !slashed) {\n slashed = true;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n c = chunk.charCodeAt(i++);\n this.position++;\n if (!c) break;\n }\n if (slashed) {\n slashed = false;\n if (c === Char.n) {\n this.textNode += '\\n';\n } else if (c === Char.r) {\n this.textNode += '\\r';\n } else if (c === Char.t) {\n this.textNode += '\\t';\n } else if (c === Char.f) {\n this.textNode += '\\f';\n } else if (c === Char.b) {\n this.textNode += '\\b';\n } else if (c === Char.u) {\n // \\uxxxx. meh!\n unicodeI = 1;\n this.unicodeS = '';\n } else {\n this.textNode += String.fromCharCode(c);\n }\n c = chunk.charCodeAt(i++);\n this.position++;\n starti = i - 1;\n if (!c) break;\n else continue;\n }\n\n stringTokenPattern.lastIndex = i;\n const reResult = stringTokenPattern.exec(chunk);\n if (reResult === null) {\n i = chunk.length + 1;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n i = reResult.index + 1;\n c = chunk.charCodeAt(reResult.index);\n if (!c) {\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n }\n this.slashed = slashed;\n this.unicodeI = unicodeI;\n continue;\n\n case STATE.TRUE:\n if (c === Char.r) this.state = STATE.TRUE2;\n else this._error(`Invalid true started with t${c}`);\n continue;\n\n case STATE.TRUE2:\n if (c === Char.u) this.state = STATE.TRUE3;\n else this._error(`Invalid true started with tr${c}`);\n continue;\n\n case STATE.TRUE3:\n if (c === Char.e) {\n this.emit('onvalue', true);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid true started with tru${c}`);\n continue;\n\n case STATE.FALSE:\n if (c === Char.a) this.state = STATE.FALSE2;\n else this._error(`Invalid false started with f${c}`);\n continue;\n\n case STATE.FALSE2:\n if (c === Char.l) this.state = STATE.FALSE3;\n else this._error(`Invalid false started with fa${c}`);\n continue;\n\n case STATE.FALSE3:\n if (c === Char.s) this.state = STATE.FALSE4;\n else this._error(`Invalid false started with fal${c}`);\n continue;\n\n case STATE.FALSE4:\n if (c === Char.e) {\n this.emit('onvalue', false);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid false started with fals${c}`);\n continue;\n\n case STATE.NULL:\n if (c === Char.u) this.state = STATE.NULL2;\n else this._error(`Invalid null started with n${c}`);\n continue;\n\n case STATE.NULL2:\n if (c === Char.l) this.state = STATE.NULL3;\n else this._error(`Invalid null started with nu${c}`);\n continue;\n\n case STATE.NULL3:\n if (c === Char.l) {\n this.emit('onvalue', null);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid null started with nul${c}`);\n continue;\n\n case STATE.NUMBER_DECIMAL_POINT:\n if (c === Char.period) {\n this.numberNode += '.';\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Leading zero not followed by .');\n continue;\n\n case STATE.NUMBER_DIGIT:\n if (Char._0 <= c && c <= Char._9) this.numberNode += String.fromCharCode(c);\n else if (c === Char.period) {\n if (this.numberNode.indexOf('.') !== -1) this._error('Invalid number has two dots');\n this.numberNode += '.';\n } else if (c === Char.e || c === Char.E) {\n if (this.numberNode.indexOf('e') !== -1 || this.numberNode.indexOf('E') !== -1)\n this._error('Invalid number has two exponential');\n this.numberNode += 'e';\n } else if (c === Char.plus || c === Char.minus) {\n // @ts-expect-error\n if (!(p === Char.e || p === Char.E)) this._error('Invalid symbol in number');\n this.numberNode += String.fromCharCode(c);\n } else {\n this._closeNumber();\n i--; // go back one\n this.state = this.stack.pop() || STATE.VALUE;\n }\n continue;\n\n default:\n this._error(`Unknown state: ${this.state}`);\n }\n }\n if (this.position >= this.bufferCheckPosition) {\n checkBufferLength(this);\n }\n\n this.emit('onchunkparsed');\n\n return this;\n }\n\n _closeValue(event: string = 'onvalue'): void {\n if (this.textNode !== undefined) {\n this.emit(event, this.textNode);\n }\n this.textNode = undefined;\n }\n\n _closeNumber(): void {\n if (this.numberNode) this.emit('onvalue', parseFloat(this.numberNode));\n this.numberNode = '';\n }\n\n _error(message: string = ''): void {\n this._closeValue();\n message += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n const error = new Error(message);\n this.error = error;\n this.emit('onerror', error);\n }\n}\n\nfunction isWhitespace(c): boolean {\n return c === Char.carriageReturn || c === Char.lineFeed || c === Char.space || c === Char.tab;\n}\n\nfunction checkBufferLength(parser) {\n const maxAllowed = Math.max(MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n\n for (const buffer of ['textNode', 'numberNode']) {\n const len = parser[buffer] === undefined ? 0 : parser[buffer].length;\n if (len > maxAllowed) {\n switch (buffer) {\n case 'text':\n // TODO - should this be closeValue?\n // closeText(parser);\n break;\n\n default:\n parser._error(`Max buffer length exceeded: ${buffer}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n parser.bufferCheckPosition = MAX_BUFFER_LENGTH - maxActual + parser.position;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsonpath.js","names":["JSONPath","path","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","_toConsumableArray2","Array","isArray","_this$path","push","apply","split","Error","_createClass2","key","value","clone","toString","join","name","pop","set","equals","other","i","setFieldAtPath","object","shift","field","_iterator","_createForOfIteratorHelper","_step","s","n","done","component","err","e","f","getFieldAtPath","_iterator2","_step2","exports"],"sources":["../../../../src/lib/jsonpath/jsonpath.ts"],"sourcesContent":["/**\n * A parser for a minimal subset of the jsonpath standard\n * Full JSON path parsers for JS exist but are quite large (bundle size)\n *\n * Supports\n *\n * `$.component.component.component`\n */\nexport default class JSONPath {\n path: string[];\n\n constructor(path: JSONPath | string[] | string | null = null) {\n this.path = ['$'];\n\n if (path instanceof JSONPath) {\n // @ts-ignore\n this.path = [...path.path];\n return;\n }\n\n if (Array.isArray(path)) {\n this.path.push(...path);\n return;\n }\n\n // Parse a string as a JSONPath\n if (typeof path === 'string') {\n this.path = path.split('.');\n if (this.path[0] !== '$') {\n throw new Error('JSONPaths must start with $');\n }\n }\n }\n\n clone(): JSONPath {\n return new JSONPath(this);\n }\n\n toString(): string {\n return this.path.join('.');\n }\n\n push(name: string): void {\n this.path.push(name);\n }\n\n pop() {\n return this.path.pop();\n }\n\n set(name: string): void {\n this.path[this.path.length - 1] = name;\n }\n\n equals(other: JSONPath): boolean {\n if (!this || !other || this.path.length !== other.path.length) {\n return false;\n }\n\n for (let i = 0; i < this.path.length; ++i) {\n if (this.path[i] !== other.path[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Sets the value pointed at by path\n * TODO - handle root path\n * @param object\n * @param value\n */\n setFieldAtPath(object, value) {\n const path = [...this.path];\n path.shift();\n const field = path.pop();\n for (const component of path) {\n object = object[component];\n }\n // @ts-ignore\n object[field] = value;\n }\n\n /**\n * Gets the value pointed at by path\n * TODO - handle root path\n * @param object\n */\n getFieldAtPath(object) {\n const path = [...this.path];\n path.shift();\n const field = path.pop();\n for (const component of path) {\n object = object[component];\n }\n // @ts-ignore\n return object[field];\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"jsonpath.js","names":["JSONPath","path","arguments","length","undefined","_classCallCheck2","default","_defineProperty2","_toConsumableArray2","Array","isArray","_this$path","push","apply","split","Error","_createClass2","key","value","clone","toString","join","name","pop","set","equals","other","i","setFieldAtPath","object","shift","field","_iterator","_createForOfIteratorHelper","_step","s","n","done","component","err","e","f","getFieldAtPath","_iterator2","_step2","exports"],"sources":["../../../../src/lib/jsonpath/jsonpath.ts"],"sourcesContent":["/**\n * A parser for a minimal subset of the jsonpath standard\n * Full JSON path parsers for JS exist but are quite large (bundle size)\n *\n * Supports\n *\n * `$.component.component.component`\n */\nexport default class JSONPath {\n path: string[];\n\n constructor(path: JSONPath | string[] | string | null = null) {\n this.path = ['$'];\n\n if (path instanceof JSONPath) {\n // @ts-ignore\n this.path = [...path.path];\n return;\n }\n\n if (Array.isArray(path)) {\n this.path.push(...path);\n return;\n }\n\n // Parse a string as a JSONPath\n if (typeof path === 'string') {\n this.path = path.split('.');\n if (this.path[0] !== '$') {\n throw new Error('JSONPaths must start with $');\n }\n }\n }\n\n clone(): JSONPath {\n return new JSONPath(this);\n }\n\n toString(): string {\n return this.path.join('.');\n }\n\n push(name: string): void {\n this.path.push(name);\n }\n\n pop() {\n return this.path.pop();\n }\n\n set(name: string): void {\n this.path[this.path.length - 1] = name;\n }\n\n equals(other: JSONPath): boolean {\n if (!this || !other || this.path.length !== other.path.length) {\n return false;\n }\n\n for (let i = 0; i < this.path.length; ++i) {\n if (this.path[i] !== other.path[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Sets the value pointed at by path\n * TODO - handle root path\n * @param object\n * @param value\n */\n setFieldAtPath(object, value) {\n const path = [...this.path];\n path.shift();\n const field = path.pop();\n for (const component of path) {\n object = object[component];\n }\n // @ts-ignore\n object[field] = value;\n }\n\n /**\n * Gets the value pointed at by path\n * TODO - handle root path\n * @param object\n */\n getFieldAtPath(object) {\n const path = [...this.path];\n path.shift();\n const field = path.pop();\n for (const component of path) {\n object = object[component];\n }\n // @ts-ignore\n return object[field];\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-json-in-batches.js","names":["_schema","require","_loaderUtils","_streamingJsonParser","_interopRequireDefault","_jsonpath2","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","asyncIterator","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","r","Promise","reject","resolve","then","_return","ret","throw","_throw","thr","parseJSONInBatches","_x","_x2","_parseJSONInBatches","_wrapAsyncGenerator2","_regenerator","mark","_callee","binaryAsyncIterator","options","_options$json","metadata","_ref","jsonpaths","isFirstChunk","schema","shape","tableBatchBuilder","parser","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","rows","_jsonpath","initialBatch","_iterator2","_step2","row","_batch2","_batch","jsonpath","batch","finalBatch","wrap","_callee$","_context","prev","makeTextDecoderIterator","json","TableBatchBuilder","StreamingJSONParser","_awaitAsyncGenerator2","sent","write","getStreamingJsonPathAsString","batchType","data","bytesUsed","container","getPartialResult","addRow","getFullBatch","t0","finish","chunkComplete","t1","getFinalBatch","stop","rebuildJsonObject","assert","topLevelObject","streamingPath","JSONPath","setFieldAtPath"],"sources":["../../../src/lib/parse-json-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from '../json-loader';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {assert, makeTextDecoderIterator} from '@loaders.gl/loader-utils';\nimport StreamingJSONParser from './parser/streaming-json-parser';\nimport JSONPath from './jsonpath/jsonpath';\n\n// TODO - support batch size 0 = no batching/single batch?\n// eslint-disable-next-line max-statements, complexity\nexport default async function* parseJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options: JSONLoaderOptions\n): AsyncIterable<Batch> {\n const asyncIterator = makeTextDecoderIterator(binaryAsyncIterator);\n\n const {metadata} = options;\n const {jsonpaths} = options.json || {};\n\n let isFirstChunk: boolean = true;\n\n // TODO fix Schema deduction\n const schema = null; // new Schema([]);\n const shape = options?.json?.shape || 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n const parser = new StreamingJSONParser({jsonpaths});\n\n for await (const chunk of asyncIterator) {\n const rows = parser.write(chunk);\n\n const jsonpath = rows.length > 0 && parser.getStreamingJsonPathAsString();\n\n if (rows.length > 0 && isFirstChunk) {\n if (metadata) {\n const initialBatch: Batch = {\n // Common fields\n shape,\n batchType: 'partial-result',\n data: [],\n length: 0,\n bytesUsed: 0,\n // JSON additions\n container: parser.getPartialResult(),\n jsonpath\n };\n yield initialBatch;\n }\n isFirstChunk = false;\n // schema = deduceSchema(rows);\n }\n\n // Add the row\n for (const row of rows) {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n tableBatchBuilder.chunkComplete(chunk);\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n // yield final batch\n const jsonpath = parser.getStreamingJsonPathAsString();\n const batch = tableBatchBuilder.getFinalBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n\n if (metadata) {\n const finalBatch: Batch = {\n shape,\n batchType: 'final-result',\n container: parser.getPartialResult(),\n jsonpath: parser.getStreamingJsonPathAsString(),\n data: [],\n length: 0\n // schema: null\n };\n yield finalBatch;\n }\n}\n\nexport function rebuildJsonObject(batch, data) {\n // Last batch will have this special type and will provide all the root object of the parsed file\n assert(batch.batchType === 'final-result');\n\n // The streamed JSON data is a top level array (jsonpath = '$'), just return the array of row objects\n if (batch.jsonpath === '$') {\n return data;\n }\n\n // (jsonpath !== '$') The streamed data is not a top level array, so stitch it back in to the top-level object\n if (batch.jsonpath && batch.jsonpath.length > 1) {\n const topLevelObject = batch.container;\n const streamingPath = new JSONPath(batch.jsonpath);\n streamingPath.setFieldAtPath(topLevelObject, data);\n return topLevelObject;\n }\n\n // No jsonpath, in this case nothing was streamed.\n return batch.container;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-json-in-batches.js","names":["_schema","require","_loaderUtils","_streamingJsonParser","_interopRequireDefault","_jsonpath2","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","asyncIterator","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","r","Promise","reject","resolve","then","_return","ret","throw","_throw","thr","parseJSONInBatches","_x","_x2","_parseJSONInBatches","_wrapAsyncGenerator2","_regenerator","mark","_callee","binaryAsyncIterator","options","_options$json","metadata","_ref","jsonpaths","isFirstChunk","schema","shape","tableBatchBuilder","parser","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","rows","_jsonpath","initialBatch","_iterator2","_step2","row","_batch2","_batch","jsonpath","batch","finalBatch","wrap","_callee$","_context","prev","makeTextDecoderIterator","json","TableBatchBuilder","StreamingJSONParser","_awaitAsyncGenerator2","sent","write","getStreamingJsonPathAsString","batchType","data","bytesUsed","container","getPartialResult","addRow","getFullBatch","t0","finish","chunkComplete","t1","getFinalBatch","stop","rebuildJsonObject","assert","topLevelObject","streamingPath","JSONPath","setFieldAtPath"],"sources":["../../../src/lib/parse-json-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from '../json-loader';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {assert, makeTextDecoderIterator} from '@loaders.gl/loader-utils';\nimport StreamingJSONParser from './parser/streaming-json-parser';\nimport JSONPath from './jsonpath/jsonpath';\n\n// TODO - support batch size 0 = no batching/single batch?\n// eslint-disable-next-line max-statements, complexity\nexport default async function* parseJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options: JSONLoaderOptions\n): AsyncIterable<Batch> {\n const asyncIterator = makeTextDecoderIterator(binaryAsyncIterator);\n\n const {metadata} = options;\n const {jsonpaths} = options.json || {};\n\n let isFirstChunk: boolean = true;\n\n // TODO fix Schema deduction\n const schema = null; // new Schema([]);\n const shape = options?.json?.shape || 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n const parser = new StreamingJSONParser({jsonpaths});\n\n for await (const chunk of asyncIterator) {\n const rows = parser.write(chunk);\n\n const jsonpath = rows.length > 0 && parser.getStreamingJsonPathAsString();\n\n if (rows.length > 0 && isFirstChunk) {\n if (metadata) {\n const initialBatch: Batch = {\n // Common fields\n shape,\n batchType: 'partial-result',\n data: [],\n length: 0,\n bytesUsed: 0,\n // JSON additions\n container: parser.getPartialResult(),\n jsonpath\n };\n yield initialBatch;\n }\n isFirstChunk = false;\n // schema = deduceSchema(rows);\n }\n\n // Add the row\n for (const row of rows) {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n tableBatchBuilder.chunkComplete(chunk);\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n // yield final batch\n const jsonpath = parser.getStreamingJsonPathAsString();\n const batch = tableBatchBuilder.getFinalBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n\n if (metadata) {\n const finalBatch: Batch = {\n shape,\n batchType: 'final-result',\n container: parser.getPartialResult(),\n jsonpath: parser.getStreamingJsonPathAsString(),\n data: [],\n length: 0\n // schema: null\n };\n yield finalBatch;\n }\n}\n\nexport function rebuildJsonObject(batch, data) {\n // Last batch will have this special type and will provide all the root object of the parsed file\n assert(batch.batchType === 'final-result');\n\n // The streamed JSON data is a top level array (jsonpath = '$'), just return the array of row objects\n if (batch.jsonpath === '$') {\n return data;\n }\n\n // (jsonpath !== '$') The streamed data is not a top level array, so stitch it back in to the top-level object\n if (batch.jsonpath && batch.jsonpath.length > 1) {\n const topLevelObject = batch.container;\n const streamingPath = new JSONPath(batch.jsonpath);\n streamingPath.setFieldAtPath(topLevelObject, data);\n return topLevelObject;\n }\n\n // No jsonpath, in this case nothing was streamed.\n return batch.container;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-ndjson-in-batches.js","names":["_schema","require","_loaderUtils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","parseNDJSONInBatches","_x","_x2","_parseNDJSONInBatches","_wrapAsyncGenerator2","_regenerator","mark","_callee","binaryAsyncIterator","options","textIterator","lineIterator","numberedLineIterator","schema","shape","tableBatchBuilder","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","_step$value","counter","line","row","_batch","batch","wrap","_callee$","_context","prev","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","TableBatchBuilder","_awaitAsyncGenerator2","sent","JSON","parse","addRow","chunkComplete","getFullBatch","t0","Error","concat","t1","finish","getFinalBatch","stop"],"sources":["../../../src/lib/parse-ndjson-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {\n LoaderOptions,\n makeLineIterator,\n makeNumberedLineIterator,\n makeTextDecoderIterator\n} from '@loaders.gl/loader-utils';\n\nexport default async function* parseNDJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: LoaderOptions\n): AsyncIterable<Batch> {\n const textIterator = makeTextDecoderIterator(binaryAsyncIterator);\n const lineIterator = makeLineIterator(textIterator);\n const numberedLineIterator = makeNumberedLineIterator(lineIterator);\n\n const schema = null;\n const shape = 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n for await (const {counter, line} of numberedLineIterator) {\n try {\n const row = JSON.parse(line);\n tableBatchBuilder.addRow(row);\n tableBatchBuilder.chunkComplete(line);\n const batch = tableBatchBuilder.getFullBatch();\n if (batch) {\n yield batch;\n }\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter}`);\n }\n }\n\n const batch = tableBatchBuilder.getFinalBatch();\n if (batch) {\n yield batch;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-ndjson-in-batches.js","names":["_schema","require","_loaderUtils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","parseNDJSONInBatches","_x","_x2","_parseNDJSONInBatches","_wrapAsyncGenerator2","_regenerator","mark","_callee","binaryAsyncIterator","options","textIterator","lineIterator","numberedLineIterator","schema","shape","tableBatchBuilder","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","_step$value","counter","line","row","_batch","batch","wrap","_callee$","_context","prev","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","TableBatchBuilder","_awaitAsyncGenerator2","sent","JSON","parse","addRow","chunkComplete","getFullBatch","t0","Error","concat","t1","finish","getFinalBatch","stop"],"sources":["../../../src/lib/parse-ndjson-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {\n LoaderOptions,\n makeLineIterator,\n makeNumberedLineIterator,\n makeTextDecoderIterator\n} from '@loaders.gl/loader-utils';\n\nexport default async function* parseNDJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: LoaderOptions\n): AsyncIterable<Batch> {\n const textIterator = makeTextDecoderIterator(binaryAsyncIterator);\n const lineIterator = makeLineIterator(textIterator);\n const numberedLineIterator = makeNumberedLineIterator(lineIterator);\n\n const schema = null;\n const shape = 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n for await (const {counter, line} of numberedLineIterator) {\n try {\n const row = JSON.parse(line);\n tableBatchBuilder.addRow(row);\n tableBatchBuilder.chunkComplete(line);\n const batch = tableBatchBuilder.getFullBatch();\n if (batch) {\n yield batch;\n }\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter}`);\n }\n }\n\n const batch = tableBatchBuilder.getFinalBatch();\n if (batch) {\n yield batch;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-ndjson.js","names":["parseNDJSONSync","ndjsonText","lines","trim","split","map","line","counter","JSON","parse","error","Error","concat"],"sources":["../../../src/lib/parse-ndjson.ts"],"sourcesContent":["export default function parseNDJSONSync(ndjsonText: string) {\n const lines = ndjsonText.trim().split('\\n');\n return lines.map((line, counter) => {\n try {\n return JSON.parse(line);\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter + 1}`);\n }\n });\n}\n"],"mappings":";;;;;;AAAe,SAASA,eAAeA,CAACC,UAAkB,EAAE;EAC1D,IAAMC,KAAK,GAAGD,UAAU,CAACE,IAAI,EAAE,CAACC,KAAK,CAAC,IAAI,CAAC;EAC3C,OAAOF,KAAK,CAACG,GAAG,CAAC,UAACC,IAAI,EAAEC,OAAO,EAAK;IAClC,IAAI;MACF,OAAOC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACzB,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd,MAAM,IAAIC,KAAK,+CAAAC,MAAA,CAA+CL,OAAO,GAAG,CAAC,EAAG;IAC9E;EACF,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"parse-ndjson.js","names":["parseNDJSONSync","ndjsonText","lines","trim","split","map","line","counter","JSON","parse","error","Error","concat"],"sources":["../../../src/lib/parse-ndjson.ts"],"sourcesContent":["export default function parseNDJSONSync(ndjsonText: string) {\n const lines = ndjsonText.trim().split('\\n');\n return lines.map((line, counter) => {\n try {\n return JSON.parse(line);\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter + 1}`);\n }\n });\n}\n"],"mappings":";;;;;;AAAe,SAASA,eAAeA,CAACC,UAAkB,EAAE;EAC1D,IAAMC,KAAK,GAAGD,UAAU,CAACE,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC;EAC3C,OAAOF,KAAK,CAACG,GAAG,CAAC,UAACC,IAAI,EAAEC,OAAO,EAAK;IAClC,IAAI;MACF,OAAOC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACzB,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd,MAAM,IAAIC,KAAK,+CAAAC,MAAA,CAA+CL,OAAO,GAAG,CAAC,CAAE,CAAC;IAC9E;EACF,CAAC,CAAC;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-parser.js","names":["_clarinet","_interopRequireDefault","require","_jsonpath","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","JSONParser","options","_this","_classCallCheck2","undefined","freeze","container","JSONPath","reset","parser","ClarinetParser","onready","jsonpath","previousStates","currentState","onopenobject","name","_openObject","emit","onkey","set","oncloseobject","_closeObject","onopenarray","_openArray","onclosearray","_closeArray","onvalue","value","_pushOrSet","onerror","error","onend","result","pop","_createClass2","write","chunk","close","_this$currentState","newContainer","isArray","exports"],"sources":["../../../../src/lib/parser/json-parser.ts"],"sourcesContent":["// @ts-nocheck\n\nimport ClarinetParser, {ClarinetParserOptions} from '../clarinet/clarinet';\nimport JSONPath from '../jsonpath/jsonpath';\n\n// JSONParser builds a JSON object using the events emitted by the Clarinet parser\n\nexport default class JSONParser {\n readonly parser: ClarinetParser;\n result = undefined;\n previousStates = [];\n currentState = Object.freeze({container: [], key: null});\n jsonpath: JSONPath = new JSONPath();\n\n constructor(options: ClarinetParserOptions) {\n this.reset();\n this.parser = new ClarinetParser({\n onready: () => {\n this.jsonpath = new JSONPath();\n this.previousStates.length = 0;\n this.currentState.container.length = 0;\n },\n\n onopenobject: (name) => {\n this._openObject({});\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n },\n\n onkey: (name) => {\n this.jsonpath.set(name);\n this.currentState.key = name;\n },\n\n oncloseobject: () => {\n this._closeObject();\n },\n\n onopenarray: () => {\n this._openArray();\n },\n\n onclosearray: () => {\n this._closeArray();\n },\n\n onvalue: (value) => {\n this._pushOrSet(value);\n },\n\n onerror: (error) => {\n throw error;\n },\n\n onend: () => {\n this.result = this.currentState.container.pop();\n },\n\n ...options\n });\n }\n\n reset(): void {\n this.result = undefined;\n this.previousStates = [];\n this.currentState = Object.freeze({container: [], key: null});\n this.jsonpath = new JSONPath();\n }\n\n write(chunk): void {\n this.parser.write(chunk);\n }\n\n close(): void {\n this.parser.close();\n }\n\n // PRIVATE METHODS\n\n _pushOrSet(value): void {\n const {container, key} = this.currentState;\n if (key !== null) {\n container[key] = value;\n this.currentState.key = null;\n } else {\n container.push(value);\n }\n }\n\n _openArray(newContainer = []): void {\n this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: true, key: null};\n }\n\n _closeArray(): void {\n this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n\n _openObject(newContainer = {}): void {\n this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: false, key: null};\n }\n\n _closeObject(): void {\n this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"json-parser.js","names":["_clarinet","_interopRequireDefault","require","_jsonpath","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","JSONParser","options","_this","_classCallCheck2","undefined","freeze","container","JSONPath","reset","parser","ClarinetParser","onready","jsonpath","previousStates","currentState","onopenobject","name","_openObject","emit","onkey","set","oncloseobject","_closeObject","onopenarray","_openArray","onclosearray","_closeArray","onvalue","value","_pushOrSet","onerror","error","onend","result","pop","_createClass2","write","chunk","close","_this$currentState","newContainer","isArray","exports"],"sources":["../../../../src/lib/parser/json-parser.ts"],"sourcesContent":["// @ts-nocheck\n\nimport ClarinetParser, {ClarinetParserOptions} from '../clarinet/clarinet';\nimport JSONPath from '../jsonpath/jsonpath';\n\n// JSONParser builds a JSON object using the events emitted by the Clarinet parser\n\nexport default class JSONParser {\n readonly parser: ClarinetParser;\n result = undefined;\n previousStates = [];\n currentState = Object.freeze({container: [], key: null});\n jsonpath: JSONPath = new JSONPath();\n\n constructor(options: ClarinetParserOptions) {\n this.reset();\n this.parser = new ClarinetParser({\n onready: () => {\n this.jsonpath = new JSONPath();\n this.previousStates.length = 0;\n this.currentState.container.length = 0;\n },\n\n onopenobject: (name) => {\n this._openObject({});\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n },\n\n onkey: (name) => {\n this.jsonpath.set(name);\n this.currentState.key = name;\n },\n\n oncloseobject: () => {\n this._closeObject();\n },\n\n onopenarray: () => {\n this._openArray();\n },\n\n onclosearray: () => {\n this._closeArray();\n },\n\n onvalue: (value) => {\n this._pushOrSet(value);\n },\n\n onerror: (error) => {\n throw error;\n },\n\n onend: () => {\n this.result = this.currentState.container.pop();\n },\n\n ...options\n });\n }\n\n reset(): void {\n this.result = undefined;\n this.previousStates = [];\n this.currentState = Object.freeze({container: [], key: null});\n this.jsonpath = new JSONPath();\n }\n\n write(chunk): void {\n this.parser.write(chunk);\n }\n\n close(): void {\n this.parser.close();\n }\n\n // PRIVATE METHODS\n\n _pushOrSet(value): void {\n const {container, key} = this.currentState;\n if (key !== null) {\n container[key] = value;\n this.currentState.key = null;\n } else {\n container.push(value);\n }\n }\n\n _openArray(newContainer = []): void {\n this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: true, key: null};\n }\n\n _closeArray(): void {\n this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n\n _openObject(newContainer = {}): void {\n this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: false, key: null};\n }\n\n _closeObject(): void {\n this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-json-parser.js","names":["_jsonParser","_interopRequireDefault","require","_jsonpath","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","StreamingJSONParser","_JSONParser","_inherits2","_super","_this","options","undefined","_classCallCheck2","onopenarray","streamingArray","_matchJSONPath","streamingJsonPath","getJsonPath","clone","_openArray","onopenobject","topLevelObject","_openObject","parser","emit","_defineProperty2","_assertThisInitialized2","jsonpaths","jsonPaths","map","jsonpath","JSONPath","_createClass2","key","write","chunk","_get2","array","_toConsumableArray2","getPartialResult","getStreamingJsonPath","getStreamingJsonPathAsString","currentPath","_iterator","_step","jsonPath","equals","JSONParser","exports"],"sources":["../../../../src/lib/parser/streaming-json-parser.ts"],"sourcesContent":["import {default as JSONParser} from './json-parser';\nimport JSONPath from '../jsonpath/jsonpath';\n\n/**\n * The `StreamingJSONParser` looks for the first array in the JSON structure.\n * and emits an array of chunks\n */\nexport default class StreamingJSONParser extends JSONParser {\n private jsonPaths: JSONPath[];\n private streamingJsonPath: JSONPath | null = null;\n private streamingArray: any[] | null = null;\n private topLevelObject: object | null = null;\n\n constructor(options: {[key: string]: any} = {}) {\n super({\n onopenarray: () => {\n if (!this.streamingArray) {\n if (this._matchJSONPath()) {\n // @ts-ignore\n this.streamingJsonPath = this.getJsonPath().clone();\n this.streamingArray = [];\n this._openArray(this.streamingArray as []);\n return;\n }\n }\n\n this._openArray();\n },\n\n // Redefine onopenarray to inject value for top-level object\n onopenobject: (name) => {\n if (!this.topLevelObject) {\n this.topLevelObject = {};\n this._openObject(this.topLevelObject);\n } else {\n this._openObject({});\n }\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n }\n });\n const jsonpaths = options.jsonpaths || [];\n this.jsonPaths = jsonpaths.map((jsonpath) => new JSONPath(jsonpath));\n }\n\n /**\n * write REDEFINITION\n * - super.write() chunk to parser\n * - get the contents (so far) of \"topmost-level\" array as batch of rows\n * - clear top-level array\n * - return the batch of rows\\\n */\n write(chunk) {\n super.write(chunk);\n let array: any[] = [];\n if (this.streamingArray) {\n array = [...this.streamingArray];\n this.streamingArray.length = 0;\n }\n return array;\n }\n\n /**\n * Returns a partially formed result object\n * Useful for returning the \"wrapper\" object when array is not top level\n * e.g. GeoJSON\n */\n getPartialResult() {\n return this.topLevelObject;\n }\n\n getStreamingJsonPath() {\n return this.streamingJsonPath;\n }\n\n getStreamingJsonPathAsString() {\n return this.streamingJsonPath && this.streamingJsonPath.toString();\n }\n\n getJsonPath() {\n return this.jsonpath;\n }\n\n // PRIVATE METHODS\n\n /**\n * Checks is this.getJsonPath matches the jsonpaths provided in options\n */\n _matchJSONPath() {\n const currentPath = this.getJsonPath();\n // console.debug(`Testing JSONPath`, currentPath);\n\n // Backwards compatibility, match any array\n // TODO implement using wildcard once that is supported\n if (this.jsonPaths.length === 0) {\n return true;\n }\n\n for (const jsonPath of this.jsonPaths) {\n if (jsonPath.equals(currentPath)) {\n return true;\n }\n }\n\n return false;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"streaming-json-parser.js","names":["_jsonParser","_interopRequireDefault","require","_jsonpath","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","StreamingJSONParser","_JSONParser","_inherits2","_super","_this","options","undefined","_classCallCheck2","onopenarray","streamingArray","_matchJSONPath","streamingJsonPath","getJsonPath","clone","_openArray","onopenobject","topLevelObject","_openObject","parser","emit","_defineProperty2","_assertThisInitialized2","jsonpaths","jsonPaths","map","jsonpath","JSONPath","_createClass2","key","write","chunk","_get2","array","_toConsumableArray2","getPartialResult","getStreamingJsonPath","getStreamingJsonPathAsString","currentPath","_iterator","_step","jsonPath","equals","JSONParser","exports"],"sources":["../../../../src/lib/parser/streaming-json-parser.ts"],"sourcesContent":["import {default as JSONParser} from './json-parser';\nimport JSONPath from '../jsonpath/jsonpath';\n\n/**\n * The `StreamingJSONParser` looks for the first array in the JSON structure.\n * and emits an array of chunks\n */\nexport default class StreamingJSONParser extends JSONParser {\n private jsonPaths: JSONPath[];\n private streamingJsonPath: JSONPath | null = null;\n private streamingArray: any[] | null = null;\n private topLevelObject: object | null = null;\n\n constructor(options: {[key: string]: any} = {}) {\n super({\n onopenarray: () => {\n if (!this.streamingArray) {\n if (this._matchJSONPath()) {\n // @ts-ignore\n this.streamingJsonPath = this.getJsonPath().clone();\n this.streamingArray = [];\n this._openArray(this.streamingArray as []);\n return;\n }\n }\n\n this._openArray();\n },\n\n // Redefine onopenarray to inject value for top-level object\n onopenobject: (name) => {\n if (!this.topLevelObject) {\n this.topLevelObject = {};\n this._openObject(this.topLevelObject);\n } else {\n this._openObject({});\n }\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n }\n });\n const jsonpaths = options.jsonpaths || [];\n this.jsonPaths = jsonpaths.map((jsonpath) => new JSONPath(jsonpath));\n }\n\n /**\n * write REDEFINITION\n * - super.write() chunk to parser\n * - get the contents (so far) of \"topmost-level\" array as batch of rows\n * - clear top-level array\n * - return the batch of rows\\\n */\n write(chunk) {\n super.write(chunk);\n let array: any[] = [];\n if (this.streamingArray) {\n array = [...this.streamingArray];\n this.streamingArray.length = 0;\n }\n return array;\n }\n\n /**\n * Returns a partially formed result object\n * Useful for returning the \"wrapper\" object when array is not top level\n * e.g. GeoJSON\n */\n getPartialResult() {\n return this.topLevelObject;\n }\n\n getStreamingJsonPath() {\n return this.streamingJsonPath;\n }\n\n getStreamingJsonPathAsString() {\n return this.streamingJsonPath && this.streamingJsonPath.toString();\n }\n\n getJsonPath() {\n return this.jsonpath;\n }\n\n // PRIVATE METHODS\n\n /**\n * Checks is this.getJsonPath matches the jsonpaths provided in options\n */\n _matchJSONPath() {\n const currentPath = this.getJsonPath();\n // console.debug(`Testing JSONPath`, currentPath);\n\n // Backwards compatibility, match any array\n // TODO implement using wildcard once that is supported\n if (this.jsonPaths.length === 0) {\n return true;\n }\n\n for (const jsonPath of this.jsonPaths) {\n if (jsonPath.equals(currentPath)) {\n return true;\n }\n }\n\n return false;\n }\n}\n"],"mappings":"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"}
@@ -9,7 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseNdjson = _interopRequireDefault(require("./lib/parse-ndjson"));
11
11
  var _parseNdjsonInBatches = _interopRequireDefault(require("./lib/parse-ndjson-in-batches"));
12
- var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
12
+ var VERSION = typeof "3.4.0-alpha.5" !== 'undefined' ? "3.4.0-alpha.5" : 'latest';
13
13
  var DEFAULT_NDGEOJSON_LOADER_OPTIONS = {
14
14
  geojson: {
15
15
  shape: 'object-row-table'
@@ -1 +1 @@
1
- {"version":3,"file":"ndgeoson-loader.js","names":["_parseNdjson","_interopRequireDefault","require","_parseNdjsonInBatches","VERSION","DEFAULT_NDGEOJSON_LOADER_OPTIONS","geojson","shape","gis","format","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","parseNDJSONSync","TextDecoder","decode","stop","_x","apply","arguments","parseTextSync","parseInBatches","parseNDJSONInBatches","options","exports","_typecheckNDJSONLoader"],"sources":["../../src/ndgeoson-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport parseNDJSONSync from './lib/parse-ndjson';\nimport parseNDJSONInBatches from './lib/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type NDGeoJSONLoaderOptions = LoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format: 'geojson';\n };\n};\n\nconst DEFAULT_NDGEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n gis: {\n format: 'geojson'\n }\n};\n\nexport const NDJSONLoader = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'ndgeojson'],\n mimeTypes: [\n 'application/geo+x-ndjson',\n 'application/geo+x-ldjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/geo+json-seq',\n 'application/x-ndjson'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: DEFAULT_NDGEOJSON_LOADER_OPTIONS\n};\n\nexport const _typecheckNDJSONLoader: LoaderWithParser = NDJSONLoader;\n"],"mappings":";;;;;;;;;AACA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAIA,IAAME,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAW3E,IAAMC,gCAAgC,GAAG;EACvCC,OAAO,EAAE;IACPC,KAAK,EAAE;EACT,CAAC;EACDC,GAAG,EAAE;IACHC,MAAM,EAAE;EACV;AACF,CAAC;AAEM,IAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEV,OAAO;EAChBW,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;EACnCC,SAAS,EAAE,CACT,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK;IAAA,IAAAC,MAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,WAAwB;MAAA,OAAAH,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAAK,IAAAC,oBAAe,EAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACT,WAAW,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,MAAAkB,EAAA;MAAA,OAAAjB,MAAA,CAAAkB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAApB,KAAA;EAAA;EACjGqB,aAAa,EAAEP,oBAAe;EAC9BQ,cAAc,EAAEC,6BAAoB;EACpCC,OAAO,EAAEtC;AACX,CAAC;AAACuC,OAAA,CAAAlC,YAAA,GAAAA,YAAA;AAEK,IAAMmC,sBAAwC,GAAGnC,YAAY;AAACkC,OAAA,CAAAC,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"file":"ndgeoson-loader.js","names":["_parseNdjson","_interopRequireDefault","require","_parseNdjsonInBatches","VERSION","DEFAULT_NDGEOJSON_LOADER_OPTIONS","geojson","shape","gis","format","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","parseNDJSONSync","TextDecoder","decode","stop","_x","apply","arguments","parseTextSync","parseInBatches","parseNDJSONInBatches","options","exports","_typecheckNDJSONLoader"],"sources":["../../src/ndgeoson-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport parseNDJSONSync from './lib/parse-ndjson';\nimport parseNDJSONInBatches from './lib/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type NDGeoJSONLoaderOptions = LoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format: 'geojson';\n };\n};\n\nconst DEFAULT_NDGEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n gis: {\n format: 'geojson'\n }\n};\n\nexport const NDJSONLoader = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'ndgeojson'],\n mimeTypes: [\n 'application/geo+x-ndjson',\n 'application/geo+x-ldjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/geo+json-seq',\n 'application/x-ndjson'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: DEFAULT_NDGEOJSON_LOADER_OPTIONS\n};\n\nexport const _typecheckNDJSONLoader: LoaderWithParser = NDJSONLoader;\n"],"mappings":";;;;;;;;;AACA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAIA,IAAME,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAW3E,IAAMC,gCAAgC,GAAG;EACvCC,OAAO,EAAE;IACPC,KAAK,EAAE;EACT,CAAC;EACDC,GAAG,EAAE;IACHC,MAAM,EAAE;EACV;AACF,CAAC;AAEM,IAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEV,OAAO;EAChBW,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;EACnCC,SAAS,EAAE,CACT,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK;IAAA,IAAAC,MAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,WAAwB;MAAA,OAAAH,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAAK,IAAAC,oBAAe,EAAC,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACT,WAAW,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,MAAAkB,EAAA;MAAA,OAAAjB,MAAA,CAAAkB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAApB,KAAA;EAAA;EACjGqB,aAAa,EAAEP,oBAAe;EAC9BQ,cAAc,EAAEC,6BAAoB;EACpCC,OAAO,EAAEtC;AACX,CAAC;AAACuC,OAAA,CAAAlC,YAAA,GAAAA,YAAA;AAEK,IAAMmC,sBAAwC,GAAGnC,YAAY;AAACkC,OAAA,CAAAC,sBAAA,GAAAA,sBAAA"}
@@ -9,7 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseNdjson = _interopRequireDefault(require("./lib/parse-ndjson"));
11
11
  var _parseNdjsonInBatches = _interopRequireDefault(require("./lib/parse-ndjson-in-batches"));
12
- var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
12
+ var VERSION = typeof "3.4.0-alpha.5" !== 'undefined' ? "3.4.0-alpha.5" : 'latest';
13
13
  var NDJSONLoader = {
14
14
  name: 'NDJSON',
15
15
  id: 'ndjson',
@@ -1 +1 @@
1
- {"version":3,"file":"ndjson-loader.js","names":["_parseNdjson","_interopRequireDefault","require","_parseNdjsonInBatches","VERSION","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","parseNDJSONSync","TextDecoder","decode","stop","_x","apply","arguments","parseTextSync","parseInBatches","parseNDJSONInBatches","options","exports"],"sources":["../../src/ndjson-loader.ts"],"sourcesContent":["import parseNDJSONSync from './lib/parse-ndjson';\nimport parseNDJSONInBatches from './lib/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const NDJSONLoader = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'jsonl'],\n mimeTypes: [\n 'application/x-ndjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/json-seq'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: {}\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAIA,IAAME,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAEpE,IAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;EAC/BC,SAAS,EAAE,CACT,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK;IAAA,IAAAC,MAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,WAAwB;MAAA,OAAAH,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAAK,IAAAC,oBAAe,EAAC,IAAIC,WAAW,EAAE,CAACC,MAAM,CAACT,WAAW,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,MAAAkB,EAAA;MAAA,OAAAjB,MAAA,CAAAkB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAApB,KAAA;EAAA;EACjGqB,aAAa,EAAEP,oBAAe;EAC9BQ,cAAc,EAAEC,6BAAoB;EACpCC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAlC,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"file":"ndjson-loader.js","names":["_parseNdjson","_interopRequireDefault","require","_parseNdjsonInBatches","VERSION","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","parseNDJSONSync","TextDecoder","decode","stop","_x","apply","arguments","parseTextSync","parseInBatches","parseNDJSONInBatches","options","exports"],"sources":["../../src/ndjson-loader.ts"],"sourcesContent":["import parseNDJSONSync from './lib/parse-ndjson';\nimport parseNDJSONInBatches from './lib/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const NDJSONLoader = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'jsonl'],\n mimeTypes: [\n 'application/x-ndjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/json-seq'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: {}\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAIA,IAAME,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAEpE,IAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;EAC/BC,SAAS,EAAE,CACT,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK;IAAA,IAAAC,MAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,WAAwB;MAAA,OAAAH,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAAK,IAAAC,oBAAe,EAAC,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACT,WAAW,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,MAAAkB,EAAA;MAAA,OAAAjB,MAAA,CAAAkB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAApB,KAAA;EAAA;EACjGqB,aAAa,EAAEP,oBAAe;EAC9BQ,cAAc,EAAEC,6BAAoB;EACpCC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAlC,YAAA,GAAAA,YAAA"}
@@ -1,7 +1,7 @@
1
1
  import { geojsonToBinary } from '@loaders.gl/gis';
2
2
  import parseJSONSync from './lib/parse-json';
3
3
  import parseJSONInBatches from './lib/parse-json-in-batches';
4
- const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
4
+ const VERSION = typeof "3.4.0-alpha.5" !== 'undefined' ? "3.4.0-alpha.5" : 'latest';
5
5
  const DEFAULT_GEOJSON_LOADER_OPTIONS = {
6
6
  geojson: {
7
7
  shape: 'object-row-table'
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-loader.js","names":["geojsonToBinary","parseJSONSync","parseJSONInBatches","VERSION","DEFAULT_GEOJSON_LOADER_OPTIONS","geojson","shape","json","jsonpaths","gis","format","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","GeoJSONLoader","parse","parseTextSync","parseInBatches","arrayBuffer","TextDecoder","decode","asyncIterator","geojsonIterator","makeBinaryGeometryIterator","batch","data"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport parseJSONSync from './lib/parse-json';\nimport parseJSONInBatches from './lib/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\nconst DEFAULT_GEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: DEFAULT_GEOJSON_LOADER_OPTIONS\n};\n\nexport const GeoJSONLoader: LoaderWithParser = {\n ...GeoJSONWorkerLoader,\n parse,\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer, options) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text, options) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n options.gis = options.gis || {};\n const json = parseJSONSync(text, options);\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(json);\n default:\n return json;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<any> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"AAEA,SAAQA,eAAe,QAAO,iBAAiB;AAC/C,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,kBAAkB,MAAM,6BAA6B;AAI5D,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAW3E,MAAMC,8BAA8B,GAAG;EACrCC,OAAO,EAAE;IACPC,KAAK,EAAE;EACT,CAAC;EACDC,IAAI,EAAE;IACJC,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY;EAC/B,CAAC;EACDC,GAAG,EAAE;IACHC,MAAM,EAAE;EACV;AACF,CAAC;AAKD,OAAO,MAAMC,mBAA2B,GAAG;EACzCC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,SAAS;EACbC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAEZ,OAAO;EAChBa,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAE,IAAI;EACVC,OAAO,EAAEjB;AACX,CAAC;AAED,OAAO,MAAMkB,aAA+B,GAAG;EAC7C,GAAGX,mBAAmB;EACtBY,KAAK;EACLC,aAAa;EACbC;AACF,CAAC;AAED,eAAeF,KAAKA,CAACG,WAAW,EAAEL,OAAO,EAAE;EACzC,OAAOG,aAAa,CAAC,IAAIG,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEL,OAAO,CAAC;AACtE;AAEA,SAASG,aAAaA,CAACJ,IAAI,EAAEC,OAAO,EAAE;EAEpCA,OAAO,GAAG;IAAC,GAAGjB,8BAA8B;IAAE,GAAGiB;EAAO,CAAC;EACzDA,OAAO,CAACd,IAAI,GAAG;IAAC,GAAGH,8BAA8B,CAACC,OAAO;IAAE,GAAGgB,OAAO,CAAChB;EAAO,CAAC;EAC9EgB,OAAO,CAACZ,GAAG,GAAGY,OAAO,CAACZ,GAAG,IAAI,CAAC,CAAC;EAC/B,MAAMF,IAAI,GAAGN,aAAa,CAACmB,IAAI,EAAEC,OAAO,CAAC;EACzC,QAAQA,OAAO,CAACZ,GAAG,CAACC,MAAM;IACxB,KAAK,QAAQ;MACX,OAAOV,eAAe,CAACO,IAAI,CAAC;IAC9B;MACE,OAAOA,IAAI;EAAC;AAElB;AAEA,SAASkB,cAAcA,CAACI,aAAa,EAAER,OAAO,EAAsB;EAElEA,OAAO,GAAG;IAAC,GAAGjB,8BAA8B;IAAE,GAAGiB;EAAO,CAAC;EACzDA,OAAO,CAACd,IAAI,GAAG;IAAC,GAAGH,8BAA8B,CAACC,OAAO;IAAE,GAAGgB,OAAO,CAAChB;EAAO,CAAC;EAE9E,MAAMyB,eAAe,GAAG5B,kBAAkB,CAAC2B,aAAa,EAAER,OAAO,CAAC;EAElE,QAAQA,OAAO,CAACZ,GAAG,CAACC,MAAM;IACxB,KAAK,QAAQ;MACX,OAAOqB,0BAA0B,CAACD,eAAe,CAAC;IACpD;MACE,OAAOA,eAAe;EAAC;AAE7B;AAEA,gBAAgBC,0BAA0BA,CAACD,eAAe,EAAE;EAC1D,WAAW,MAAME,KAAK,IAAIF,eAAe,EAAE;IACzCE,KAAK,CAACC,IAAI,GAAGjC,eAAe,CAACgC,KAAK,CAACC,IAAI,CAAC;IACxC,MAAMD,KAAK;EACb;AACF"}
1
+ {"version":3,"file":"geojson-loader.js","names":["geojsonToBinary","parseJSONSync","parseJSONInBatches","VERSION","DEFAULT_GEOJSON_LOADER_OPTIONS","geojson","shape","json","jsonpaths","gis","format","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","GeoJSONLoader","parse","parseTextSync","parseInBatches","arrayBuffer","TextDecoder","decode","asyncIterator","geojsonIterator","makeBinaryGeometryIterator","batch","data"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport parseJSONSync from './lib/parse-json';\nimport parseJSONInBatches from './lib/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\nconst DEFAULT_GEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: DEFAULT_GEOJSON_LOADER_OPTIONS\n};\n\nexport const GeoJSONLoader: LoaderWithParser = {\n ...GeoJSONWorkerLoader,\n parse,\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer, options) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text, options) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n options.gis = options.gis || {};\n const json = parseJSONSync(text, options);\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(json);\n default:\n return json;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<any> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"AAEA,SAAQA,eAAe,QAAO,iBAAiB;AAC/C,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,kBAAkB,MAAM,6BAA6B;AAI5D,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAW3E,MAAMC,8BAA8B,GAAG;EACrCC,OAAO,EAAE;IACPC,KAAK,EAAE;EACT,CAAC;EACDC,IAAI,EAAE;IACJC,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY;EAC/B,CAAC;EACDC,GAAG,EAAE;IACHC,MAAM,EAAE;EACV;AACF,CAAC;AAKD,OAAO,MAAMC,mBAA2B,GAAG;EACzCC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,SAAS;EACbC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAEZ,OAAO;EAChBa,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAE,IAAI;EACVC,OAAO,EAAEjB;AACX,CAAC;AAED,OAAO,MAAMkB,aAA+B,GAAG;EAC7C,GAAGX,mBAAmB;EACtBY,KAAK;EACLC,aAAa;EACbC;AACF,CAAC;AAED,eAAeF,KAAKA,CAACG,WAAW,EAAEL,OAAO,EAAE;EACzC,OAAOG,aAAa,CAAC,IAAIG,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEL,OAAO,CAAC;AACtE;AAEA,SAASG,aAAaA,CAACJ,IAAI,EAAEC,OAAO,EAAE;EAEpCA,OAAO,GAAG;IAAC,GAAGjB,8BAA8B;IAAE,GAAGiB;EAAO,CAAC;EACzDA,OAAO,CAACd,IAAI,GAAG;IAAC,GAAGH,8BAA8B,CAACC,OAAO;IAAE,GAAGgB,OAAO,CAAChB;EAAO,CAAC;EAC9EgB,OAAO,CAACZ,GAAG,GAAGY,OAAO,CAACZ,GAAG,IAAI,CAAC,CAAC;EAC/B,MAAMF,IAAI,GAAGN,aAAa,CAACmB,IAAI,EAAEC,OAAO,CAAC;EACzC,QAAQA,OAAO,CAACZ,GAAG,CAACC,MAAM;IACxB,KAAK,QAAQ;MACX,OAAOV,eAAe,CAACO,IAAI,CAAC;IAC9B;MACE,OAAOA,IAAI;EACf;AACF;AAEA,SAASkB,cAAcA,CAACI,aAAa,EAAER,OAAO,EAAsB;EAElEA,OAAO,GAAG;IAAC,GAAGjB,8BAA8B;IAAE,GAAGiB;EAAO,CAAC;EACzDA,OAAO,CAACd,IAAI,GAAG;IAAC,GAAGH,8BAA8B,CAACC,OAAO;IAAE,GAAGgB,OAAO,CAAChB;EAAO,CAAC;EAE9E,MAAMyB,eAAe,GAAG5B,kBAAkB,CAAC2B,aAAa,EAAER,OAAO,CAAC;EAElE,QAAQA,OAAO,CAACZ,GAAG,CAACC,MAAM;IACxB,KAAK,QAAQ;MACX,OAAOqB,0BAA0B,CAACD,eAAe,CAAC;IACpD;MACE,OAAOA,eAAe;EAC1B;AACF;AAEA,gBAAgBC,0BAA0BA,CAACD,eAAe,EAAE;EAC1D,WAAW,MAAME,KAAK,IAAIF,eAAe,EAAE;IACzCE,KAAK,CAACC,IAAI,GAAGjC,eAAe,CAACgC,KAAK,CAACC,IAAI,CAAC;IACxC,MAAMD,KAAK;EACb;AACF"}
@@ -1,6 +1,6 @@
1
1
  import parseJSONSync from './lib/parse-json';
2
2
  import parseJSONInBatches from './lib/parse-json-in-batches';
3
- const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
3
+ const VERSION = typeof "3.4.0-alpha.5" !== 'undefined' ? "3.4.0-alpha.5" : 'latest';
4
4
  const DEFAULT_JSON_LOADER_OPTIONS = {
5
5
  json: {
6
6
  shape: 'row-table',
@@ -1 +1 @@
1
- {"version":3,"file":"json-loader.js","names":["parseJSONSync","parseJSONInBatches","VERSION","DEFAULT_JSON_LOADER_OPTIONS","json","shape","table","jsonpaths","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","parseTextSync","parseInBatches","options","arrayBuffer","TextDecoder","decode","jsonOptions","asyncIterator"],"sources":["../../src/json-loader.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport parseJSONSync from './lib/parse-json';\nimport parseJSONInBatches from './lib/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * @param table -\n * @param jsonpaths -\n */\nexport type JSONLoaderOptions = LoaderOptions & {\n json?: {\n shape?: 'row-table';\n table?: false;\n jsonpaths?: string[];\n };\n};\n\nconst DEFAULT_JSON_LOADER_OPTIONS = {\n json: {\n shape: 'row-table',\n table: false,\n jsonpaths: []\n // batchSize: 'auto'\n }\n};\n\nexport const JSONLoader: LoaderWithParser = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'table',\n text: true,\n parse,\n parseTextSync,\n parseInBatches,\n options: DEFAULT_JSON_LOADER_OPTIONS\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: JSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: JSONLoaderOptions) {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONSync(text, jsonOptions as JSONLoaderOptions);\n}\n\nfunction parseInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: JSONLoaderOptions\n): AsyncIterable<Batch> {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONInBatches(asyncIterator, jsonOptions as JSONLoaderOptions);\n}\n"],"mappings":"AAEA,OAAOA,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,kBAAkB,MAAM,6BAA6B;AAI5D,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAc3E,MAAMC,2BAA2B,GAAG;EAClCC,IAAI,EAAE;IACJC,KAAK,EAAE,WAAW;IAClBC,KAAK,EAAE,KAAK;IACZC,SAAS,EAAE;EAEb;AACF,CAAC;AAED,OAAO,MAAMC,UAA4B,GAAG;EAC1CC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEV,OAAO;EAChBW,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;EAC/BC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK;EACLC,aAAa;EACbC,cAAc;EACdC,OAAO,EAAEjB;AACX,CAAC;AAED,eAAec,KAAKA,CAACI,WAAwB,EAAED,OAA2B,EAAE;EAC1E,OAAOF,aAAa,CAAC,IAAII,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,EAAED,OAAO,CAAC;AACtE;AAEA,SAASF,aAAaA,CAACF,IAAY,EAAEI,OAA2B,EAAE;EAChE,MAAMI,WAAW,GAAG;IAAC,GAAGJ,OAAO;IAAEhB,IAAI,EAAE;MAAC,GAAGD,2BAA2B,CAACC,IAAI;MAAE,IAAGgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;IAAA;EAAC,CAAC;EAC/F,OAAOJ,aAAa,CAACgB,IAAI,EAAEQ,WAAW,CAAsB;AAC9D;AAEA,SAASL,cAAcA,CACrBM,aAAiE,EACjEL,OAA2B,EACL;EACtB,MAAMI,WAAW,GAAG;IAAC,GAAGJ,OAAO;IAAEhB,IAAI,EAAE;MAAC,GAAGD,2BAA2B,CAACC,IAAI;MAAE,IAAGgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;IAAA;EAAC,CAAC;EAC/F,OAAOH,kBAAkB,CAACwB,aAAa,EAAED,WAAW,CAAsB;AAC5E"}
1
+ {"version":3,"file":"json-loader.js","names":["parseJSONSync","parseJSONInBatches","VERSION","DEFAULT_JSON_LOADER_OPTIONS","json","shape","table","jsonpaths","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","parseTextSync","parseInBatches","options","arrayBuffer","TextDecoder","decode","jsonOptions","asyncIterator"],"sources":["../../src/json-loader.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport parseJSONSync from './lib/parse-json';\nimport parseJSONInBatches from './lib/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * @param table -\n * @param jsonpaths -\n */\nexport type JSONLoaderOptions = LoaderOptions & {\n json?: {\n shape?: 'row-table';\n table?: false;\n jsonpaths?: string[];\n };\n};\n\nconst DEFAULT_JSON_LOADER_OPTIONS = {\n json: {\n shape: 'row-table',\n table: false,\n jsonpaths: []\n // batchSize: 'auto'\n }\n};\n\nexport const JSONLoader: LoaderWithParser = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'table',\n text: true,\n parse,\n parseTextSync,\n parseInBatches,\n options: DEFAULT_JSON_LOADER_OPTIONS\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: JSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: JSONLoaderOptions) {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONSync(text, jsonOptions as JSONLoaderOptions);\n}\n\nfunction parseInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: JSONLoaderOptions\n): AsyncIterable<Batch> {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONInBatches(asyncIterator, jsonOptions as JSONLoaderOptions);\n}\n"],"mappings":"AAEA,OAAOA,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,kBAAkB,MAAM,6BAA6B;AAI5D,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAc3E,MAAMC,2BAA2B,GAAG;EAClCC,IAAI,EAAE;IACJC,KAAK,EAAE,WAAW;IAClBC,KAAK,EAAE,KAAK;IACZC,SAAS,EAAE;EAEb;AACF,CAAC;AAED,OAAO,MAAMC,UAA4B,GAAG;EAC1CC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEV,OAAO;EAChBW,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;EAC/BC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK;EACLC,aAAa;EACbC,cAAc;EACdC,OAAO,EAAEjB;AACX,CAAC;AAED,eAAec,KAAKA,CAACI,WAAwB,EAAED,OAA2B,EAAE;EAC1E,OAAOF,aAAa,CAAC,IAAII,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAED,OAAO,CAAC;AACtE;AAEA,SAASF,aAAaA,CAACF,IAAY,EAAEI,OAA2B,EAAE;EAChE,MAAMI,WAAW,GAAG;IAAC,GAAGJ,OAAO;IAAEhB,IAAI,EAAE;MAAC,GAAGD,2BAA2B,CAACC,IAAI;MAAE,IAAGgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;IAAA;EAAC,CAAC;EAC/F,OAAOJ,aAAa,CAACgB,IAAI,EAAEQ,WAAgC,CAAC;AAC9D;AAEA,SAASL,cAAcA,CACrBM,aAAiE,EACjEL,OAA2B,EACL;EACtB,MAAMI,WAAW,GAAG;IAAC,GAAGJ,OAAO;IAAEhB,IAAI,EAAE;MAAC,GAAGD,2BAA2B,CAACC,IAAI;MAAE,IAAGgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;IAAA;EAAC,CAAC;EAC/F,OAAOH,kBAAkB,CAACwB,aAAa,EAAED,WAAgC,CAAC;AAC5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"clarinet.js","names":["MAX_BUFFER_LENGTH","Number","MAX_SAFE_INTEGER","STATE","Char","tab","lineFeed","carriageReturn","space","doubleQuote","plus","comma","minus","period","_0","_9","colon","E","openBracket","backslash","closeBracket","a","b","e","f","l","n","r","s","t","u","openBrace","closeBrace","stringTokenPattern","DEFAULT_OPTIONS","onready","onopenobject","onkey","oncloseobject","onopenarray","onclosearray","onvalue","onerror","onend","onchunkparsed","ClarinetParser","constructor","options","arguments","length","undefined","_defineProperty","BEGIN","textNode","numberNode","emit","end","state","VALUE","depth","_error","_closeValue","c","closed","resume","error","close","write","event","data","_this$options$event","_this$options","call","emitNode","chunk","i","charCodeAt","p","position","line","column","OPEN_OBJECT","OPEN_ARRAY","isWhitespace","OPEN_KEY","stack","push","CLOSE_KEY","pop","CLOSE_OBJECT","STRING","CLOSE_ARRAY","TRUE","FALSE","NULL","String","fromCharCode","NUMBER_DIGIT","starti","slashed","unicodeI","STRING_BIGLOOP","unicodeS","parseInt","substring","lastIndex","reResult","exec","index","TRUE2","concat","TRUE3","FALSE2","FALSE3","FALSE4","NULL2","NULL3","NUMBER_DECIMAL_POINT","indexOf","_closeNumber","bufferCheckPosition","checkBufferLength","parseFloat","message","Error","parser","maxAllowed","Math","max","maxActual","buffer","len"],"sources":["../../../../src/lib/clarinet/clarinet.ts"],"sourcesContent":["// loaders.gl, MIT license\n// This is a fork of the clarinet library, originally BSD license (see LICENSE file)\n// loaders.gl changes:\n// - typescript port\n\nexport type ClarinetEvent =\n | 'onvalue'\n | 'onstring'\n | 'onkey'\n | 'onopenobject'\n | 'oncloseobject'\n | 'onopenarray'\n | 'onclosearray'\n | 'onerror'\n | 'onend'\n | 'onready';\n\n// Removes the MAX_BUFFER_LENGTH, originally set to 64 * 1024\nconst MAX_BUFFER_LENGTH = Number.MAX_SAFE_INTEGER;\n// const DEBUG = false;\n\nenum STATE {\n BEGIN = 0,\n VALUE, // general stuff\n OPEN_OBJECT, // {\n CLOSE_OBJECT, // }\n OPEN_ARRAY, // [\n CLOSE_ARRAY, // ]\n TEXT_ESCAPE, // \\ stuff\n STRING, // \"\"\n BACKSLASH,\n END, // No more stack\n OPEN_KEY, // , \"a\"\n CLOSE_KEY, // :\n TRUE, // r\n TRUE2, // u\n TRUE3, // e\n FALSE, // a\n FALSE2, // l\n FALSE3, // s\n FALSE4, // e\n NULL, // u\n NULL2, // l\n NULL3, // l\n NUMBER_DECIMAL_POINT, // .\n NUMBER_DIGIT // [0-9]\n}\n\nconst Char = {\n tab: 0x09, // \\t\n lineFeed: 0x0a, // \\n\n carriageReturn: 0x0d, // \\r\n space: 0x20, // \" \"\n\n doubleQuote: 0x22, // \"\n plus: 0x2b, // +\n comma: 0x2c, // ,\n minus: 0x2d, // -\n period: 0x2e, // .\n\n _0: 0x30, // 0\n _9: 0x39, // 9\n\n colon: 0x3a, // :\n\n E: 0x45, // E\n\n openBracket: 0x5b, // [\n backslash: 0x5c, // \\\n closeBracket: 0x5d, // ]\n\n a: 0x61, // a\n b: 0x62, // b\n e: 0x65, // e\n f: 0x66, // f\n l: 0x6c, // l\n n: 0x6e, // n\n r: 0x72, // r\n s: 0x73, // s\n t: 0x74, // t\n u: 0x75, // u\n\n openBrace: 0x7b, // {\n closeBrace: 0x7d // }\n};\n\nconst stringTokenPattern = /[\\\\\"\\n]/g;\n\ntype ParserEvent = (parser: ClarinetParser, event: string, data?: any) => void;\n\nexport type ClarinetParserOptions = {\n onready?: ParserEvent;\n onopenobject?: ParserEvent;\n onkey?: ParserEvent;\n oncloseobject?: ParserEvent;\n onopenarray?: ParserEvent;\n onclosearray?: ParserEvent;\n onvalue?: ParserEvent;\n onerror?: ParserEvent;\n onend?: ParserEvent;\n onchunkparsed?: ParserEvent;\n};\n\nconst DEFAULT_OPTIONS: Required<ClarinetParserOptions> = {\n onready: () => {},\n onopenobject: () => {},\n onkey: () => {},\n oncloseobject: () => {},\n onopenarray: () => {},\n onclosearray: () => {},\n onvalue: () => {},\n onerror: () => {},\n onend: () => {},\n onchunkparsed: () => {}\n};\nexport default class ClarinetParser {\n protected options: Required<ClarinetParserOptions> = DEFAULT_OPTIONS;\n\n bufferCheckPosition = MAX_BUFFER_LENGTH;\n q = '';\n c = '';\n p = '';\n closed = false;\n closedRoot = false;\n sawRoot = false;\n // tag = null;\n error: Error | null = null;\n state = STATE.BEGIN;\n stack: STATE[] = [];\n // mostly just for error reporting\n position: number = 0;\n column: number = 0;\n line: number = 1;\n slashed: boolean = false;\n unicodeI: number = 0;\n unicodeS: string | null = null;\n depth: number = 0;\n\n textNode;\n numberNode;\n\n constructor(options: ClarinetParserOptions = {}) {\n this.options = {...DEFAULT_OPTIONS, ...options};\n this.textNode = undefined;\n this.numberNode = '';\n this.emit('onready');\n }\n\n end() {\n if (this.state !== STATE.VALUE || this.depth !== 0) this._error('Unexpected end');\n\n this._closeValue();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return this;\n }\n\n resume() {\n this.error = null;\n return this;\n }\n\n close() {\n return this.write(null);\n }\n\n // protected\n\n emit(event: string, data?: any): void {\n // if (DEBUG) console.log('-- emit', event, data);\n this.options[event]?.(data, this);\n }\n\n emitNode(event: string, data?: any): void {\n this._closeValue();\n this.emit(event, data);\n }\n\n /* eslint-disable no-continue */\n // eslint-disable-next-line complexity, max-statements\n write(chunk) {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this._error('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n let i = 0;\n let c = chunk.charCodeAt(0);\n let p = this.p;\n // if (DEBUG) console.log(`write -> [${ chunk }]`);\n while (c) {\n p = c;\n this.c = c = chunk.charCodeAt(i++);\n // if chunk doesnt have next, like streaming char by char\n // this way we need to check if previous is really previous\n // if not we need to reset to what the this says is the previous\n // from buffer\n if (p !== c) {\n this.p = p;\n } else {\n p = this.p;\n }\n\n if (!c) break;\n\n // if (DEBUG) console.log(i, c, STATE[this.state]);\n this.position++;\n if (c === Char.lineFeed) {\n this.line++;\n this.column = 0;\n } else this.column++;\n\n switch (this.state) {\n case STATE.BEGIN:\n if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (!isWhitespace(c)) {\n this._error('Non-whitespace before {[.');\n }\n continue;\n\n case STATE.OPEN_KEY:\n case STATE.OPEN_OBJECT:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_KEY) this.stack.push(STATE.CLOSE_KEY);\n else if (c === Char.closeBrace) {\n this.emit('onopenobject');\n this.depth++;\n this.emit('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else this.stack.push(STATE.CLOSE_OBJECT);\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else this._error('Malformed object key should start with \"');\n continue;\n\n case STATE.CLOSE_KEY:\n case STATE.CLOSE_OBJECT:\n if (isWhitespace(c)) continue;\n // let event = this.state === STATE.CLOSE_KEY ? 'key' : 'object';\n if (c === Char.colon) {\n if (this.state === STATE.CLOSE_OBJECT) {\n this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue('onopenobject');\n this.depth++;\n } else this._closeValue('onkey');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBrace) {\n this.emitNode('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (c === Char.comma) {\n if (this.state === STATE.CLOSE_OBJECT) this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue();\n this.state = STATE.OPEN_KEY;\n } else this._error('Bad object');\n continue;\n\n case STATE.OPEN_ARRAY: // after an array there always a value\n case STATE.VALUE:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_ARRAY) {\n this.emit('onopenarray');\n this.depth++;\n this.state = STATE.VALUE;\n if (c === Char.closeBracket) {\n this.emit('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else {\n this.stack.push(STATE.CLOSE_ARRAY);\n }\n }\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (c === Char.t) this.state = STATE.TRUE;\n else if (c === Char.f) this.state = STATE.FALSE;\n else if (c === Char.n) this.state = STATE.NULL;\n else if (c === Char.minus) {\n // keep and continue\n this.numberNode += '-';\n } else if (Char._0 <= c && c <= Char._9) {\n this.numberNode += String.fromCharCode(c);\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Bad value');\n continue;\n\n case STATE.CLOSE_ARRAY:\n if (c === Char.comma) {\n this.stack.push(STATE.CLOSE_ARRAY);\n this._closeValue('onvalue');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBracket) {\n this.emitNode('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (isWhitespace(c)) continue;\n else this._error('Bad array');\n continue;\n\n case STATE.STRING:\n if (this.textNode === undefined) {\n this.textNode = '';\n }\n\n // thanks thejh, this is an about 50% performance improvement.\n let starti = i - 1;\n let slashed = this.slashed;\n let unicodeI = this.unicodeI;\n // eslint-disable-next-line no-constant-condition, no-labels\n STRING_BIGLOOP: while (true) {\n // if (DEBUG) console.log(i, c, STATE[this.state], slashed);\n // zero means \"no unicode active\". 1-4 mean \"parse some more\". end after 4.\n while (unicodeI > 0) {\n this.unicodeS += String.fromCharCode(c);\n c = chunk.charCodeAt(i++);\n this.position++;\n if (unicodeI === 4) {\n // TODO this might be slow? well, probably not used too often anyway\n this.textNode += String.fromCharCode(parseInt(this.unicodeS as string, 16));\n unicodeI = 0;\n starti = i - 1;\n } else {\n unicodeI++;\n }\n // we can just break here: no stuff we skipped that still has to be sliced out or so\n // eslint-disable-next-line no-labels\n if (!c) break STRING_BIGLOOP;\n }\n if (c === Char.doubleQuote && !slashed) {\n this.state = this.stack.pop() || STATE.VALUE;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n if (c === Char.backslash && !slashed) {\n slashed = true;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n c = chunk.charCodeAt(i++);\n this.position++;\n if (!c) break;\n }\n if (slashed) {\n slashed = false;\n if (c === Char.n) {\n this.textNode += '\\n';\n } else if (c === Char.r) {\n this.textNode += '\\r';\n } else if (c === Char.t) {\n this.textNode += '\\t';\n } else if (c === Char.f) {\n this.textNode += '\\f';\n } else if (c === Char.b) {\n this.textNode += '\\b';\n } else if (c === Char.u) {\n // \\uxxxx. meh!\n unicodeI = 1;\n this.unicodeS = '';\n } else {\n this.textNode += String.fromCharCode(c);\n }\n c = chunk.charCodeAt(i++);\n this.position++;\n starti = i - 1;\n if (!c) break;\n else continue;\n }\n\n stringTokenPattern.lastIndex = i;\n const reResult = stringTokenPattern.exec(chunk);\n if (reResult === null) {\n i = chunk.length + 1;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n i = reResult.index + 1;\n c = chunk.charCodeAt(reResult.index);\n if (!c) {\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n }\n this.slashed = slashed;\n this.unicodeI = unicodeI;\n continue;\n\n case STATE.TRUE:\n if (c === Char.r) this.state = STATE.TRUE2;\n else this._error(`Invalid true started with t${c}`);\n continue;\n\n case STATE.TRUE2:\n if (c === Char.u) this.state = STATE.TRUE3;\n else this._error(`Invalid true started with tr${c}`);\n continue;\n\n case STATE.TRUE3:\n if (c === Char.e) {\n this.emit('onvalue', true);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid true started with tru${c}`);\n continue;\n\n case STATE.FALSE:\n if (c === Char.a) this.state = STATE.FALSE2;\n else this._error(`Invalid false started with f${c}`);\n continue;\n\n case STATE.FALSE2:\n if (c === Char.l) this.state = STATE.FALSE3;\n else this._error(`Invalid false started with fa${c}`);\n continue;\n\n case STATE.FALSE3:\n if (c === Char.s) this.state = STATE.FALSE4;\n else this._error(`Invalid false started with fal${c}`);\n continue;\n\n case STATE.FALSE4:\n if (c === Char.e) {\n this.emit('onvalue', false);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid false started with fals${c}`);\n continue;\n\n case STATE.NULL:\n if (c === Char.u) this.state = STATE.NULL2;\n else this._error(`Invalid null started with n${c}`);\n continue;\n\n case STATE.NULL2:\n if (c === Char.l) this.state = STATE.NULL3;\n else this._error(`Invalid null started with nu${c}`);\n continue;\n\n case STATE.NULL3:\n if (c === Char.l) {\n this.emit('onvalue', null);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid null started with nul${c}`);\n continue;\n\n case STATE.NUMBER_DECIMAL_POINT:\n if (c === Char.period) {\n this.numberNode += '.';\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Leading zero not followed by .');\n continue;\n\n case STATE.NUMBER_DIGIT:\n if (Char._0 <= c && c <= Char._9) this.numberNode += String.fromCharCode(c);\n else if (c === Char.period) {\n if (this.numberNode.indexOf('.') !== -1) this._error('Invalid number has two dots');\n this.numberNode += '.';\n } else if (c === Char.e || c === Char.E) {\n if (this.numberNode.indexOf('e') !== -1 || this.numberNode.indexOf('E') !== -1)\n this._error('Invalid number has two exponential');\n this.numberNode += 'e';\n } else if (c === Char.plus || c === Char.minus) {\n // @ts-expect-error\n if (!(p === Char.e || p === Char.E)) this._error('Invalid symbol in number');\n this.numberNode += String.fromCharCode(c);\n } else {\n this._closeNumber();\n i--; // go back one\n this.state = this.stack.pop() || STATE.VALUE;\n }\n continue;\n\n default:\n this._error(`Unknown state: ${this.state}`);\n }\n }\n if (this.position >= this.bufferCheckPosition) {\n checkBufferLength(this);\n }\n\n this.emit('onchunkparsed');\n\n return this;\n }\n\n _closeValue(event: string = 'onvalue'): void {\n if (this.textNode !== undefined) {\n this.emit(event, this.textNode);\n }\n this.textNode = undefined;\n }\n\n _closeNumber(): void {\n if (this.numberNode) this.emit('onvalue', parseFloat(this.numberNode));\n this.numberNode = '';\n }\n\n _error(message: string = ''): void {\n this._closeValue();\n message += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n const error = new Error(message);\n this.error = error;\n this.emit('onerror', error);\n }\n}\n\nfunction isWhitespace(c): boolean {\n return c === Char.carriageReturn || c === Char.lineFeed || c === Char.space || c === Char.tab;\n}\n\nfunction checkBufferLength(parser) {\n const maxAllowed = Math.max(MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n\n for (const buffer of ['textNode', 'numberNode']) {\n const len = parser[buffer] === undefined ? 0 : parser[buffer].length;\n if (len > maxAllowed) {\n switch (buffer) {\n case 'text':\n // TODO - should this be closeValue?\n // closeText(parser);\n break;\n\n default:\n parser._error(`Max buffer length exceeded: ${buffer}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n parser.bufferCheckPosition = MAX_BUFFER_LENGTH - maxActual + parser.position;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"clarinet.js","names":["MAX_BUFFER_LENGTH","Number","MAX_SAFE_INTEGER","STATE","Char","tab","lineFeed","carriageReturn","space","doubleQuote","plus","comma","minus","period","_0","_9","colon","E","openBracket","backslash","closeBracket","a","b","e","f","l","n","r","s","t","u","openBrace","closeBrace","stringTokenPattern","DEFAULT_OPTIONS","onready","onopenobject","onkey","oncloseobject","onopenarray","onclosearray","onvalue","onerror","onend","onchunkparsed","ClarinetParser","constructor","options","arguments","length","undefined","_defineProperty","BEGIN","textNode","numberNode","emit","end","state","VALUE","depth","_error","_closeValue","c","closed","resume","error","close","write","event","data","_this$options$event","_this$options","call","emitNode","chunk","i","charCodeAt","p","position","line","column","OPEN_OBJECT","OPEN_ARRAY","isWhitespace","OPEN_KEY","stack","push","CLOSE_KEY","pop","CLOSE_OBJECT","STRING","CLOSE_ARRAY","TRUE","FALSE","NULL","String","fromCharCode","NUMBER_DIGIT","starti","slashed","unicodeI","STRING_BIGLOOP","unicodeS","parseInt","substring","lastIndex","reResult","exec","index","TRUE2","concat","TRUE3","FALSE2","FALSE3","FALSE4","NULL2","NULL3","NUMBER_DECIMAL_POINT","indexOf","_closeNumber","bufferCheckPosition","checkBufferLength","parseFloat","message","Error","parser","maxAllowed","Math","max","maxActual","buffer","len"],"sources":["../../../../src/lib/clarinet/clarinet.ts"],"sourcesContent":["// loaders.gl, MIT license\n// This is a fork of the clarinet library, originally BSD license (see LICENSE file)\n// loaders.gl changes:\n// - typescript port\n\nexport type ClarinetEvent =\n | 'onvalue'\n | 'onstring'\n | 'onkey'\n | 'onopenobject'\n | 'oncloseobject'\n | 'onopenarray'\n | 'onclosearray'\n | 'onerror'\n | 'onend'\n | 'onready';\n\n// Removes the MAX_BUFFER_LENGTH, originally set to 64 * 1024\nconst MAX_BUFFER_LENGTH = Number.MAX_SAFE_INTEGER;\n// const DEBUG = false;\n\nenum STATE {\n BEGIN = 0,\n VALUE, // general stuff\n OPEN_OBJECT, // {\n CLOSE_OBJECT, // }\n OPEN_ARRAY, // [\n CLOSE_ARRAY, // ]\n TEXT_ESCAPE, // \\ stuff\n STRING, // \"\"\n BACKSLASH,\n END, // No more stack\n OPEN_KEY, // , \"a\"\n CLOSE_KEY, // :\n TRUE, // r\n TRUE2, // u\n TRUE3, // e\n FALSE, // a\n FALSE2, // l\n FALSE3, // s\n FALSE4, // e\n NULL, // u\n NULL2, // l\n NULL3, // l\n NUMBER_DECIMAL_POINT, // .\n NUMBER_DIGIT // [0-9]\n}\n\nconst Char = {\n tab: 0x09, // \\t\n lineFeed: 0x0a, // \\n\n carriageReturn: 0x0d, // \\r\n space: 0x20, // \" \"\n\n doubleQuote: 0x22, // \"\n plus: 0x2b, // +\n comma: 0x2c, // ,\n minus: 0x2d, // -\n period: 0x2e, // .\n\n _0: 0x30, // 0\n _9: 0x39, // 9\n\n colon: 0x3a, // :\n\n E: 0x45, // E\n\n openBracket: 0x5b, // [\n backslash: 0x5c, // \\\n closeBracket: 0x5d, // ]\n\n a: 0x61, // a\n b: 0x62, // b\n e: 0x65, // e\n f: 0x66, // f\n l: 0x6c, // l\n n: 0x6e, // n\n r: 0x72, // r\n s: 0x73, // s\n t: 0x74, // t\n u: 0x75, // u\n\n openBrace: 0x7b, // {\n closeBrace: 0x7d // }\n};\n\nconst stringTokenPattern = /[\\\\\"\\n]/g;\n\ntype ParserEvent = (parser: ClarinetParser, event: string, data?: any) => void;\n\nexport type ClarinetParserOptions = {\n onready?: ParserEvent;\n onopenobject?: ParserEvent;\n onkey?: ParserEvent;\n oncloseobject?: ParserEvent;\n onopenarray?: ParserEvent;\n onclosearray?: ParserEvent;\n onvalue?: ParserEvent;\n onerror?: ParserEvent;\n onend?: ParserEvent;\n onchunkparsed?: ParserEvent;\n};\n\nconst DEFAULT_OPTIONS: Required<ClarinetParserOptions> = {\n onready: () => {},\n onopenobject: () => {},\n onkey: () => {},\n oncloseobject: () => {},\n onopenarray: () => {},\n onclosearray: () => {},\n onvalue: () => {},\n onerror: () => {},\n onend: () => {},\n onchunkparsed: () => {}\n};\nexport default class ClarinetParser {\n protected options: Required<ClarinetParserOptions> = DEFAULT_OPTIONS;\n\n bufferCheckPosition = MAX_BUFFER_LENGTH;\n q = '';\n c = '';\n p = '';\n closed = false;\n closedRoot = false;\n sawRoot = false;\n // tag = null;\n error: Error | null = null;\n state = STATE.BEGIN;\n stack: STATE[] = [];\n // mostly just for error reporting\n position: number = 0;\n column: number = 0;\n line: number = 1;\n slashed: boolean = false;\n unicodeI: number = 0;\n unicodeS: string | null = null;\n depth: number = 0;\n\n textNode;\n numberNode;\n\n constructor(options: ClarinetParserOptions = {}) {\n this.options = {...DEFAULT_OPTIONS, ...options};\n this.textNode = undefined;\n this.numberNode = '';\n this.emit('onready');\n }\n\n end() {\n if (this.state !== STATE.VALUE || this.depth !== 0) this._error('Unexpected end');\n\n this._closeValue();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return this;\n }\n\n resume() {\n this.error = null;\n return this;\n }\n\n close() {\n return this.write(null);\n }\n\n // protected\n\n emit(event: string, data?: any): void {\n // if (DEBUG) console.log('-- emit', event, data);\n this.options[event]?.(data, this);\n }\n\n emitNode(event: string, data?: any): void {\n this._closeValue();\n this.emit(event, data);\n }\n\n /* eslint-disable no-continue */\n // eslint-disable-next-line complexity, max-statements\n write(chunk) {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this._error('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n let i = 0;\n let c = chunk.charCodeAt(0);\n let p = this.p;\n // if (DEBUG) console.log(`write -> [${ chunk }]`);\n while (c) {\n p = c;\n this.c = c = chunk.charCodeAt(i++);\n // if chunk doesnt have next, like streaming char by char\n // this way we need to check if previous is really previous\n // if not we need to reset to what the this says is the previous\n // from buffer\n if (p !== c) {\n this.p = p;\n } else {\n p = this.p;\n }\n\n if (!c) break;\n\n // if (DEBUG) console.log(i, c, STATE[this.state]);\n this.position++;\n if (c === Char.lineFeed) {\n this.line++;\n this.column = 0;\n } else this.column++;\n\n switch (this.state) {\n case STATE.BEGIN:\n if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (!isWhitespace(c)) {\n this._error('Non-whitespace before {[.');\n }\n continue;\n\n case STATE.OPEN_KEY:\n case STATE.OPEN_OBJECT:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_KEY) this.stack.push(STATE.CLOSE_KEY);\n else if (c === Char.closeBrace) {\n this.emit('onopenobject');\n this.depth++;\n this.emit('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else this.stack.push(STATE.CLOSE_OBJECT);\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else this._error('Malformed object key should start with \"');\n continue;\n\n case STATE.CLOSE_KEY:\n case STATE.CLOSE_OBJECT:\n if (isWhitespace(c)) continue;\n // let event = this.state === STATE.CLOSE_KEY ? 'key' : 'object';\n if (c === Char.colon) {\n if (this.state === STATE.CLOSE_OBJECT) {\n this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue('onopenobject');\n this.depth++;\n } else this._closeValue('onkey');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBrace) {\n this.emitNode('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (c === Char.comma) {\n if (this.state === STATE.CLOSE_OBJECT) this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue();\n this.state = STATE.OPEN_KEY;\n } else this._error('Bad object');\n continue;\n\n case STATE.OPEN_ARRAY: // after an array there always a value\n case STATE.VALUE:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_ARRAY) {\n this.emit('onopenarray');\n this.depth++;\n this.state = STATE.VALUE;\n if (c === Char.closeBracket) {\n this.emit('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else {\n this.stack.push(STATE.CLOSE_ARRAY);\n }\n }\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (c === Char.t) this.state = STATE.TRUE;\n else if (c === Char.f) this.state = STATE.FALSE;\n else if (c === Char.n) this.state = STATE.NULL;\n else if (c === Char.minus) {\n // keep and continue\n this.numberNode += '-';\n } else if (Char._0 <= c && c <= Char._9) {\n this.numberNode += String.fromCharCode(c);\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Bad value');\n continue;\n\n case STATE.CLOSE_ARRAY:\n if (c === Char.comma) {\n this.stack.push(STATE.CLOSE_ARRAY);\n this._closeValue('onvalue');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBracket) {\n this.emitNode('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (isWhitespace(c)) continue;\n else this._error('Bad array');\n continue;\n\n case STATE.STRING:\n if (this.textNode === undefined) {\n this.textNode = '';\n }\n\n // thanks thejh, this is an about 50% performance improvement.\n let starti = i - 1;\n let slashed = this.slashed;\n let unicodeI = this.unicodeI;\n // eslint-disable-next-line no-constant-condition, no-labels\n STRING_BIGLOOP: while (true) {\n // if (DEBUG) console.log(i, c, STATE[this.state], slashed);\n // zero means \"no unicode active\". 1-4 mean \"parse some more\". end after 4.\n while (unicodeI > 0) {\n this.unicodeS += String.fromCharCode(c);\n c = chunk.charCodeAt(i++);\n this.position++;\n if (unicodeI === 4) {\n // TODO this might be slow? well, probably not used too often anyway\n this.textNode += String.fromCharCode(parseInt(this.unicodeS as string, 16));\n unicodeI = 0;\n starti = i - 1;\n } else {\n unicodeI++;\n }\n // we can just break here: no stuff we skipped that still has to be sliced out or so\n // eslint-disable-next-line no-labels\n if (!c) break STRING_BIGLOOP;\n }\n if (c === Char.doubleQuote && !slashed) {\n this.state = this.stack.pop() || STATE.VALUE;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n if (c === Char.backslash && !slashed) {\n slashed = true;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n c = chunk.charCodeAt(i++);\n this.position++;\n if (!c) break;\n }\n if (slashed) {\n slashed = false;\n if (c === Char.n) {\n this.textNode += '\\n';\n } else if (c === Char.r) {\n this.textNode += '\\r';\n } else if (c === Char.t) {\n this.textNode += '\\t';\n } else if (c === Char.f) {\n this.textNode += '\\f';\n } else if (c === Char.b) {\n this.textNode += '\\b';\n } else if (c === Char.u) {\n // \\uxxxx. meh!\n unicodeI = 1;\n this.unicodeS = '';\n } else {\n this.textNode += String.fromCharCode(c);\n }\n c = chunk.charCodeAt(i++);\n this.position++;\n starti = i - 1;\n if (!c) break;\n else continue;\n }\n\n stringTokenPattern.lastIndex = i;\n const reResult = stringTokenPattern.exec(chunk);\n if (reResult === null) {\n i = chunk.length + 1;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n i = reResult.index + 1;\n c = chunk.charCodeAt(reResult.index);\n if (!c) {\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n }\n this.slashed = slashed;\n this.unicodeI = unicodeI;\n continue;\n\n case STATE.TRUE:\n if (c === Char.r) this.state = STATE.TRUE2;\n else this._error(`Invalid true started with t${c}`);\n continue;\n\n case STATE.TRUE2:\n if (c === Char.u) this.state = STATE.TRUE3;\n else this._error(`Invalid true started with tr${c}`);\n continue;\n\n case STATE.TRUE3:\n if (c === Char.e) {\n this.emit('onvalue', true);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid true started with tru${c}`);\n continue;\n\n case STATE.FALSE:\n if (c === Char.a) this.state = STATE.FALSE2;\n else this._error(`Invalid false started with f${c}`);\n continue;\n\n case STATE.FALSE2:\n if (c === Char.l) this.state = STATE.FALSE3;\n else this._error(`Invalid false started with fa${c}`);\n continue;\n\n case STATE.FALSE3:\n if (c === Char.s) this.state = STATE.FALSE4;\n else this._error(`Invalid false started with fal${c}`);\n continue;\n\n case STATE.FALSE4:\n if (c === Char.e) {\n this.emit('onvalue', false);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid false started with fals${c}`);\n continue;\n\n case STATE.NULL:\n if (c === Char.u) this.state = STATE.NULL2;\n else this._error(`Invalid null started with n${c}`);\n continue;\n\n case STATE.NULL2:\n if (c === Char.l) this.state = STATE.NULL3;\n else this._error(`Invalid null started with nu${c}`);\n continue;\n\n case STATE.NULL3:\n if (c === Char.l) {\n this.emit('onvalue', null);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid null started with nul${c}`);\n continue;\n\n case STATE.NUMBER_DECIMAL_POINT:\n if (c === Char.period) {\n this.numberNode += '.';\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Leading zero not followed by .');\n continue;\n\n case STATE.NUMBER_DIGIT:\n if (Char._0 <= c && c <= Char._9) this.numberNode += String.fromCharCode(c);\n else if (c === Char.period) {\n if (this.numberNode.indexOf('.') !== -1) this._error('Invalid number has two dots');\n this.numberNode += '.';\n } else if (c === Char.e || c === Char.E) {\n if (this.numberNode.indexOf('e') !== -1 || this.numberNode.indexOf('E') !== -1)\n this._error('Invalid number has two exponential');\n this.numberNode += 'e';\n } else if (c === Char.plus || c === Char.minus) {\n // @ts-expect-error\n if (!(p === Char.e || p === Char.E)) this._error('Invalid symbol in number');\n this.numberNode += String.fromCharCode(c);\n } else {\n this._closeNumber();\n i--; // go back one\n this.state = this.stack.pop() || STATE.VALUE;\n }\n continue;\n\n default:\n this._error(`Unknown state: ${this.state}`);\n }\n }\n if (this.position >= this.bufferCheckPosition) {\n checkBufferLength(this);\n }\n\n this.emit('onchunkparsed');\n\n return this;\n }\n\n _closeValue(event: string = 'onvalue'): void {\n if (this.textNode !== undefined) {\n this.emit(event, this.textNode);\n }\n this.textNode = undefined;\n }\n\n _closeNumber(): void {\n if (this.numberNode) this.emit('onvalue', parseFloat(this.numberNode));\n this.numberNode = '';\n }\n\n _error(message: string = ''): void {\n this._closeValue();\n message += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n const error = new Error(message);\n this.error = error;\n this.emit('onerror', error);\n }\n}\n\nfunction isWhitespace(c): boolean {\n return c === Char.carriageReturn || c === Char.lineFeed || c === Char.space || c === Char.tab;\n}\n\nfunction checkBufferLength(parser) {\n const maxAllowed = Math.max(MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n\n for (const buffer of ['textNode', 'numberNode']) {\n const len = parser[buffer] === undefined ? 0 : parser[buffer].length;\n if (len > maxAllowed) {\n switch (buffer) {\n case 'text':\n // TODO - should this be closeValue?\n // closeText(parser);\n break;\n\n default:\n parser._error(`Max buffer length exceeded: ${buffer}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n parser.bufferCheckPosition = MAX_BUFFER_LENGTH - maxActual + parser.position;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsonpath.js","names":["JSONPath","constructor","path","arguments","length","undefined","_defineProperty","Array","isArray","push","split","Error","clone","toString","join","name","pop","set","equals","other","i","setFieldAtPath","object","value","shift","field","component","getFieldAtPath"],"sources":["../../../../src/lib/jsonpath/jsonpath.ts"],"sourcesContent":["/**\n * A parser for a minimal subset of the jsonpath standard\n * Full JSON path parsers for JS exist but are quite large (bundle size)\n *\n * Supports\n *\n * `$.component.component.component`\n */\nexport default class JSONPath {\n path: string[];\n\n constructor(path: JSONPath | string[] | string | null = null) {\n this.path = ['$'];\n\n if (path instanceof JSONPath) {\n // @ts-ignore\n this.path = [...path.path];\n return;\n }\n\n if (Array.isArray(path)) {\n this.path.push(...path);\n return;\n }\n\n // Parse a string as a JSONPath\n if (typeof path === 'string') {\n this.path = path.split('.');\n if (this.path[0] !== '$') {\n throw new Error('JSONPaths must start with $');\n }\n }\n }\n\n clone(): JSONPath {\n return new JSONPath(this);\n }\n\n toString(): string {\n return this.path.join('.');\n }\n\n push(name: string): void {\n this.path.push(name);\n }\n\n pop() {\n return this.path.pop();\n }\n\n set(name: string): void {\n this.path[this.path.length - 1] = name;\n }\n\n equals(other: JSONPath): boolean {\n if (!this || !other || this.path.length !== other.path.length) {\n return false;\n }\n\n for (let i = 0; i < this.path.length; ++i) {\n if (this.path[i] !== other.path[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Sets the value pointed at by path\n * TODO - handle root path\n * @param object\n * @param value\n */\n setFieldAtPath(object, value) {\n const path = [...this.path];\n path.shift();\n const field = path.pop();\n for (const component of path) {\n object = object[component];\n }\n // @ts-ignore\n object[field] = value;\n }\n\n /**\n * Gets the value pointed at by path\n * TODO - handle root path\n * @param object\n */\n getFieldAtPath(object) {\n const path = [...this.path];\n path.shift();\n const field = path.pop();\n for (const component of path) {\n object = object[component];\n }\n // @ts-ignore\n return object[field];\n }\n}\n"],"mappings":";AAQA,eAAe,MAAMA,QAAQ,CAAC;EAG5BC,WAAWA,CAAA,EAAmD;IAAA,IAAlDC,IAAyC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAAG,eAAA;IAC1D,IAAI,CAACJ,IAAI,GAAG,CAAC,GAAG,CAAC;IAEjB,IAAIA,IAAI,YAAYF,QAAQ,EAAE;MAE5B,IAAI,CAACE,IAAI,GAAG,CAAC,GAAGA,IAAI,CAACA,IAAI,CAAC;MAC1B;IACF;IAEA,IAAIK,KAAK,CAACC,OAAO,CAACN,IAAI,CAAC,EAAE;MACvB,IAAI,CAACA,IAAI,CAACO,IAAI,CAAC,GAAGP,IAAI,CAAC;MACvB;IACF;IAGA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MAC5B,IAAI,CAACA,IAAI,GAAGA,IAAI,CAACQ,KAAK,CAAC,GAAG,CAAC;MAC3B,IAAI,IAAI,CAACR,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACxB,MAAM,IAAIS,KAAK,CAAC,6BAA6B,CAAC;MAChD;IACF;EACF;EAEAC,KAAKA,CAAA,EAAa;IAChB,OAAO,IAAIZ,QAAQ,CAAC,IAAI,CAAC;EAC3B;EAEAa,QAAQA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACX,IAAI,CAACY,IAAI,CAAC,GAAG,CAAC;EAC5B;EAEAL,IAAIA,CAACM,IAAY,EAAQ;IACvB,IAAI,CAACb,IAAI,CAACO,IAAI,CAACM,IAAI,CAAC;EACtB;EAEAC,GAAGA,CAAA,EAAG;IACJ,OAAO,IAAI,CAACd,IAAI,CAACc,GAAG,EAAE;EACxB;EAEAC,GAAGA,CAACF,IAAY,EAAQ;IACtB,IAAI,CAACb,IAAI,CAAC,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC,GAAGW,IAAI;EACxC;EAEAG,MAAMA,CAACC,KAAe,EAAW;IAC/B,IAAI,CAAC,IAAI,IAAI,CAACA,KAAK,IAAI,IAAI,CAACjB,IAAI,CAACE,MAAM,KAAKe,KAAK,CAACjB,IAAI,CAACE,MAAM,EAAE;MAC7D,OAAO,KAAK;IACd;IAEA,KAAK,IAAIgB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAClB,IAAI,CAACE,MAAM,EAAE,EAAEgB,CAAC,EAAE;MACzC,IAAI,IAAI,CAAClB,IAAI,CAACkB,CAAC,CAAC,KAAKD,KAAK,CAACjB,IAAI,CAACkB,CAAC,CAAC,EAAE;QAClC,OAAO,KAAK;MACd;IACF;IAEA,OAAO,IAAI;EACb;EAQAC,cAAcA,CAACC,MAAM,EAAEC,KAAK,EAAE;IAC5B,MAAMrB,IAAI,GAAG,CAAC,GAAG,IAAI,CAACA,IAAI,CAAC;IAC3BA,IAAI,CAACsB,KAAK,EAAE;IACZ,MAAMC,KAAK,GAAGvB,IAAI,CAACc,GAAG,EAAE;IACxB,KAAK,MAAMU,SAAS,IAAIxB,IAAI,EAAE;MAC5BoB,MAAM,GAAGA,MAAM,CAACI,SAAS,CAAC;IAC5B;IAEAJ,MAAM,CAACG,KAAK,CAAC,GAAGF,KAAK;EACvB;EAOAI,cAAcA,CAACL,MAAM,EAAE;IACrB,MAAMpB,IAAI,GAAG,CAAC,GAAG,IAAI,CAACA,IAAI,CAAC;IAC3BA,IAAI,CAACsB,KAAK,EAAE;IACZ,MAAMC,KAAK,GAAGvB,IAAI,CAACc,GAAG,EAAE;IACxB,KAAK,MAAMU,SAAS,IAAIxB,IAAI,EAAE;MAC5BoB,MAAM,GAAGA,MAAM,CAACI,SAAS,CAAC;IAC5B;IAEA,OAAOJ,MAAM,CAACG,KAAK,CAAC;EACtB;AACF"}
1
+ {"version":3,"file":"jsonpath.js","names":["JSONPath","constructor","path","arguments","length","undefined","_defineProperty","Array","isArray","push","split","Error","clone","toString","join","name","pop","set","equals","other","i","setFieldAtPath","object","value","shift","field","component","getFieldAtPath"],"sources":["../../../../src/lib/jsonpath/jsonpath.ts"],"sourcesContent":["/**\n * A parser for a minimal subset of the jsonpath standard\n * Full JSON path parsers for JS exist but are quite large (bundle size)\n *\n * Supports\n *\n * `$.component.component.component`\n */\nexport default class JSONPath {\n path: string[];\n\n constructor(path: JSONPath | string[] | string | null = null) {\n this.path = ['$'];\n\n if (path instanceof JSONPath) {\n // @ts-ignore\n this.path = [...path.path];\n return;\n }\n\n if (Array.isArray(path)) {\n this.path.push(...path);\n return;\n }\n\n // Parse a string as a JSONPath\n if (typeof path === 'string') {\n this.path = path.split('.');\n if (this.path[0] !== '$') {\n throw new Error('JSONPaths must start with $');\n }\n }\n }\n\n clone(): JSONPath {\n return new JSONPath(this);\n }\n\n toString(): string {\n return this.path.join('.');\n }\n\n push(name: string): void {\n this.path.push(name);\n }\n\n pop() {\n return this.path.pop();\n }\n\n set(name: string): void {\n this.path[this.path.length - 1] = name;\n }\n\n equals(other: JSONPath): boolean {\n if (!this || !other || this.path.length !== other.path.length) {\n return false;\n }\n\n for (let i = 0; i < this.path.length; ++i) {\n if (this.path[i] !== other.path[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Sets the value pointed at by path\n * TODO - handle root path\n * @param object\n * @param value\n */\n setFieldAtPath(object, value) {\n const path = [...this.path];\n path.shift();\n const field = path.pop();\n for (const component of path) {\n object = object[component];\n }\n // @ts-ignore\n object[field] = value;\n }\n\n /**\n * Gets the value pointed at by path\n * TODO - handle root path\n * @param object\n */\n getFieldAtPath(object) {\n const path = [...this.path];\n path.shift();\n const field = path.pop();\n for (const component of path) {\n object = object[component];\n }\n // @ts-ignore\n return object[field];\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-json-in-batches.js","names":["TableBatchBuilder","assert","makeTextDecoderIterator","StreamingJSONParser","JSONPath","parseJSONInBatches","binaryAsyncIterator","options","_options$json","asyncIterator","metadata","jsonpaths","json","isFirstChunk","schema","shape","tableBatchBuilder","parser","chunk","rows","write","jsonpath","length","getStreamingJsonPathAsString","initialBatch","batchType","data","bytesUsed","container","getPartialResult","row","addRow","batch","getFullBatch","chunkComplete","getFinalBatch","finalBatch","rebuildJsonObject","topLevelObject","streamingPath","setFieldAtPath"],"sources":["../../../src/lib/parse-json-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from '../json-loader';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {assert, makeTextDecoderIterator} from '@loaders.gl/loader-utils';\nimport StreamingJSONParser from './parser/streaming-json-parser';\nimport JSONPath from './jsonpath/jsonpath';\n\n// TODO - support batch size 0 = no batching/single batch?\n// eslint-disable-next-line max-statements, complexity\nexport default async function* parseJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options: JSONLoaderOptions\n): AsyncIterable<Batch> {\n const asyncIterator = makeTextDecoderIterator(binaryAsyncIterator);\n\n const {metadata} = options;\n const {jsonpaths} = options.json || {};\n\n let isFirstChunk: boolean = true;\n\n // TODO fix Schema deduction\n const schema = null; // new Schema([]);\n const shape = options?.json?.shape || 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n const parser = new StreamingJSONParser({jsonpaths});\n\n for await (const chunk of asyncIterator) {\n const rows = parser.write(chunk);\n\n const jsonpath = rows.length > 0 && parser.getStreamingJsonPathAsString();\n\n if (rows.length > 0 && isFirstChunk) {\n if (metadata) {\n const initialBatch: Batch = {\n // Common fields\n shape,\n batchType: 'partial-result',\n data: [],\n length: 0,\n bytesUsed: 0,\n // JSON additions\n container: parser.getPartialResult(),\n jsonpath\n };\n yield initialBatch;\n }\n isFirstChunk = false;\n // schema = deduceSchema(rows);\n }\n\n // Add the row\n for (const row of rows) {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n tableBatchBuilder.chunkComplete(chunk);\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n // yield final batch\n const jsonpath = parser.getStreamingJsonPathAsString();\n const batch = tableBatchBuilder.getFinalBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n\n if (metadata) {\n const finalBatch: Batch = {\n shape,\n batchType: 'final-result',\n container: parser.getPartialResult(),\n jsonpath: parser.getStreamingJsonPathAsString(),\n data: [],\n length: 0\n // schema: null\n };\n yield finalBatch;\n }\n}\n\nexport function rebuildJsonObject(batch, data) {\n // Last batch will have this special type and will provide all the root object of the parsed file\n assert(batch.batchType === 'final-result');\n\n // The streamed JSON data is a top level array (jsonpath = '$'), just return the array of row objects\n if (batch.jsonpath === '$') {\n return data;\n }\n\n // (jsonpath !== '$') The streamed data is not a top level array, so stitch it back in to the top-level object\n if (batch.jsonpath && batch.jsonpath.length > 1) {\n const topLevelObject = batch.container;\n const streamingPath = new JSONPath(batch.jsonpath);\n streamingPath.setFieldAtPath(topLevelObject, data);\n return topLevelObject;\n }\n\n // No jsonpath, in this case nothing was streamed.\n return batch.container;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-json-in-batches.js","names":["TableBatchBuilder","assert","makeTextDecoderIterator","StreamingJSONParser","JSONPath","parseJSONInBatches","binaryAsyncIterator","options","_options$json","asyncIterator","metadata","jsonpaths","json","isFirstChunk","schema","shape","tableBatchBuilder","parser","chunk","rows","write","jsonpath","length","getStreamingJsonPathAsString","initialBatch","batchType","data","bytesUsed","container","getPartialResult","row","addRow","batch","getFullBatch","chunkComplete","getFinalBatch","finalBatch","rebuildJsonObject","topLevelObject","streamingPath","setFieldAtPath"],"sources":["../../../src/lib/parse-json-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from '../json-loader';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {assert, makeTextDecoderIterator} from '@loaders.gl/loader-utils';\nimport StreamingJSONParser from './parser/streaming-json-parser';\nimport JSONPath from './jsonpath/jsonpath';\n\n// TODO - support batch size 0 = no batching/single batch?\n// eslint-disable-next-line max-statements, complexity\nexport default async function* parseJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options: JSONLoaderOptions\n): AsyncIterable<Batch> {\n const asyncIterator = makeTextDecoderIterator(binaryAsyncIterator);\n\n const {metadata} = options;\n const {jsonpaths} = options.json || {};\n\n let isFirstChunk: boolean = true;\n\n // TODO fix Schema deduction\n const schema = null; // new Schema([]);\n const shape = options?.json?.shape || 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n const parser = new StreamingJSONParser({jsonpaths});\n\n for await (const chunk of asyncIterator) {\n const rows = parser.write(chunk);\n\n const jsonpath = rows.length > 0 && parser.getStreamingJsonPathAsString();\n\n if (rows.length > 0 && isFirstChunk) {\n if (metadata) {\n const initialBatch: Batch = {\n // Common fields\n shape,\n batchType: 'partial-result',\n data: [],\n length: 0,\n bytesUsed: 0,\n // JSON additions\n container: parser.getPartialResult(),\n jsonpath\n };\n yield initialBatch;\n }\n isFirstChunk = false;\n // schema = deduceSchema(rows);\n }\n\n // Add the row\n for (const row of rows) {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n tableBatchBuilder.chunkComplete(chunk);\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n // yield final batch\n const jsonpath = parser.getStreamingJsonPathAsString();\n const batch = tableBatchBuilder.getFinalBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n\n if (metadata) {\n const finalBatch: Batch = {\n shape,\n batchType: 'final-result',\n container: parser.getPartialResult(),\n jsonpath: parser.getStreamingJsonPathAsString(),\n data: [],\n length: 0\n // schema: null\n };\n yield finalBatch;\n }\n}\n\nexport function rebuildJsonObject(batch, data) {\n // Last batch will have this special type and will provide all the root object of the parsed file\n assert(batch.batchType === 'final-result');\n\n // The streamed JSON data is a top level array (jsonpath = '$'), just return the array of row objects\n if (batch.jsonpath === '$') {\n return data;\n }\n\n // (jsonpath !== '$') The streamed data is not a top level array, so stitch it back in to the top-level object\n if (batch.jsonpath && batch.jsonpath.length > 1) {\n const topLevelObject = batch.container;\n const streamingPath = new JSONPath(batch.jsonpath);\n streamingPath.setFieldAtPath(topLevelObject, data);\n return topLevelObject;\n }\n\n // No jsonpath, in this case nothing was streamed.\n return batch.container;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-ndjson-in-batches.js","names":["TableBatchBuilder","makeLineIterator","makeNumberedLineIterator","makeTextDecoderIterator","parseNDJSONInBatches","binaryAsyncIterator","options","textIterator","lineIterator","numberedLineIterator","schema","shape","tableBatchBuilder","counter","line","row","JSON","parse","addRow","chunkComplete","batch","getFullBatch","error","Error","concat","getFinalBatch"],"sources":["../../../src/lib/parse-ndjson-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {\n LoaderOptions,\n makeLineIterator,\n makeNumberedLineIterator,\n makeTextDecoderIterator\n} from '@loaders.gl/loader-utils';\n\nexport default async function* parseNDJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: LoaderOptions\n): AsyncIterable<Batch> {\n const textIterator = makeTextDecoderIterator(binaryAsyncIterator);\n const lineIterator = makeLineIterator(textIterator);\n const numberedLineIterator = makeNumberedLineIterator(lineIterator);\n\n const schema = null;\n const shape = 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n for await (const {counter, line} of numberedLineIterator) {\n try {\n const row = JSON.parse(line);\n tableBatchBuilder.addRow(row);\n tableBatchBuilder.chunkComplete(line);\n const batch = tableBatchBuilder.getFullBatch();\n if (batch) {\n yield batch;\n }\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter}`);\n }\n }\n\n const batch = tableBatchBuilder.getFinalBatch();\n if (batch) {\n yield batch;\n }\n}\n"],"mappings":"AACA,SAAQA,iBAAiB,QAAO,oBAAoB;AACpD,SAEEC,gBAAgB,EAChBC,wBAAwB,EACxBC,uBAAuB,QAClB,0BAA0B;AAEjC,eAAe,gBAAgBC,oBAAoBA,CACjDC,mBAAuE,EACvEC,OAAuB,EACD;EACtB,MAAMC,YAAY,GAAGJ,uBAAuB,CAACE,mBAAmB,CAAC;EACjE,MAAMG,YAAY,GAAGP,gBAAgB,CAACM,YAAY,CAAC;EACnD,MAAME,oBAAoB,GAAGP,wBAAwB,CAACM,YAAY,CAAC;EAEnE,MAAME,MAAM,GAAG,IAAI;EACnB,MAAMC,KAAK,GAAG,WAAW;EAEzB,MAAMC,iBAAiB,GAAG,IAAIZ,iBAAiB,CAACU,MAAM,EAAE;IACtD,GAAGJ,OAAO;IACVK;EACF,CAAC,CAAC;EAEF,WAAW,MAAM;IAACE,OAAO;IAAEC;EAAI,CAAC,IAAIL,oBAAoB,EAAE;IACxD,IAAI;MACF,MAAMM,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;MAC5BF,iBAAiB,CAACM,MAAM,CAACH,GAAG,CAAC;MAC7BH,iBAAiB,CAACO,aAAa,CAACL,IAAI,CAAC;MACrC,MAAMM,KAAK,GAAGR,iBAAiB,CAACS,YAAY,EAAE;MAC9C,IAAID,KAAK,EAAE;QACT,MAAMA,KAAK;MACb;IACF,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,MAAM,IAAIC,KAAK,+CAAAC,MAAA,CAA+CX,OAAO,EAAG;IAC1E;EACF;EAEA,MAAMO,KAAK,GAAGR,iBAAiB,CAACa,aAAa,EAAE;EAC/C,IAAIL,KAAK,EAAE;IACT,MAAMA,KAAK;EACb;AACF"}
1
+ {"version":3,"file":"parse-ndjson-in-batches.js","names":["TableBatchBuilder","makeLineIterator","makeNumberedLineIterator","makeTextDecoderIterator","parseNDJSONInBatches","binaryAsyncIterator","options","textIterator","lineIterator","numberedLineIterator","schema","shape","tableBatchBuilder","counter","line","row","JSON","parse","addRow","chunkComplete","batch","getFullBatch","error","Error","concat","getFinalBatch"],"sources":["../../../src/lib/parse-ndjson-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {\n LoaderOptions,\n makeLineIterator,\n makeNumberedLineIterator,\n makeTextDecoderIterator\n} from '@loaders.gl/loader-utils';\n\nexport default async function* parseNDJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: LoaderOptions\n): AsyncIterable<Batch> {\n const textIterator = makeTextDecoderIterator(binaryAsyncIterator);\n const lineIterator = makeLineIterator(textIterator);\n const numberedLineIterator = makeNumberedLineIterator(lineIterator);\n\n const schema = null;\n const shape = 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n for await (const {counter, line} of numberedLineIterator) {\n try {\n const row = JSON.parse(line);\n tableBatchBuilder.addRow(row);\n tableBatchBuilder.chunkComplete(line);\n const batch = tableBatchBuilder.getFullBatch();\n if (batch) {\n yield batch;\n }\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter}`);\n }\n }\n\n const batch = tableBatchBuilder.getFinalBatch();\n if (batch) {\n yield batch;\n }\n}\n"],"mappings":"AACA,SAAQA,iBAAiB,QAAO,oBAAoB;AACpD,SAEEC,gBAAgB,EAChBC,wBAAwB,EACxBC,uBAAuB,QAClB,0BAA0B;AAEjC,eAAe,gBAAgBC,oBAAoBA,CACjDC,mBAAuE,EACvEC,OAAuB,EACD;EACtB,MAAMC,YAAY,GAAGJ,uBAAuB,CAACE,mBAAmB,CAAC;EACjE,MAAMG,YAAY,GAAGP,gBAAgB,CAACM,YAAY,CAAC;EACnD,MAAME,oBAAoB,GAAGP,wBAAwB,CAACM,YAAY,CAAC;EAEnE,MAAME,MAAM,GAAG,IAAI;EACnB,MAAMC,KAAK,GAAG,WAAW;EAEzB,MAAMC,iBAAiB,GAAG,IAAIZ,iBAAiB,CAACU,MAAM,EAAE;IACtD,GAAGJ,OAAO;IACVK;EACF,CAAC,CAAC;EAEF,WAAW,MAAM;IAACE,OAAO;IAAEC;EAAI,CAAC,IAAIL,oBAAoB,EAAE;IACxD,IAAI;MACF,MAAMM,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;MAC5BF,iBAAiB,CAACM,MAAM,CAACH,GAAG,CAAC;MAC7BH,iBAAiB,CAACO,aAAa,CAACL,IAAI,CAAC;MACrC,MAAMM,KAAK,GAAGR,iBAAiB,CAACS,YAAY,CAAC,CAAC;MAC9C,IAAID,KAAK,EAAE;QACT,MAAMA,KAAK;MACb;IACF,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,MAAM,IAAIC,KAAK,+CAAAC,MAAA,CAA+CX,OAAO,CAAE,CAAC;IAC1E;EACF;EAEA,MAAMO,KAAK,GAAGR,iBAAiB,CAACa,aAAa,CAAC,CAAC;EAC/C,IAAIL,KAAK,EAAE;IACT,MAAMA,KAAK;EACb;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-ndjson.js","names":["parseNDJSONSync","ndjsonText","lines","trim","split","map","line","counter","JSON","parse","error","Error","concat"],"sources":["../../../src/lib/parse-ndjson.ts"],"sourcesContent":["export default function parseNDJSONSync(ndjsonText: string) {\n const lines = ndjsonText.trim().split('\\n');\n return lines.map((line, counter) => {\n try {\n return JSON.parse(line);\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter + 1}`);\n }\n });\n}\n"],"mappings":"AAAA,eAAe,SAASA,eAAeA,CAACC,UAAkB,EAAE;EAC1D,MAAMC,KAAK,GAAGD,UAAU,CAACE,IAAI,EAAE,CAACC,KAAK,CAAC,IAAI,CAAC;EAC3C,OAAOF,KAAK,CAACG,GAAG,CAAC,CAACC,IAAI,EAAEC,OAAO,KAAK;IAClC,IAAI;MACF,OAAOC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACzB,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd,MAAM,IAAIC,KAAK,+CAAAC,MAAA,CAA+CL,OAAO,GAAG,CAAC,EAAG;IAC9E;EACF,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"parse-ndjson.js","names":["parseNDJSONSync","ndjsonText","lines","trim","split","map","line","counter","JSON","parse","error","Error","concat"],"sources":["../../../src/lib/parse-ndjson.ts"],"sourcesContent":["export default function parseNDJSONSync(ndjsonText: string) {\n const lines = ndjsonText.trim().split('\\n');\n return lines.map((line, counter) => {\n try {\n return JSON.parse(line);\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter + 1}`);\n }\n });\n}\n"],"mappings":"AAAA,eAAe,SAASA,eAAeA,CAACC,UAAkB,EAAE;EAC1D,MAAMC,KAAK,GAAGD,UAAU,CAACE,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC;EAC3C,OAAOF,KAAK,CAACG,GAAG,CAAC,CAACC,IAAI,EAAEC,OAAO,KAAK;IAClC,IAAI;MACF,OAAOC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACzB,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd,MAAM,IAAIC,KAAK,+CAAAC,MAAA,CAA+CL,OAAO,GAAG,CAAC,CAAE,CAAC;IAC9E;EACF,CAAC,CAAC;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-parser.js","names":["ClarinetParser","JSONPath","JSONParser","constructor","options","_defineProperty","undefined","Object","freeze","container","key","reset","parser","onready","jsonpath","previousStates","length","currentState","onopenobject","name","_openObject","emit","onkey","set","oncloseobject","_closeObject","onopenarray","_openArray","onclosearray","_closeArray","onvalue","value","_pushOrSet","onerror","error","onend","result","pop","write","chunk","close","push","newContainer","arguments","isArray"],"sources":["../../../../src/lib/parser/json-parser.ts"],"sourcesContent":["// @ts-nocheck\n\nimport ClarinetParser, {ClarinetParserOptions} from '../clarinet/clarinet';\nimport JSONPath from '../jsonpath/jsonpath';\n\n// JSONParser builds a JSON object using the events emitted by the Clarinet parser\n\nexport default class JSONParser {\n readonly parser: ClarinetParser;\n result = undefined;\n previousStates = [];\n currentState = Object.freeze({container: [], key: null});\n jsonpath: JSONPath = new JSONPath();\n\n constructor(options: ClarinetParserOptions) {\n this.reset();\n this.parser = new ClarinetParser({\n onready: () => {\n this.jsonpath = new JSONPath();\n this.previousStates.length = 0;\n this.currentState.container.length = 0;\n },\n\n onopenobject: (name) => {\n this._openObject({});\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n },\n\n onkey: (name) => {\n this.jsonpath.set(name);\n this.currentState.key = name;\n },\n\n oncloseobject: () => {\n this._closeObject();\n },\n\n onopenarray: () => {\n this._openArray();\n },\n\n onclosearray: () => {\n this._closeArray();\n },\n\n onvalue: (value) => {\n this._pushOrSet(value);\n },\n\n onerror: (error) => {\n throw error;\n },\n\n onend: () => {\n this.result = this.currentState.container.pop();\n },\n\n ...options\n });\n }\n\n reset(): void {\n this.result = undefined;\n this.previousStates = [];\n this.currentState = Object.freeze({container: [], key: null});\n this.jsonpath = new JSONPath();\n }\n\n write(chunk): void {\n this.parser.write(chunk);\n }\n\n close(): void {\n this.parser.close();\n }\n\n // PRIVATE METHODS\n\n _pushOrSet(value): void {\n const {container, key} = this.currentState;\n if (key !== null) {\n container[key] = value;\n this.currentState.key = null;\n } else {\n container.push(value);\n }\n }\n\n _openArray(newContainer = []): void {\n this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: true, key: null};\n }\n\n _closeArray(): void {\n this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n\n _openObject(newContainer = {}): void {\n this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: false, key: null};\n }\n\n _closeObject(): void {\n this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n}\n"],"mappings":";AAEA,OAAOA,cAAc,MAA+B,sBAAsB;AAC1E,OAAOC,QAAQ,MAAM,sBAAsB;AAI3C,eAAe,MAAMC,UAAU,CAAC;EAO9BC,WAAWA,CAACC,OAA8B,EAAE;IAAAC,eAAA;IAAAA,eAAA,iBALnCC,SAAS;IAAAD,eAAA,yBACD,EAAE;IAAAA,eAAA,uBACJE,MAAM,CAACC,MAAM,CAAC;MAACC,SAAS,EAAE,EAAE;MAAEC,GAAG,EAAE;IAAI,CAAC,CAAC;IAAAL,eAAA,mBACnC,IAAIJ,QAAQ,EAAE;IAGjC,IAAI,CAACU,KAAK,EAAE;IACZ,IAAI,CAACC,MAAM,GAAG,IAAIZ,cAAc,CAAC;MAC/Ba,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACC,QAAQ,GAAG,IAAIb,QAAQ,EAAE;QAC9B,IAAI,CAACc,cAAc,CAACC,MAAM,GAAG,CAAC;QAC9B,IAAI,CAACC,YAAY,CAACR,SAAS,CAACO,MAAM,GAAG,CAAC;MACxC,CAAC;MAEDE,YAAY,EAAGC,IAAI,IAAK;QACtB,IAAI,CAACC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,OAAOD,IAAI,KAAK,WAAW,EAAE;UAC/B,IAAI,CAACP,MAAM,CAACS,IAAI,CAAC,OAAO,EAAEF,IAAI,CAAC;QACjC;MACF,CAAC;MAEDG,KAAK,EAAGH,IAAI,IAAK;QACf,IAAI,CAACL,QAAQ,CAACS,GAAG,CAACJ,IAAI,CAAC;QACvB,IAAI,CAACF,YAAY,CAACP,GAAG,GAAGS,IAAI;MAC9B,CAAC;MAEDK,aAAa,EAAEA,CAAA,KAAM;QACnB,IAAI,CAACC,YAAY,EAAE;MACrB,CAAC;MAEDC,WAAW,EAAEA,CAAA,KAAM;QACjB,IAAI,CAACC,UAAU,EAAE;MACnB,CAAC;MAEDC,YAAY,EAAEA,CAAA,KAAM;QAClB,IAAI,CAACC,WAAW,EAAE;MACpB,CAAC;MAEDC,OAAO,EAAGC,KAAK,IAAK;QAClB,IAAI,CAACC,UAAU,CAACD,KAAK,CAAC;MACxB,CAAC;MAEDE,OAAO,EAAGC,KAAK,IAAK;QAClB,MAAMA,KAAK;MACb,CAAC;MAEDC,KAAK,EAAEA,CAAA,KAAM;QACX,IAAI,CAACC,MAAM,GAAG,IAAI,CAACnB,YAAY,CAACR,SAAS,CAAC4B,GAAG,EAAE;MACjD,CAAC;MAED,GAAGjC;IACL,CAAC,CAAC;EACJ;EAEAO,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACyB,MAAM,GAAG9B,SAAS;IACvB,IAAI,CAACS,cAAc,GAAG,EAAE;IACxB,IAAI,CAACE,YAAY,GAAGV,MAAM,CAACC,MAAM,CAAC;MAACC,SAAS,EAAE,EAAE;MAAEC,GAAG,EAAE;IAAI,CAAC,CAAC;IAC7D,IAAI,CAACI,QAAQ,GAAG,IAAIb,QAAQ,EAAE;EAChC;EAEAqC,KAAKA,CAACC,KAAK,EAAQ;IACjB,IAAI,CAAC3B,MAAM,CAAC0B,KAAK,CAACC,KAAK,CAAC;EAC1B;EAEAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAAC5B,MAAM,CAAC4B,KAAK,EAAE;EACrB;EAIAR,UAAUA,CAACD,KAAK,EAAQ;IACtB,MAAM;MAACtB,SAAS;MAAEC;IAAG,CAAC,GAAG,IAAI,CAACO,YAAY;IAC1C,IAAIP,GAAG,KAAK,IAAI,EAAE;MAChBD,SAAS,CAACC,GAAG,CAAC,GAAGqB,KAAK;MACtB,IAAI,CAACd,YAAY,CAACP,GAAG,GAAG,IAAI;IAC9B,CAAC,MAAM;MACLD,SAAS,CAACgC,IAAI,CAACV,KAAK,CAAC;IACvB;EACF;EAEAJ,UAAUA,CAAA,EAA0B;IAAA,IAAzBe,YAAY,GAAAC,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,EAAE;IAC1B,IAAI,CAAC7B,QAAQ,CAAC2B,IAAI,CAAC,IAAI,CAAC;IACxB,IAAI,CAACT,UAAU,CAACU,YAAY,CAAC;IAC7B,IAAI,CAAC3B,cAAc,CAAC0B,IAAI,CAAC,IAAI,CAACxB,YAAY,CAAC;IAC3C,IAAI,CAACA,YAAY,GAAG;MAACR,SAAS,EAAEiC,YAAY;MAAEE,OAAO,EAAE,IAAI;MAAElC,GAAG,EAAE;IAAI,CAAC;EACzE;EAEAmB,WAAWA,CAAA,EAAS;IAClB,IAAI,CAACf,QAAQ,CAACuB,GAAG,EAAE;IACnB,IAAI,CAACpB,YAAY,GAAG,IAAI,CAACF,cAAc,CAACsB,GAAG,EAAE;EAC/C;EAEAjB,WAAWA,CAAA,EAA0B;IAAA,IAAzBsB,YAAY,GAAAC,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,CAAC,CAAC;IAC3B,IAAI,CAAC7B,QAAQ,CAAC2B,IAAI,CAAC,IAAI,CAAC;IACxB,IAAI,CAACT,UAAU,CAACU,YAAY,CAAC;IAC7B,IAAI,CAAC3B,cAAc,CAAC0B,IAAI,CAAC,IAAI,CAACxB,YAAY,CAAC;IAC3C,IAAI,CAACA,YAAY,GAAG;MAACR,SAAS,EAAEiC,YAAY;MAAEE,OAAO,EAAE,KAAK;MAAElC,GAAG,EAAE;IAAI,CAAC;EAC1E;EAEAe,YAAYA,CAAA,EAAS;IACnB,IAAI,CAACX,QAAQ,CAACuB,GAAG,EAAE;IACnB,IAAI,CAACpB,YAAY,GAAG,IAAI,CAACF,cAAc,CAACsB,GAAG,EAAE;EAC/C;AACF"}
1
+ {"version":3,"file":"json-parser.js","names":["ClarinetParser","JSONPath","JSONParser","constructor","options","_defineProperty","undefined","Object","freeze","container","key","reset","parser","onready","jsonpath","previousStates","length","currentState","onopenobject","name","_openObject","emit","onkey","set","oncloseobject","_closeObject","onopenarray","_openArray","onclosearray","_closeArray","onvalue","value","_pushOrSet","onerror","error","onend","result","pop","write","chunk","close","push","newContainer","arguments","isArray"],"sources":["../../../../src/lib/parser/json-parser.ts"],"sourcesContent":["// @ts-nocheck\n\nimport ClarinetParser, {ClarinetParserOptions} from '../clarinet/clarinet';\nimport JSONPath from '../jsonpath/jsonpath';\n\n// JSONParser builds a JSON object using the events emitted by the Clarinet parser\n\nexport default class JSONParser {\n readonly parser: ClarinetParser;\n result = undefined;\n previousStates = [];\n currentState = Object.freeze({container: [], key: null});\n jsonpath: JSONPath = new JSONPath();\n\n constructor(options: ClarinetParserOptions) {\n this.reset();\n this.parser = new ClarinetParser({\n onready: () => {\n this.jsonpath = new JSONPath();\n this.previousStates.length = 0;\n this.currentState.container.length = 0;\n },\n\n onopenobject: (name) => {\n this._openObject({});\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n },\n\n onkey: (name) => {\n this.jsonpath.set(name);\n this.currentState.key = name;\n },\n\n oncloseobject: () => {\n this._closeObject();\n },\n\n onopenarray: () => {\n this._openArray();\n },\n\n onclosearray: () => {\n this._closeArray();\n },\n\n onvalue: (value) => {\n this._pushOrSet(value);\n },\n\n onerror: (error) => {\n throw error;\n },\n\n onend: () => {\n this.result = this.currentState.container.pop();\n },\n\n ...options\n });\n }\n\n reset(): void {\n this.result = undefined;\n this.previousStates = [];\n this.currentState = Object.freeze({container: [], key: null});\n this.jsonpath = new JSONPath();\n }\n\n write(chunk): void {\n this.parser.write(chunk);\n }\n\n close(): void {\n this.parser.close();\n }\n\n // PRIVATE METHODS\n\n _pushOrSet(value): void {\n const {container, key} = this.currentState;\n if (key !== null) {\n container[key] = value;\n this.currentState.key = null;\n } else {\n container.push(value);\n }\n }\n\n _openArray(newContainer = []): void {\n this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: true, key: null};\n }\n\n _closeArray(): void {\n this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n\n _openObject(newContainer = {}): void {\n this.jsonpath.push(null);\n this._pushOrSet(newContainer);\n this.previousStates.push(this.currentState);\n this.currentState = {container: newContainer, isArray: false, key: null};\n }\n\n _closeObject(): void {\n this.jsonpath.pop();\n this.currentState = this.previousStates.pop();\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-json-parser.js","names":["default","JSONParser","JSONPath","StreamingJSONParser","constructor","options","arguments","length","undefined","onopenarray","streamingArray","_matchJSONPath","streamingJsonPath","getJsonPath","clone","_openArray","onopenobject","name","topLevelObject","_openObject","parser","emit","_defineProperty","jsonpaths","jsonPaths","map","jsonpath","write","chunk","array","getPartialResult","getStreamingJsonPath","getStreamingJsonPathAsString","toString","currentPath","jsonPath","equals"],"sources":["../../../../src/lib/parser/streaming-json-parser.ts"],"sourcesContent":["import {default as JSONParser} from './json-parser';\nimport JSONPath from '../jsonpath/jsonpath';\n\n/**\n * The `StreamingJSONParser` looks for the first array in the JSON structure.\n * and emits an array of chunks\n */\nexport default class StreamingJSONParser extends JSONParser {\n private jsonPaths: JSONPath[];\n private streamingJsonPath: JSONPath | null = null;\n private streamingArray: any[] | null = null;\n private topLevelObject: object | null = null;\n\n constructor(options: {[key: string]: any} = {}) {\n super({\n onopenarray: () => {\n if (!this.streamingArray) {\n if (this._matchJSONPath()) {\n // @ts-ignore\n this.streamingJsonPath = this.getJsonPath().clone();\n this.streamingArray = [];\n this._openArray(this.streamingArray as []);\n return;\n }\n }\n\n this._openArray();\n },\n\n // Redefine onopenarray to inject value for top-level object\n onopenobject: (name) => {\n if (!this.topLevelObject) {\n this.topLevelObject = {};\n this._openObject(this.topLevelObject);\n } else {\n this._openObject({});\n }\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n }\n });\n const jsonpaths = options.jsonpaths || [];\n this.jsonPaths = jsonpaths.map((jsonpath) => new JSONPath(jsonpath));\n }\n\n /**\n * write REDEFINITION\n * - super.write() chunk to parser\n * - get the contents (so far) of \"topmost-level\" array as batch of rows\n * - clear top-level array\n * - return the batch of rows\\\n */\n write(chunk) {\n super.write(chunk);\n let array: any[] = [];\n if (this.streamingArray) {\n array = [...this.streamingArray];\n this.streamingArray.length = 0;\n }\n return array;\n }\n\n /**\n * Returns a partially formed result object\n * Useful for returning the \"wrapper\" object when array is not top level\n * e.g. GeoJSON\n */\n getPartialResult() {\n return this.topLevelObject;\n }\n\n getStreamingJsonPath() {\n return this.streamingJsonPath;\n }\n\n getStreamingJsonPathAsString() {\n return this.streamingJsonPath && this.streamingJsonPath.toString();\n }\n\n getJsonPath() {\n return this.jsonpath;\n }\n\n // PRIVATE METHODS\n\n /**\n * Checks is this.getJsonPath matches the jsonpaths provided in options\n */\n _matchJSONPath() {\n const currentPath = this.getJsonPath();\n // console.debug(`Testing JSONPath`, currentPath);\n\n // Backwards compatibility, match any array\n // TODO implement using wildcard once that is supported\n if (this.jsonPaths.length === 0) {\n return true;\n }\n\n for (const jsonPath of this.jsonPaths) {\n if (jsonPath.equals(currentPath)) {\n return true;\n }\n }\n\n return false;\n }\n}\n"],"mappings":";AAAA,SAAQA,OAAO,IAAIC,UAAU,QAAO,eAAe;AACnD,OAAOC,QAAQ,MAAM,sBAAsB;AAM3C,eAAe,MAAMC,mBAAmB,SAASF,UAAU,CAAC;EAM1DG,WAAWA,CAAA,EAAqC;IAAA,IAApCC,OAA6B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAC5C,KAAK,CAAC;MACJG,WAAW,EAAEA,CAAA,KAAM;QACjB,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;UACxB,IAAI,IAAI,CAACC,cAAc,EAAE,EAAE;YAEzB,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACC,WAAW,EAAE,CAACC,KAAK,EAAE;YACnD,IAAI,CAACJ,cAAc,GAAG,EAAE;YACxB,IAAI,CAACK,UAAU,CAAC,IAAI,CAACL,cAAc,CAAO;YAC1C;UACF;QACF;QAEA,IAAI,CAACK,UAAU,EAAE;MACnB,CAAC;MAGDC,YAAY,EAAGC,IAAI,IAAK;QACtB,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;UACxB,IAAI,CAACA,cAAc,GAAG,CAAC,CAAC;UACxB,IAAI,CAACC,WAAW,CAAC,IAAI,CAACD,cAAc,CAAC;QACvC,CAAC,MAAM;UACL,IAAI,CAACC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtB;QACA,IAAI,OAAOF,IAAI,KAAK,WAAW,EAAE;UAC/B,IAAI,CAACG,MAAM,CAACC,IAAI,CAAC,OAAO,EAAEJ,IAAI,CAAC;QACjC;MACF;IACF,CAAC,CAAC;IAACK,eAAA;IAAAA,eAAA,4BAhCwC,IAAI;IAAAA,eAAA,yBACV,IAAI;IAAAA,eAAA,yBACH,IAAI;IA+B1C,MAAMC,SAAS,GAAGlB,OAAO,CAACkB,SAAS,IAAI,EAAE;IACzC,IAAI,CAACC,SAAS,GAAGD,SAAS,CAACE,GAAG,CAAEC,QAAQ,IAAK,IAAIxB,QAAQ,CAACwB,QAAQ,CAAC,CAAC;EACtE;EASAC,KAAKA,CAACC,KAAK,EAAE;IACX,KAAK,CAACD,KAAK,CAACC,KAAK,CAAC;IAClB,IAAIC,KAAY,GAAG,EAAE;IACrB,IAAI,IAAI,CAACnB,cAAc,EAAE;MACvBmB,KAAK,GAAG,CAAC,GAAG,IAAI,CAACnB,cAAc,CAAC;MAChC,IAAI,CAACA,cAAc,CAACH,MAAM,GAAG,CAAC;IAChC;IACA,OAAOsB,KAAK;EACd;EAOAC,gBAAgBA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACZ,cAAc;EAC5B;EAEAa,oBAAoBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACnB,iBAAiB;EAC/B;EAEAoB,4BAA4BA,CAAA,EAAG;IAC7B,OAAO,IAAI,CAACpB,iBAAiB,IAAI,IAAI,CAACA,iBAAiB,CAACqB,QAAQ,EAAE;EACpE;EAEApB,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACa,QAAQ;EACtB;EAOAf,cAAcA,CAAA,EAAG;IACf,MAAMuB,WAAW,GAAG,IAAI,CAACrB,WAAW,EAAE;IAKtC,IAAI,IAAI,CAACW,SAAS,CAACjB,MAAM,KAAK,CAAC,EAAE;MAC/B,OAAO,IAAI;IACb;IAEA,KAAK,MAAM4B,QAAQ,IAAI,IAAI,CAACX,SAAS,EAAE;MACrC,IAAIW,QAAQ,CAACC,MAAM,CAACF,WAAW,CAAC,EAAE;QAChC,OAAO,IAAI;MACb;IACF;IAEA,OAAO,KAAK;EACd;AACF"}
1
+ {"version":3,"file":"streaming-json-parser.js","names":["default","JSONParser","JSONPath","StreamingJSONParser","constructor","options","arguments","length","undefined","onopenarray","streamingArray","_matchJSONPath","streamingJsonPath","getJsonPath","clone","_openArray","onopenobject","name","topLevelObject","_openObject","parser","emit","_defineProperty","jsonpaths","jsonPaths","map","jsonpath","write","chunk","array","getPartialResult","getStreamingJsonPath","getStreamingJsonPathAsString","toString","currentPath","jsonPath","equals"],"sources":["../../../../src/lib/parser/streaming-json-parser.ts"],"sourcesContent":["import {default as JSONParser} from './json-parser';\nimport JSONPath from '../jsonpath/jsonpath';\n\n/**\n * The `StreamingJSONParser` looks for the first array in the JSON structure.\n * and emits an array of chunks\n */\nexport default class StreamingJSONParser extends JSONParser {\n private jsonPaths: JSONPath[];\n private streamingJsonPath: JSONPath | null = null;\n private streamingArray: any[] | null = null;\n private topLevelObject: object | null = null;\n\n constructor(options: {[key: string]: any} = {}) {\n super({\n onopenarray: () => {\n if (!this.streamingArray) {\n if (this._matchJSONPath()) {\n // @ts-ignore\n this.streamingJsonPath = this.getJsonPath().clone();\n this.streamingArray = [];\n this._openArray(this.streamingArray as []);\n return;\n }\n }\n\n this._openArray();\n },\n\n // Redefine onopenarray to inject value for top-level object\n onopenobject: (name) => {\n if (!this.topLevelObject) {\n this.topLevelObject = {};\n this._openObject(this.topLevelObject);\n } else {\n this._openObject({});\n }\n if (typeof name !== 'undefined') {\n this.parser.emit('onkey', name);\n }\n }\n });\n const jsonpaths = options.jsonpaths || [];\n this.jsonPaths = jsonpaths.map((jsonpath) => new JSONPath(jsonpath));\n }\n\n /**\n * write REDEFINITION\n * - super.write() chunk to parser\n * - get the contents (so far) of \"topmost-level\" array as batch of rows\n * - clear top-level array\n * - return the batch of rows\\\n */\n write(chunk) {\n super.write(chunk);\n let array: any[] = [];\n if (this.streamingArray) {\n array = [...this.streamingArray];\n this.streamingArray.length = 0;\n }\n return array;\n }\n\n /**\n * Returns a partially formed result object\n * Useful for returning the \"wrapper\" object when array is not top level\n * e.g. GeoJSON\n */\n getPartialResult() {\n return this.topLevelObject;\n }\n\n getStreamingJsonPath() {\n return this.streamingJsonPath;\n }\n\n getStreamingJsonPathAsString() {\n return this.streamingJsonPath && this.streamingJsonPath.toString();\n }\n\n getJsonPath() {\n return this.jsonpath;\n }\n\n // PRIVATE METHODS\n\n /**\n * Checks is this.getJsonPath matches the jsonpaths provided in options\n */\n _matchJSONPath() {\n const currentPath = this.getJsonPath();\n // console.debug(`Testing JSONPath`, currentPath);\n\n // Backwards compatibility, match any array\n // TODO implement using wildcard once that is supported\n if (this.jsonPaths.length === 0) {\n return true;\n }\n\n for (const jsonPath of this.jsonPaths) {\n if (jsonPath.equals(currentPath)) {\n return true;\n }\n }\n\n return false;\n }\n}\n"],"mappings":";AAAA,SAAQA,OAAO,IAAIC,UAAU,QAAO,eAAe;AACnD,OAAOC,QAAQ,MAAM,sBAAsB;AAM3C,eAAe,MAAMC,mBAAmB,SAASF,UAAU,CAAC;EAM1DG,WAAWA,CAAA,EAAqC;IAAA,IAApCC,OAA6B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAC5C,KAAK,CAAC;MACJG,WAAW,EAAEA,CAAA,KAAM;QACjB,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;UACxB,IAAI,IAAI,CAACC,cAAc,CAAC,CAAC,EAAE;YAEzB,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;YACnD,IAAI,CAACJ,cAAc,GAAG,EAAE;YACxB,IAAI,CAACK,UAAU,CAAC,IAAI,CAACL,cAAoB,CAAC;YAC1C;UACF;QACF;QAEA,IAAI,CAACK,UAAU,CAAC,CAAC;MACnB,CAAC;MAGDC,YAAY,EAAGC,IAAI,IAAK;QACtB,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;UACxB,IAAI,CAACA,cAAc,GAAG,CAAC,CAAC;UACxB,IAAI,CAACC,WAAW,CAAC,IAAI,CAACD,cAAc,CAAC;QACvC,CAAC,MAAM;UACL,IAAI,CAACC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtB;QACA,IAAI,OAAOF,IAAI,KAAK,WAAW,EAAE;UAC/B,IAAI,CAACG,MAAM,CAACC,IAAI,CAAC,OAAO,EAAEJ,IAAI,CAAC;QACjC;MACF;IACF,CAAC,CAAC;IAACK,eAAA;IAAAA,eAAA,4BAhCwC,IAAI;IAAAA,eAAA,yBACV,IAAI;IAAAA,eAAA,yBACH,IAAI;IA+B1C,MAAMC,SAAS,GAAGlB,OAAO,CAACkB,SAAS,IAAI,EAAE;IACzC,IAAI,CAACC,SAAS,GAAGD,SAAS,CAACE,GAAG,CAAEC,QAAQ,IAAK,IAAIxB,QAAQ,CAACwB,QAAQ,CAAC,CAAC;EACtE;EASAC,KAAKA,CAACC,KAAK,EAAE;IACX,KAAK,CAACD,KAAK,CAACC,KAAK,CAAC;IAClB,IAAIC,KAAY,GAAG,EAAE;IACrB,IAAI,IAAI,CAACnB,cAAc,EAAE;MACvBmB,KAAK,GAAG,CAAC,GAAG,IAAI,CAACnB,cAAc,CAAC;MAChC,IAAI,CAACA,cAAc,CAACH,MAAM,GAAG,CAAC;IAChC;IACA,OAAOsB,KAAK;EACd;EAOAC,gBAAgBA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACZ,cAAc;EAC5B;EAEAa,oBAAoBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACnB,iBAAiB;EAC/B;EAEAoB,4BAA4BA,CAAA,EAAG;IAC7B,OAAO,IAAI,CAACpB,iBAAiB,IAAI,IAAI,CAACA,iBAAiB,CAACqB,QAAQ,CAAC,CAAC;EACpE;EAEApB,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACa,QAAQ;EACtB;EAOAf,cAAcA,CAAA,EAAG;IACf,MAAMuB,WAAW,GAAG,IAAI,CAACrB,WAAW,CAAC,CAAC;IAKtC,IAAI,IAAI,CAACW,SAAS,CAACjB,MAAM,KAAK,CAAC,EAAE;MAC/B,OAAO,IAAI;IACb;IAEA,KAAK,MAAM4B,QAAQ,IAAI,IAAI,CAACX,SAAS,EAAE;MACrC,IAAIW,QAAQ,CAACC,MAAM,CAACF,WAAW,CAAC,EAAE;QAChC,OAAO,IAAI;MACb;IACF;IAEA,OAAO,KAAK;EACd;AACF"}
@@ -1,6 +1,6 @@
1
1
  import parseNDJSONSync from './lib/parse-ndjson';
2
2
  import parseNDJSONInBatches from './lib/parse-ndjson-in-batches';
3
- const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
3
+ const VERSION = typeof "3.4.0-alpha.5" !== 'undefined' ? "3.4.0-alpha.5" : 'latest';
4
4
  const DEFAULT_NDGEOJSON_LOADER_OPTIONS = {
5
5
  geojson: {
6
6
  shape: 'object-row-table'
@@ -1 +1 @@
1
- {"version":3,"file":"ndgeoson-loader.js","names":["parseNDJSONSync","parseNDJSONInBatches","VERSION","DEFAULT_NDGEOJSON_LOADER_OPTIONS","geojson","shape","gis","format","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","arrayBuffer","TextDecoder","decode","parseTextSync","parseInBatches","options","_typecheckNDJSONLoader"],"sources":["../../src/ndgeoson-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport parseNDJSONSync from './lib/parse-ndjson';\nimport parseNDJSONInBatches from './lib/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type NDGeoJSONLoaderOptions = LoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format: 'geojson';\n };\n};\n\nconst DEFAULT_NDGEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n gis: {\n format: 'geojson'\n }\n};\n\nexport const NDJSONLoader = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'ndgeojson'],\n mimeTypes: [\n 'application/geo+x-ndjson',\n 'application/geo+x-ldjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/geo+json-seq',\n 'application/x-ndjson'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: DEFAULT_NDGEOJSON_LOADER_OPTIONS\n};\n\nexport const _typecheckNDJSONLoader: LoaderWithParser = NDJSONLoader;\n"],"mappings":"AACA,OAAOA,eAAe,MAAM,oBAAoB;AAChD,OAAOC,oBAAoB,MAAM,+BAA+B;AAIhE,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAW3E,MAAMC,gCAAgC,GAAG;EACvCC,OAAO,EAAE;IACPC,KAAK,EAAE;EACT,CAAC;EACDC,GAAG,EAAE;IACHC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEV,OAAO;EAChBW,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;EACnCC,SAAS,EAAE,CACT,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAE,MAAOC,WAAwB,IAAKlB,eAAe,CAAC,IAAImB,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;EACjGG,aAAa,EAAErB,eAAe;EAC9BsB,cAAc,EAAErB,oBAAoB;EACpCsB,OAAO,EAAEpB;AACX,CAAC;AAED,OAAO,MAAMqB,sBAAwC,GAAGhB,YAAY"}
1
+ {"version":3,"file":"ndgeoson-loader.js","names":["parseNDJSONSync","parseNDJSONInBatches","VERSION","DEFAULT_NDGEOJSON_LOADER_OPTIONS","geojson","shape","gis","format","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","arrayBuffer","TextDecoder","decode","parseTextSync","parseInBatches","options","_typecheckNDJSONLoader"],"sources":["../../src/ndgeoson-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport parseNDJSONSync from './lib/parse-ndjson';\nimport parseNDJSONInBatches from './lib/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type NDGeoJSONLoaderOptions = LoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format: 'geojson';\n };\n};\n\nconst DEFAULT_NDGEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n gis: {\n format: 'geojson'\n }\n};\n\nexport const NDJSONLoader = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'ndgeojson'],\n mimeTypes: [\n 'application/geo+x-ndjson',\n 'application/geo+x-ldjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/geo+json-seq',\n 'application/x-ndjson'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: DEFAULT_NDGEOJSON_LOADER_OPTIONS\n};\n\nexport const _typecheckNDJSONLoader: LoaderWithParser = NDJSONLoader;\n"],"mappings":"AACA,OAAOA,eAAe,MAAM,oBAAoB;AAChD,OAAOC,oBAAoB,MAAM,+BAA+B;AAIhE,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAW3E,MAAMC,gCAAgC,GAAG;EACvCC,OAAO,EAAE;IACPC,KAAK,EAAE;EACT,CAAC;EACDC,GAAG,EAAE;IACHC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEV,OAAO;EAChBW,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;EACnCC,SAAS,EAAE,CACT,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAE,MAAOC,WAAwB,IAAKlB,eAAe,CAAC,IAAImB,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;EACjGG,aAAa,EAAErB,eAAe;EAC9BsB,cAAc,EAAErB,oBAAoB;EACpCsB,OAAO,EAAEpB;AACX,CAAC;AAED,OAAO,MAAMqB,sBAAwC,GAAGhB,YAAY"}
@@ -1,6 +1,6 @@
1
1
  import parseNDJSONSync from './lib/parse-ndjson';
2
2
  import parseNDJSONInBatches from './lib/parse-ndjson-in-batches';
3
- const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
3
+ const VERSION = typeof "3.4.0-alpha.5" !== 'undefined' ? "3.4.0-alpha.5" : 'latest';
4
4
  export const NDJSONLoader = {
5
5
  name: 'NDJSON',
6
6
  id: 'ndjson',
@@ -1 +1 @@
1
- {"version":3,"file":"ndjson-loader.js","names":["parseNDJSONSync","parseNDJSONInBatches","VERSION","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","arrayBuffer","TextDecoder","decode","parseTextSync","parseInBatches","options"],"sources":["../../src/ndjson-loader.ts"],"sourcesContent":["import parseNDJSONSync from './lib/parse-ndjson';\nimport parseNDJSONInBatches from './lib/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const NDJSONLoader = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'jsonl'],\n mimeTypes: [\n 'application/x-ndjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/json-seq'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: {}\n};\n"],"mappings":"AAAA,OAAOA,eAAe,MAAM,oBAAoB;AAChD,OAAOC,oBAAoB,MAAM,+BAA+B;AAIhE,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAE3E,OAAO,MAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;EAC/BC,SAAS,EAAE,CACT,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAE,MAAOC,WAAwB,IAAKb,eAAe,CAAC,IAAIc,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;EACjGG,aAAa,EAAEhB,eAAe;EAC9BiB,cAAc,EAAEhB,oBAAoB;EACpCiB,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"ndjson-loader.js","names":["parseNDJSONSync","parseNDJSONInBatches","VERSION","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","arrayBuffer","TextDecoder","decode","parseTextSync","parseInBatches","options"],"sources":["../../src/ndjson-loader.ts"],"sourcesContent":["import parseNDJSONSync from './lib/parse-ndjson';\nimport parseNDJSONInBatches from './lib/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const NDJSONLoader = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'jsonl'],\n mimeTypes: [\n 'application/x-ndjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/json-seq'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: {}\n};\n"],"mappings":"AAAA,OAAOA,eAAe,MAAM,oBAAoB;AAChD,OAAOC,oBAAoB,MAAM,+BAA+B;AAIhE,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAE3E,OAAO,MAAMC,YAAY,GAAG;EAC1BC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;EAC/BC,SAAS,EAAE,CACT,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAE,MAAOC,WAAwB,IAAKb,eAAe,CAAC,IAAIc,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;EACjGG,aAAa,EAAEhB,eAAe;EAC9BiB,cAAc,EAAEhB,oBAAoB;EACpCiB,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -2266,7 +2266,7 @@ Char: ${this.c}`;
2266
2266
  }
2267
2267
 
2268
2268
  // src/geojson-loader.ts
2269
- var VERSION = true ? "3.4.0-alpha.3" : "latest";
2269
+ var VERSION = true ? "3.4.0-alpha.5" : "latest";
2270
2270
  var DEFAULT_GEOJSON_LOADER_OPTIONS = {
2271
2271
  geojson: {
2272
2272
  shape: "object-row-table"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/json",
3
- "version": "3.4.0-alpha.3",
3
+ "version": "3.4.0-alpha.5",
4
4
  "description": "Framework-independent loader for JSON and streaming JSON formats",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -35,9 +35,9 @@
35
35
  "build-worker": "esbuild src/workers/geojson-worker.ts --bundle --outfile=dist/geojson-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
36
36
  },
37
37
  "dependencies": {
38
- "@loaders.gl/gis": "3.4.0-alpha.3",
39
- "@loaders.gl/loader-utils": "3.4.0-alpha.3",
40
- "@loaders.gl/schema": "3.4.0-alpha.3"
38
+ "@loaders.gl/gis": "3.4.0-alpha.5",
39
+ "@loaders.gl/loader-utils": "3.4.0-alpha.5",
40
+ "@loaders.gl/schema": "3.4.0-alpha.5"
41
41
  },
42
- "gitHead": "a954528dd1d78a1f128d8f6b07e4baeb7a296924"
42
+ "gitHead": "686929f85b3420c15df051eab769942b260dd242"
43
43
  }