json-brook 0.0.3 → 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generate.d.ts +2 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +619 -0
- package/dist/index.umd.cjs +2 -0
- package/dist/parse.d.ts +65 -0
- package/dist/tokenize.d.ts +92 -0
- package/package.json +23 -34
- package/CHANGELOG.md +0 -17
- package/dist/es/index.js +0 -621
- package/dist/es/internal.js +0 -564
- package/dist/es/type.js +0 -0
- package/dist/lib/index.js +0 -648
- package/dist/lib/internal.js +0 -592
- package/dist/lib/type.js +0 -18
- package/dist/types/index.d.ts +0 -7
- package/dist/types/internal-2ae957fd.d.ts +0 -108
- package/dist/types/internal.d.ts +0 -1
- package/dist/types/type.d.ts +0 -1
package/dist/parse.d.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { StringTokenCurrent, TokenCurrent } from './tokenize';
|
|
2
|
+
export type RootNode = {
|
|
3
|
+
type: "root";
|
|
4
|
+
value: LiteralNode | ArrayNode | ObjectNode | null;
|
|
5
|
+
};
|
|
6
|
+
export type LiteralNode = {
|
|
7
|
+
type: "literal";
|
|
8
|
+
value: string | number | boolean | null;
|
|
9
|
+
current: TokenCurrent | null;
|
|
10
|
+
parent: RootNode | ArrayNode | PropertyNode;
|
|
11
|
+
};
|
|
12
|
+
export declare const ArrayNodeState: {
|
|
13
|
+
readonly Start: 1;
|
|
14
|
+
readonly Value: 2;
|
|
15
|
+
readonly Comma: 3;
|
|
16
|
+
readonly End: 4;
|
|
17
|
+
};
|
|
18
|
+
export type ArrayNodeState = (typeof ArrayNodeState)[keyof typeof ArrayNodeState];
|
|
19
|
+
export type ArrayNode = {
|
|
20
|
+
type: "array";
|
|
21
|
+
state: ArrayNodeState;
|
|
22
|
+
children: (LiteralNode | ArrayNode | ObjectNode)[];
|
|
23
|
+
parent: RootNode | ArrayNode | PropertyNode;
|
|
24
|
+
};
|
|
25
|
+
export type IdentifierNode = {
|
|
26
|
+
type: "identifier";
|
|
27
|
+
value: string;
|
|
28
|
+
current: StringTokenCurrent | null;
|
|
29
|
+
parent: PropertyNode;
|
|
30
|
+
};
|
|
31
|
+
export declare const PropertyNodeState: {
|
|
32
|
+
readonly Key: 1;
|
|
33
|
+
readonly Colon: 2;
|
|
34
|
+
readonly Value: 3;
|
|
35
|
+
readonly End: 4;
|
|
36
|
+
};
|
|
37
|
+
export type PropertyNodeState = (typeof PropertyNodeState)[keyof typeof PropertyNodeState];
|
|
38
|
+
export type PropertyNode = {
|
|
39
|
+
type: "property";
|
|
40
|
+
state: PropertyNodeState;
|
|
41
|
+
key: IdentifierNode;
|
|
42
|
+
value: LiteralNode | ArrayNode | ObjectNode | null;
|
|
43
|
+
parent: ObjectNode;
|
|
44
|
+
};
|
|
45
|
+
export declare const ObjectNodeState: {
|
|
46
|
+
readonly Start: 1;
|
|
47
|
+
readonly Property: 2;
|
|
48
|
+
readonly Comma: 3;
|
|
49
|
+
readonly End: 4;
|
|
50
|
+
};
|
|
51
|
+
export type ObjectNodeState = (typeof ObjectNodeState)[keyof typeof ObjectNodeState];
|
|
52
|
+
export type ObjectNode = {
|
|
53
|
+
type: "object";
|
|
54
|
+
state: ObjectNodeState;
|
|
55
|
+
children: PropertyNode[];
|
|
56
|
+
parent: RootNode | ArrayNode | PropertyNode;
|
|
57
|
+
};
|
|
58
|
+
export type Node = RootNode | LiteralNode | IdentifierNode | PropertyNode | ObjectNode | ArrayNode;
|
|
59
|
+
export declare const parseRootNode: (node: RootNode, char: string) => LiteralNode | ArrayNode | ObjectNode | RootNode;
|
|
60
|
+
export declare const parseLiteralNode: (node: LiteralNode, char: string) => Node;
|
|
61
|
+
export declare const parseArrayNode: (node: ArrayNode, char: string) => Node;
|
|
62
|
+
export declare const parseIdentifierNode: (node: IdentifierNode, char: string) => PropertyNode | IdentifierNode;
|
|
63
|
+
export declare const parsePropertyNode: (node: PropertyNode, char: string) => LiteralNode | ArrayNode | ObjectNode | PropertyNode;
|
|
64
|
+
export declare const parseObjectNode: (node: ObjectNode, char: string) => Node;
|
|
65
|
+
export declare const endAst: (current: Node) => Node;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export type SymbolValue = "{" | "}" | "[" | "]" | ":" | ",";
|
|
2
|
+
export type SymbolToken = {
|
|
3
|
+
type: "symbol";
|
|
4
|
+
value: SymbolValue;
|
|
5
|
+
};
|
|
6
|
+
export type KeywordValue = "true" | "false" | "null";
|
|
7
|
+
export type KeywordToken = {
|
|
8
|
+
type: "keyword";
|
|
9
|
+
value: boolean | null;
|
|
10
|
+
};
|
|
11
|
+
export type KeywordTokenCurrent = {
|
|
12
|
+
type: "keyword";
|
|
13
|
+
value: KeywordValue;
|
|
14
|
+
matchLength: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const StringTokenState: {
|
|
17
|
+
readonly Normal: 1;
|
|
18
|
+
readonly Escape: 2;
|
|
19
|
+
};
|
|
20
|
+
export type StringTokenState = (typeof StringTokenState)[keyof typeof StringTokenState];
|
|
21
|
+
export type StringToken = {
|
|
22
|
+
type: "string";
|
|
23
|
+
value: string;
|
|
24
|
+
};
|
|
25
|
+
export type StringTokenCurrent = {
|
|
26
|
+
type: "string";
|
|
27
|
+
state: StringTokenState;
|
|
28
|
+
value: string;
|
|
29
|
+
escapeLength: number;
|
|
30
|
+
};
|
|
31
|
+
export declare const NumberTokenState: {
|
|
32
|
+
readonly Negative: 1;
|
|
33
|
+
readonly Zero: 2;
|
|
34
|
+
readonly Digit: 3;
|
|
35
|
+
readonly Point: 4;
|
|
36
|
+
readonly DigitFraction: 5;
|
|
37
|
+
readonly Exp: 6;
|
|
38
|
+
readonly ExpDigitOrSign: 7;
|
|
39
|
+
};
|
|
40
|
+
export type NumberTokenState = (typeof NumberTokenState)[keyof typeof NumberTokenState];
|
|
41
|
+
export type NumberToken = {
|
|
42
|
+
type: "number";
|
|
43
|
+
value: number;
|
|
44
|
+
};
|
|
45
|
+
export type NumberTokenCurrent = {
|
|
46
|
+
type: "number";
|
|
47
|
+
state: NumberTokenState;
|
|
48
|
+
value: string;
|
|
49
|
+
validLength: number;
|
|
50
|
+
};
|
|
51
|
+
export type Token = SymbolToken | KeywordToken | StringToken | NumberToken;
|
|
52
|
+
export type TokenCurrent = KeywordTokenCurrent | StringTokenCurrent | NumberTokenCurrent;
|
|
53
|
+
export declare const parseNextToken: (char: string) => {
|
|
54
|
+
token: null;
|
|
55
|
+
current: null;
|
|
56
|
+
} | {
|
|
57
|
+
token: SymbolToken;
|
|
58
|
+
current: null;
|
|
59
|
+
} | {
|
|
60
|
+
token: null;
|
|
61
|
+
current: KeywordTokenCurrent;
|
|
62
|
+
} | {
|
|
63
|
+
token: null;
|
|
64
|
+
current: StringTokenCurrent;
|
|
65
|
+
} | {
|
|
66
|
+
token: null;
|
|
67
|
+
current: NumberTokenCurrent;
|
|
68
|
+
};
|
|
69
|
+
export declare const parseNextTokenWithKeyword: (char: string, current: KeywordTokenCurrent) => {
|
|
70
|
+
token: KeywordToken;
|
|
71
|
+
current: null;
|
|
72
|
+
} | {
|
|
73
|
+
token: null;
|
|
74
|
+
current: KeywordTokenCurrent;
|
|
75
|
+
};
|
|
76
|
+
export declare const parseNextTokenWithString: (char: string, current: StringTokenCurrent) => {
|
|
77
|
+
token: StringToken;
|
|
78
|
+
current: null;
|
|
79
|
+
} | {
|
|
80
|
+
token: null;
|
|
81
|
+
current: StringTokenCurrent;
|
|
82
|
+
};
|
|
83
|
+
export declare const parseNextTokenWithNumber: (char: string, current: NumberTokenCurrent) => {
|
|
84
|
+
token: null;
|
|
85
|
+
current: NumberTokenCurrent;
|
|
86
|
+
char?: undefined;
|
|
87
|
+
} | {
|
|
88
|
+
token: NumberToken;
|
|
89
|
+
current: null;
|
|
90
|
+
char: string;
|
|
91
|
+
};
|
|
92
|
+
export declare const endNumberTokenCurrent: (current: NumberTokenCurrent) => NumberToken;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "json-brook",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.1.0-alpha.0",
|
|
4
4
|
"description": "parse json data streamly",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"json",
|
|
@@ -13,54 +13,43 @@
|
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"author": "asurance",
|
|
15
15
|
"sideEffects": [],
|
|
16
|
-
"
|
|
17
|
-
"module": "./dist/es/index.js",
|
|
18
|
-
"types": "./dist/types/index.d.ts",
|
|
16
|
+
"type": "module",
|
|
19
17
|
"files": [
|
|
20
|
-
"dist"
|
|
21
|
-
"CHANGELOG.md"
|
|
18
|
+
"dist"
|
|
22
19
|
],
|
|
20
|
+
"main": "./dist/my-lib.umd.cjs",
|
|
21
|
+
"module": "./dist/my-lib.js",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"import": "./dist/my-lib.js",
|
|
25
|
+
"require": "./dist/my-lib.umd.cjs"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
23
28
|
"simple-git-hooks": {
|
|
24
29
|
"pre-commit": "npx lint-staged"
|
|
25
30
|
},
|
|
26
31
|
"lint-staged": {
|
|
27
32
|
"*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [
|
|
28
|
-
"
|
|
33
|
+
"pnpm lint"
|
|
29
34
|
]
|
|
30
35
|
},
|
|
31
36
|
"devDependencies": {
|
|
32
|
-
"@biomejs/biome": "
|
|
33
|
-
"@
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"simple-git-hooks": "^2.11.1",
|
|
40
|
-
"sort-package-json": "^2.10.1",
|
|
41
|
-
"ts-jest": "^29.2.5",
|
|
42
|
-
"typescript": "~5.0.4"
|
|
37
|
+
"@biomejs/biome": "2.4.4",
|
|
38
|
+
"@types/node": "^25.3.0",
|
|
39
|
+
"lint-staged": "~16.2.7",
|
|
40
|
+
"simple-git-hooks": "^2.13.1",
|
|
41
|
+
"typescript": "~5.9.3",
|
|
42
|
+
"vite": "^7.3.1",
|
|
43
|
+
"vite-plugin-dts": "^4.5.4"
|
|
43
44
|
},
|
|
44
45
|
"publishConfig": {
|
|
45
46
|
"access": "public",
|
|
46
47
|
"registry": "https://registry.npmjs.org/"
|
|
47
48
|
},
|
|
48
49
|
"scripts": {
|
|
49
|
-
"
|
|
50
|
-
"build
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"change": "modern change",
|
|
54
|
-
"change-status": "modern change-status",
|
|
55
|
-
"dev": "modern dev",
|
|
56
|
-
"gen-release-note": "modern gen-release-note",
|
|
57
|
-
"lint": "biome check",
|
|
58
|
-
"new": "modern new",
|
|
59
|
-
"pre": "modern pre",
|
|
60
|
-
"release": "modern release",
|
|
61
|
-
"reset": "npx rimraf node_modules ./**/node_modules",
|
|
62
|
-
"sort": "sort-package-json",
|
|
63
|
-
"test": "jest",
|
|
64
|
-
"upgrade": "modern upgrade"
|
|
50
|
+
"dev": "vite",
|
|
51
|
+
"build": "tsc && vite build",
|
|
52
|
+
"preview": "vite preview",
|
|
53
|
+
"lint": "biome check --fix"
|
|
65
54
|
}
|
|
66
55
|
}
|