@vertesia/json 0.78.0-dev-9372725 → 0.78.0-dev.1

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,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types.js"), exports);
18
+ __exportStar(require("./walk.js"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,4CAAyB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsyncObjectWalker = exports.ObjectWalker = void 0;
4
+ class ObjectWalker {
5
+ supportIterators = false; // only array are supported by default
6
+ constructor(supportIterators = false) {
7
+ this.supportIterators = supportIterators;
8
+ }
9
+ walk(obj, visitor) {
10
+ this._walk(undefined, obj, visitor);
11
+ }
12
+ _walk(key, obj, visitor) {
13
+ const type = typeof obj;
14
+ if (!obj || type !== 'object' || obj instanceof Date) {
15
+ visitor.onValue && visitor.onValue(key, obj);
16
+ }
17
+ else if (Array.isArray(obj)) {
18
+ this._walkIterable(key, obj, visitor);
19
+ }
20
+ else if (this.supportIterators && obj[Symbol.iterator] === 'function') {
21
+ this._walkIterable(key, obj, visitor);
22
+ }
23
+ else if (obj.constructor === Object) { // a plain object
24
+ this._walkObject(key, obj, visitor);
25
+ }
26
+ else { // a random object - we treat it as a value
27
+ visitor.onValue && visitor.onValue(key, obj);
28
+ }
29
+ }
30
+ _walkIterable(key, obj, visitor) {
31
+ visitor.onStartIteration && visitor.onStartIteration(key, obj);
32
+ let i = 0;
33
+ for (const value of obj) {
34
+ this._walk(i++, value, visitor);
35
+ }
36
+ visitor.onEndIteration && visitor.onEndIteration(key, obj);
37
+ }
38
+ _walkObject(key, obj, visitor) {
39
+ visitor.onStartObject && visitor.onStartObject(key, obj);
40
+ for (const k of Object.keys(obj)) {
41
+ this._walk(k, obj[k], visitor);
42
+ }
43
+ visitor.onEndObject && visitor.onEndObject(key, obj);
44
+ }
45
+ map(obj, mapFn) {
46
+ const visitor = new MapVisitor(mapFn);
47
+ this.walk(obj, visitor);
48
+ return visitor.result;
49
+ }
50
+ }
51
+ exports.ObjectWalker = ObjectWalker;
52
+ class AsyncObjectWalker {
53
+ supportIterators = false; // only array are supported by default
54
+ constructor(supportIterators = false) {
55
+ this.supportIterators = supportIterators;
56
+ }
57
+ async walk(obj, visitor) {
58
+ await this._walk(undefined, obj, visitor);
59
+ }
60
+ async _walk(key, obj, visitor) {
61
+ const type = typeof obj;
62
+ if (!obj || type !== 'object' || obj instanceof Date) {
63
+ visitor.onValue && (await visitor.onValue(key, obj));
64
+ }
65
+ else if (Array.isArray(obj)) {
66
+ await this._walkIterable(key, obj, visitor);
67
+ }
68
+ else if (this.supportIterators && obj[Symbol.iterator] === 'function') {
69
+ await this._walkIterable(key, obj, visitor);
70
+ }
71
+ else if (obj.constructor === Object) { // a plain object
72
+ await this._walkObject(key, obj, visitor);
73
+ }
74
+ else { // a random object - we treat it as a value
75
+ visitor.onValue && (await visitor.onValue(key, obj));
76
+ }
77
+ }
78
+ async _walkIterable(key, obj, visitor) {
79
+ visitor.onStartIteration && (await visitor.onStartIteration(key, obj));
80
+ let i = 0;
81
+ for (const value of obj) {
82
+ await this._walk(i++, value, visitor);
83
+ }
84
+ visitor.onEndIteration && (await visitor.onEndIteration(key, obj));
85
+ }
86
+ async _walkObject(key, obj, visitor) {
87
+ visitor.onStartObject && (await visitor.onStartObject(key, obj));
88
+ for (const k of Object.keys(obj)) {
89
+ await this._walk(k, obj[k], visitor);
90
+ }
91
+ visitor.onEndObject && (await visitor.onEndObject(key, obj));
92
+ }
93
+ async map(obj, mapFn) {
94
+ const visitor = new AsyncMapVisitor(mapFn);
95
+ await this.walk(obj, visitor);
96
+ return visitor.result;
97
+ }
98
+ }
99
+ exports.AsyncObjectWalker = AsyncObjectWalker;
100
+ class MapVisitor {
101
+ mapFn;
102
+ result;
103
+ current;
104
+ stack = [];
105
+ constructor(mapFn) {
106
+ this.mapFn = mapFn;
107
+ }
108
+ onStartObject(key) {
109
+ if (key === undefined) {
110
+ this.result = {};
111
+ this.current = this.result;
112
+ }
113
+ else {
114
+ this.stack.push(this.current);
115
+ const obj = {};
116
+ this.current[key] = obj;
117
+ this.current = obj;
118
+ }
119
+ }
120
+ onEndObject() {
121
+ this.current = this.stack.pop();
122
+ }
123
+ onStartIteration(key) {
124
+ if (key === undefined) {
125
+ this.result = [];
126
+ this.current = this.result;
127
+ }
128
+ else {
129
+ this.stack.push(this.current);
130
+ const ar = [];
131
+ this.current[key] = ar;
132
+ this.current = ar;
133
+ }
134
+ }
135
+ onEndIteration() {
136
+ this.current = this.stack.pop();
137
+ }
138
+ onValue(key, value) {
139
+ const r = this.mapFn(key, value);
140
+ if (key === undefined) {
141
+ this.result = r;
142
+ }
143
+ else if (r !== undefined) {
144
+ this.current[key] = r;
145
+ }
146
+ }
147
+ }
148
+ class AsyncMapVisitor {
149
+ mapFn;
150
+ result;
151
+ current;
152
+ stack = [];
153
+ constructor(mapFn) {
154
+ this.mapFn = mapFn;
155
+ }
156
+ async onStartObject(key) {
157
+ if (key === undefined) {
158
+ this.result = {};
159
+ this.current = this.result;
160
+ }
161
+ else {
162
+ this.stack.push(this.current);
163
+ const obj = {};
164
+ this.current[key] = obj;
165
+ this.current = obj;
166
+ }
167
+ }
168
+ async onEndObject() {
169
+ this.current = this.stack.pop();
170
+ }
171
+ async onStartIteration(key) {
172
+ if (key === undefined) {
173
+ this.result = [];
174
+ this.current = this.result;
175
+ }
176
+ else {
177
+ this.stack.push(this.current);
178
+ const ar = [];
179
+ this.current[key] = ar;
180
+ this.current = ar;
181
+ }
182
+ }
183
+ async onEndIteration() {
184
+ this.current = this.stack.pop();
185
+ }
186
+ async onValue(key, value) {
187
+ const r = await this.mapFn(key, value);
188
+ if (key === undefined) {
189
+ this.result = r;
190
+ }
191
+ else if (r !== undefined) {
192
+ this.current[key] = r;
193
+ }
194
+ }
195
+ }
196
+ //# sourceMappingURL=walk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.js","sourceRoot":"","sources":["../../src/walk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./types.js";
2
+ export * from "./walk.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,191 @@
1
+ export class ObjectWalker {
2
+ supportIterators = false; // only array are supported by default
3
+ constructor(supportIterators = false) {
4
+ this.supportIterators = supportIterators;
5
+ }
6
+ walk(obj, visitor) {
7
+ this._walk(undefined, obj, visitor);
8
+ }
9
+ _walk(key, obj, visitor) {
10
+ const type = typeof obj;
11
+ if (!obj || type !== 'object' || obj instanceof Date) {
12
+ visitor.onValue && visitor.onValue(key, obj);
13
+ }
14
+ else if (Array.isArray(obj)) {
15
+ this._walkIterable(key, obj, visitor);
16
+ }
17
+ else if (this.supportIterators && obj[Symbol.iterator] === 'function') {
18
+ this._walkIterable(key, obj, visitor);
19
+ }
20
+ else if (obj.constructor === Object) { // a plain object
21
+ this._walkObject(key, obj, visitor);
22
+ }
23
+ else { // a random object - we treat it as a value
24
+ visitor.onValue && visitor.onValue(key, obj);
25
+ }
26
+ }
27
+ _walkIterable(key, obj, visitor) {
28
+ visitor.onStartIteration && visitor.onStartIteration(key, obj);
29
+ let i = 0;
30
+ for (const value of obj) {
31
+ this._walk(i++, value, visitor);
32
+ }
33
+ visitor.onEndIteration && visitor.onEndIteration(key, obj);
34
+ }
35
+ _walkObject(key, obj, visitor) {
36
+ visitor.onStartObject && visitor.onStartObject(key, obj);
37
+ for (const k of Object.keys(obj)) {
38
+ this._walk(k, obj[k], visitor);
39
+ }
40
+ visitor.onEndObject && visitor.onEndObject(key, obj);
41
+ }
42
+ map(obj, mapFn) {
43
+ const visitor = new MapVisitor(mapFn);
44
+ this.walk(obj, visitor);
45
+ return visitor.result;
46
+ }
47
+ }
48
+ export class AsyncObjectWalker {
49
+ supportIterators = false; // only array are supported by default
50
+ constructor(supportIterators = false) {
51
+ this.supportIterators = supportIterators;
52
+ }
53
+ async walk(obj, visitor) {
54
+ await this._walk(undefined, obj, visitor);
55
+ }
56
+ async _walk(key, obj, visitor) {
57
+ const type = typeof obj;
58
+ if (!obj || type !== 'object' || obj instanceof Date) {
59
+ visitor.onValue && (await visitor.onValue(key, obj));
60
+ }
61
+ else if (Array.isArray(obj)) {
62
+ await this._walkIterable(key, obj, visitor);
63
+ }
64
+ else if (this.supportIterators && obj[Symbol.iterator] === 'function') {
65
+ await this._walkIterable(key, obj, visitor);
66
+ }
67
+ else if (obj.constructor === Object) { // a plain object
68
+ await this._walkObject(key, obj, visitor);
69
+ }
70
+ else { // a random object - we treat it as a value
71
+ visitor.onValue && (await visitor.onValue(key, obj));
72
+ }
73
+ }
74
+ async _walkIterable(key, obj, visitor) {
75
+ visitor.onStartIteration && (await visitor.onStartIteration(key, obj));
76
+ let i = 0;
77
+ for (const value of obj) {
78
+ await this._walk(i++, value, visitor);
79
+ }
80
+ visitor.onEndIteration && (await visitor.onEndIteration(key, obj));
81
+ }
82
+ async _walkObject(key, obj, visitor) {
83
+ visitor.onStartObject && (await visitor.onStartObject(key, obj));
84
+ for (const k of Object.keys(obj)) {
85
+ await this._walk(k, obj[k], visitor);
86
+ }
87
+ visitor.onEndObject && (await visitor.onEndObject(key, obj));
88
+ }
89
+ async map(obj, mapFn) {
90
+ const visitor = new AsyncMapVisitor(mapFn);
91
+ await this.walk(obj, visitor);
92
+ return visitor.result;
93
+ }
94
+ }
95
+ class MapVisitor {
96
+ mapFn;
97
+ result;
98
+ current;
99
+ stack = [];
100
+ constructor(mapFn) {
101
+ this.mapFn = mapFn;
102
+ }
103
+ onStartObject(key) {
104
+ if (key === undefined) {
105
+ this.result = {};
106
+ this.current = this.result;
107
+ }
108
+ else {
109
+ this.stack.push(this.current);
110
+ const obj = {};
111
+ this.current[key] = obj;
112
+ this.current = obj;
113
+ }
114
+ }
115
+ onEndObject() {
116
+ this.current = this.stack.pop();
117
+ }
118
+ onStartIteration(key) {
119
+ if (key === undefined) {
120
+ this.result = [];
121
+ this.current = this.result;
122
+ }
123
+ else {
124
+ this.stack.push(this.current);
125
+ const ar = [];
126
+ this.current[key] = ar;
127
+ this.current = ar;
128
+ }
129
+ }
130
+ onEndIteration() {
131
+ this.current = this.stack.pop();
132
+ }
133
+ onValue(key, value) {
134
+ const r = this.mapFn(key, value);
135
+ if (key === undefined) {
136
+ this.result = r;
137
+ }
138
+ else if (r !== undefined) {
139
+ this.current[key] = r;
140
+ }
141
+ }
142
+ }
143
+ class AsyncMapVisitor {
144
+ mapFn;
145
+ result;
146
+ current;
147
+ stack = [];
148
+ constructor(mapFn) {
149
+ this.mapFn = mapFn;
150
+ }
151
+ async onStartObject(key) {
152
+ if (key === undefined) {
153
+ this.result = {};
154
+ this.current = this.result;
155
+ }
156
+ else {
157
+ this.stack.push(this.current);
158
+ const obj = {};
159
+ this.current[key] = obj;
160
+ this.current = obj;
161
+ }
162
+ }
163
+ async onEndObject() {
164
+ this.current = this.stack.pop();
165
+ }
166
+ async onStartIteration(key) {
167
+ if (key === undefined) {
168
+ this.result = [];
169
+ this.current = this.result;
170
+ }
171
+ else {
172
+ this.stack.push(this.current);
173
+ const ar = [];
174
+ this.current[key] = ar;
175
+ this.current = ar;
176
+ }
177
+ }
178
+ async onEndIteration() {
179
+ this.current = this.stack.pop();
180
+ }
181
+ async onValue(key, value) {
182
+ const r = await this.mapFn(key, value);
183
+ if (key === undefined) {
184
+ this.result = r;
185
+ }
186
+ else if (r !== undefined) {
187
+ this.current[key] = r;
188
+ }
189
+ }
190
+ }
191
+ //# sourceMappingURL=walk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.js","sourceRoot":"","sources":["../../src/walk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./types.js";
2
+ export * from "./walk.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,8 @@
1
+ export type JSONPrimitive = string | number | boolean | null;
2
+ export type JSONArray = JSONValue[];
3
+ export type JSONObject = {
4
+ [key: string]: JSONValue;
5
+ };
6
+ export type JSONComposite = JSONArray | JSONObject;
7
+ export type JSONValue = JSONPrimitive | JSONComposite;
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AACpC,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC"}
@@ -0,0 +1,34 @@
1
+ export type ObjectKey = string | number | undefined;
2
+ export interface ObjectVisitor {
3
+ onStartObject?: (key: ObjectKey, value: any) => void;
4
+ onEndObject?: (key: ObjectKey, value: any) => void;
5
+ onStartIteration?: (key: ObjectKey, value: Iterable<any>) => void;
6
+ onEndIteration?: (key: ObjectKey, value: Iterable<any>) => void;
7
+ onValue?: (key: ObjectKey, value: any) => void;
8
+ }
9
+ export interface AsyncObjectVisitor {
10
+ onStartObject?: (key: ObjectKey, value: any) => Promise<void>;
11
+ onEndObject?: (key: ObjectKey, value: any) => Promise<void>;
12
+ onStartIteration?: (key: ObjectKey, value: Iterable<any>) => Promise<void>;
13
+ onEndIteration?: (key: ObjectKey, value: Iterable<any>) => Promise<void>;
14
+ onValue?: (key: ObjectKey, value: any) => Promise<void>;
15
+ }
16
+ export declare class ObjectWalker {
17
+ supportIterators: boolean;
18
+ constructor(supportIterators?: boolean);
19
+ walk(obj: any, visitor: ObjectVisitor): void;
20
+ _walk(key: ObjectKey, obj: any, visitor: ObjectVisitor): void;
21
+ _walkIterable(key: ObjectKey, obj: any, visitor: ObjectVisitor): void;
22
+ _walkObject(key: ObjectKey, obj: any, visitor: ObjectVisitor): void;
23
+ map(obj: any, mapFn: (key: ObjectKey, value: any) => any): any;
24
+ }
25
+ export declare class AsyncObjectWalker {
26
+ supportIterators: boolean;
27
+ constructor(supportIterators?: boolean);
28
+ walk(obj: any, visitor: AsyncObjectVisitor): Promise<void>;
29
+ _walk(key: ObjectKey, obj: any, visitor: AsyncObjectVisitor): Promise<void>;
30
+ _walkIterable(key: ObjectKey, obj: any, visitor: AsyncObjectVisitor): Promise<void>;
31
+ _walkObject(key: ObjectKey, obj: any, visitor: AsyncObjectVisitor): Promise<void>;
32
+ map(obj: any, mapFn: (key: ObjectKey, value: any) => Promise<any>): Promise<any>;
33
+ }
34
+ //# sourceMappingURL=walk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../../src/walk.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AACpD,MAAM,WAAW,aAAa;IAC1B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAClE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAChE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IAC/B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,qBAAa,YAAY;IACrB,gBAAgB,UAAS;gBACb,gBAAgB,UAAQ;IAGpC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;IAGrC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;IAetD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;IAS9D,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;IAQ5D,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG;CAK3D;AAGD,qBAAa,iBAAiB;IAC1B,gBAAgB,UAAS;gBACb,gBAAgB,UAAQ;IAG9B,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB;IAG1C,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB;IAe3D,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB;IASnE,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB;IAQjE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;CAK1E"}
@@ -0,0 +1,2 @@
1
+ class t{constructor(t=!1){this.supportIterators=!1,this.supportIterators=t}walk(t,s){this._walk(void 0,t,s)}_walk(t,s,r){!s||"object"!==typeof s||s instanceof Date?r.onValue&&r.onValue(t,s):Array.isArray(s)||this.supportIterators&&"function"===s[Symbol.iterator]?this._walkIterable(t,s,r):s.constructor===Object?this._walkObject(t,s,r):r.onValue&&r.onValue(t,s)}_walkIterable(t,s,r){r.onStartIteration&&r.onStartIteration(t,s);let a=0;for(const t of s)this._walk(a++,t,r);r.onEndIteration&&r.onEndIteration(t,s)}_walkObject(t,s,r){r.onStartObject&&r.onStartObject(t,s);for(const t of Object.keys(s))this._walk(t,s[t],r);r.onEndObject&&r.onEndObject(t,s)}map(t,s){const a=new r(s);return this.walk(t,a),a.result}}class s{constructor(t=!1){this.supportIterators=!1,this.supportIterators=t}async walk(t,s){await this._walk(void 0,t,s)}async _walk(t,s,r){!s||"object"!==typeof s||s instanceof Date?r.onValue&&await r.onValue(t,s):Array.isArray(s)||this.supportIterators&&"function"===s[Symbol.iterator]?await this._walkIterable(t,s,r):s.constructor===Object?await this._walkObject(t,s,r):r.onValue&&await r.onValue(t,s)}async _walkIterable(t,s,r){r.onStartIteration&&await r.onStartIteration(t,s);let a=0;for(const t of s)await this._walk(a++,t,r);r.onEndIteration&&await r.onEndIteration(t,s)}async _walkObject(t,s,r){r.onStartObject&&await r.onStartObject(t,s);for(const t of Object.keys(s))await this._walk(t,s[t],r);r.onEndObject&&await r.onEndObject(t,s)}async map(t,s){const r=new a(s);return await this.walk(t,r),r.result}}class r{constructor(t){this.mapFn=t,this.stack=[]}onStartObject(t){if(void 0===t)this.result={},this.current=this.result;else{this.stack.push(this.current);const s={};this.current[t]=s,this.current=s}}onEndObject(){this.current=this.stack.pop()}onStartIteration(t){if(void 0===t)this.result=[],this.current=this.result;else{this.stack.push(this.current);const s=[];this.current[t]=s,this.current=s}}onEndIteration(){this.current=this.stack.pop()}onValue(t,s){const r=this.mapFn(t,s);void 0===t?this.result=r:void 0!==r&&(this.current[t]=r)}}class a{constructor(t){this.mapFn=t,this.stack=[]}async onStartObject(t){if(void 0===t)this.result={},this.current=this.result;else{this.stack.push(this.current);const s={};this.current[t]=s,this.current=s}}async onEndObject(){this.current=this.stack.pop()}async onStartIteration(t){if(void 0===t)this.result=[],this.current=this.result;else{this.stack.push(this.current);const s=[];this.current[t]=s,this.current=s}}async onEndIteration(){this.current=this.stack.pop()}async onValue(t,s){const r=await this.mapFn(t,s);void 0===t?this.result=r:void 0!==r&&(this.current[t]=r)}}export{s as AsyncObjectWalker,t as ObjectWalker};
2
+ //# sourceMappingURL=vertesia-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertesia-json.js","sources":["../src/walk.ts"],"sourcesContent":[null],"names":["ObjectWalker","constructor","supportIterators","this","walk","obj","visitor","_walk","undefined","key","Date","onValue","Array","isArray","Symbol","iterator","_walkIterable","Object","_walkObject","onStartIteration","i","value","onEndIteration","onStartObject","k","keys","onEndObject","map","mapFn","MapVisitor","result","AsyncObjectWalker","AsyncMapVisitor","stack","current","push","pop","ar","r"],"mappings":"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"}
package/package.json CHANGED
@@ -1,40 +1,40 @@
1
1
  {
2
- "name": "@vertesia/json",
3
- "version": "0.78.0-dev-9372725",
4
- "description": "JSON utlities",
5
- "type": "module",
2
+ "name": "@vertesia/json",
3
+ "version": "0.78.0-dev.1",
4
+ "description": "JSON utlities",
5
+ "type": "module",
6
+ "types": "./lib/types/index.d.ts",
7
+ "files": [
8
+ "lib",
9
+ "src"
10
+ ],
11
+ "license": "Apache-2.0",
12
+ "exports": {
6
13
  "types": "./lib/types/index.d.ts",
7
- "files": [
8
- "lib",
9
- "src"
10
- ],
11
- "license": "Apache-2.0",
12
- "scripts": {
13
- "test": "vitest run",
14
- "build": "pnpm exec tsmod build && pnpm exec rollup -c",
15
- "clean": "rimraf ./node_modules ./lib ./tsconfig.tsbuildinfo"
16
- },
17
- "exports": {
18
- "types": "./lib/types/index.d.ts",
19
- "import": "./lib/esm/index.js",
20
- "require": "./lib/cjs/index.js"
21
- },
22
- "devDependencies": {
23
- "@rollup/plugin-commonjs": "^28.0.3",
24
- "@rollup/plugin-node-resolve": "^16.0.1",
25
- "@rollup/plugin-typescript": "^12.1.2",
26
- "rollup": "^4.40.2",
27
- "rollup-plugin-terser": "^7.0.2",
28
- "ts-dual-module": "^0.6.3",
29
- "typescript": "^5.0.2",
30
- "vitest": "^3.0.9"
31
- },
32
- "ts_dual_module": {
33
- "outDir": "lib"
34
- },
35
- "repository": {
36
- "type": "git",
37
- "url": "https://github.com/vertesia/composableai.git",
38
- "directory": "packages/json"
39
- }
40
- }
14
+ "import": "./lib/esm/index.js",
15
+ "require": "./lib/cjs/index.js"
16
+ },
17
+ "devDependencies": {
18
+ "@rollup/plugin-commonjs": "^28.0.3",
19
+ "@rollup/plugin-node-resolve": "^16.0.1",
20
+ "@rollup/plugin-typescript": "^12.1.2",
21
+ "rollup": "^4.40.2",
22
+ "rollup-plugin-terser": "^7.0.2",
23
+ "ts-dual-module": "^0.6.3",
24
+ "typescript": "^5.0.2",
25
+ "vitest": "^3.0.9"
26
+ },
27
+ "ts_dual_module": {
28
+ "outDir": "lib"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/vertesia/composableai.git",
33
+ "directory": "packages/json"
34
+ },
35
+ "scripts": {
36
+ "test": "vitest run",
37
+ "build": "pnpm exec tsmod build && pnpm exec rollup -c",
38
+ "clean": "rimraf ./node_modules ./lib ./tsconfig.tsbuildinfo"
39
+ }
40
+ }