adofai 2.9.13 → 2.9.14

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 (58) hide show
  1. package/dist/src/effectProcessor.d.ts +32 -0
  2. package/dist/src/effectProcessor.js +90 -0
  3. package/dist/src/effectProcessor.js.map +1 -0
  4. package/dist/src/format.d.ts +8 -0
  5. package/dist/src/format.js +47 -0
  6. package/dist/src/format.js.map +1 -0
  7. package/dist/src/index.d.ts +5 -0
  8. package/dist/src/index.js +49 -0
  9. package/dist/src/index.js.map +1 -0
  10. package/dist/src/parser/ArrayBufferParser.d.ts +9 -0
  11. package/dist/src/parser/ArrayBufferParser.js +109 -0
  12. package/dist/src/parser/ArrayBufferParser.js.map +1 -0
  13. package/dist/src/parser/BufferParser.d.ts +9 -0
  14. package/dist/src/parser/BufferParser.js +103 -0
  15. package/dist/src/parser/BufferParser.js.map +1 -0
  16. package/{src/parser/Parser.ts → dist/src/parser/Parser.d.ts} +5 -6
  17. package/dist/src/parser/Parser.js +6 -0
  18. package/dist/src/parser/Parser.js.map +1 -0
  19. package/dist/src/parser/StringParser.d.ts +7 -0
  20. package/{src/parser/StringParser.ts → dist/src/parser/StringParser.js} +449 -438
  21. package/dist/src/parser/StringParser.js.map +1 -0
  22. package/dist/src/parser/index.d.ts +16 -0
  23. package/dist/src/parser/index.js +29 -0
  24. package/dist/src/parser/index.js.map +1 -0
  25. package/{src/parser.ts → dist/src/parser.d.ts} +1 -2
  26. package/dist/src/parser.js +15 -0
  27. package/dist/src/parser.js.map +1 -0
  28. package/dist/src/pathdata.d.ts +13 -0
  29. package/dist/src/pathdata.js +17 -0
  30. package/dist/src/pathdata.js.map +1 -0
  31. package/dist/src/presets.d.ts +10 -0
  32. package/{src/presets.ts → dist/src/presets.js} +13 -19
  33. package/dist/src/presets.js.map +1 -0
  34. package/dist/src/structure/Level.d.ts +54 -0
  35. package/dist/src/structure/Level.js +388 -0
  36. package/dist/src/structure/Level.js.map +1 -0
  37. package/{src/structure/interfaces.ts → dist/src/structure/interfaces.d.ts} +33 -38
  38. package/dist/src/structure/interfaces.js +3 -0
  39. package/dist/src/structure/interfaces.js.map +1 -0
  40. package/{src/structure.ts → dist/src/structure.d.ts} +4 -6
  41. package/dist/src/structure.js +5 -0
  42. package/dist/src/structure.js.map +1 -0
  43. package/package.json +6 -2
  44. package/.babelrc +0 -5
  45. package/index.ts +0 -12
  46. package/src/effectProcessor.ts +0 -82
  47. package/src/format.ts +0 -69
  48. package/src/parser/ArrayBufferParser.ts +0 -101
  49. package/src/parser/BufferParser.ts +0 -93
  50. package/src/parser/index.ts +0 -28
  51. package/src/pathdata.ts +0 -20
  52. package/src/structure/Level.ts +0 -351
  53. package/src/structure.ts.bak +0 -412
  54. package/test/Buffer.js +0 -2030
  55. package/test/editor.html +0 -501
  56. package/test/index.html +0 -31
  57. package/tsconfig.json +0 -17
  58. package/webpack.config.mjs +0 -35
@@ -0,0 +1,32 @@
1
+ interface Tile {
2
+ addDecorations?: any[];
3
+ actions?: Action[];
4
+ [key: string]: any;
5
+ }
6
+ interface Action {
7
+ eventType: string;
8
+ [key: string]: any;
9
+ }
10
+ /**
11
+ * @param {Array} tiles ADOFAI Tiles from ADOFAI.Level
12
+ * @returns {Array} new Tiles
13
+ */
14
+ declare function clearDecorations(tiles: Tile[]): Tile[];
15
+ /**
16
+ * @param {Array} eventTypes Eventlist to remove
17
+ * @param {Array} tiles ADOFAI Tiles from ADOFAI.Level
18
+ * @returns {Array} new Tiles
19
+ */
20
+ declare function clearEvents(eventTypes: string[], tiles: Tile[]): Tile[];
21
+ /**
22
+ * @param {Array} eventTypes Eventlist to keep
23
+ * @param {Array} tiles ADOFAI Tiles from ADOFAI.Level
24
+ * @returns {Array} new Tiles
25
+ */
26
+ declare function keepEvents(eventTypes: string[], tiles: Tile[]): Tile[];
27
+ declare const effectProcessor: {
28
+ clearDecorations: typeof clearDecorations;
29
+ clearEvents: typeof clearEvents;
30
+ keepEvents: typeof keepEvents;
31
+ };
32
+ export default effectProcessor;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const presets = __importStar(require("./presets"));
37
+ /**
38
+ * @param {Array} tiles ADOFAI Tiles from ADOFAI.Level
39
+ * @returns {Array} new Tiles
40
+ */
41
+ function clearDecorations(tiles) {
42
+ if (!Array.isArray(tiles)) {
43
+ throw new Error('Arguments are not supported.');
44
+ }
45
+ return tiles.map(tile => {
46
+ const newTile = Object.assign({}, tile);
47
+ if (newTile.hasOwnProperty('addDecorations')) {
48
+ newTile.addDecorations = [];
49
+ }
50
+ if (Array.isArray(newTile.actions)) {
51
+ newTile.actions = newTile.actions.filter(action => !presets.preset_inner_no_deco.events.includes(action.eventType));
52
+ }
53
+ return newTile;
54
+ });
55
+ }
56
+ /**
57
+ * @param {Array} eventTypes Eventlist to remove
58
+ * @param {Array} tiles ADOFAI Tiles from ADOFAI.Level
59
+ * @returns {Array} new Tiles
60
+ */
61
+ function clearEvents(eventTypes, tiles) {
62
+ return tiles.map(tile => {
63
+ const newTile = Object.assign({}, tile);
64
+ if (Array.isArray(newTile.actions)) {
65
+ newTile.actions = newTile.actions.filter(action => !eventTypes.includes(action.eventType));
66
+ }
67
+ return newTile;
68
+ });
69
+ }
70
+ /**
71
+ * @param {Array} eventTypes Eventlist to keep
72
+ * @param {Array} tiles ADOFAI Tiles from ADOFAI.Level
73
+ * @returns {Array} new Tiles
74
+ */
75
+ function keepEvents(eventTypes, tiles) {
76
+ return tiles.map(tile => {
77
+ const newTile = Object.assign({}, tile);
78
+ if (Array.isArray(newTile.actions)) {
79
+ newTile.actions = newTile.actions.filter(action => eventTypes.includes(action.eventType));
80
+ }
81
+ return newTile;
82
+ });
83
+ }
84
+ const effectProcessor = {
85
+ clearDecorations,
86
+ clearEvents,
87
+ keepEvents
88
+ };
89
+ exports.default = effectProcessor;
90
+ //# sourceMappingURL=effectProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effectProcessor.js","sourceRoot":"","sources":["../../src/effectProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AAapC;;;EAGE;AACF,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,OAAO,qBAAQ,IAAI,CAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAChD,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAChE,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;EAIE;AACF,SAAS,WAAW,CAAC,UAAoB,EAAE,KAAa;IACtD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,OAAO,qBAAQ,IAAI,CAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC/C,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CACxC,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;EAIE;AACF,SAAS,UAAU,CAAC,UAAoB,EAAE,KAAa;IACrD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,OAAO,qBAAQ,IAAI,CAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAChD,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CACtC,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,eAAe,GAAG;IACtB,gBAAgB;IAChB,WAAW;IACX,UAAU;CACX,CAAA;AACD,kBAAe,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @param {object} obj - JSON Object
3
+ * @param {number} indent - No usage
4
+ * @param {boolean} isRoot - Is JSON the Root?
5
+ * @returns ADOFAI File Content or Object
6
+ */
7
+ declare function exportAsADOFAI(obj: any, indent?: number, isRoot?: boolean): string;
8
+ export default exportAsADOFAI;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * @param {object} obj - JSON Object
5
+ * @param {number} indent - No usage
6
+ * @param {boolean} isRoot - Is JSON the Root?
7
+ * @returns ADOFAI File Content or Object
8
+ */
9
+ function exportAsADOFAI(obj, indent = 0, isRoot = false) {
10
+ if (typeof obj !== 'object' || obj === null) {
11
+ return JSON.stringify(obj);
12
+ }
13
+ if (Array.isArray(obj)) {
14
+ const allPrimitives = obj.every(item => typeof item !== 'object' || item === null);
15
+ if (allPrimitives) {
16
+ return '[' + obj.map(item => exportAsADOFAI(item)).join(',') + ']';
17
+ }
18
+ const spaces = ' '.repeat(indent);
19
+ const arrayItems = obj.map(item => spaces + ' ' + formatAsSingleLine(item)).join(',\n');
20
+ return '[\n' + arrayItems + '\n' + spaces + ']';
21
+ }
22
+ const spaces = ' '.repeat(indent);
23
+ const keys = Object.keys(obj);
24
+ if (isRoot) {
25
+ const objectItems = keys.map(key => ' ' + JSON.stringify(key) + ': ' + exportAsADOFAI(obj[key], 2)).join(',\n');
26
+ return '{\n' + objectItems + '\n}';
27
+ }
28
+ const objectItems = keys.map(key => spaces + ' ' + JSON.stringify(key) + ': ' + exportAsADOFAI(obj[key], indent + 2)).join(',\n');
29
+ return '{\n' + objectItems + '\n' + spaces + '}';
30
+ }
31
+ /**
32
+ * @param {Array} obj Eventlist to keep
33
+ * @returns {string} JSON formated as singleline
34
+ */
35
+ function formatAsSingleLine(obj) {
36
+ if (typeof obj !== 'object' || obj === null) {
37
+ return exportAsADOFAI(obj);
38
+ }
39
+ if (Array.isArray(obj)) {
40
+ return '[' + obj.map(formatAsSingleLine).join(',') + ']';
41
+ }
42
+ const keys = Object.keys(obj);
43
+ const entries = keys.map(key => JSON.stringify(key) + ': ' + formatAsSingleLine(obj[key])).join(', ');
44
+ return '{' + entries + '}';
45
+ }
46
+ exports.default = exportAsADOFAI;
47
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import pathData from './pathdata';
2
+ import * as Parsers from './parser';
3
+ import Level, * as Structure from './structure';
4
+ import * as Presets from './presets';
5
+ export { pathData, Parsers, Level, Structure, Presets };
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Presets = exports.Structure = exports.Level = exports.Parsers = exports.pathData = void 0;
40
+ const pathdata_1 = __importDefault(require("./pathdata"));
41
+ exports.pathData = pathdata_1.default;
42
+ const Parsers = __importStar(require("./parser"));
43
+ exports.Parsers = Parsers;
44
+ const structure_1 = __importStar(require("./structure")), Structure = structure_1;
45
+ exports.Level = structure_1.default;
46
+ exports.Structure = Structure;
47
+ const Presets = __importStar(require("./presets"));
48
+ exports.Presets = Presets;
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAiC;AAM7B,mBANG,kBAAQ,CAMH;AALZ,kDAAmC;AAM/B,0BAAO;AALX,kFAA8C;AAM1C,gBANG,mBAAK,CAMH;AACL,8BAAS;AANb,mDAAoC;AAOhC,0BAAO"}
@@ -0,0 +1,9 @@
1
+ import Parser from "./Parser";
2
+ export declare class ArrayBufferParser extends Parser<ArrayBuffer | string, any> {
3
+ parse(input: ArrayBuffer | string): any;
4
+ stringify(obj: any): string;
5
+ }
6
+ export declare function stripBOM(buffer: ArrayBuffer): ArrayBuffer;
7
+ export declare function normalizeJsonArrayBuffer(buffer: ArrayBuffer): ArrayBuffer;
8
+ export declare function decodeStringFromUTF8BOM(buffer: ArrayBuffer): string;
9
+ export default ArrayBufferParser;
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ArrayBufferParser = void 0;
7
+ exports.stripBOM = stripBOM;
8
+ exports.normalizeJsonArrayBuffer = normalizeJsonArrayBuffer;
9
+ exports.decodeStringFromUTF8BOM = decodeStringFromUTF8BOM;
10
+ const Parser_1 = __importDefault(require("./Parser"));
11
+ const StringParser_1 = __importDefault(require("./StringParser"));
12
+ const BOM = new Uint8Array([0xef, 0xbb, 0xbf]);
13
+ const COMMA = new Uint8Array([44]); // ASCII for ','
14
+ class ArrayBufferParser extends Parser_1.default {
15
+ parse(input) {
16
+ if (typeof input === "string") {
17
+ return StringParser_1.default.prototype.parse.call(StringParser_1.default.prototype, input);
18
+ }
19
+ else {
20
+ return StringParser_1.default.prototype.parse.call(StringParser_1.default.prototype, decodeStringFromUTF8BOM(normalizeJsonArrayBuffer(stripBOM(input))));
21
+ }
22
+ }
23
+ stringify(obj) {
24
+ return JSON.stringify(obj);
25
+ }
26
+ }
27
+ exports.ArrayBufferParser = ArrayBufferParser;
28
+ function stripBOM(buffer) {
29
+ const view = new Uint8Array(buffer);
30
+ if (view.length >= 3 && view[0] === BOM[0] && view[1] === BOM[1] && view[2] === BOM[2]) {
31
+ return buffer.slice(3);
32
+ }
33
+ return buffer;
34
+ }
35
+ function normalizeJsonArrayBuffer(buffer) {
36
+ const view = new Uint8Array(buffer);
37
+ let builder = [];
38
+ let last = "other";
39
+ let from = 0;
40
+ for (let i = 0; i < view.length; i++) {
41
+ const charCode = view[i];
42
+ if (last == "escape") {
43
+ last = "string";
44
+ }
45
+ else {
46
+ switch (charCode) {
47
+ case 34: // "
48
+ switch (last) {
49
+ case "string":
50
+ last = "other";
51
+ break;
52
+ case "comma":
53
+ builder.push(COMMA);
54
+ default:
55
+ last = "string";
56
+ break;
57
+ }
58
+ break;
59
+ case 92: // \
60
+ if (last === "string")
61
+ last = "escape";
62
+ break;
63
+ case 44: // ,
64
+ builder.push(view.subarray(from, i));
65
+ from = i + 1;
66
+ if (last === "other")
67
+ last = "comma";
68
+ break;
69
+ case 93: // ]
70
+ case 125: // }
71
+ if (last === "comma")
72
+ last = "other";
73
+ break;
74
+ case 9: // \t
75
+ case 10: // \n
76
+ case 11: // \v
77
+ case 12: // \f
78
+ case 13: // \r
79
+ case 32: // space
80
+ break;
81
+ default:
82
+ if (last === "comma") {
83
+ builder.push(COMMA);
84
+ last = "other";
85
+ }
86
+ break;
87
+ }
88
+ }
89
+ }
90
+ builder.push(view.subarray(from));
91
+ let totalLength = 0;
92
+ for (const arr of builder) {
93
+ totalLength += arr.length;
94
+ }
95
+ const result = new Uint8Array(totalLength);
96
+ let offset = 0;
97
+ for (const arr of builder) {
98
+ result.set(arr, offset);
99
+ offset += arr.length;
100
+ }
101
+ return result.buffer;
102
+ }
103
+ function decodeStringFromUTF8BOM(buffer) {
104
+ const strippedBuffer = stripBOM(buffer);
105
+ const decoder = new TextDecoder('utf-8');
106
+ return decoder.decode(strippedBuffer);
107
+ }
108
+ exports.default = ArrayBufferParser;
109
+ //# sourceMappingURL=ArrayBufferParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayBufferParser.js","sourceRoot":"","sources":["../../../src/parser/ArrayBufferParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import Parser from "./Parser";
2
+ export declare class BufferParser extends Parser<Buffer | string, any> {
3
+ parse(input: Buffer | string): any;
4
+ stringify(obj: any): string;
5
+ }
6
+ export declare function stripBOM(buffer: Buffer): Buffer;
7
+ export declare function normalizeJsonBuffer(text: Buffer): Buffer;
8
+ export declare function decodeStringFromUTF8BOM(buffer: Buffer): string;
9
+ export default BufferParser;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BufferParser = void 0;
7
+ exports.stripBOM = stripBOM;
8
+ exports.normalizeJsonBuffer = normalizeJsonBuffer;
9
+ exports.decodeStringFromUTF8BOM = decodeStringFromUTF8BOM;
10
+ const Parser_1 = __importDefault(require("./Parser"));
11
+ const StringParser_1 = __importDefault(require("./StringParser"));
12
+ let BOM;
13
+ let COMMA;
14
+ try {
15
+ BOM = Buffer.of(0xef, 0xbb, 0xbf);
16
+ COMMA = Buffer.from(",");
17
+ }
18
+ catch (e) {
19
+ console.warn('Buffer is not available in current environment, try to use ArrayBufferParser');
20
+ BOM = { equals: () => false, subarray: () => null };
21
+ COMMA = { equals: () => false, subarray: () => null };
22
+ }
23
+ class BufferParser extends Parser_1.default {
24
+ parse(input) {
25
+ if (typeof input === "string") {
26
+ return StringParser_1.default.prototype.parse.call(StringParser_1.default.prototype, input);
27
+ }
28
+ else {
29
+ return StringParser_1.default.prototype.parse.call(StringParser_1.default.prototype, decodeStringFromUTF8BOM(normalizeJsonBuffer(stripBOM(input))));
30
+ }
31
+ }
32
+ stringify(obj) {
33
+ return JSON.stringify(obj);
34
+ }
35
+ }
36
+ exports.BufferParser = BufferParser;
37
+ function stripBOM(buffer) {
38
+ if (buffer.length >= 3 && BOM.equals(buffer.subarray(0, 3))) {
39
+ return buffer.subarray(3);
40
+ }
41
+ return buffer;
42
+ }
43
+ function normalizeJsonBuffer(text) {
44
+ let builder = [];
45
+ let last = "other";
46
+ let from = 0;
47
+ text.forEach((charCode, i) => {
48
+ if (last == "escape") {
49
+ last = "string";
50
+ }
51
+ else {
52
+ switch (charCode) {
53
+ case 34:
54
+ switch (last) {
55
+ case "string":
56
+ last = "other";
57
+ break;
58
+ case "comma":
59
+ builder.push(COMMA);
60
+ default:
61
+ last = "string";
62
+ break;
63
+ }
64
+ break;
65
+ case 92:
66
+ if (last === "string")
67
+ last = "escape";
68
+ break;
69
+ case 44:
70
+ builder.push(text.subarray(from, i));
71
+ from = i + 1;
72
+ if (last === "other")
73
+ last = "comma";
74
+ break;
75
+ case 93:
76
+ case 125:
77
+ if (last === "comma")
78
+ last = "other";
79
+ break;
80
+ case 9:
81
+ case 10:
82
+ case 11:
83
+ case 12:
84
+ case 13:
85
+ case 32:
86
+ break;
87
+ default:
88
+ if (last === "comma") {
89
+ builder.push(COMMA);
90
+ last = "other";
91
+ }
92
+ break;
93
+ }
94
+ }
95
+ });
96
+ builder.push(text.subarray(from));
97
+ return Buffer.concat(builder);
98
+ }
99
+ function decodeStringFromUTF8BOM(buffer) {
100
+ return stripBOM(buffer).toString("utf-8");
101
+ }
102
+ exports.default = BufferParser;
103
+ //# sourceMappingURL=BufferParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BufferParser.js","sourceRoot":"","sources":["../../../src/parser/BufferParser.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- abstract class Parser<TInput = any, TOutput = any> {
2
- abstract parse(input: TInput): TOutput;
3
- abstract stringify(obj: TOutput): TInput;
4
- }
5
-
6
- export default Parser;
1
+ declare abstract class Parser<TInput = any, TOutput = any> {
2
+ abstract parse(input: TInput): TOutput;
3
+ abstract stringify(obj: TOutput): TInput;
4
+ }
5
+ export default Parser;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Parser {
4
+ }
5
+ exports.default = Parser;
6
+ //# sourceMappingURL=Parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../src/parser/Parser.ts"],"names":[],"mappings":";;AAAA,MAAe,MAAM;CAGpB;AAED,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,7 @@
1
+ import Parser from "./Parser";
2
+ declare class StringParser extends Parser<string, any> {
3
+ parse(text: string | null, reviver?: (key: string, value: any) => any): any;
4
+ stringify(value: any, replacer?: (key: string, value: any) => any, space?: string | number): string;
5
+ static _applyReviver(key: string, value: any, reviver: (key: string, value: any) => any): any;
6
+ }
7
+ export default StringParser;