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.
@@ -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",
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
- "main": "./dist/lib/index.js",
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
- "biome check --files-ignore-unknown=true"
33
+ "pnpm lint"
29
34
  ]
30
35
  },
31
36
  "devDependencies": {
32
- "@biomejs/biome": "1.8.3",
33
- "@modern-js/module-tools": "2.60.3",
34
- "@types/jest": "^29.5.14",
35
- "@types/node": "~16.11.7",
36
- "jest": "^29.7.0",
37
- "lint-staged": "~13.1.0",
38
- "rimraf": "^6.0.1",
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
- "build": "modern build",
50
- "build:doc": "modern build --platform",
51
- "build:watch": "modern build -w",
52
- "bump": "modern bump",
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
  }
package/CHANGELOG.md DELETED
@@ -1,17 +0,0 @@
1
- # json-brook
2
-
3
- ## 0.0.3
4
-
5
- ### Patch Changes
6
-
7
- - 删除无效依赖
8
-
9
- ## 0.0.2
10
-
11
- ### Patch Changes
12
-
13
- - 解析 bug 修复
14
-
15
- ## 0.0.1
16
-
17
- - 第一个版本