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

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 (52) hide show
  1. package/dist/dist.min.js +22 -0
  2. package/dist/es5/geojson-loader.js +58 -63
  3. package/dist/es5/geojson-loader.js.map +1 -1
  4. package/dist/es5/index.js.map +1 -1
  5. package/dist/es5/json-loader.js +7 -11
  6. package/dist/es5/json-loader.js.map +1 -1
  7. package/dist/es5/lib/clarinet/clarinet.js +5 -22
  8. package/dist/es5/lib/clarinet/clarinet.js.map +1 -1
  9. package/dist/es5/lib/jsonpath/jsonpath.js +3 -8
  10. package/dist/es5/lib/jsonpath/jsonpath.js.map +1 -1
  11. package/dist/es5/lib/parse-json-in-batches.js +149 -154
  12. package/dist/es5/lib/parse-json-in-batches.js.map +1 -1
  13. package/dist/es5/lib/parse-json.js.map +1 -1
  14. package/dist/es5/lib/parse-ndjson-in-batches.js +79 -81
  15. package/dist/es5/lib/parse-ndjson-in-batches.js.map +1 -1
  16. package/dist/es5/lib/parse-ndjson.js.map +1 -1
  17. package/dist/es5/lib/parser/json-parser.js +1 -4
  18. package/dist/es5/lib/parser/json-parser.js.map +1 -1
  19. package/dist/es5/lib/parser/streaming-json-parser.js +4 -12
  20. package/dist/es5/lib/parser/streaming-json-parser.js.map +1 -1
  21. package/dist/es5/ndgeoson-loader.js +8 -11
  22. package/dist/es5/ndgeoson-loader.js.map +1 -1
  23. package/dist/es5/ndjson-loader.js +8 -11
  24. package/dist/es5/ndjson-loader.js.map +1 -1
  25. package/dist/es5/workers/geojson-worker.js.map +1 -1
  26. package/dist/esm/bundle.js +0 -1
  27. package/dist/esm/bundle.js.map +1 -1
  28. package/dist/esm/geojson-loader.js +1 -3
  29. package/dist/esm/geojson-loader.js.map +1 -1
  30. package/dist/esm/index.js +0 -1
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/json-loader.js +1 -4
  33. package/dist/esm/json-loader.js.map +1 -1
  34. package/dist/esm/lib/clarinet/clarinet.js +3 -17
  35. package/dist/esm/lib/clarinet/clarinet.js.map +1 -1
  36. package/dist/esm/lib/jsonpath/jsonpath.js +0 -3
  37. package/dist/esm/lib/jsonpath/jsonpath.js.map +1 -1
  38. package/dist/esm/lib/parse-json-in-batches.js +0 -8
  39. package/dist/esm/lib/parse-json-in-batches.js.map +1 -1
  40. package/dist/esm/lib/parse-json.js.map +1 -1
  41. package/dist/esm/lib/parse-ndjson-in-batches.js.map +1 -1
  42. package/dist/esm/lib/parse-ndjson.js.map +1 -1
  43. package/dist/esm/lib/parser/json-parser.js +0 -3
  44. package/dist/esm/lib/parser/json-parser.js.map +1 -1
  45. package/dist/esm/lib/parser/streaming-json-parser.js +0 -5
  46. package/dist/esm/lib/parser/streaming-json-parser.js.map +1 -1
  47. package/dist/esm/ndgeoson-loader.js +2 -4
  48. package/dist/esm/ndgeoson-loader.js.map +1 -1
  49. package/dist/esm/ndjson-loader.js +2 -4
  50. package/dist/esm/ndjson-loader.js.map +1 -1
  51. package/dist/geojson-worker.js +1 -1
  52. package/package.json +5 -5
package/dist/dist.min.js CHANGED
@@ -484,9 +484,31 @@
484
484
  }
485
485
  });
486
486
 
487
+ // ../../node_modules/@babel/runtime/helpers/esm/typeof.js
488
+ var init_typeof = __esm({
489
+ "../../node_modules/@babel/runtime/helpers/esm/typeof.js"() {
490
+ }
491
+ });
492
+
493
+ // ../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js
494
+ var init_toPrimitive = __esm({
495
+ "../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js"() {
496
+ init_typeof();
497
+ }
498
+ });
499
+
500
+ // ../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
501
+ var init_toPropertyKey = __esm({
502
+ "../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"() {
503
+ init_typeof();
504
+ init_toPrimitive();
505
+ }
506
+ });
507
+
487
508
  // ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
488
509
  var init_defineProperty = __esm({
489
510
  "../../node_modules/@babel/runtime/helpers/esm/defineProperty.js"() {
511
+ init_toPropertyKey();
490
512
  }
491
513
  });
492
514
 
@@ -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.2" !== 'undefined' ? "3.4.0-alpha.2" : 'latest';
20
+ var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
21
21
  var DEFAULT_GEOJSON_LOADER_OPTIONS = {
22
22
  geojson: {
23
23
  shape: 'object-row-table'
@@ -29,7 +29,6 @@ var DEFAULT_GEOJSON_LOADER_OPTIONS = {
29
29
  format: 'geojson'
30
30
  }
31
31
  };
32
-
33
32
  var GeoJSONWorkerLoader = {
34
33
  name: 'GeoJSON',
35
34
  id: 'geojson',
@@ -55,14 +54,12 @@ function parse(_x2, _x3) {
55
54
  function _parse() {
56
55
  _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(arrayBuffer, options) {
57
56
  return _regenerator.default.wrap(function _callee2$(_context2) {
58
- while (1) {
59
- switch (_context2.prev = _context2.next) {
60
- case 0:
61
- return _context2.abrupt("return", parseTextSync(new TextDecoder().decode(arrayBuffer), options));
62
- case 1:
63
- case "end":
64
- return _context2.stop();
65
- }
57
+ while (1) switch (_context2.prev = _context2.next) {
58
+ case 0:
59
+ return _context2.abrupt("return", parseTextSync(new TextDecoder().decode(arrayBuffer), options));
60
+ case 1:
61
+ case "end":
62
+ return _context2.stop();
66
63
  }
67
64
  }, _callee2);
68
65
  }));
@@ -98,61 +95,59 @@ function _makeBinaryGeometryIterator() {
98
95
  _makeBinaryGeometryIterator = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee(geojsonIterator) {
99
96
  var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, batch;
100
97
  return _regenerator.default.wrap(function _callee$(_context) {
101
- while (1) {
102
- switch (_context.prev = _context.next) {
103
- case 0:
104
- _iteratorAbruptCompletion = false;
105
- _didIteratorError = false;
106
- _context.prev = 2;
107
- _iterator = _asyncIterator(geojsonIterator);
108
- case 4:
109
- _context.next = 6;
110
- return (0, _awaitAsyncGenerator2.default)(_iterator.next());
111
- case 6:
112
- if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
113
- _context.next = 14;
114
- break;
115
- }
116
- batch = _step.value;
117
- batch.data = (0, _gis.geojsonToBinary)(batch.data);
118
- _context.next = 11;
119
- return batch;
120
- case 11:
121
- _iteratorAbruptCompletion = false;
122
- _context.next = 4;
123
- break;
124
- case 14:
125
- _context.next = 20;
98
+ while (1) switch (_context.prev = _context.next) {
99
+ case 0:
100
+ _iteratorAbruptCompletion = false;
101
+ _didIteratorError = false;
102
+ _context.prev = 2;
103
+ _iterator = _asyncIterator(geojsonIterator);
104
+ case 4:
105
+ _context.next = 6;
106
+ return (0, _awaitAsyncGenerator2.default)(_iterator.next());
107
+ case 6:
108
+ if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
109
+ _context.next = 14;
126
110
  break;
127
- case 16:
128
- _context.prev = 16;
129
- _context.t0 = _context["catch"](2);
130
- _didIteratorError = true;
131
- _iteratorError = _context.t0;
132
- case 20:
133
- _context.prev = 20;
134
- _context.prev = 21;
135
- if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
136
- _context.next = 25;
137
- break;
138
- }
111
+ }
112
+ batch = _step.value;
113
+ batch.data = (0, _gis.geojsonToBinary)(batch.data);
114
+ _context.next = 11;
115
+ return batch;
116
+ case 11:
117
+ _iteratorAbruptCompletion = false;
118
+ _context.next = 4;
119
+ break;
120
+ case 14:
121
+ _context.next = 20;
122
+ break;
123
+ case 16:
124
+ _context.prev = 16;
125
+ _context.t0 = _context["catch"](2);
126
+ _didIteratorError = true;
127
+ _iteratorError = _context.t0;
128
+ case 20:
129
+ _context.prev = 20;
130
+ _context.prev = 21;
131
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
139
132
  _context.next = 25;
140
- return (0, _awaitAsyncGenerator2.default)(_iterator.return());
141
- case 25:
142
- _context.prev = 25;
143
- if (!_didIteratorError) {
144
- _context.next = 28;
145
- break;
146
- }
147
- throw _iteratorError;
148
- case 28:
149
- return _context.finish(25);
150
- case 29:
151
- return _context.finish(20);
152
- case 30:
153
- case "end":
154
- return _context.stop();
155
- }
133
+ break;
134
+ }
135
+ _context.next = 25;
136
+ return (0, _awaitAsyncGenerator2.default)(_iterator.return());
137
+ case 25:
138
+ _context.prev = 25;
139
+ if (!_didIteratorError) {
140
+ _context.next = 28;
141
+ break;
142
+ }
143
+ throw _iteratorError;
144
+ case 28:
145
+ return _context.finish(25);
146
+ case 29:
147
+ return _context.finish(20);
148
+ case 30:
149
+ case "end":
150
+ return _context.stop();
156
151
  }
157
152
  }, _callee, null, [[2, 16, 20, 30], [21,, 25, 29]]);
158
153
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-loader.js","names":["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","parseJSONSync","geojsonToBinary","asyncIterator","geojsonIterator","parseJSONInBatches","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":"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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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export type {JSONLoaderOptions} from './json-loader';\nexport {JSONLoader} from './json-loader';\nexport {NDJSONLoader} from './ndjson-loader';\n\n// EXPERIMENTAL EXPORTS - WARNING: MAY BE REMOVED WIHTOUT NOTICE IN FUTURE RELEASES\nexport type {GeoJSONLoaderOptions as _GeoJSONLoaderOptions} from './geojson-loader';\nexport {\n GeoJSONLoader as _GeoJSONLoader,\n GeoJSONWorkerLoader as _GeoJSONWorkerLoader\n} from './geojson-loader';\n\nexport {default as _JSONPath} from './lib/jsonpath/jsonpath';\nexport {default as _ClarinetParser} from './lib/clarinet/clarinet';\n\nexport {rebuildJsonObject as _rebuildJsonObject} from './lib/parse-json-in-batches';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AAIA;AAKA;AACA;AAEA"}
1
+ {"version":3,"file":"index.js","names":["_jsonLoader","require","_ndjsonLoader","_geojsonLoader","_jsonpath","_interopRequireDefault","_clarinet","_parseJsonInBatches"],"sources":["../../src/index.ts"],"sourcesContent":["export type {JSONLoaderOptions} from './json-loader';\nexport {JSONLoader} from './json-loader';\nexport {NDJSONLoader} from './ndjson-loader';\n\n// EXPERIMENTAL EXPORTS - WARNING: MAY BE REMOVED WIHTOUT NOTICE IN FUTURE RELEASES\nexport type {GeoJSONLoaderOptions as _GeoJSONLoaderOptions} from './geojson-loader';\nexport {\n GeoJSONLoader as _GeoJSONLoader,\n GeoJSONWorkerLoader as _GeoJSONWorkerLoader\n} from './geojson-loader';\n\nexport {default as _JSONPath} from './lib/jsonpath/jsonpath';\nexport {default as _ClarinetParser} from './lib/clarinet/clarinet';\n\nexport {rebuildJsonObject as _rebuildJsonObject} from './lib/parse-json-in-batches';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAIA,IAAAE,cAAA,GAAAF,OAAA;AAKA,IAAAG,SAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAD,sBAAA,CAAAJ,OAAA;AAEA,IAAAM,mBAAA,GAAAN,OAAA"}
@@ -12,8 +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.2" !== 'undefined' ? "3.4.0-alpha.2" : 'latest';
16
-
15
+ var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
17
16
  var DEFAULT_JSON_LOADER_OPTIONS = {
18
17
  json: {
19
18
  shape: 'row-table',
@@ -21,7 +20,6 @@ var DEFAULT_JSON_LOADER_OPTIONS = {
21
20
  jsonpaths: []
22
21
  }
23
22
  };
24
-
25
23
  var JSONLoader = {
26
24
  name: 'JSON',
27
25
  id: 'json',
@@ -43,14 +41,12 @@ function parse(_x, _x2) {
43
41
  function _parse() {
44
42
  _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
45
43
  return _regenerator.default.wrap(function _callee$(_context) {
46
- while (1) {
47
- switch (_context.prev = _context.next) {
48
- case 0:
49
- return _context.abrupt("return", parseTextSync(new TextDecoder().decode(arrayBuffer), options));
50
- case 1:
51
- case "end":
52
- return _context.stop();
53
- }
44
+ while (1) switch (_context.prev = _context.next) {
45
+ case 0:
46
+ return _context.abrupt("return", parseTextSync(new TextDecoder().decode(arrayBuffer), options));
47
+ case 1:
48
+ case "end":
49
+ return _context.stop();
54
50
  }
55
51
  }, _callee);
56
52
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"json-loader.js","names":["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","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":";;;;;;;;;;AAEA;AACA;AAA6D;AAAA;AAI7D,IAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;;AAc3E,IAAMC,2BAA2B,GAAG;EAClCC,IAAI,EAAE;IACJC,KAAK,EAAE,WAAW;IAClBC,KAAK,EAAE,KAAK;IACZC,SAAS,EAAE;EAEb;AACF,CAAC;;AAEM,IAAMC,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,EAALA,KAAK;EACLC,aAAa,EAAbA,aAAa;EACbC,cAAc,EAAdA,cAAc;EACdC,OAAO,EAAEjB;AACX,CAAC;AAAC;AAAA,SAEac,KAAK;EAAA;AAAA;AAAA;EAAA,mEAApB,iBAAqBI,WAAwB,EAAED,OAA2B;IAAA;MAAA;QAAA;UAAA;YAAA,iCACjEF,aAAa,CAAC,IAAII,WAAW,EAAE,CAACC,MAAM,CAACF,WAAW,CAAC,EAAED,OAAO,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACrE;EAAA;AAAA;AAED,SAASF,aAAa,CAACF,IAAY,EAAEI,OAA2B,EAAE;EAChE,IAAMI,WAAW,mCAAOJ,OAAO;IAAEhB,IAAI,kCAAMD,2BAA2B,CAACC,IAAI,GAAKgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;EAAC,EAAC;EAC/F,OAAO,IAAAqB,kBAAa,EAACT,IAAI,EAAEQ,WAAW,CAAsB;AAC9D;AAEA,SAASL,cAAc,CACrBO,aAAiE,EACjEN,OAA2B,EACL;EACtB,IAAMI,WAAW,mCAAOJ,OAAO;IAAEhB,IAAI,kCAAMD,2BAA2B,CAACC,IAAI,GAAKgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;EAAC,EAAC;EAC/F,OAAO,IAAAuB,2BAAkB,EAACD,aAAa,EAAEF,WAAW,CAAsB;AAC5E"}
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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"}
@@ -10,10 +10,8 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  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; }
12
12
  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; }
13
-
14
13
  var MAX_BUFFER_LENGTH = Number.MAX_SAFE_INTEGER;
15
- var STATE;
16
- (function (STATE) {
14
+ var STATE = function (STATE) {
17
15
  STATE[STATE["BEGIN"] = 0] = "BEGIN";
18
16
  STATE[STATE["VALUE"] = 1] = "VALUE";
19
17
  STATE[STATE["OPEN_OBJECT"] = 2] = "OPEN_OBJECT";
@@ -38,30 +36,25 @@ var STATE;
38
36
  STATE[STATE["NULL3"] = 21] = "NULL3";
39
37
  STATE[STATE["NUMBER_DECIMAL_POINT"] = 22] = "NUMBER_DECIMAL_POINT";
40
38
  STATE[STATE["NUMBER_DIGIT"] = 23] = "NUMBER_DIGIT";
41
- })(STATE || (STATE = {}));
39
+ return STATE;
40
+ }(STATE || {});
42
41
  var Char = {
43
42
  tab: 0x09,
44
43
  lineFeed: 0x0a,
45
44
  carriageReturn: 0x0d,
46
45
  space: 0x20,
47
-
48
46
  doubleQuote: 0x22,
49
47
  plus: 0x2b,
50
48
  comma: 0x2c,
51
49
  minus: 0x2d,
52
50
  period: 0x2e,
53
-
54
51
  _0: 0x30,
55
52
  _9: 0x39,
56
-
57
53
  colon: 0x3a,
58
-
59
54
  E: 0x45,
60
-
61
55
  openBracket: 0x5b,
62
56
  backslash: 0x5c,
63
57
  closeBracket: 0x5d,
64
-
65
58
  a: 0x61,
66
59
  b: 0x62,
67
60
  e: 0x65,
@@ -72,11 +65,9 @@ var Char = {
72
65
  s: 0x73,
73
66
  t: 0x74,
74
67
  u: 0x75,
75
-
76
68
  openBrace: 0x7b,
77
69
  closeBrace: 0x7d
78
70
  };
79
-
80
71
  var stringTokenPattern = /[\\"\n]/g;
81
72
  var DEFAULT_OPTIONS = {
82
73
  onready: function onready() {},
@@ -91,7 +82,6 @@ var DEFAULT_OPTIONS = {
91
82
  onchunkparsed: function onchunkparsed() {}
92
83
  };
93
84
  var ClarinetParser = function () {
94
-
95
85
  function ClarinetParser() {
96
86
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
97
87
  (0, _classCallCheck2.default)(this, ClarinetParser);
@@ -141,12 +131,9 @@ var ClarinetParser = function () {
141
131
  value: function close() {
142
132
  return this.write(null);
143
133
  }
144
-
145
134
  }, {
146
135
  key: "emit",
147
- value:
148
-
149
- function emit(event, data) {
136
+ value: function emit(event, data) {
150
137
  var _this$options$event, _this$options;
151
138
  (_this$options$event = (_this$options = this.options)[event]) === null || _this$options$event === void 0 ? void 0 : _this$options$event.call(_this$options, data, this);
152
139
  }
@@ -156,11 +143,9 @@ var ClarinetParser = function () {
156
143
  this._closeValue();
157
144
  this.emit(event, data);
158
145
  }
159
-
160
146
  }, {
161
147
  key: "write",
162
- value:
163
- function write(chunk) {
148
+ value: function write(chunk) {
164
149
  if (this.error) {
165
150
  throw this.error;
166
151
  }
@@ -182,7 +167,6 @@ var ClarinetParser = function () {
182
167
  p = this.p;
183
168
  }
184
169
  if (!c) break;
185
-
186
170
  this.position++;
187
171
  if (c === Char.lineFeed) {
188
172
  this.line++;
@@ -265,7 +249,6 @@ var ClarinetParser = function () {
265
249
  if (this.textNode === undefined) {
266
250
  this.textNode = '';
267
251
  }
268
-
269
252
  var starti = i - 1;
270
253
  var slashed = this.slashed;
271
254
  var unicodeI = this.unicodeI;
@@ -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","BEGIN","textNode","undefined","numberNode","emit","state","VALUE","depth","_error","_closeValue","c","closed","error","write","event","data","chunk","end","i","charCodeAt","p","position","line","column","OPEN_OBJECT","OPEN_ARRAY","isWhitespace","OPEN_KEY","stack","push","CLOSE_KEY","pop","CLOSE_OBJECT","STRING","emitNode","CLOSE_ARRAY","TRUE","FALSE","NULL","String","fromCharCode","NUMBER_DIGIT","starti","slashed","unicodeI","STRING_BIGLOOP","unicodeS","parseInt","substring","lastIndex","reResult","exec","length","index","TRUE2","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","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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"}