@manifesto-ai/core 2.6.0 → 2.7.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.
- package/README.md +4 -4
- package/dist/index.d.ts +1750 -19
- package/dist/index.js +18480 -36
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
- package/dist/__tests__/apply.test.d.ts +0 -2
- package/dist/__tests__/apply.test.d.ts.map +0 -1
- package/dist/__tests__/apply.test.js +0 -320
- package/dist/__tests__/apply.test.js.map +0 -1
- package/dist/__tests__/defaults.test.d.ts +0 -2
- package/dist/__tests__/defaults.test.d.ts.map +0 -1
- package/dist/__tests__/defaults.test.js +0 -74
- package/dist/__tests__/defaults.test.js.map +0 -1
- package/dist/__tests__/jcs.test.d.ts +0 -2
- package/dist/__tests__/jcs.test.d.ts.map +0 -1
- package/dist/__tests__/jcs.test.js +0 -45
- package/dist/__tests__/jcs.test.js.map +0 -1
- package/dist/core/apply.d.ts +0 -17
- package/dist/core/apply.d.ts.map +0 -1
- package/dist/core/apply.js +0 -198
- package/dist/core/apply.js.map +0 -1
- package/dist/core/compute.d.ts +0 -17
- package/dist/core/compute.d.ts.map +0 -1
- package/dist/core/compute.js +0 -305
- package/dist/core/compute.js.map +0 -1
- package/dist/core/compute.test.d.ts +0 -2
- package/dist/core/compute.test.d.ts.map +0 -1
- package/dist/core/compute.test.js +0 -950
- package/dist/core/compute.test.js.map +0 -1
- package/dist/core/explain.d.ts +0 -14
- package/dist/core/explain.d.ts.map +0 -1
- package/dist/core/explain.js +0 -78
- package/dist/core/explain.js.map +0 -1
- package/dist/core/index.d.ts +0 -5
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -5
- package/dist/core/index.js.map +0 -1
- package/dist/core/validate.d.ts +0 -16
- package/dist/core/validate.d.ts.map +0 -1
- package/dist/core/validate.js +0 -361
- package/dist/core/validate.js.map +0 -1
- package/dist/core/validate.test.d.ts +0 -2
- package/dist/core/validate.test.d.ts.map +0 -1
- package/dist/core/validate.test.js +0 -719
- package/dist/core/validate.test.js.map +0 -1
- package/dist/core/validation-utils.d.ts +0 -20
- package/dist/core/validation-utils.d.ts.map +0 -1
- package/dist/core/validation-utils.js +0 -351
- package/dist/core/validation-utils.js.map +0 -1
- package/dist/errors.d.ts +0 -30
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -51
- package/dist/errors.js.map +0 -1
- package/dist/evaluator/computed.d.ts +0 -14
- package/dist/evaluator/computed.d.ts.map +0 -1
- package/dist/evaluator/computed.js +0 -60
- package/dist/evaluator/computed.js.map +0 -1
- package/dist/evaluator/context.d.ts +0 -62
- package/dist/evaluator/context.d.ts.map +0 -1
- package/dist/evaluator/context.js +0 -44
- package/dist/evaluator/context.js.map +0 -1
- package/dist/evaluator/dag.d.ts +0 -30
- package/dist/evaluator/dag.d.ts.map +0 -1
- package/dist/evaluator/dag.js +0 -121
- package/dist/evaluator/dag.js.map +0 -1
- package/dist/evaluator/expr.d.ts +0 -11
- package/dist/evaluator/expr.d.ts.map +0 -1
- package/dist/evaluator/expr.js +0 -1030
- package/dist/evaluator/expr.js.map +0 -1
- package/dist/evaluator/expr.test.d.ts +0 -2
- package/dist/evaluator/expr.test.d.ts.map +0 -1
- package/dist/evaluator/expr.test.js +0 -1235
- package/dist/evaluator/expr.test.js.map +0 -1
- package/dist/evaluator/flow.d.ts +0 -36
- package/dist/evaluator/flow.d.ts.map +0 -1
- package/dist/evaluator/flow.js +0 -390
- package/dist/evaluator/flow.js.map +0 -1
- package/dist/evaluator/flow.test.d.ts +0 -2
- package/dist/evaluator/flow.test.d.ts.map +0 -1
- package/dist/evaluator/flow.test.js +0 -499
- package/dist/evaluator/flow.test.js.map +0 -1
- package/dist/evaluator/index.d.ts +0 -6
- package/dist/evaluator/index.d.ts.map +0 -1
- package/dist/evaluator/index.js +0 -6
- package/dist/evaluator/index.js.map +0 -1
- package/dist/factories.d.ts +0 -22
- package/dist/factories.d.ts.map +0 -1
- package/dist/factories.js +0 -44
- package/dist/factories.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -14
- package/dist/index.test.js.map +0 -1
- package/dist/schema/action.d.ts +0 -14
- package/dist/schema/action.d.ts.map +0 -1
- package/dist/schema/action.js +0 -30
- package/dist/schema/action.js.map +0 -1
- package/dist/schema/common.d.ts +0 -37
- package/dist/schema/common.d.ts.map +0 -1
- package/dist/schema/common.js +0 -20
- package/dist/schema/common.js.map +0 -1
- package/dist/schema/computed.d.ts +0 -23
- package/dist/schema/computed.d.ts.map +0 -1
- package/dist/schema/computed.js +0 -34
- package/dist/schema/computed.js.map +0 -1
- package/dist/schema/defaults.d.ts +0 -12
- package/dist/schema/defaults.d.ts.map +0 -1
- package/dist/schema/defaults.js +0 -19
- package/dist/schema/defaults.js.map +0 -1
- package/dist/schema/domain.d.ts +0 -50
- package/dist/schema/domain.d.ts.map +0 -1
- package/dist/schema/domain.js +0 -60
- package/dist/schema/domain.js.map +0 -1
- package/dist/schema/expr.d.ts +0 -483
- package/dist/schema/expr.d.ts.map +0 -1
- package/dist/schema/expr.js +0 -445
- package/dist/schema/expr.js.map +0 -1
- package/dist/schema/field.d.ts +0 -48
- package/dist/schema/field.d.ts.map +0 -1
- package/dist/schema/field.js +0 -31
- package/dist/schema/field.js.map +0 -1
- package/dist/schema/flow.d.ts +0 -103
- package/dist/schema/flow.d.ts.map +0 -1
- package/dist/schema/flow.js +0 -82
- package/dist/schema/flow.js.map +0 -1
- package/dist/schema/host-context.d.ts +0 -12
- package/dist/schema/host-context.d.ts.map +0 -1
- package/dist/schema/host-context.js +0 -23
- package/dist/schema/host-context.js.map +0 -1
- package/dist/schema/index.d.ts +0 -15
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -28
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/patch.d.ts +0 -59
- package/dist/schema/patch.d.ts.map +0 -1
- package/dist/schema/patch.js +0 -60
- package/dist/schema/patch.js.map +0 -1
- package/dist/schema/result.d.ts +0 -142
- package/dist/schema/result.d.ts.map +0 -1
- package/dist/schema/result.js +0 -94
- package/dist/schema/result.js.map +0 -1
- package/dist/schema/snapshot.d.ts +0 -153
- package/dist/schema/snapshot.d.ts.map +0 -1
- package/dist/schema/snapshot.js +0 -160
- package/dist/schema/snapshot.js.map +0 -1
- package/dist/schema/trace.d.ts +0 -98
- package/dist/schema/trace.d.ts.map +0 -1
- package/dist/schema/trace.js +0 -90
- package/dist/schema/trace.js.map +0 -1
- package/dist/schema/type-spec.d.ts +0 -34
- package/dist/schema/type-spec.d.ts.map +0 -1
- package/dist/schema/type-spec.js +0 -40
- package/dist/schema/type-spec.js.map +0 -1
- package/dist/utils/canonical.d.ts +0 -37
- package/dist/utils/canonical.d.ts.map +0 -1
- package/dist/utils/canonical.js +0 -122
- package/dist/utils/canonical.js.map +0 -1
- package/dist/utils/canonical.test.d.ts +0 -2
- package/dist/utils/canonical.test.d.ts.map +0 -1
- package/dist/utils/canonical.test.js +0 -183
- package/dist/utils/canonical.test.js.map +0 -1
- package/dist/utils/hash.d.ts +0 -55
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hash.js +0 -183
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/hash.test.d.ts +0 -2
- package/dist/utils/hash.test.d.ts.map +0 -1
- package/dist/utils/hash.test.js +0 -253
- package/dist/utils/hash.test.js.map +0 -1
- package/dist/utils/index.d.ts +0 -4
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -4
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/path.d.ts +0 -42
- package/dist/utils/path.d.ts.map +0 -1
- package/dist/utils/path.js +0 -170
- package/dist/utils/path.js.map +0 -1
- package/dist/utils/path.test.d.ts +0 -2
- package/dist/utils/path.test.d.ts.map +0 -1
- package/dist/utils/path.test.js +0 -248
- package/dist/utils/path.test.js.map +0 -1
package/dist/utils/hash.test.js
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { sha256, sha256Sync, hashSchema, hashSchemaSync, hashSchemaEffective, hashSchemaEffectiveSync, generateRequirementId, generateRequirementIdSync, generateTraceId, } from "./hash.js";
|
|
3
|
-
describe("Hash Utilities", () => {
|
|
4
|
-
describe("sha256", () => {
|
|
5
|
-
it("should produce consistent hash for same input", async () => {
|
|
6
|
-
const hash1 = await sha256("hello world");
|
|
7
|
-
const hash2 = await sha256("hello world");
|
|
8
|
-
expect(hash1).toBe(hash2);
|
|
9
|
-
});
|
|
10
|
-
it("should produce different hash for different input", async () => {
|
|
11
|
-
const hash1 = await sha256("hello");
|
|
12
|
-
const hash2 = await sha256("world");
|
|
13
|
-
expect(hash1).not.toBe(hash2);
|
|
14
|
-
});
|
|
15
|
-
it("should produce 64 character hex string", async () => {
|
|
16
|
-
const hash = await sha256("test");
|
|
17
|
-
expect(hash).toHaveLength(64);
|
|
18
|
-
expect(hash).toMatch(/^[a-f0-9]{64}$/);
|
|
19
|
-
});
|
|
20
|
-
it("should handle empty string", async () => {
|
|
21
|
-
const hash = await sha256("");
|
|
22
|
-
expect(hash).toHaveLength(64);
|
|
23
|
-
});
|
|
24
|
-
it("should handle unicode characters", async () => {
|
|
25
|
-
const hash = await sha256("안녕하세요");
|
|
26
|
-
expect(hash).toHaveLength(64);
|
|
27
|
-
});
|
|
28
|
-
it("should match known SHA-256 hash", async () => {
|
|
29
|
-
// "test" hashes to this known value
|
|
30
|
-
const hash = await sha256("test");
|
|
31
|
-
expect(hash).toBe("9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08");
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
describe("sha256Sync", () => {
|
|
35
|
-
it("should match async sha256", async () => {
|
|
36
|
-
const syncHash = sha256Sync("hello world");
|
|
37
|
-
const asyncHash = await sha256("hello world");
|
|
38
|
-
expect(syncHash).toBe(asyncHash);
|
|
39
|
-
});
|
|
40
|
-
it("should match known SHA-256 hash", () => {
|
|
41
|
-
const hash = sha256Sync("test");
|
|
42
|
-
expect(hash).toBe("9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08");
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
describe("hashSchema", () => {
|
|
46
|
-
it("should produce consistent hash for same schema", async () => {
|
|
47
|
-
const schema = {
|
|
48
|
-
id: "manifesto:test",
|
|
49
|
-
version: "1.0.0",
|
|
50
|
-
types: {},
|
|
51
|
-
state: { fields: {} },
|
|
52
|
-
computed: { fields: {} },
|
|
53
|
-
actions: {},
|
|
54
|
-
};
|
|
55
|
-
const hash1 = await hashSchema(schema);
|
|
56
|
-
const hash2 = await hashSchema(schema);
|
|
57
|
-
expect(hash1).toBe(hash2);
|
|
58
|
-
});
|
|
59
|
-
it("should produce same hash regardless of key order", async () => {
|
|
60
|
-
const schema1 = {
|
|
61
|
-
id: "manifesto:test",
|
|
62
|
-
version: "1.0.0",
|
|
63
|
-
types: {},
|
|
64
|
-
state: { fields: {} },
|
|
65
|
-
computed: { fields: {} },
|
|
66
|
-
actions: {},
|
|
67
|
-
};
|
|
68
|
-
const schema2 = {
|
|
69
|
-
actions: {},
|
|
70
|
-
computed: { fields: {} },
|
|
71
|
-
state: { fields: {} },
|
|
72
|
-
types: {},
|
|
73
|
-
version: "1.0.0",
|
|
74
|
-
id: "manifesto:test",
|
|
75
|
-
};
|
|
76
|
-
const hash1 = await hashSchema(schema1);
|
|
77
|
-
const hash2 = await hashSchema(schema2);
|
|
78
|
-
expect(hash1).toBe(hash2);
|
|
79
|
-
});
|
|
80
|
-
it("should produce different hash for different schemas", async () => {
|
|
81
|
-
const schema1 = {
|
|
82
|
-
id: "test1",
|
|
83
|
-
version: "1.0.0",
|
|
84
|
-
types: {},
|
|
85
|
-
state: { fields: {} },
|
|
86
|
-
computed: { fields: {} },
|
|
87
|
-
actions: {},
|
|
88
|
-
};
|
|
89
|
-
const schema2 = {
|
|
90
|
-
id: "test2",
|
|
91
|
-
version: "1.0.0",
|
|
92
|
-
types: {},
|
|
93
|
-
state: { fields: {} },
|
|
94
|
-
computed: { fields: {} },
|
|
95
|
-
actions: {},
|
|
96
|
-
};
|
|
97
|
-
const hash1 = await hashSchema(schema1);
|
|
98
|
-
const hash2 = await hashSchema(schema2);
|
|
99
|
-
expect(hash1).not.toBe(hash2);
|
|
100
|
-
});
|
|
101
|
-
it("should detect changes in nested structures", async () => {
|
|
102
|
-
const schema1 = {
|
|
103
|
-
id: "manifesto:test",
|
|
104
|
-
version: "1.0.0",
|
|
105
|
-
types: {},
|
|
106
|
-
state: { fields: { count: { type: "number", required: true } } },
|
|
107
|
-
computed: { fields: {} },
|
|
108
|
-
actions: {},
|
|
109
|
-
};
|
|
110
|
-
const schema2 = {
|
|
111
|
-
id: "manifesto:test",
|
|
112
|
-
version: "1.0.0",
|
|
113
|
-
types: {},
|
|
114
|
-
state: { fields: { count: { type: "string", required: true } } },
|
|
115
|
-
computed: { fields: {} },
|
|
116
|
-
actions: {},
|
|
117
|
-
};
|
|
118
|
-
const hash1 = await hashSchema(schema1);
|
|
119
|
-
const hash2 = await hashSchema(schema2);
|
|
120
|
-
expect(hash1).not.toBe(hash2);
|
|
121
|
-
});
|
|
122
|
-
it("should ignore platform namespaces in semantic mode", async () => {
|
|
123
|
-
const schemaBase = {
|
|
124
|
-
id: "manifesto:test",
|
|
125
|
-
version: "1.0.0",
|
|
126
|
-
types: {},
|
|
127
|
-
state: {
|
|
128
|
-
fields: {
|
|
129
|
-
count: { type: "number", required: true },
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
computed: { fields: {} },
|
|
133
|
-
actions: {},
|
|
134
|
-
};
|
|
135
|
-
const schemaWithPlatform = {
|
|
136
|
-
...schemaBase,
|
|
137
|
-
state: {
|
|
138
|
-
fields: {
|
|
139
|
-
...schemaBase.state.fields,
|
|
140
|
-
$host: { type: "object", required: false },
|
|
141
|
-
$mel: { type: "object", required: false },
|
|
142
|
-
},
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
const hash1 = await hashSchema(schemaBase);
|
|
146
|
-
const hash2 = await hashSchema(schemaWithPlatform);
|
|
147
|
-
expect(hash1).toBe(hash2);
|
|
148
|
-
});
|
|
149
|
-
it("should include platform namespaces in effective mode", async () => {
|
|
150
|
-
const schemaBase = {
|
|
151
|
-
id: "manifesto:test",
|
|
152
|
-
version: "1.0.0",
|
|
153
|
-
types: {},
|
|
154
|
-
state: {
|
|
155
|
-
fields: {
|
|
156
|
-
count: { type: "number", required: true },
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
computed: { fields: {} },
|
|
160
|
-
actions: {},
|
|
161
|
-
};
|
|
162
|
-
const schemaWithPlatform = {
|
|
163
|
-
...schemaBase,
|
|
164
|
-
state: {
|
|
165
|
-
fields: {
|
|
166
|
-
...schemaBase.state.fields,
|
|
167
|
-
$host: { type: "object", required: false },
|
|
168
|
-
$mel: { type: "object", required: false },
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
};
|
|
172
|
-
const hash1 = await hashSchemaEffective(schemaBase);
|
|
173
|
-
const hash2 = await hashSchemaEffective(schemaWithPlatform);
|
|
174
|
-
expect(hash1).not.toBe(hash2);
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
describe("hashSchemaSync", () => {
|
|
178
|
-
it("should match async hashSchema", async () => {
|
|
179
|
-
const schema = {
|
|
180
|
-
id: "manifesto:test",
|
|
181
|
-
version: "1.0.0",
|
|
182
|
-
types: {},
|
|
183
|
-
state: { fields: {} },
|
|
184
|
-
computed: { fields: {} },
|
|
185
|
-
actions: {},
|
|
186
|
-
};
|
|
187
|
-
const syncHash = hashSchemaSync(schema);
|
|
188
|
-
const asyncHash = await hashSchema(schema);
|
|
189
|
-
expect(syncHash).toBe(asyncHash);
|
|
190
|
-
});
|
|
191
|
-
it("should support effective hashing mode", () => {
|
|
192
|
-
const schema = {
|
|
193
|
-
id: "manifesto:test",
|
|
194
|
-
version: "1.0.0",
|
|
195
|
-
types: {},
|
|
196
|
-
state: {
|
|
197
|
-
fields: {
|
|
198
|
-
count: { type: "number", required: true },
|
|
199
|
-
$mel: { type: "object", required: false },
|
|
200
|
-
},
|
|
201
|
-
},
|
|
202
|
-
computed: { fields: {} },
|
|
203
|
-
actions: {},
|
|
204
|
-
};
|
|
205
|
-
const semanticHash = hashSchemaSync(schema);
|
|
206
|
-
const effectiveHash = hashSchemaEffectiveSync(schema);
|
|
207
|
-
expect(semanticHash).not.toBe(effectiveHash);
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
describe("generateRequirementId", () => {
|
|
211
|
-
it("should produce consistent ID for same inputs", async () => {
|
|
212
|
-
const id1 = await generateRequirementId("schema-hash", "intent-1", "action", "path");
|
|
213
|
-
const id2 = await generateRequirementId("schema-hash", "intent-1", "action", "path");
|
|
214
|
-
expect(id1).toBe(id2);
|
|
215
|
-
});
|
|
216
|
-
it("should produce different ID for different inputs", async () => {
|
|
217
|
-
const id1 = await generateRequirementId("schema-hash", "intent-1", "action", "path");
|
|
218
|
-
const id2 = await generateRequirementId("schema-hash", "intent-2", "action", "path");
|
|
219
|
-
expect(id1).not.toBe(id2);
|
|
220
|
-
});
|
|
221
|
-
it("should produce ID with req- prefix", async () => {
|
|
222
|
-
const id = await generateRequirementId("hash", "intent", "action", "path");
|
|
223
|
-
expect(id).toMatch(/^req-[a-f0-9]{16}$/);
|
|
224
|
-
});
|
|
225
|
-
it("should produce 20 character ID (req- + 16 hex chars)", async () => {
|
|
226
|
-
const id = await generateRequirementId("hash", "intent", "action", "path");
|
|
227
|
-
expect(id).toHaveLength(20);
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
describe("generateRequirementIdSync", () => {
|
|
231
|
-
it("should match async generateRequirementId", async () => {
|
|
232
|
-
const syncId = generateRequirementIdSync("schema-hash", "intent-1", "action", "path");
|
|
233
|
-
const asyncId = await generateRequirementId("schema-hash", "intent-1", "action", "path");
|
|
234
|
-
expect(syncId).toBe(asyncId);
|
|
235
|
-
});
|
|
236
|
-
it("should produce ID with req- prefix", () => {
|
|
237
|
-
const id = generateRequirementIdSync("hash", "intent", "action", "path");
|
|
238
|
-
expect(id).toMatch(/^req-[a-f0-9]{16}$/);
|
|
239
|
-
});
|
|
240
|
-
});
|
|
241
|
-
describe("generateTraceId", () => {
|
|
242
|
-
it("should produce unique IDs for different indexes", () => {
|
|
243
|
-
const id1 = generateTraceId(0);
|
|
244
|
-
const id2 = generateTraceId(1);
|
|
245
|
-
expect(id1).not.toBe(id2);
|
|
246
|
-
});
|
|
247
|
-
it("should produce ID with trace- prefix", () => {
|
|
248
|
-
const id = generateTraceId(42);
|
|
249
|
-
expect(id).toBe("trace-42");
|
|
250
|
-
});
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
//# sourceMappingURL=hash.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hash.test.js","sourceRoot":"","sources":["../../src/utils/hash.test.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
|
package/dist/utils/index.js
DELETED
package/dist/utils/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
|
package/dist/utils/path.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { SemanticPath } from "../schema/common.js";
|
|
2
|
-
/**
|
|
3
|
-
* Parse a dot-separated path into segments.
|
|
4
|
-
*
|
|
5
|
-
* Supports escaping literal dots inside segments via backslash (for example `a\\.b` -> `a.b`).
|
|
6
|
-
*/
|
|
7
|
-
export declare function parsePath(path: SemanticPath): string[];
|
|
8
|
-
/**
|
|
9
|
-
* Join path segments into a semantic path
|
|
10
|
-
*/
|
|
11
|
-
export declare function joinPath(...segments: string[]): SemanticPath;
|
|
12
|
-
/**
|
|
13
|
-
* Get value at path from object
|
|
14
|
-
* Returns undefined for non-existent paths (never throws)
|
|
15
|
-
*/
|
|
16
|
-
export declare function getByPath(obj: unknown, path: SemanticPath): unknown;
|
|
17
|
-
/**
|
|
18
|
-
* Immutably set value at path
|
|
19
|
-
* Creates intermediate objects as needed
|
|
20
|
-
*/
|
|
21
|
-
export declare function setByPath(obj: unknown, path: SemanticPath, value: unknown): unknown;
|
|
22
|
-
/**
|
|
23
|
-
* Immutably remove value at path
|
|
24
|
-
*/
|
|
25
|
-
export declare function unsetByPath(obj: unknown, path: SemanticPath): unknown;
|
|
26
|
-
/**
|
|
27
|
-
* Immutably shallow merge at path
|
|
28
|
-
*/
|
|
29
|
-
export declare function mergeAtPath(obj: unknown, path: SemanticPath, value: Record<string, unknown>): unknown;
|
|
30
|
-
/**
|
|
31
|
-
* Check if a path exists in an object
|
|
32
|
-
*/
|
|
33
|
-
export declare function hasPath(obj: unknown, path: SemanticPath): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Get parent path
|
|
36
|
-
*/
|
|
37
|
-
export declare function parentPath(path: SemanticPath): SemanticPath;
|
|
38
|
-
/**
|
|
39
|
-
* Get last segment of path
|
|
40
|
-
*/
|
|
41
|
-
export declare function lastSegment(path: SemanticPath): string;
|
|
42
|
-
//# sourceMappingURL=path.d.ts.map
|
package/dist/utils/path.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAsCtD;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,YAAY,CAG5D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAmBnE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAKnF;AAmBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAKrE;AAsBD;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAQT;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAuBjE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAG3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAGtD"}
|
package/dist/utils/path.js
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse a dot-separated path into segments.
|
|
3
|
-
*
|
|
4
|
-
* Supports escaping literal dots inside segments via backslash (for example `a\\.b` -> `a.b`).
|
|
5
|
-
*/
|
|
6
|
-
export function parsePath(path) {
|
|
7
|
-
if (!path)
|
|
8
|
-
return [];
|
|
9
|
-
const segments = [];
|
|
10
|
-
let current = "";
|
|
11
|
-
let escaped = false;
|
|
12
|
-
for (const char of path) {
|
|
13
|
-
if (escaped) {
|
|
14
|
-
if (char === "." || char === "\\") {
|
|
15
|
-
current += char;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
current += `\\${char}`;
|
|
19
|
-
}
|
|
20
|
-
escaped = false;
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
if (char === "\\") {
|
|
24
|
-
escaped = true;
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
if (char === ".") {
|
|
28
|
-
segments.push(current);
|
|
29
|
-
current = "";
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
current += char;
|
|
33
|
-
}
|
|
34
|
-
if (escaped) {
|
|
35
|
-
current += "\\";
|
|
36
|
-
}
|
|
37
|
-
segments.push(current);
|
|
38
|
-
return segments;
|
|
39
|
-
}
|
|
40
|
-
function escapePathSegment(segment) {
|
|
41
|
-
return segment.replaceAll("\\", "\\\\").replaceAll(".", "\\.");
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Join path segments into a semantic path
|
|
45
|
-
*/
|
|
46
|
-
export function joinPath(...segments) {
|
|
47
|
-
const escapedSegments = segments.filter(Boolean).map(escapePathSegment);
|
|
48
|
-
return escapedSegments.join(".");
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Get value at path from object
|
|
52
|
-
* Returns undefined for non-existent paths (never throws)
|
|
53
|
-
*/
|
|
54
|
-
export function getByPath(obj, path) {
|
|
55
|
-
if (!path)
|
|
56
|
-
return obj;
|
|
57
|
-
const segments = parsePath(path);
|
|
58
|
-
let current = obj;
|
|
59
|
-
for (const segment of segments) {
|
|
60
|
-
if (current === null || current === undefined) {
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
63
|
-
if (typeof current === "object") {
|
|
64
|
-
current = current[segment];
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return undefined;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return current;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Immutably set value at path
|
|
74
|
-
* Creates intermediate objects as needed
|
|
75
|
-
*/
|
|
76
|
-
export function setByPath(obj, path, value) {
|
|
77
|
-
if (!path)
|
|
78
|
-
return value;
|
|
79
|
-
const segments = parsePath(path);
|
|
80
|
-
return setByPathSegments(obj, segments, value);
|
|
81
|
-
}
|
|
82
|
-
function setByPathSegments(obj, segments, value) {
|
|
83
|
-
if (segments.length === 0)
|
|
84
|
-
return value;
|
|
85
|
-
const [head, ...tail] = segments;
|
|
86
|
-
const current = obj !== null && typeof obj === "object" ? obj : {};
|
|
87
|
-
if (tail.length === 0) {
|
|
88
|
-
return { ...current, [head]: value };
|
|
89
|
-
}
|
|
90
|
-
const nested = current[head];
|
|
91
|
-
return {
|
|
92
|
-
...current,
|
|
93
|
-
[head]: setByPathSegments(nested, tail, value),
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Immutably remove value at path
|
|
98
|
-
*/
|
|
99
|
-
export function unsetByPath(obj, path) {
|
|
100
|
-
if (!path)
|
|
101
|
-
return undefined;
|
|
102
|
-
const segments = parsePath(path);
|
|
103
|
-
return unsetByPathSegments(obj, segments);
|
|
104
|
-
}
|
|
105
|
-
function unsetByPathSegments(obj, segments) {
|
|
106
|
-
if (segments.length === 0 || obj === null || typeof obj !== "object") {
|
|
107
|
-
return obj;
|
|
108
|
-
}
|
|
109
|
-
const [head, ...tail] = segments;
|
|
110
|
-
const current = obj;
|
|
111
|
-
if (tail.length === 0) {
|
|
112
|
-
const { [head]: _, ...rest } = current;
|
|
113
|
-
return rest;
|
|
114
|
-
}
|
|
115
|
-
const nested = current[head];
|
|
116
|
-
return {
|
|
117
|
-
...current,
|
|
118
|
-
[head]: unsetByPathSegments(nested, tail),
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Immutably shallow merge at path
|
|
123
|
-
*/
|
|
124
|
-
export function mergeAtPath(obj, path, value) {
|
|
125
|
-
const existing = getByPath(obj, path);
|
|
126
|
-
const merged = existing !== null && typeof existing === "object"
|
|
127
|
-
? { ...existing, ...value }
|
|
128
|
-
: value;
|
|
129
|
-
return setByPath(obj, path, merged);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Check if a path exists in an object
|
|
133
|
-
*/
|
|
134
|
-
export function hasPath(obj, path) {
|
|
135
|
-
if (!path)
|
|
136
|
-
return obj !== undefined;
|
|
137
|
-
const segments = parsePath(path);
|
|
138
|
-
let current = obj;
|
|
139
|
-
for (const segment of segments) {
|
|
140
|
-
if (current === null || current === undefined) {
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
if (typeof current !== "object") {
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
146
|
-
if (!(segment in current)) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
current = current[segment];
|
|
150
|
-
}
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Get parent path
|
|
155
|
-
*/
|
|
156
|
-
export function parentPath(path) {
|
|
157
|
-
const segments = parsePath(path);
|
|
158
|
-
return joinPathPreserveEmptySegments(...segments.slice(0, -1));
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Get last segment of path
|
|
162
|
-
*/
|
|
163
|
-
export function lastSegment(path) {
|
|
164
|
-
const segments = parsePath(path);
|
|
165
|
-
return segments[segments.length - 1] ?? "";
|
|
166
|
-
}
|
|
167
|
-
function joinPathPreserveEmptySegments(...segments) {
|
|
168
|
-
return segments.map(escapePathSegment).join(".");
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=path.js.map
|
package/dist/utils/path.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path.test.d.ts","sourceRoot":"","sources":["../../src/utils/path.test.ts"],"names":[],"mappings":""}
|