refactor: move brother_node development artifact to dev/test-nodes subdirectory

Development Artifact Cleanup:
 BROTHER_NODE REORGANIZATION: Moved development test node to appropriate location
- dev/test-nodes/brother_node/: Moved from root directory for better organization
- Contains development configuration, test logs, and test chain data
- No impact on production systems - purely development/testing artifact

 DEVELOPMENT ARTIFACTS IDENTIFIED:
- Chain ID: aitbc-brother-chain (test/development chain)
- Ports: 8010 (P2P) and 8011 (RPC) - different from production
- Environment: .env file with test configuration
- Logs: rpc.log and node.log from development testing session (March 15, 2026)

 ROOT DIRECTORY CLEANUP: Removed development clutter from production directory
- brother_node/ moved to dev/test-nodes/brother_node/
- Root directory now contains only production-ready components
- Development artifacts properly organized in dev/ subdirectory

DIRECTORY STRUCTURE IMPROVEMENT:
📁 dev/test-nodes/: Development and testing node configurations
🏗️ Root Directory: Clean production structure with only essential components
🧪 Development Isolation: Test environments separated from production

BENEFITS:
 Clean Production Directory: No development artifacts in root
 Better Organization: Development nodes grouped in dev/ subdirectory
 Clear Separation: Production vs development environments clearly distinguished
 Maintainability: Easier to identify and manage development components

RESULT: Successfully moved brother_node development artifact to dev/test-nodes/ subdirectory, cleaning up the root directory while preserving development testing environment for future use.
This commit is contained in:
2026-03-30 17:09:06 +02:00
parent bf730dcb4a
commit 816e258d4c
11734 changed files with 2001707 additions and 0 deletions

10
dev/env/node_modules/@streamparser/json/dist/cjs/index.d.ts generated vendored Executable file
View File

@@ -0,0 +1,10 @@
export { default as JSONParser, type JSONParserOptions } from "./jsonparser.js";
export { default as Tokenizer, type TokenizerOptions, TokenizerError, } from "./tokenizer.js";
export { default as TokenParser, type TokenParserOptions, TokenParserError, } from "./tokenparser.js";
export * as utf8 from "./utils/utf-8.js";
export * as JsonTypes from "./utils/types/jsonTypes.js";
export * as ParsedTokenInfo from "./utils/types/parsedTokenInfo.js";
export * as ParsedElementInfo from "./utils/types/parsedElementInfo.js";
export { TokenParserMode, type StackElement, } from "./utils/types/stackElement.js";
export { default as TokenType } from "./utils/types/tokenType.js";
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,gBAAgB,EACrB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,KAAK,kBAAkB,EACvB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,iBAAiB,MAAM,oCAAoC,CAAC;AACxE,OAAO,EACL,eAAe,EACf,KAAK,YAAY,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC"}

46
dev/env/node_modules/@streamparser/json/dist/cjs/index.js generated vendored Executable file
View File

@@ -0,0 +1,46 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TokenType = exports.TokenParserMode = exports.ParsedElementInfo = exports.ParsedTokenInfo = exports.JsonTypes = exports.utf8 = exports.TokenParserError = exports.TokenParser = exports.TokenizerError = exports.Tokenizer = exports.JSONParser = void 0;
var jsonparser_js_1 = require("./jsonparser.js");
Object.defineProperty(exports, "JSONParser", { enumerable: true, get: function () { return __importDefault(jsonparser_js_1).default; } });
var tokenizer_js_1 = require("./tokenizer.js");
Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function () { return __importDefault(tokenizer_js_1).default; } });
Object.defineProperty(exports, "TokenizerError", { enumerable: true, get: function () { return tokenizer_js_1.TokenizerError; } });
var tokenparser_js_1 = require("./tokenparser.js");
Object.defineProperty(exports, "TokenParser", { enumerable: true, get: function () { return __importDefault(tokenparser_js_1).default; } });
Object.defineProperty(exports, "TokenParserError", { enumerable: true, get: function () { return tokenparser_js_1.TokenParserError; } });
exports.utf8 = __importStar(require("./utils/utf-8.js"));
exports.JsonTypes = __importStar(require("./utils/types/jsonTypes.js"));
exports.ParsedTokenInfo = __importStar(require("./utils/types/parsedTokenInfo.js"));
exports.ParsedElementInfo = __importStar(require("./utils/types/parsedElementInfo.js"));
var stackElement_js_1 = require("./utils/types/stackElement.js");
Object.defineProperty(exports, "TokenParserMode", { enumerable: true, get: function () { return stackElement_js_1.TokenParserMode; } });
var tokenType_js_1 = require("./utils/types/tokenType.js");
Object.defineProperty(exports, "TokenType", { enumerable: true, get: function () { return __importDefault(tokenType_js_1).default; } });
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAgF;AAAvE,4HAAA,OAAO,OAAc;AAC9B,+CAIwB;AAHtB,0HAAA,OAAO,OAAa;AAEpB,8GAAA,cAAc,OAAA;AAEhB,mDAI0B;AAHxB,8HAAA,OAAO,OAAe;AAEtB,kHAAA,gBAAgB,OAAA;AAGlB,yDAAyC;AACzC,wEAAwD;AACxD,oFAAoE;AACpE,wFAAwE;AACxE,iEAGuC;AAFrC,kHAAA,eAAe,OAAA;AAGjB,2DAAkE;AAAzD,0HAAA,OAAO,OAAa"}

View File

@@ -0,0 +1,19 @@
import { type TokenizerOptions } from "./tokenizer.js";
import { type TokenParserOptions } from "./tokenparser.js";
import type { ParsedElementInfo } from "./utils/types/parsedElementInfo.js";
import type { ParsedTokenInfo } from "./utils/types/parsedTokenInfo.js";
export interface JSONParserOptions extends TokenizerOptions, TokenParserOptions {
}
export default class JSONParser {
private tokenizer;
private tokenParser;
constructor(opts?: JSONParserOptions);
get isEnded(): boolean;
write(input: Iterable<number> | string): void;
end(): void;
set onToken(cb: (parsedTokenInfo: ParsedTokenInfo) => void);
set onValue(cb: (parsedElementInfo: ParsedElementInfo) => void);
set onError(cb: (err: Error) => void);
set onEnd(cb: () => void);
}
//# sourceMappingURL=jsonparser.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"jsonparser.d.ts","sourceRoot":"","sources":["../../src/jsonparser.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,WAAW,iBACf,SAAQ,gBAAgB,EACtB,kBAAkB;CAAG;AAEzB,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAc;gBAErB,IAAI,GAAE,iBAAsB;IAexC,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;IAI7C,GAAG,IAAI,IAAI;IAIlB,IAAW,OAAO,CAAC,EAAE,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,EAKhE;IAED,IAAW,OAAO,CAAC,EAAE,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,IAAI,EAEpE;IAED,IAAW,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,EAE1C;IAED,IAAW,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,EAK9B;CACF"}

View File

@@ -0,0 +1,53 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const tokenizer_js_1 = __importDefault(require("./tokenizer.js"));
const tokenparser_js_1 = __importDefault(require("./tokenparser.js"));
class JSONParser {
constructor(opts = {}) {
this.tokenizer = new tokenizer_js_1.default(opts);
this.tokenParser = new tokenparser_js_1.default(opts);
this.tokenizer.onToken = this.tokenParser.write.bind(this.tokenParser);
this.tokenizer.onEnd = () => {
if (!this.tokenParser.isEnded)
this.tokenParser.end();
};
this.tokenParser.onError = this.tokenizer.error.bind(this.tokenizer);
this.tokenParser.onEnd = () => {
if (!this.tokenizer.isEnded)
this.tokenizer.end();
};
}
get isEnded() {
return this.tokenizer.isEnded && this.tokenParser.isEnded;
}
write(input) {
this.tokenizer.write(input);
}
end() {
this.tokenizer.end();
}
set onToken(cb) {
this.tokenizer.onToken = (parsedToken) => {
cb(parsedToken);
this.tokenParser.write(parsedToken);
};
}
set onValue(cb) {
this.tokenParser.onValue = cb;
}
set onError(cb) {
this.tokenizer.onError = cb;
}
set onEnd(cb) {
this.tokenParser.onEnd = () => {
if (!this.tokenizer.isEnded)
this.tokenizer.end();
cb.call(this.tokenParser);
};
}
}
exports.default = JSONParser;
//# sourceMappingURL=jsonparser.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"jsonparser.js","sourceRoot":"","sources":["../../src/jsonparser.ts"],"names":[],"mappings":";;;;;AAAA,kEAAkE;AAClE,sEAAwE;AAQxE,MAAqB,UAAU;IAI7B,YAAY,OAA0B,EAAE;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,wBAAW,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACxD,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,KAAgC;QAC3C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEM,GAAG;QACR,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,IAAW,OAAO,CAAC,EAA8C;QAC/D,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,WAAW,EAAE,EAAE;YACvC,EAAE,CAAC,WAAW,CAAC,CAAC;YAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC;IAED,IAAW,OAAO,CAAC,EAAkD;QACnE,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,IAAW,OAAO,CAAC,EAAwB;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,IAAW,KAAK,CAAC,EAAc;QAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAClD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CACF;AApDD,6BAoDC"}

View File

@@ -0,0 +1,3 @@
{
"type": "commonjs"
}

View File

@@ -0,0 +1,40 @@
import type { ParsedTokenInfo } from "./utils/types/parsedTokenInfo.js";
export interface TokenizerOptions {
stringBufferSize?: number;
numberBufferSize?: number;
separator?: string;
emitPartialTokens?: boolean;
}
export declare class TokenizerError extends Error {
constructor(message: string);
}
export default class Tokenizer {
private state;
private bom?;
private bomIndex;
private emitPartialTokens;
private separator?;
private separatorBytes?;
private separatorIndex;
private escapedCharsByteLength;
private bufferedString;
private bufferedNumber;
private unicode?;
private highSurrogate?;
private bytes_remaining;
private bytes_in_sequence;
private char_split_buffer;
private encoder;
private offset;
constructor(opts?: TokenizerOptions);
get isEnded(): boolean;
write(input: Iterable<number> | string): void;
private emitNumber;
protected parseNumber(numberStr: string): number;
error(err: Error): void;
end(): void;
onToken(parsedToken: ParsedTokenInfo): void;
onError(err: Error): void;
onEnd(): void;
}
//# sourceMappingURL=tokenizer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/tokenizer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAyExE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAK5B;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,OAAO,CAAC,KAAK,CAAgC;IAE7C,OAAO,CAAC,GAAG,CAAC,CAAW;IACvB,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAM;gBAER,IAAI,CAAC,EAAE,gBAAgB;IAmBnC,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;IA8nBpD,OAAO,CAAC,UAAU;IASlB,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIzC,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAQvB,GAAG,IAAI,IAAI;IA6BX,OAAO,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAO3C,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAKzB,KAAK,IAAI,IAAI;CAGrB"}

742
dev/env/node_modules/@streamparser/json/dist/cjs/tokenizer.js generated vendored Executable file
View File

@@ -0,0 +1,742 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TokenizerError = void 0;
const utf_8_js_1 = require("./utils/utf-8.js");
const bufferedString_js_1 = require("./utils/bufferedString.js");
const tokenType_js_1 = __importDefault(require("./utils/types/tokenType.js"));
// Tokenizer States
var TokenizerStates;
(function (TokenizerStates) {
TokenizerStates[TokenizerStates["START"] = 0] = "START";
TokenizerStates[TokenizerStates["ENDED"] = 1] = "ENDED";
TokenizerStates[TokenizerStates["ERROR"] = 2] = "ERROR";
TokenizerStates[TokenizerStates["TRUE1"] = 3] = "TRUE1";
TokenizerStates[TokenizerStates["TRUE2"] = 4] = "TRUE2";
TokenizerStates[TokenizerStates["TRUE3"] = 5] = "TRUE3";
TokenizerStates[TokenizerStates["FALSE1"] = 6] = "FALSE1";
TokenizerStates[TokenizerStates["FALSE2"] = 7] = "FALSE2";
TokenizerStates[TokenizerStates["FALSE3"] = 8] = "FALSE3";
TokenizerStates[TokenizerStates["FALSE4"] = 9] = "FALSE4";
TokenizerStates[TokenizerStates["NULL1"] = 10] = "NULL1";
TokenizerStates[TokenizerStates["NULL2"] = 11] = "NULL2";
TokenizerStates[TokenizerStates["NULL3"] = 12] = "NULL3";
TokenizerStates[TokenizerStates["STRING_DEFAULT"] = 13] = "STRING_DEFAULT";
TokenizerStates[TokenizerStates["STRING_AFTER_BACKSLASH"] = 14] = "STRING_AFTER_BACKSLASH";
TokenizerStates[TokenizerStates["STRING_UNICODE_DIGIT_1"] = 15] = "STRING_UNICODE_DIGIT_1";
TokenizerStates[TokenizerStates["STRING_UNICODE_DIGIT_2"] = 16] = "STRING_UNICODE_DIGIT_2";
TokenizerStates[TokenizerStates["STRING_UNICODE_DIGIT_3"] = 17] = "STRING_UNICODE_DIGIT_3";
TokenizerStates[TokenizerStates["STRING_UNICODE_DIGIT_4"] = 18] = "STRING_UNICODE_DIGIT_4";
TokenizerStates[TokenizerStates["STRING_INCOMPLETE_CHAR"] = 19] = "STRING_INCOMPLETE_CHAR";
TokenizerStates[TokenizerStates["NUMBER_AFTER_INITIAL_MINUS"] = 20] = "NUMBER_AFTER_INITIAL_MINUS";
TokenizerStates[TokenizerStates["NUMBER_AFTER_INITIAL_ZERO"] = 21] = "NUMBER_AFTER_INITIAL_ZERO";
TokenizerStates[TokenizerStates["NUMBER_AFTER_INITIAL_NON_ZERO"] = 22] = "NUMBER_AFTER_INITIAL_NON_ZERO";
TokenizerStates[TokenizerStates["NUMBER_AFTER_FULL_STOP"] = 23] = "NUMBER_AFTER_FULL_STOP";
TokenizerStates[TokenizerStates["NUMBER_AFTER_DECIMAL"] = 24] = "NUMBER_AFTER_DECIMAL";
TokenizerStates[TokenizerStates["NUMBER_AFTER_E"] = 25] = "NUMBER_AFTER_E";
TokenizerStates[TokenizerStates["NUMBER_AFTER_E_AND_SIGN"] = 26] = "NUMBER_AFTER_E_AND_SIGN";
TokenizerStates[TokenizerStates["NUMBER_AFTER_E_AND_DIGIT"] = 27] = "NUMBER_AFTER_E_AND_DIGIT";
TokenizerStates[TokenizerStates["SEPARATOR"] = 28] = "SEPARATOR";
TokenizerStates[TokenizerStates["BOM_OR_START"] = 29] = "BOM_OR_START";
TokenizerStates[TokenizerStates["BOM"] = 30] = "BOM";
})(TokenizerStates || (TokenizerStates = {}));
function TokenizerStateToString(tokenizerState) {
return [
"START",
"ENDED",
"ERROR",
"TRUE1",
"TRUE2",
"TRUE3",
"FALSE1",
"FALSE2",
"FALSE3",
"FALSE4",
"NULL1",
"NULL2",
"NULL3",
"STRING_DEFAULT",
"STRING_AFTER_BACKSLASH",
"STRING_UNICODE_DIGIT_1",
"STRING_UNICODE_DIGIT_2",
"STRING_UNICODE_DIGIT_3",
"STRING_UNICODE_DIGIT_4",
"STRING_INCOMPLETE_CHAR",
"NUMBER_AFTER_INITIAL_MINUS",
"NUMBER_AFTER_INITIAL_ZERO",
"NUMBER_AFTER_INITIAL_NON_ZERO",
"NUMBER_AFTER_FULL_STOP",
"NUMBER_AFTER_DECIMAL",
"NUMBER_AFTER_E",
"NUMBER_AFTER_E_AND_SIGN",
"NUMBER_AFTER_E_AND_DIGIT",
"SEPARATOR",
"BOM_OR_START",
"BOM",
][tokenizerState];
}
const defaultOpts = {
stringBufferSize: 0,
numberBufferSize: 0,
separator: undefined,
emitPartialTokens: false,
};
class TokenizerError extends Error {
constructor(message) {
super(message);
// Typescript is broken. This is a workaround
Object.setPrototypeOf(this, TokenizerError.prototype);
}
}
exports.TokenizerError = TokenizerError;
class Tokenizer {
constructor(opts) {
this.state = 29 /* TokenizerStates.BOM_OR_START */;
this.bomIndex = 0;
this.separatorIndex = 0;
this.escapedCharsByteLength = 0;
this.bytes_remaining = 0; // number of bytes remaining in multi byte utf8 char to read after split boundary
this.bytes_in_sequence = 0; // bytes in multi byte utf8 char to read
this.char_split_buffer = new Uint8Array(4); // for rebuilding chars split before boundary is reached
this.encoder = new TextEncoder();
this.offset = -1;
opts = Object.assign(Object.assign({}, defaultOpts), opts);
this.emitPartialTokens = opts.emitPartialTokens === true;
this.bufferedString =
opts.stringBufferSize && opts.stringBufferSize > 4
? new bufferedString_js_1.BufferedString(opts.stringBufferSize)
: new bufferedString_js_1.NonBufferedString();
this.bufferedNumber =
opts.numberBufferSize && opts.numberBufferSize > 0
? new bufferedString_js_1.BufferedString(opts.numberBufferSize)
: new bufferedString_js_1.NonBufferedString();
this.separator = opts.separator;
this.separatorBytes = opts.separator
? this.encoder.encode(opts.separator)
: undefined;
}
get isEnded() {
return this.state === 1 /* TokenizerStates.ENDED */;
}
write(input) {
try {
let buffer;
if (input instanceof Uint8Array) {
buffer = input;
}
else if (typeof input === "string") {
buffer = this.encoder.encode(input);
}
else if (Array.isArray(input)) {
buffer = Uint8Array.from(input);
}
else if (ArrayBuffer.isView(input)) {
buffer = new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
}
else {
throw new TypeError("Unexpected type. The `write` function only accepts Arrays, TypedArrays and Strings.");
}
for (let i = 0; i < buffer.length; i += 1) {
const n = buffer[i]; // get current byte from buffer
switch (this.state) {
// @ts-expect-error fall through case
case 29 /* TokenizerStates.BOM_OR_START */:
if (input instanceof Uint8Array && n === 0xef) {
this.bom = [0xef, 0xbb, 0xbf];
this.bomIndex += 1;
this.state = 30 /* TokenizerStates.BOM */;
continue;
}
if (input instanceof Uint16Array) {
if (n === 0xfe) {
this.bom = [0xfe, 0xff];
this.bomIndex += 1;
this.state = 30 /* TokenizerStates.BOM */;
continue;
}
if (n === 0xff) {
this.bom = [0xff, 0xfe];
this.bomIndex += 1;
this.state = 30 /* TokenizerStates.BOM */;
continue;
}
}
if (input instanceof Uint32Array) {
if (n === 0x00) {
this.bom = [0x00, 0x00, 0xfe, 0xff];
this.bomIndex += 1;
this.state = 30 /* TokenizerStates.BOM */;
continue;
}
if (n === 0xff) {
this.bom = [0xff, 0xfe, 0x00, 0x00];
this.bomIndex += 1;
this.state = 30 /* TokenizerStates.BOM */;
continue;
}
}
// eslint-disable-next-line no-fallthrough
case 0 /* TokenizerStates.START */:
this.offset += 1;
if (this.separatorBytes && n === this.separatorBytes[0]) {
if (this.separatorBytes.length === 1) {
this.state = 0 /* TokenizerStates.START */;
this.onToken({
token: tokenType_js_1.default.SEPARATOR,
value: this.separator,
offset: this.offset + this.separatorBytes.length - 1,
});
continue;
}
this.state = 28 /* TokenizerStates.SEPARATOR */;
continue;
}
if (n === 32 /* charset.SPACE */ ||
n === 10 /* charset.NEWLINE */ ||
n === 13 /* charset.CARRIAGE_RETURN */ ||
n === 9 /* charset.TAB */) {
// whitespace
continue;
}
if (n === 123 /* charset.LEFT_CURLY_BRACKET */) {
this.onToken({
token: tokenType_js_1.default.LEFT_BRACE,
value: "{",
offset: this.offset,
});
continue;
}
if (n === 125 /* charset.RIGHT_CURLY_BRACKET */) {
this.onToken({
token: tokenType_js_1.default.RIGHT_BRACE,
value: "}",
offset: this.offset,
});
continue;
}
if (n === 91 /* charset.LEFT_SQUARE_BRACKET */) {
this.onToken({
token: tokenType_js_1.default.LEFT_BRACKET,
value: "[",
offset: this.offset,
});
continue;
}
if (n === 93 /* charset.RIGHT_SQUARE_BRACKET */) {
this.onToken({
token: tokenType_js_1.default.RIGHT_BRACKET,
value: "]",
offset: this.offset,
});
continue;
}
if (n === 58 /* charset.COLON */) {
this.onToken({
token: tokenType_js_1.default.COLON,
value: ":",
offset: this.offset,
});
continue;
}
if (n === 44 /* charset.COMMA */) {
this.onToken({
token: tokenType_js_1.default.COMMA,
value: ",",
offset: this.offset,
});
continue;
}
if (n === 116 /* charset.LATIN_SMALL_LETTER_T */) {
this.state = 3 /* TokenizerStates.TRUE1 */;
continue;
}
if (n === 102 /* charset.LATIN_SMALL_LETTER_F */) {
this.state = 6 /* TokenizerStates.FALSE1 */;
continue;
}
if (n === 110 /* charset.LATIN_SMALL_LETTER_N */) {
this.state = 10 /* TokenizerStates.NULL1 */;
continue;
}
if (n === 34 /* charset.QUOTATION_MARK */) {
this.bufferedString.reset();
this.escapedCharsByteLength = 0;
this.state = 13 /* TokenizerStates.STRING_DEFAULT */;
continue;
}
if (n >= 49 /* charset.DIGIT_ONE */ && n <= 57 /* charset.DIGIT_NINE */) {
this.bufferedNumber.reset();
this.bufferedNumber.appendChar(n);
this.state = 22 /* TokenizerStates.NUMBER_AFTER_INITIAL_NON_ZERO */;
continue;
}
if (n === 48 /* charset.DIGIT_ZERO */) {
this.bufferedNumber.reset();
this.bufferedNumber.appendChar(n);
this.state = 21 /* TokenizerStates.NUMBER_AFTER_INITIAL_ZERO */;
continue;
}
if (n === 45 /* charset.HYPHEN_MINUS */) {
this.bufferedNumber.reset();
this.bufferedNumber.appendChar(n);
this.state = 20 /* TokenizerStates.NUMBER_AFTER_INITIAL_MINUS */;
continue;
}
break;
// STRING
case 13 /* TokenizerStates.STRING_DEFAULT */:
if (n === 34 /* charset.QUOTATION_MARK */) {
const string = this.bufferedString.toString();
this.state = 0 /* TokenizerStates.START */;
this.onToken({
token: tokenType_js_1.default.STRING,
value: string,
offset: this.offset,
});
this.offset +=
this.escapedCharsByteLength +
this.bufferedString.byteLength +
1;
continue;
}
if (n === 92 /* charset.REVERSE_SOLIDUS */) {
this.state = 14 /* TokenizerStates.STRING_AFTER_BACKSLASH */;
continue;
}
if (n >= 128) {
// Parse multi byte (>=128) chars one at a time
if (n >= 194 && n <= 223) {
this.bytes_in_sequence = 2;
}
else if (n <= 239) {
this.bytes_in_sequence = 3;
}
else {
this.bytes_in_sequence = 4;
}
if (this.bytes_in_sequence <= buffer.length - i) {
// if bytes needed to complete char fall outside buffer length, we have a boundary split
this.bufferedString.appendBuf(buffer, i, i + this.bytes_in_sequence);
i += this.bytes_in_sequence - 1;
continue;
}
this.bytes_remaining = i + this.bytes_in_sequence - buffer.length;
this.char_split_buffer.set(buffer.subarray(i));
i = buffer.length - 1;
this.state = 19 /* TokenizerStates.STRING_INCOMPLETE_CHAR */;
continue;
}
if (n >= 32 /* charset.SPACE */) {
this.bufferedString.appendChar(n);
continue;
}
break;
case 19 /* TokenizerStates.STRING_INCOMPLETE_CHAR */:
// check for carry over of a multi byte char split between data chunks
// & fill temp buffer it with start of this data chunk up to the boundary limit set in the last iteration
this.char_split_buffer.set(buffer.subarray(i, i + this.bytes_remaining), this.bytes_in_sequence - this.bytes_remaining);
this.bufferedString.appendBuf(this.char_split_buffer, 0, this.bytes_in_sequence);
i = this.bytes_remaining - 1;
this.state = 13 /* TokenizerStates.STRING_DEFAULT */;
continue;
case 14 /* TokenizerStates.STRING_AFTER_BACKSLASH */:
// eslint-disable-next-line no-case-declarations
const controlChar = utf_8_js_1.escapedSequences[n];
if (controlChar) {
this.bufferedString.appendChar(controlChar);
this.escapedCharsByteLength += 1; // len(\")=2 minus the fact you're appending len(controlChar)=1
this.state = 13 /* TokenizerStates.STRING_DEFAULT */;
continue;
}
if (n === 117 /* charset.LATIN_SMALL_LETTER_U */) {
this.unicode = "";
this.state = 15 /* TokenizerStates.STRING_UNICODE_DIGIT_1 */;
continue;
}
break;
case 15 /* TokenizerStates.STRING_UNICODE_DIGIT_1 */:
case 16 /* TokenizerStates.STRING_UNICODE_DIGIT_2 */:
case 17 /* TokenizerStates.STRING_UNICODE_DIGIT_3 */:
if ((n >= 48 /* charset.DIGIT_ZERO */ && n <= 57 /* charset.DIGIT_NINE */) ||
(n >= 65 /* charset.LATIN_CAPITAL_LETTER_A */ &&
n <= 70 /* charset.LATIN_CAPITAL_LETTER_F */) ||
(n >= 97 /* charset.LATIN_SMALL_LETTER_A */ &&
n <= 102 /* charset.LATIN_SMALL_LETTER_F */)) {
this.unicode += String.fromCharCode(n);
this.state += 1;
continue;
}
break;
case 18 /* TokenizerStates.STRING_UNICODE_DIGIT_4 */:
if ((n >= 48 /* charset.DIGIT_ZERO */ && n <= 57 /* charset.DIGIT_NINE */) ||
(n >= 65 /* charset.LATIN_CAPITAL_LETTER_A */ &&
n <= 70 /* charset.LATIN_CAPITAL_LETTER_F */) ||
(n >= 97 /* charset.LATIN_SMALL_LETTER_A */ &&
n <= 102 /* charset.LATIN_SMALL_LETTER_F */)) {
const intVal = parseInt(this.unicode + String.fromCharCode(n), 16);
let unicodeString;
if (this.highSurrogate === undefined) {
if (intVal >= 0xd800 && intVal <= 0xdbff) {
//<55296,56319> - highSurrogate
this.highSurrogate = intVal;
this.state = 13 /* TokenizerStates.STRING_DEFAULT */;
continue;
}
else {
unicodeString = String.fromCharCode(intVal);
}
}
else {
if (intVal >= 0xdc00 && intVal <= 0xdfff) {
//<56320,57343> - lowSurrogate
unicodeString = String.fromCharCode(this.highSurrogate, intVal);
}
else {
unicodeString = String.fromCharCode(this.highSurrogate);
}
this.highSurrogate = undefined;
}
const unicodeBuffer = this.encoder.encode(unicodeString);
this.bufferedString.appendBuf(unicodeBuffer);
// len(\u0000)=6 minus the fact you're appending len(buf)
this.escapedCharsByteLength += 6 - unicodeBuffer.byteLength;
this.state = 13 /* TokenizerStates.STRING_DEFAULT */;
continue;
}
break;
// Number
case 20 /* TokenizerStates.NUMBER_AFTER_INITIAL_MINUS */:
if (n === 48 /* charset.DIGIT_ZERO */) {
this.bufferedNumber.appendChar(n);
this.state = 21 /* TokenizerStates.NUMBER_AFTER_INITIAL_ZERO */;
continue;
}
if (n >= 49 /* charset.DIGIT_ONE */ && n <= 57 /* charset.DIGIT_NINE */) {
this.bufferedNumber.appendChar(n);
this.state = 22 /* TokenizerStates.NUMBER_AFTER_INITIAL_NON_ZERO */;
continue;
}
break;
case 21 /* TokenizerStates.NUMBER_AFTER_INITIAL_ZERO */:
if (n === 46 /* charset.FULL_STOP */) {
this.bufferedNumber.appendChar(n);
this.state = 23 /* TokenizerStates.NUMBER_AFTER_FULL_STOP */;
continue;
}
if (n === 101 /* charset.LATIN_SMALL_LETTER_E */ ||
n === 69 /* charset.LATIN_CAPITAL_LETTER_E */) {
this.bufferedNumber.appendChar(n);
this.state = 25 /* TokenizerStates.NUMBER_AFTER_E */;
continue;
}
i -= 1;
this.state = 0 /* TokenizerStates.START */;
this.emitNumber();
continue;
case 22 /* TokenizerStates.NUMBER_AFTER_INITIAL_NON_ZERO */:
if (n >= 48 /* charset.DIGIT_ZERO */ && n <= 57 /* charset.DIGIT_NINE */) {
this.bufferedNumber.appendChar(n);
continue;
}
if (n === 46 /* charset.FULL_STOP */) {
this.bufferedNumber.appendChar(n);
this.state = 23 /* TokenizerStates.NUMBER_AFTER_FULL_STOP */;
continue;
}
if (n === 101 /* charset.LATIN_SMALL_LETTER_E */ ||
n === 69 /* charset.LATIN_CAPITAL_LETTER_E */) {
this.bufferedNumber.appendChar(n);
this.state = 25 /* TokenizerStates.NUMBER_AFTER_E */;
continue;
}
i -= 1;
this.state = 0 /* TokenizerStates.START */;
this.emitNumber();
continue;
case 23 /* TokenizerStates.NUMBER_AFTER_FULL_STOP */:
if (n >= 48 /* charset.DIGIT_ZERO */ && n <= 57 /* charset.DIGIT_NINE */) {
this.bufferedNumber.appendChar(n);
this.state = 24 /* TokenizerStates.NUMBER_AFTER_DECIMAL */;
continue;
}
break;
case 24 /* TokenizerStates.NUMBER_AFTER_DECIMAL */:
if (n >= 48 /* charset.DIGIT_ZERO */ && n <= 57 /* charset.DIGIT_NINE */) {
this.bufferedNumber.appendChar(n);
continue;
}
if (n === 101 /* charset.LATIN_SMALL_LETTER_E */ ||
n === 69 /* charset.LATIN_CAPITAL_LETTER_E */) {
this.bufferedNumber.appendChar(n);
this.state = 25 /* TokenizerStates.NUMBER_AFTER_E */;
continue;
}
i -= 1;
this.state = 0 /* TokenizerStates.START */;
this.emitNumber();
continue;
// @ts-expect-error fall through case
case 25 /* TokenizerStates.NUMBER_AFTER_E */:
if (n === 43 /* charset.PLUS_SIGN */ || n === 45 /* charset.HYPHEN_MINUS */) {
this.bufferedNumber.appendChar(n);
this.state = 26 /* TokenizerStates.NUMBER_AFTER_E_AND_SIGN */;
continue;
}
// eslint-disable-next-line no-fallthrough
case 26 /* TokenizerStates.NUMBER_AFTER_E_AND_SIGN */:
if (n >= 48 /* charset.DIGIT_ZERO */ && n <= 57 /* charset.DIGIT_NINE */) {
this.bufferedNumber.appendChar(n);
this.state = 27 /* TokenizerStates.NUMBER_AFTER_E_AND_DIGIT */;
continue;
}
break;
case 27 /* TokenizerStates.NUMBER_AFTER_E_AND_DIGIT */:
if (n >= 48 /* charset.DIGIT_ZERO */ && n <= 57 /* charset.DIGIT_NINE */) {
this.bufferedNumber.appendChar(n);
continue;
}
i -= 1;
this.state = 0 /* TokenizerStates.START */;
this.emitNumber();
continue;
// TRUE
case 3 /* TokenizerStates.TRUE1 */:
if (n === 114 /* charset.LATIN_SMALL_LETTER_R */) {
this.state = 4 /* TokenizerStates.TRUE2 */;
continue;
}
break;
case 4 /* TokenizerStates.TRUE2 */:
if (n === 117 /* charset.LATIN_SMALL_LETTER_U */) {
this.state = 5 /* TokenizerStates.TRUE3 */;
continue;
}
break;
case 5 /* TokenizerStates.TRUE3 */:
if (n === 101 /* charset.LATIN_SMALL_LETTER_E */) {
this.state = 0 /* TokenizerStates.START */;
this.onToken({
token: tokenType_js_1.default.TRUE,
value: true,
offset: this.offset,
});
this.offset += 3;
continue;
}
break;
// FALSE
case 6 /* TokenizerStates.FALSE1 */:
if (n === 97 /* charset.LATIN_SMALL_LETTER_A */) {
this.state = 7 /* TokenizerStates.FALSE2 */;
continue;
}
break;
case 7 /* TokenizerStates.FALSE2 */:
if (n === 108 /* charset.LATIN_SMALL_LETTER_L */) {
this.state = 8 /* TokenizerStates.FALSE3 */;
continue;
}
break;
case 8 /* TokenizerStates.FALSE3 */:
if (n === 115 /* charset.LATIN_SMALL_LETTER_S */) {
this.state = 9 /* TokenizerStates.FALSE4 */;
continue;
}
break;
case 9 /* TokenizerStates.FALSE4 */:
if (n === 101 /* charset.LATIN_SMALL_LETTER_E */) {
this.state = 0 /* TokenizerStates.START */;
this.onToken({
token: tokenType_js_1.default.FALSE,
value: false,
offset: this.offset,
});
this.offset += 4;
continue;
}
break;
// NULL
case 10 /* TokenizerStates.NULL1 */:
if (n === 117 /* charset.LATIN_SMALL_LETTER_U */) {
this.state = 11 /* TokenizerStates.NULL2 */;
continue;
}
break;
case 11 /* TokenizerStates.NULL2 */:
if (n === 108 /* charset.LATIN_SMALL_LETTER_L */) {
this.state = 12 /* TokenizerStates.NULL3 */;
continue;
}
break;
case 12 /* TokenizerStates.NULL3 */:
if (n === 108 /* charset.LATIN_SMALL_LETTER_L */) {
this.state = 0 /* TokenizerStates.START */;
this.onToken({
token: tokenType_js_1.default.NULL,
value: null,
offset: this.offset,
});
this.offset += 3;
continue;
}
break;
case 28 /* TokenizerStates.SEPARATOR */:
this.separatorIndex += 1;
if (!this.separatorBytes ||
n !== this.separatorBytes[this.separatorIndex]) {
break;
}
if (this.separatorIndex === this.separatorBytes.length - 1) {
this.state = 0 /* TokenizerStates.START */;
this.onToken({
token: tokenType_js_1.default.SEPARATOR,
value: this.separator,
offset: this.offset + this.separatorIndex,
});
this.separatorIndex = 0;
}
continue;
// BOM support
case 30 /* TokenizerStates.BOM */:
if (n === this.bom[this.bomIndex]) {
if (this.bomIndex === this.bom.length - 1) {
this.state = 0 /* TokenizerStates.START */;
this.bom = undefined;
this.bomIndex = 0;
continue;
}
this.bomIndex += 1;
continue;
}
break;
case 1 /* TokenizerStates.ENDED */:
if (n === 32 /* charset.SPACE */ ||
n === 10 /* charset.NEWLINE */ ||
n === 13 /* charset.CARRIAGE_RETURN */ ||
n === 9 /* charset.TAB */) {
// whitespace
continue;
}
}
throw new TokenizerError(`Unexpected "${String.fromCharCode(n)}" at position "${i}" in state ${TokenizerStateToString(this.state)}`);
}
if (this.emitPartialTokens) {
switch (this.state) {
case 3 /* TokenizerStates.TRUE1 */:
case 4 /* TokenizerStates.TRUE2 */:
case 5 /* TokenizerStates.TRUE3 */:
this.onToken({
token: tokenType_js_1.default.TRUE,
value: true,
offset: this.offset,
partial: true,
});
break;
case 6 /* TokenizerStates.FALSE1 */:
case 7 /* TokenizerStates.FALSE2 */:
case 8 /* TokenizerStates.FALSE3 */:
case 9 /* TokenizerStates.FALSE4 */:
this.onToken({
token: tokenType_js_1.default.FALSE,
value: false,
offset: this.offset,
partial: true,
});
break;
case 10 /* TokenizerStates.NULL1 */:
case 11 /* TokenizerStates.NULL2 */:
case 12 /* TokenizerStates.NULL3 */:
this.onToken({
token: tokenType_js_1.default.NULL,
value: null,
offset: this.offset,
partial: true,
});
break;
case 13 /* TokenizerStates.STRING_DEFAULT */: {
const string = this.bufferedString.toString();
this.onToken({
token: tokenType_js_1.default.STRING,
value: string,
offset: this.offset,
partial: true,
});
break;
}
case 21 /* TokenizerStates.NUMBER_AFTER_INITIAL_ZERO */:
case 22 /* TokenizerStates.NUMBER_AFTER_INITIAL_NON_ZERO */:
case 24 /* TokenizerStates.NUMBER_AFTER_DECIMAL */:
case 27 /* TokenizerStates.NUMBER_AFTER_E_AND_DIGIT */:
try {
this.onToken({
token: tokenType_js_1.default.NUMBER,
value: this.parseNumber(this.bufferedNumber.toString()),
offset: this.offset,
partial: true,
});
}
catch (_a) {
// Number couldn't be parsed. Do nothing.
}
}
}
}
catch (err) {
this.error(err);
}
}
emitNumber() {
this.onToken({
token: tokenType_js_1.default.NUMBER,
value: this.parseNumber(this.bufferedNumber.toString()),
offset: this.offset,
});
this.offset += this.bufferedNumber.byteLength - 1;
}
parseNumber(numberStr) {
return Number(numberStr);
}
error(err) {
if (this.state !== 1 /* TokenizerStates.ENDED */) {
this.state = 2 /* TokenizerStates.ERROR */;
}
this.onError(err);
}
end() {
switch (this.state) {
case 21 /* TokenizerStates.NUMBER_AFTER_INITIAL_ZERO */:
case 22 /* TokenizerStates.NUMBER_AFTER_INITIAL_NON_ZERO */:
case 24 /* TokenizerStates.NUMBER_AFTER_DECIMAL */:
case 27 /* TokenizerStates.NUMBER_AFTER_E_AND_DIGIT */:
this.state = 1 /* TokenizerStates.ENDED */;
this.emitNumber();
this.onEnd();
break;
case 29 /* TokenizerStates.BOM_OR_START */:
case 0 /* TokenizerStates.START */:
case 2 /* TokenizerStates.ERROR */:
case 28 /* TokenizerStates.SEPARATOR */:
this.state = 1 /* TokenizerStates.ENDED */;
this.onEnd();
break;
default:
this.error(new TokenizerError(`Tokenizer ended in the middle of a token (state: ${TokenizerStateToString(this.state)}). Either not all the data was received or the data was invalid.`));
}
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onToken(parsedToken) {
// Override me
throw new TokenizerError('Can\'t emit tokens before the "onToken" callback has been set up.');
}
onError(err) {
// Override me
throw err;
}
onEnd() {
// Override me
}
}
exports.default = Tokenizer;
//# sourceMappingURL=tokenizer.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,35 @@
import type { ParsedTokenInfo } from "./utils/types/parsedTokenInfo.js";
import type { ParsedElementInfo } from "./utils/types/parsedElementInfo.js";
export interface TokenParserOptions {
paths?: string[];
keepStack?: boolean;
separator?: string;
emitPartialValues?: boolean;
}
export declare class TokenParserError extends Error {
constructor(message: string);
}
export default class TokenParser {
private readonly paths?;
private readonly keepStack;
private readonly separator?;
private state;
private mode;
private key;
private value;
private stack;
constructor(opts?: TokenParserOptions);
private shouldEmit;
private push;
private pop;
private emit;
private emitPartial;
get isEnded(): boolean;
write({ token, value, partial, }: Omit<ParsedTokenInfo, "offset">): void;
error(err: Error): void;
end(): void;
onValue(parsedElementInfo: ParsedElementInfo): void;
onError(err: Error): void;
onEnd(): void;
}
//# sourceMappingURL=tokenparser.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"tokenparser.d.ts","sourceRoot":"","sources":["../../src/tokenparser.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAmB5E,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAK5B;AAED,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,IAAI,CAA0C;IACtD,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,KAAK,CAAsB;gBAEvB,IAAI,CAAC,EAAE,kBAAkB;IA2BrC,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,GAAG;IAiBX,OAAO,CAAC,IAAI;IA6BZ,OAAO,CAAC,WAAW;IAuBnB,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,KAAK,CAAC,EACX,KAAK,EACL,KAAK,EACL,OAAO,GACR,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,IAAI;IA8JlC,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAQvB,GAAG,IAAI,IAAI;IAoBX,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI;IAOnD,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAKzB,KAAK,IAAI,IAAI;CAGrB"}

View File

@@ -0,0 +1,318 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TokenParserError = void 0;
const tokenType_js_1 = __importDefault(require("./utils/types/tokenType.js"));
// Parser States
var TokenParserState;
(function (TokenParserState) {
TokenParserState[TokenParserState["VALUE"] = 0] = "VALUE";
TokenParserState[TokenParserState["KEY"] = 1] = "KEY";
TokenParserState[TokenParserState["COLON"] = 2] = "COLON";
TokenParserState[TokenParserState["COMMA"] = 3] = "COMMA";
TokenParserState[TokenParserState["ENDED"] = 4] = "ENDED";
TokenParserState[TokenParserState["ERROR"] = 5] = "ERROR";
TokenParserState[TokenParserState["SEPARATOR"] = 6] = "SEPARATOR";
})(TokenParserState || (TokenParserState = {}));
function TokenParserStateToString(state) {
return ["VALUE", "KEY", "COLON", "COMMA", "ENDED", "ERROR", "SEPARATOR"][state];
}
const defaultOpts = {
paths: undefined,
keepStack: true,
separator: undefined,
emitPartialValues: false,
};
class TokenParserError extends Error {
constructor(message) {
super(message);
// Typescript is broken. This is a workaround
Object.setPrototypeOf(this, TokenParserError.prototype);
}
}
exports.TokenParserError = TokenParserError;
class TokenParser {
constructor(opts) {
this.state = 0 /* TokenParserState.VALUE */;
this.mode = undefined;
this.key = undefined;
this.value = undefined;
this.stack = [];
opts = Object.assign(Object.assign({}, defaultOpts), opts);
if (opts.paths) {
this.paths = opts.paths.map((path) => {
if (path === undefined || path === "$*")
return undefined;
if (!path.startsWith("$"))
throw new TokenParserError(`Invalid selector "${path}". Should start with "$".`);
const pathParts = path.split(".").slice(1);
if (pathParts.includes(""))
throw new TokenParserError(`Invalid selector "${path}". ".." syntax not supported.`);
return pathParts;
});
}
this.keepStack = opts.keepStack || false;
this.separator = opts.separator;
if (!opts.emitPartialValues) {
this.emitPartial = () => { };
}
}
shouldEmit() {
if (!this.paths)
return true;
return this.paths.some((path) => {
var _a;
if (path === undefined)
return true;
if (path.length !== this.stack.length)
return false;
for (let i = 0; i < path.length - 1; i++) {
const selector = path[i];
const key = this.stack[i + 1].key;
if (selector === "*")
continue;
if (selector !== (key === null || key === void 0 ? void 0 : key.toString()))
return false;
}
const selector = path[path.length - 1];
if (selector === "*")
return true;
return selector === ((_a = this.key) === null || _a === void 0 ? void 0 : _a.toString());
});
}
push() {
this.stack.push({
key: this.key,
value: this.value,
mode: this.mode,
emit: this.shouldEmit(),
});
}
pop() {
const value = this.value;
let emit;
({
key: this.key,
value: this.value,
mode: this.mode,
emit,
} = this.stack.pop());
this.state =
this.mode !== undefined ? 3 /* TokenParserState.COMMA */ : 0 /* TokenParserState.VALUE */;
this.emit(value, emit);
}
emit(value, emit) {
if (!this.keepStack &&
this.value &&
this.stack.every((item) => !item.emit)) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
delete this.value[this.key];
}
if (emit) {
this.onValue({
value: value,
key: this.key,
parent: this.value,
stack: this.stack,
});
}
if (this.stack.length === 0) {
if (this.separator) {
this.state = 6 /* TokenParserState.SEPARATOR */;
}
else if (this.separator === undefined) {
this.end();
}
// else if separator === '', expect next JSON object.
}
}
emitPartial(value) {
if (!this.shouldEmit())
return;
if (this.state === 1 /* TokenParserState.KEY */) {
this.onValue({
value: undefined,
key: value,
parent: this.value,
stack: this.stack,
partial: true,
});
return;
}
this.onValue({
value: value,
key: this.key,
parent: this.value,
stack: this.stack,
partial: true,
});
}
get isEnded() {
return this.state === 4 /* TokenParserState.ENDED */;
}
write({ token, value, partial, }) {
try {
if (partial) {
this.emitPartial(value);
return;
}
if (this.state === 0 /* TokenParserState.VALUE */) {
if (token === tokenType_js_1.default.STRING ||
token === tokenType_js_1.default.NUMBER ||
token === tokenType_js_1.default.TRUE ||
token === tokenType_js_1.default.FALSE ||
token === tokenType_js_1.default.NULL) {
if (this.mode === 0 /* TokenParserMode.OBJECT */) {
this.value[this.key] = value;
this.state = 3 /* TokenParserState.COMMA */;
}
else if (this.mode === 1 /* TokenParserMode.ARRAY */) {
this.value.push(value);
this.state = 3 /* TokenParserState.COMMA */;
}
this.emit(value, this.shouldEmit());
return;
}
if (token === tokenType_js_1.default.LEFT_BRACE) {
this.push();
if (this.mode === 0 /* TokenParserMode.OBJECT */) {
this.value = this.value[this.key] = {};
}
else if (this.mode === 1 /* TokenParserMode.ARRAY */) {
const val = {};
this.value.push(val);
this.value = val;
}
else {
this.value = {};
}
this.mode = 0 /* TokenParserMode.OBJECT */;
this.state = 1 /* TokenParserState.KEY */;
this.key = undefined;
this.emitPartial();
return;
}
if (token === tokenType_js_1.default.LEFT_BRACKET) {
this.push();
if (this.mode === 0 /* TokenParserMode.OBJECT */) {
this.value = this.value[this.key] = [];
}
else if (this.mode === 1 /* TokenParserMode.ARRAY */) {
const val = [];
this.value.push(val);
this.value = val;
}
else {
this.value = [];
}
this.mode = 1 /* TokenParserMode.ARRAY */;
this.state = 0 /* TokenParserState.VALUE */;
this.key = 0;
this.emitPartial();
return;
}
if (this.mode === 1 /* TokenParserMode.ARRAY */ &&
token === tokenType_js_1.default.RIGHT_BRACKET &&
this.value.length === 0) {
this.pop();
return;
}
}
if (this.state === 1 /* TokenParserState.KEY */) {
if (token === tokenType_js_1.default.STRING) {
this.key = value;
this.state = 2 /* TokenParserState.COLON */;
this.emitPartial();
return;
}
if (token === tokenType_js_1.default.RIGHT_BRACE &&
Object.keys(this.value).length === 0) {
this.pop();
return;
}
}
if (this.state === 2 /* TokenParserState.COLON */) {
if (token === tokenType_js_1.default.COLON) {
this.state = 0 /* TokenParserState.VALUE */;
return;
}
}
if (this.state === 3 /* TokenParserState.COMMA */) {
if (token === tokenType_js_1.default.COMMA) {
if (this.mode === 1 /* TokenParserMode.ARRAY */) {
this.state = 0 /* TokenParserState.VALUE */;
this.key += 1;
return;
}
/* istanbul ignore else */
if (this.mode === 0 /* TokenParserMode.OBJECT */) {
this.state = 1 /* TokenParserState.KEY */;
return;
}
}
if ((token === tokenType_js_1.default.RIGHT_BRACE &&
this.mode === 0 /* TokenParserMode.OBJECT */) ||
(token === tokenType_js_1.default.RIGHT_BRACKET &&
this.mode === 1 /* TokenParserMode.ARRAY */)) {
this.pop();
return;
}
}
if (this.state === 6 /* TokenParserState.SEPARATOR */) {
if (token === tokenType_js_1.default.SEPARATOR && value === this.separator) {
this.state = 0 /* TokenParserState.VALUE */;
return;
}
}
// Edge case in which the separator is just whitespace and it's found in the middle of the JSON
if (token === tokenType_js_1.default.SEPARATOR &&
this.state !== 6 /* TokenParserState.SEPARATOR */ &&
Array.from(value)
.map((n) => n.charCodeAt(0))
.every((n) => n === 32 /* charset.SPACE */ ||
n === 10 /* charset.NEWLINE */ ||
n === 13 /* charset.CARRIAGE_RETURN */ ||
n === 9 /* charset.TAB */)) {
// whitespace
return;
}
throw new TokenParserError(`Unexpected ${tokenType_js_1.default[token]} (${JSON.stringify(value)}) in state ${TokenParserStateToString(this.state)}`);
}
catch (err) {
this.error(err);
}
}
error(err) {
if (this.state !== 4 /* TokenParserState.ENDED */) {
this.state = 5 /* TokenParserState.ERROR */;
}
this.onError(err);
}
end() {
if ((this.state !== 0 /* TokenParserState.VALUE */ &&
this.state !== 6 /* TokenParserState.SEPARATOR */) ||
this.stack.length > 0) {
this.error(new Error(`Parser ended in mid-parsing (state: ${TokenParserStateToString(this.state)}). Either not all the data was received or the data was invalid.`));
}
else {
this.state = 4 /* TokenParserState.ENDED */;
this.onEnd();
}
}
/* eslint-disable-next-line @typescript-eslint/no-unused-vars */
onValue(parsedElementInfo) {
// Override me
throw new TokenParserError('Can\'t emit data before the "onValue" callback has been set up.');
}
onError(err) {
// Override me
throw err;
}
onEnd() {
// Override me
}
}
exports.default = TokenParser;
//# sourceMappingURL=tokenparser.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,30 @@
export interface StringBuilder {
byteLength: number;
appendChar: (char: number) => void;
appendBuf: (buf: Uint8Array, start?: number, end?: number) => void;
reset: () => void;
toString: () => string;
}
export declare class NonBufferedString implements StringBuilder {
private decoder;
private strings;
byteLength: number;
appendChar(char: number): void;
appendBuf(buf: Uint8Array, start?: number, end?: number): void;
reset(): void;
toString(): string;
}
export declare class BufferedString implements StringBuilder {
private decoder;
private buffer;
private bufferOffset;
private string;
byteLength: number;
constructor(bufferSize: number);
appendChar(char: number): void;
appendBuf(buf: Uint8Array, start?: number, end?: number): void;
private flushStringBuffer;
reset(): void;
toString(): string;
}
//# sourceMappingURL=bufferedString.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"bufferedString.d.ts","sourceRoot":"","sources":["../../../src/utils/bufferedString.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAgB;IACxB,UAAU,SAAK;IAEf,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,SAAI,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI;IAKrE,KAAK,IAAI,IAAI;IAKb,QAAQ,IAAI,MAAM;CAG1B;AAED,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,MAAM,CAAM;IACb,UAAU,SAAK;gBAEH,UAAU,EAAE,MAAM;IAI9B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM9B,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,SAAI,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI;IAQ5E,OAAO,CAAC,iBAAiB;IAOlB,KAAK,IAAI,IAAI;IAKb,QAAQ,IAAI,MAAM;CAI1B"}

View File

@@ -0,0 +1,64 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BufferedString = exports.NonBufferedString = void 0;
class NonBufferedString {
constructor() {
this.decoder = new TextDecoder("utf-8");
this.strings = [];
this.byteLength = 0;
}
appendChar(char) {
this.strings.push(String.fromCharCode(char));
this.byteLength += 1;
}
appendBuf(buf, start = 0, end = buf.length) {
this.strings.push(this.decoder.decode(buf.subarray(start, end)));
this.byteLength += end - start;
}
reset() {
this.strings = [];
this.byteLength = 0;
}
toString() {
return this.strings.join("");
}
}
exports.NonBufferedString = NonBufferedString;
class BufferedString {
constructor(bufferSize) {
this.decoder = new TextDecoder("utf-8");
this.bufferOffset = 0;
this.string = "";
this.byteLength = 0;
this.buffer = new Uint8Array(bufferSize);
}
appendChar(char) {
if (this.bufferOffset >= this.buffer.length)
this.flushStringBuffer();
this.buffer[this.bufferOffset++] = char;
this.byteLength += 1;
}
appendBuf(buf, start = 0, end = buf.length) {
const size = end - start;
if (this.bufferOffset + size > this.buffer.length)
this.flushStringBuffer();
this.buffer.set(buf.subarray(start, end), this.bufferOffset);
this.bufferOffset += size;
this.byteLength += size;
}
flushStringBuffer() {
this.string += this.decoder.decode(this.buffer.subarray(0, this.bufferOffset));
this.bufferOffset = 0;
}
reset() {
this.string = "";
this.bufferOffset = 0;
this.byteLength = 0;
}
toString() {
this.flushStringBuffer();
return this.string;
}
}
exports.BufferedString = BufferedString;
//# sourceMappingURL=bufferedString.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"bufferedString.js","sourceRoot":"","sources":["../../../src/utils/bufferedString.ts"],"names":[],"mappings":";;;AAQA,MAAa,iBAAiB;IAA9B;QACU,YAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,YAAO,GAAa,EAAE,CAAC;QACxB,eAAU,GAAG,CAAC,CAAC;IAoBxB,CAAC;IAlBQ,UAAU,CAAC,IAAY;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,GAAe,EAAE,KAAK,GAAG,CAAC,EAAE,MAAc,GAAG,CAAC,MAAM;QACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,IAAI,GAAG,GAAG,KAAK,CAAC;IACjC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF;AAvBD,8CAuBC;AAED,MAAa,cAAc;IAOzB,YAAmB,UAAkB;QAN7B,YAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,iBAAY,GAAG,CAAC,CAAC;QACjB,WAAM,GAAG,EAAE,CAAC;QACb,eAAU,GAAG,CAAC,CAAC;QAGpB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,UAAU,CAAC,IAAY;QAC5B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,GAAe,EAAE,KAAK,GAAG,CAAC,EAAE,MAAc,GAAG,CAAC,MAAM;QACnE,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAC3C,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACxB,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IACM,QAAQ;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAzCD,wCAyCC"}

View File

@@ -0,0 +1,8 @@
export type JsonPrimitive = string | number | boolean | null;
export type JsonKey = string | number | undefined;
export type JsonObject = {
[key: string]: JsonPrimitive | JsonStruct;
};
export type JsonArray = (JsonPrimitive | JsonStruct)[];
export type JsonStruct = JsonObject | JsonArray;
//# sourceMappingURL=jsonTypes.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"jsonTypes.d.ts","sourceRoot":"","sources":["../../../../src/utils/types/jsonTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,UAAU,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,SAAS,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC"}

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=jsonTypes.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"jsonTypes.js","sourceRoot":"","sources":["../../../../src/utils/types/jsonTypes.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,28 @@
import type { StackElement } from "./stackElement.js";
import type { JsonPrimitive, JsonKey, JsonObject, JsonArray, JsonStruct } from "./jsonTypes.js";
export interface ParsedElementInfo {
value?: JsonPrimitive | JsonStruct;
parent?: JsonStruct;
key?: JsonKey;
stack: StackElement[];
partial?: boolean;
}
export interface ParsedArrayElement extends ParsedElementInfo {
value: JsonPrimitive | JsonStruct;
parent: JsonArray;
key: number;
stack: StackElement[];
}
export interface ParsedObjectProperty extends ParsedElementInfo {
value: JsonPrimitive | JsonStruct;
parent: JsonObject;
key: string;
stack: StackElement[];
}
export interface ParsedTopLevelElement extends ParsedElementInfo {
value: JsonPrimitive | JsonStruct;
parent: undefined;
key: undefined;
stack: [];
}
//# sourceMappingURL=parsedElementInfo.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"parsedElementInfo.d.ts","sourceRoot":"","sources":["../../../../src/utils/types/parsedElementInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EACP,UAAU,EACV,SAAS,EACT,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,aAAa,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,EAAE,CAAC;CACX"}

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=parsedElementInfo.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"parsedElementInfo.js","sourceRoot":"","sources":["../../../../src/utils/types/parsedElementInfo.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,57 @@
import TokenType from "./tokenType.js";
import type { JsonPrimitive } from "./jsonTypes.js";
export interface ParsedTokenInfo {
token: TokenType;
value: JsonPrimitive;
offset: number;
partial?: boolean;
}
export interface ParsedLeftBraceTokenInfo extends ParsedTokenInfo {
token: TokenType.LEFT_BRACE;
value: "{";
}
export interface ParsedRightBraceTokenInfo extends ParsedTokenInfo {
token: TokenType.RIGHT_BRACE;
value: "}";
}
export interface ParsedLeftBracketTokenInfo extends ParsedTokenInfo {
token: TokenType.LEFT_BRACKET;
value: "[";
}
export interface ParsedRighBracketTokenInfo extends ParsedTokenInfo {
token: TokenType.RIGHT_BRACKET;
value: "]";
}
export interface ParsedColonTokenInfo extends ParsedTokenInfo {
token: TokenType.COLON;
value: ":";
}
export interface ParsedCommaTokenInfo extends ParsedTokenInfo {
token: TokenType.COMMA;
value: ",";
}
export interface ParsedTrueTokenInfo extends ParsedTokenInfo {
token: TokenType.TRUE;
value: true;
}
export interface ParsedFalseTokenInfo extends ParsedTokenInfo {
token: TokenType.FALSE;
value: false;
}
export interface ParsedNullTokenInfo extends ParsedTokenInfo {
token: TokenType.NULL;
value: null;
}
export interface ParsedStringTokenInfo extends ParsedTokenInfo {
token: TokenType.STRING;
value: string;
}
export interface ParsedNumberTokenInfo extends ParsedTokenInfo {
token: TokenType.NUMBER;
value: number;
}
export interface ParsedSeparatorTokenInfo extends ParsedTokenInfo {
token: TokenType.SEPARATOR;
value: string;
}
//# sourceMappingURL=parsedTokenInfo.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"parsedTokenInfo.d.ts","sourceRoot":"","sources":["../../../../src/utils/types/parsedTokenInfo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC;IAC5B,KAAK,EAAE,GAAG,CAAC;CACZ;AACD,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC;IAC7B,KAAK,EAAE,GAAG,CAAC;CACZ;AACD,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AACD,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC;CACZ;AACD,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;IACvB,KAAK,EAAE,GAAG,CAAC;CACZ;AACD,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;IACvB,KAAK,EAAE,GAAG,CAAC;CACZ;AACD,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;IACtB,KAAK,EAAE,IAAI,CAAC;CACb;AACD,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;CACd;AACD,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;IACtB,KAAK,EAAE,IAAI,CAAC;CACb;AACD,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf"}

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=parsedTokenInfo.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"parsedTokenInfo.js","sourceRoot":"","sources":["../../../../src/utils/types/parsedTokenInfo.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,12 @@
import type { JsonKey, JsonStruct } from "./jsonTypes.js";
export declare const enum TokenParserMode {
OBJECT = 0,
ARRAY = 1
}
export interface StackElement {
key: JsonKey;
value: JsonStruct;
mode?: TokenParserMode;
emit: boolean;
}
//# sourceMappingURL=stackElement.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"stackElement.d.ts","sourceRoot":"","sources":["../../../../src/utils/types/stackElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D,0BAAkB,eAAe;IAC/B,MAAM,IAAA;IACN,KAAK,IAAA;CACN;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;CACf"}

View File

@@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TokenParserMode = void 0;
var TokenParserMode;
(function (TokenParserMode) {
TokenParserMode[TokenParserMode["OBJECT"] = 0] = "OBJECT";
TokenParserMode[TokenParserMode["ARRAY"] = 1] = "ARRAY";
})(TokenParserMode || (exports.TokenParserMode = TokenParserMode = {}));
//# sourceMappingURL=stackElement.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"stackElement.js","sourceRoot":"","sources":["../../../../src/utils/types/stackElement.ts"],"names":[],"mappings":";;;AAEA,IAAkB,eAGjB;AAHD,WAAkB,eAAe;IAC/B,yDAAM,CAAA;IACN,uDAAK,CAAA;AACP,CAAC,EAHiB,eAAe,+BAAf,eAAe,QAGhC"}

View File

@@ -0,0 +1,16 @@
declare enum TokenType {
LEFT_BRACE = 0,
RIGHT_BRACE = 1,
LEFT_BRACKET = 2,
RIGHT_BRACKET = 3,
COLON = 4,
COMMA = 5,
TRUE = 6,
FALSE = 7,
NULL = 8,
STRING = 9,
NUMBER = 10,
SEPARATOR = 11
}
export default TokenType;
//# sourceMappingURL=tokenType.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"tokenType.d.ts","sourceRoot":"","sources":["../../../../src/utils/types/tokenType.ts"],"names":[],"mappings":"AAAA,aAAK,SAAS;IACZ,UAAU,IAAA;IACV,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,KAAK,IAAA;IACL,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,MAAM,KAAA;IACN,SAAS,KAAA;CACV;AAED,eAAe,SAAS,CAAC"}

View File

@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var TokenType;
(function (TokenType) {
TokenType[TokenType["LEFT_BRACE"] = 0] = "LEFT_BRACE";
TokenType[TokenType["RIGHT_BRACE"] = 1] = "RIGHT_BRACE";
TokenType[TokenType["LEFT_BRACKET"] = 2] = "LEFT_BRACKET";
TokenType[TokenType["RIGHT_BRACKET"] = 3] = "RIGHT_BRACKET";
TokenType[TokenType["COLON"] = 4] = "COLON";
TokenType[TokenType["COMMA"] = 5] = "COMMA";
TokenType[TokenType["TRUE"] = 6] = "TRUE";
TokenType[TokenType["FALSE"] = 7] = "FALSE";
TokenType[TokenType["NULL"] = 8] = "NULL";
TokenType[TokenType["STRING"] = 9] = "STRING";
TokenType[TokenType["NUMBER"] = 10] = "NUMBER";
TokenType[TokenType["SEPARATOR"] = 11] = "SEPARATOR";
})(TokenType || (TokenType = {}));
exports.default = TokenType;
//# sourceMappingURL=tokenType.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"tokenType.js","sourceRoot":"","sources":["../../../../src/utils/types/tokenType.ts"],"names":[],"mappings":";;AAAA,IAAK,SAaJ;AAbD,WAAK,SAAS;IACZ,qDAAU,CAAA;IACV,uDAAW,CAAA;IACX,yDAAY,CAAA;IACZ,2DAAa,CAAA;IACb,2CAAK,CAAA;IACL,2CAAK,CAAA;IACL,yCAAI,CAAA;IACJ,2CAAK,CAAA;IACL,yCAAI,CAAA;IACJ,6CAAM,CAAA;IACN,8CAAM,CAAA;IACN,oDAAS,CAAA;AACX,CAAC,EAbI,SAAS,KAAT,SAAS,QAab;AAED,kBAAe,SAAS,CAAC"}

View File

@@ -0,0 +1,106 @@
export declare const enum charset {
BACKSPACE = 8,
FORM_FEED = 12,
NEWLINE = 10,
CARRIAGE_RETURN = 13,
TAB = 9,
SPACE = 32,
EXCLAMATION_MARK = 33,
QUOTATION_MARK = 34,
NUMBER_SIGN = 35,
DOLLAR_SIGN = 36,
PERCENT_SIGN = 37,
AMPERSAND = 38,
APOSTROPHE = 39,
LEFT_PARENTHESIS = 40,
RIGHT_PARENTHESIS = 41,
ASTERISK = 42,
PLUS_SIGN = 43,
COMMA = 44,
HYPHEN_MINUS = 45,
FULL_STOP = 46,
SOLIDUS = 47,
DIGIT_ZERO = 48,
DIGIT_ONE = 49,
DIGIT_TWO = 50,
DIGIT_THREE = 51,
DIGIT_FOUR = 52,
DIGIT_FIVE = 53,
DIGIT_SIX = 54,
DIGIT_SEVEN = 55,
DIGIT_EIGHT = 56,
DIGIT_NINE = 57,
COLON = 58,
SEMICOLON = 59,
LESS_THAN_SIGN = 60,
EQUALS_SIGN = 61,
GREATER_THAN_SIGN = 62,
QUESTION_MARK = 63,
COMMERCIAL_AT = 64,
LATIN_CAPITAL_LETTER_A = 65,
LATIN_CAPITAL_LETTER_B = 66,
LATIN_CAPITAL_LETTER_C = 67,
LATIN_CAPITAL_LETTER_D = 68,
LATIN_CAPITAL_LETTER_E = 69,
LATIN_CAPITAL_LETTER_F = 70,
LATIN_CAPITAL_LETTER_G = 71,
LATIN_CAPITAL_LETTER_H = 72,
LATIN_CAPITAL_LETTER_I = 73,
LATIN_CAPITAL_LETTER_J = 74,
LATIN_CAPITAL_LETTER_K = 75,
LATIN_CAPITAL_LETTER_L = 76,
LATIN_CAPITAL_LETTER_M = 77,
LATIN_CAPITAL_LETTER_N = 78,
LATIN_CAPITAL_LETTER_O = 79,
LATIN_CAPITAL_LETTER_P = 80,
LATIN_CAPITAL_LETTER_Q = 81,
LATIN_CAPITAL_LETTER_R = 82,
LATIN_CAPITAL_LETTER_S = 83,
LATIN_CAPITAL_LETTER_T = 84,
LATIN_CAPITAL_LETTER_U = 85,
LATIN_CAPITAL_LETTER_V = 86,
LATIN_CAPITAL_LETTER_W = 87,
LATIN_CAPITAL_LETTER_X = 88,
LATIN_CAPITAL_LETTER_Y = 89,
LATIN_CAPITAL_LETTER_Z = 90,
LEFT_SQUARE_BRACKET = 91,
REVERSE_SOLIDUS = 92,
RIGHT_SQUARE_BRACKET = 93,
CIRCUMFLEX_ACCENT = 94,
LOW_LINE = 95,
GRAVE_ACCENT = 96,
LATIN_SMALL_LETTER_A = 97,
LATIN_SMALL_LETTER_B = 98,
LATIN_SMALL_LETTER_C = 99,
LATIN_SMALL_LETTER_D = 100,
LATIN_SMALL_LETTER_E = 101,
LATIN_SMALL_LETTER_F = 102,
LATIN_SMALL_LETTER_G = 103,
LATIN_SMALL_LETTER_H = 104,
LATIN_SMALL_LETTER_I = 105,
LATIN_SMALL_LETTER_J = 106,
LATIN_SMALL_LETTER_K = 107,
LATIN_SMALL_LETTER_L = 108,
LATIN_SMALL_LETTER_M = 109,
LATIN_SMALL_LETTER_N = 110,
LATIN_SMALL_LETTER_O = 111,
LATIN_SMALL_LETTER_P = 112,
LATIN_SMALL_LETTER_Q = 113,
LATIN_SMALL_LETTER_R = 114,
LATIN_SMALL_LETTER_S = 115,
LATIN_SMALL_LETTER_T = 116,
LATIN_SMALL_LETTER_U = 117,
LATIN_SMALL_LETTER_V = 118,
LATIN_SMALL_LETTER_W = 119,
LATIN_SMALL_LETTER_X = 120,
LATIN_SMALL_LETTER_Y = 121,
LATIN_SMALL_LETTER_Z = 122,
LEFT_CURLY_BRACKET = 123,
VERTICAL_LINE = 124,
RIGHT_CURLY_BRACKET = 125,
TILDE = 126
}
export declare const escapedSequences: {
[key: number]: number;
};
//# sourceMappingURL=utf-8.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"utf-8.d.ts","sourceRoot":"","sources":["../../../src/utils/utf-8.ts"],"names":[],"mappings":"AAAA,0BAAkB,OAAO;IACvB,SAAS,IAAM;IACf,SAAS,KAAM;IACf,OAAO,KAAM;IACb,eAAe,KAAM;IACrB,GAAG,IAAM;IACT,KAAK,KAAO;IACZ,gBAAgB,KAAO;IACvB,cAAc,KAAO;IACrB,WAAW,KAAO;IAClB,WAAW,KAAO;IAClB,YAAY,KAAO;IACnB,SAAS,KAAO;IAChB,UAAU,KAAO;IACjB,gBAAgB,KAAO;IACvB,iBAAiB,KAAO;IACxB,QAAQ,KAAO;IACf,SAAS,KAAO;IAChB,KAAK,KAAO;IACZ,YAAY,KAAO;IACnB,SAAS,KAAO;IAChB,OAAO,KAAO;IACd,UAAU,KAAO;IACjB,SAAS,KAAO;IAChB,SAAS,KAAO;IAChB,WAAW,KAAO;IAClB,UAAU,KAAO;IACjB,UAAU,KAAO;IACjB,SAAS,KAAO;IAChB,WAAW,KAAO;IAClB,WAAW,KAAO;IAClB,UAAU,KAAO;IACjB,KAAK,KAAO;IACZ,SAAS,KAAO;IAChB,cAAc,KAAO;IACrB,WAAW,KAAO;IAClB,iBAAiB,KAAO;IACxB,aAAa,KAAO;IACpB,aAAa,KAAO;IACpB,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,sBAAsB,KAAO;IAC7B,mBAAmB,KAAO;IAC1B,eAAe,KAAO;IACtB,oBAAoB,KAAO;IAC3B,iBAAiB,KAAO;IACxB,QAAQ,KAAO;IACf,YAAY,KAAO;IACnB,oBAAoB,KAAO;IAC3B,oBAAoB,KAAO;IAC3B,oBAAoB,KAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,oBAAoB,MAAO;IAC3B,kBAAkB,MAAO;IACzB,aAAa,MAAO;IACpB,mBAAmB,MAAO;IAC1B,KAAK,MAAO;CACb;AAED,eAAO,MAAM,gBAAgB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CASrD,CAAC"}

View File

@@ -0,0 +1,117 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.escapedSequences = exports.charset = void 0;
var charset;
(function (charset) {
charset[charset["BACKSPACE"] = 8] = "BACKSPACE";
charset[charset["FORM_FEED"] = 12] = "FORM_FEED";
charset[charset["NEWLINE"] = 10] = "NEWLINE";
charset[charset["CARRIAGE_RETURN"] = 13] = "CARRIAGE_RETURN";
charset[charset["TAB"] = 9] = "TAB";
charset[charset["SPACE"] = 32] = "SPACE";
charset[charset["EXCLAMATION_MARK"] = 33] = "EXCLAMATION_MARK";
charset[charset["QUOTATION_MARK"] = 34] = "QUOTATION_MARK";
charset[charset["NUMBER_SIGN"] = 35] = "NUMBER_SIGN";
charset[charset["DOLLAR_SIGN"] = 36] = "DOLLAR_SIGN";
charset[charset["PERCENT_SIGN"] = 37] = "PERCENT_SIGN";
charset[charset["AMPERSAND"] = 38] = "AMPERSAND";
charset[charset["APOSTROPHE"] = 39] = "APOSTROPHE";
charset[charset["LEFT_PARENTHESIS"] = 40] = "LEFT_PARENTHESIS";
charset[charset["RIGHT_PARENTHESIS"] = 41] = "RIGHT_PARENTHESIS";
charset[charset["ASTERISK"] = 42] = "ASTERISK";
charset[charset["PLUS_SIGN"] = 43] = "PLUS_SIGN";
charset[charset["COMMA"] = 44] = "COMMA";
charset[charset["HYPHEN_MINUS"] = 45] = "HYPHEN_MINUS";
charset[charset["FULL_STOP"] = 46] = "FULL_STOP";
charset[charset["SOLIDUS"] = 47] = "SOLIDUS";
charset[charset["DIGIT_ZERO"] = 48] = "DIGIT_ZERO";
charset[charset["DIGIT_ONE"] = 49] = "DIGIT_ONE";
charset[charset["DIGIT_TWO"] = 50] = "DIGIT_TWO";
charset[charset["DIGIT_THREE"] = 51] = "DIGIT_THREE";
charset[charset["DIGIT_FOUR"] = 52] = "DIGIT_FOUR";
charset[charset["DIGIT_FIVE"] = 53] = "DIGIT_FIVE";
charset[charset["DIGIT_SIX"] = 54] = "DIGIT_SIX";
charset[charset["DIGIT_SEVEN"] = 55] = "DIGIT_SEVEN";
charset[charset["DIGIT_EIGHT"] = 56] = "DIGIT_EIGHT";
charset[charset["DIGIT_NINE"] = 57] = "DIGIT_NINE";
charset[charset["COLON"] = 58] = "COLON";
charset[charset["SEMICOLON"] = 59] = "SEMICOLON";
charset[charset["LESS_THAN_SIGN"] = 60] = "LESS_THAN_SIGN";
charset[charset["EQUALS_SIGN"] = 61] = "EQUALS_SIGN";
charset[charset["GREATER_THAN_SIGN"] = 62] = "GREATER_THAN_SIGN";
charset[charset["QUESTION_MARK"] = 63] = "QUESTION_MARK";
charset[charset["COMMERCIAL_AT"] = 64] = "COMMERCIAL_AT";
charset[charset["LATIN_CAPITAL_LETTER_A"] = 65] = "LATIN_CAPITAL_LETTER_A";
charset[charset["LATIN_CAPITAL_LETTER_B"] = 66] = "LATIN_CAPITAL_LETTER_B";
charset[charset["LATIN_CAPITAL_LETTER_C"] = 67] = "LATIN_CAPITAL_LETTER_C";
charset[charset["LATIN_CAPITAL_LETTER_D"] = 68] = "LATIN_CAPITAL_LETTER_D";
charset[charset["LATIN_CAPITAL_LETTER_E"] = 69] = "LATIN_CAPITAL_LETTER_E";
charset[charset["LATIN_CAPITAL_LETTER_F"] = 70] = "LATIN_CAPITAL_LETTER_F";
charset[charset["LATIN_CAPITAL_LETTER_G"] = 71] = "LATIN_CAPITAL_LETTER_G";
charset[charset["LATIN_CAPITAL_LETTER_H"] = 72] = "LATIN_CAPITAL_LETTER_H";
charset[charset["LATIN_CAPITAL_LETTER_I"] = 73] = "LATIN_CAPITAL_LETTER_I";
charset[charset["LATIN_CAPITAL_LETTER_J"] = 74] = "LATIN_CAPITAL_LETTER_J";
charset[charset["LATIN_CAPITAL_LETTER_K"] = 75] = "LATIN_CAPITAL_LETTER_K";
charset[charset["LATIN_CAPITAL_LETTER_L"] = 76] = "LATIN_CAPITAL_LETTER_L";
charset[charset["LATIN_CAPITAL_LETTER_M"] = 77] = "LATIN_CAPITAL_LETTER_M";
charset[charset["LATIN_CAPITAL_LETTER_N"] = 78] = "LATIN_CAPITAL_LETTER_N";
charset[charset["LATIN_CAPITAL_LETTER_O"] = 79] = "LATIN_CAPITAL_LETTER_O";
charset[charset["LATIN_CAPITAL_LETTER_P"] = 80] = "LATIN_CAPITAL_LETTER_P";
charset[charset["LATIN_CAPITAL_LETTER_Q"] = 81] = "LATIN_CAPITAL_LETTER_Q";
charset[charset["LATIN_CAPITAL_LETTER_R"] = 82] = "LATIN_CAPITAL_LETTER_R";
charset[charset["LATIN_CAPITAL_LETTER_S"] = 83] = "LATIN_CAPITAL_LETTER_S";
charset[charset["LATIN_CAPITAL_LETTER_T"] = 84] = "LATIN_CAPITAL_LETTER_T";
charset[charset["LATIN_CAPITAL_LETTER_U"] = 85] = "LATIN_CAPITAL_LETTER_U";
charset[charset["LATIN_CAPITAL_LETTER_V"] = 86] = "LATIN_CAPITAL_LETTER_V";
charset[charset["LATIN_CAPITAL_LETTER_W"] = 87] = "LATIN_CAPITAL_LETTER_W";
charset[charset["LATIN_CAPITAL_LETTER_X"] = 88] = "LATIN_CAPITAL_LETTER_X";
charset[charset["LATIN_CAPITAL_LETTER_Y"] = 89] = "LATIN_CAPITAL_LETTER_Y";
charset[charset["LATIN_CAPITAL_LETTER_Z"] = 90] = "LATIN_CAPITAL_LETTER_Z";
charset[charset["LEFT_SQUARE_BRACKET"] = 91] = "LEFT_SQUARE_BRACKET";
charset[charset["REVERSE_SOLIDUS"] = 92] = "REVERSE_SOLIDUS";
charset[charset["RIGHT_SQUARE_BRACKET"] = 93] = "RIGHT_SQUARE_BRACKET";
charset[charset["CIRCUMFLEX_ACCENT"] = 94] = "CIRCUMFLEX_ACCENT";
charset[charset["LOW_LINE"] = 95] = "LOW_LINE";
charset[charset["GRAVE_ACCENT"] = 96] = "GRAVE_ACCENT";
charset[charset["LATIN_SMALL_LETTER_A"] = 97] = "LATIN_SMALL_LETTER_A";
charset[charset["LATIN_SMALL_LETTER_B"] = 98] = "LATIN_SMALL_LETTER_B";
charset[charset["LATIN_SMALL_LETTER_C"] = 99] = "LATIN_SMALL_LETTER_C";
charset[charset["LATIN_SMALL_LETTER_D"] = 100] = "LATIN_SMALL_LETTER_D";
charset[charset["LATIN_SMALL_LETTER_E"] = 101] = "LATIN_SMALL_LETTER_E";
charset[charset["LATIN_SMALL_LETTER_F"] = 102] = "LATIN_SMALL_LETTER_F";
charset[charset["LATIN_SMALL_LETTER_G"] = 103] = "LATIN_SMALL_LETTER_G";
charset[charset["LATIN_SMALL_LETTER_H"] = 104] = "LATIN_SMALL_LETTER_H";
charset[charset["LATIN_SMALL_LETTER_I"] = 105] = "LATIN_SMALL_LETTER_I";
charset[charset["LATIN_SMALL_LETTER_J"] = 106] = "LATIN_SMALL_LETTER_J";
charset[charset["LATIN_SMALL_LETTER_K"] = 107] = "LATIN_SMALL_LETTER_K";
charset[charset["LATIN_SMALL_LETTER_L"] = 108] = "LATIN_SMALL_LETTER_L";
charset[charset["LATIN_SMALL_LETTER_M"] = 109] = "LATIN_SMALL_LETTER_M";
charset[charset["LATIN_SMALL_LETTER_N"] = 110] = "LATIN_SMALL_LETTER_N";
charset[charset["LATIN_SMALL_LETTER_O"] = 111] = "LATIN_SMALL_LETTER_O";
charset[charset["LATIN_SMALL_LETTER_P"] = 112] = "LATIN_SMALL_LETTER_P";
charset[charset["LATIN_SMALL_LETTER_Q"] = 113] = "LATIN_SMALL_LETTER_Q";
charset[charset["LATIN_SMALL_LETTER_R"] = 114] = "LATIN_SMALL_LETTER_R";
charset[charset["LATIN_SMALL_LETTER_S"] = 115] = "LATIN_SMALL_LETTER_S";
charset[charset["LATIN_SMALL_LETTER_T"] = 116] = "LATIN_SMALL_LETTER_T";
charset[charset["LATIN_SMALL_LETTER_U"] = 117] = "LATIN_SMALL_LETTER_U";
charset[charset["LATIN_SMALL_LETTER_V"] = 118] = "LATIN_SMALL_LETTER_V";
charset[charset["LATIN_SMALL_LETTER_W"] = 119] = "LATIN_SMALL_LETTER_W";
charset[charset["LATIN_SMALL_LETTER_X"] = 120] = "LATIN_SMALL_LETTER_X";
charset[charset["LATIN_SMALL_LETTER_Y"] = 121] = "LATIN_SMALL_LETTER_Y";
charset[charset["LATIN_SMALL_LETTER_Z"] = 122] = "LATIN_SMALL_LETTER_Z";
charset[charset["LEFT_CURLY_BRACKET"] = 123] = "LEFT_CURLY_BRACKET";
charset[charset["VERTICAL_LINE"] = 124] = "VERTICAL_LINE";
charset[charset["RIGHT_CURLY_BRACKET"] = 125] = "RIGHT_CURLY_BRACKET";
charset[charset["TILDE"] = 126] = "TILDE";
})(charset || (exports.charset = charset = {}));
exports.escapedSequences = {
[34 /* charset.QUOTATION_MARK */]: 34 /* charset.QUOTATION_MARK */,
[92 /* charset.REVERSE_SOLIDUS */]: 92 /* charset.REVERSE_SOLIDUS */,
[47 /* charset.SOLIDUS */]: 47 /* charset.SOLIDUS */,
[98 /* charset.LATIN_SMALL_LETTER_B */]: 8 /* charset.BACKSPACE */,
[102 /* charset.LATIN_SMALL_LETTER_F */]: 12 /* charset.FORM_FEED */,
[110 /* charset.LATIN_SMALL_LETTER_N */]: 10 /* charset.NEWLINE */,
[114 /* charset.LATIN_SMALL_LETTER_R */]: 13 /* charset.CARRIAGE_RETURN */,
[116 /* charset.LATIN_SMALL_LETTER_T */]: 9 /* charset.TAB */,
};
//# sourceMappingURL=utf-8.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"utf-8.js","sourceRoot":"","sources":["../../../src/utils/utf-8.ts"],"names":[],"mappings":";;;AAAA,IAAkB,OAqGjB;AArGD,WAAkB,OAAO;IACvB,+CAAe,CAAA;IACf,gDAAe,CAAA;IACf,4CAAa,CAAA;IACb,4DAAqB,CAAA;IACrB,mCAAS,CAAA;IACT,wCAAY,CAAA;IACZ,8DAAuB,CAAA;IACvB,0DAAqB,CAAA;IACrB,oDAAkB,CAAA;IAClB,oDAAkB,CAAA;IAClB,sDAAmB,CAAA;IACnB,gDAAgB,CAAA;IAChB,kDAAiB,CAAA;IACjB,8DAAuB,CAAA;IACvB,gEAAwB,CAAA;IACxB,8CAAe,CAAA;IACf,gDAAgB,CAAA;IAChB,wCAAY,CAAA;IACZ,sDAAmB,CAAA;IACnB,gDAAgB,CAAA;IAChB,4CAAc,CAAA;IACd,kDAAiB,CAAA;IACjB,gDAAgB,CAAA;IAChB,gDAAgB,CAAA;IAChB,oDAAkB,CAAA;IAClB,kDAAiB,CAAA;IACjB,kDAAiB,CAAA;IACjB,gDAAgB,CAAA;IAChB,oDAAkB,CAAA;IAClB,oDAAkB,CAAA;IAClB,kDAAiB,CAAA;IACjB,wCAAY,CAAA;IACZ,gDAAgB,CAAA;IAChB,0DAAqB,CAAA;IACrB,oDAAkB,CAAA;IAClB,gEAAwB,CAAA;IACxB,wDAAoB,CAAA;IACpB,wDAAoB,CAAA;IACpB,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,0EAA6B,CAAA;IAC7B,oEAA0B,CAAA;IAC1B,4DAAsB,CAAA;IACtB,sEAA2B,CAAA;IAC3B,gEAAwB,CAAA;IACxB,8CAAe,CAAA;IACf,sDAAmB,CAAA;IACnB,sEAA2B,CAAA;IAC3B,sEAA2B,CAAA;IAC3B,sEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,uEAA2B,CAAA;IAC3B,mEAAyB,CAAA;IACzB,yDAAoB,CAAA;IACpB,qEAA0B,CAAA;IAC1B,yCAAY,CAAA;AACd,CAAC,EArGiB,OAAO,uBAAP,OAAO,QAqGxB;AAEY,QAAA,gBAAgB,GAA8B;IACzD,iCAAwB,iCAAwB;IAChD,kCAAyB,kCAAyB;IAClD,0BAAiB,0BAAiB;IAClC,uCAA8B,2BAAmB;IACjD,wCAA8B,4BAAmB;IACjD,wCAA8B,0BAAiB;IAC/C,wCAA8B,kCAAyB;IACvD,wCAA8B,qBAAa;CAC5C,CAAC"}