@flyingrobots/graft 0.10.0 → 0.11.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/CHANGELOG.md +102 -0
- package/README.md +41 -0
- package/dist/adapters/edict-cli-projection-provider.d.ts +13 -0
- package/dist/adapters/edict-cli-projection-provider.d.ts.map +1 -0
- package/dist/adapters/edict-cli-projection-provider.js +71 -0
- package/dist/adapters/edict-cli-projection-provider.js.map +1 -0
- package/dist/adapters/fake-echo-kernel-transport.d.ts.map +1 -1
- package/dist/adapters/fake-echo-kernel-transport.js +7 -29
- package/dist/adapters/fake-echo-kernel-transport.js.map +1 -1
- package/dist/api/index.d.ts +16 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +15 -1
- package/dist/api/index.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +10 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/contracts/review-digest.d.ts +2 -0
- package/dist/contracts/review-digest.d.ts.map +1 -0
- package/dist/contracts/review-digest.js +145 -0
- package/dist/contracts/review-digest.js.map +1 -0
- package/dist/echo/codec-runtime.d.ts +2 -7
- package/dist/echo/codec-runtime.d.ts.map +1 -1
- package/dist/echo/codec-runtime.js +2 -7
- package/dist/echo/codec-runtime.js.map +1 -1
- package/dist/echo/structural-history-client.d.ts.map +1 -1
- package/dist/echo/structural-history-client.js +3 -3
- package/dist/echo/structural-history-client.js.map +1 -1
- package/dist/echo/structural-history-envelope-codec.d.ts +7 -0
- package/dist/echo/structural-history-envelope-codec.d.ts.map +1 -1
- package/dist/echo/structural-history-envelope-codec.js +7 -0
- package/dist/echo/structural-history-envelope-codec.js.map +1 -1
- package/dist/generated/graft-structural-history.codec.generated.d.ts +192 -38
- package/dist/generated/graft-structural-history.codec.generated.d.ts.map +1 -1
- package/dist/generated/graft-structural-history.codec.generated.js +412 -113
- package/dist/generated/graft-structural-history.codec.generated.js.map +1 -1
- package/dist/mcp/tools/changed-since.js +2 -2
- package/dist/mcp/tools/changed-since.js.map +1 -1
- package/dist/operations/cached-file.js +2 -2
- package/dist/operations/cached-file.js.map +1 -1
- package/dist/operations/colorful-prose-projection.d.ts.map +1 -1
- package/dist/operations/colorful-prose-projection.js +9 -2
- package/dist/operations/colorful-prose-projection.js.map +1 -1
- package/dist/operations/edict-projection.d.ts +126 -0
- package/dist/operations/edict-projection.d.ts.map +1 -0
- package/dist/operations/edict-projection.js +394 -0
- package/dist/operations/edict-projection.js.map +1 -0
- package/dist/operations/projection-profile-resolver.d.ts +67 -0
- package/dist/operations/projection-profile-resolver.d.ts.map +1 -0
- package/dist/operations/projection-profile-resolver.js +368 -0
- package/dist/operations/projection-profile-resolver.js.map +1 -0
- package/dist/operations/projection-provider-registry.d.ts +30 -0
- package/dist/operations/projection-provider-registry.d.ts.map +1 -0
- package/dist/operations/projection-provider-registry.js +86 -0
- package/dist/operations/projection-provider-registry.js.map +1 -0
- package/dist/operations/repo-workspace.js +2 -2
- package/dist/operations/repo-workspace.js.map +1 -1
- package/dist/operations/structured-buffer-model.d.ts +28 -3
- package/dist/operations/structured-buffer-model.d.ts.map +1 -1
- package/dist/operations/structured-buffer-model.js +168 -7
- package/dist/operations/structured-buffer-model.js.map +1 -1
- package/dist/operations/structured-buffer-query.d.ts.map +1 -1
- package/dist/operations/structured-buffer-query.js +231 -6
- package/dist/operations/structured-buffer-query.js.map +1 -1
- package/dist/operations/structured-buffer.d.ts +19 -1
- package/dist/operations/structured-buffer.d.ts.map +1 -1
- package/dist/operations/structured-buffer.js +11 -0
- package/dist/operations/structured-buffer.js.map +1 -1
- package/dist/operations/wesley-projection.d.ts +67 -0
- package/dist/operations/wesley-projection.d.ts.map +1 -0
- package/dist/operations/wesley-projection.js +2 -0
- package/dist/operations/wesley-projection.js.map +1 -0
- package/dist/operations/xml-syntax.d.ts +5 -0
- package/dist/operations/xml-syntax.d.ts.map +1 -0
- package/dist/operations/xml-syntax.js +155 -0
- package/dist/operations/xml-syntax.js.map +1 -0
- package/dist/parser/lang.d.ts +9 -1
- package/dist/parser/lang.d.ts.map +1 -1
- package/dist/parser/lang.js +20 -0
- package/dist/parser/lang.js.map +1 -1
- package/dist/parser/outline.d.ts.map +1 -1
- package/dist/parser/outline.js +9 -3
- package/dist/parser/outline.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
export class EdictProjectionError extends Error {
|
|
2
|
+
constructor(message) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = "EdictProjectionError";
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
function fail(message) {
|
|
8
|
+
throw new EdictProjectionError(message);
|
|
9
|
+
}
|
|
10
|
+
function isRecord(value) {
|
|
11
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
12
|
+
}
|
|
13
|
+
function requireRecord(value, label) {
|
|
14
|
+
if (!isRecord(value)) {
|
|
15
|
+
fail(`${label} must be an object`);
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
function requireString(value, label) {
|
|
20
|
+
if (typeof value !== "string") {
|
|
21
|
+
fail(`${label} must be a string`);
|
|
22
|
+
}
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
function requireInteger(value, label) {
|
|
26
|
+
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
27
|
+
fail(`${label} must be an integer`);
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
function requireArray(value, label) {
|
|
32
|
+
if (!Array.isArray(value)) {
|
|
33
|
+
fail(`${label} must be an array`);
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
function asJsonObject(value, label) {
|
|
38
|
+
const record = requireRecord(value, label);
|
|
39
|
+
return record;
|
|
40
|
+
}
|
|
41
|
+
function requireDigest(value, label) {
|
|
42
|
+
const digest = requireString(value, label);
|
|
43
|
+
if (!/^sha256:[0-9a-f]{64}$/u.test(digest)) {
|
|
44
|
+
fail(`${label} must be a lowercase sha256 digest`);
|
|
45
|
+
}
|
|
46
|
+
return digest;
|
|
47
|
+
}
|
|
48
|
+
function requireEnvelope(record, expectedType, label) {
|
|
49
|
+
const recordType = requireString(record["type"], `${label}.type`);
|
|
50
|
+
if (recordType !== expectedType) {
|
|
51
|
+
fail(`${label}.type must be ${expectedType}`);
|
|
52
|
+
}
|
|
53
|
+
const command = requireString(record["command"], `${label}.command`);
|
|
54
|
+
if (command !== "project") {
|
|
55
|
+
fail(`${label}.command must be project`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function requireInputName(record, requestName, label) {
|
|
59
|
+
const input = requireRecord(record["input"], `${label}.input`);
|
|
60
|
+
const inputName = requireString(input["name"], `${label}.input.name`);
|
|
61
|
+
if (inputName !== requestName) {
|
|
62
|
+
fail(`${label}.input.name must match the projection request name`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function makeUtf8ByteMapper(source) {
|
|
66
|
+
const pointByBoundary = new Map();
|
|
67
|
+
let byte = 0;
|
|
68
|
+
let row = 0;
|
|
69
|
+
let column = 0;
|
|
70
|
+
pointByBoundary.set(byte, { row, column });
|
|
71
|
+
for (const char of source) {
|
|
72
|
+
byte += Buffer.byteLength(char, "utf8");
|
|
73
|
+
if (char === "\n") {
|
|
74
|
+
row += 1;
|
|
75
|
+
column = 0;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
column += 1;
|
|
79
|
+
}
|
|
80
|
+
pointByBoundary.set(byte, { row, column });
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
byteToPoint(offset) {
|
|
84
|
+
const point = pointByBoundary.get(offset);
|
|
85
|
+
if (point === undefined) {
|
|
86
|
+
fail(`byte offset ${String(offset)} is not a UTF-8 character boundary`);
|
|
87
|
+
}
|
|
88
|
+
return point;
|
|
89
|
+
},
|
|
90
|
+
hasBoundary(offset) {
|
|
91
|
+
return pointByBoundary.has(offset);
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function decodeByteRange(value, label, source, mapper) {
|
|
96
|
+
const record = requireRecord(value, label);
|
|
97
|
+
const start = requireInteger(record["start"], `${label}.start`);
|
|
98
|
+
const end = requireInteger(record["end"], `${label}.end`);
|
|
99
|
+
const sourceLength = Buffer.byteLength(source, "utf8");
|
|
100
|
+
if (start < 0 || end < start || end > sourceLength) {
|
|
101
|
+
fail(`${label} must be a valid half-open byte range`);
|
|
102
|
+
}
|
|
103
|
+
if (!mapper.hasBoundary(start) || !mapper.hasBoundary(end)) {
|
|
104
|
+
fail(`${label} must start and end on UTF-8 character boundaries`);
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
start: mapper.byteToPoint(start),
|
|
108
|
+
end: mapper.byteToPoint(end),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function syntaxClassForRole(role) {
|
|
112
|
+
switch (role) {
|
|
113
|
+
case "comment":
|
|
114
|
+
return "comment";
|
|
115
|
+
case "identifier":
|
|
116
|
+
return "variable";
|
|
117
|
+
case "keyword":
|
|
118
|
+
return "keyword";
|
|
119
|
+
case "number":
|
|
120
|
+
return "number";
|
|
121
|
+
case "operator":
|
|
122
|
+
return "operator";
|
|
123
|
+
case "punctuation":
|
|
124
|
+
return "punctuation";
|
|
125
|
+
case "string":
|
|
126
|
+
return "string";
|
|
127
|
+
case "typeIdentifier":
|
|
128
|
+
return "type";
|
|
129
|
+
default:
|
|
130
|
+
fail(`unknown Edict syntax role ${role}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function decodeSyntaxRecord(value, source, mapper) {
|
|
134
|
+
const spans = requireArray(value["spans"], "Edict syntax.spans").map((entry, index) => {
|
|
135
|
+
const record = requireRecord(entry, `Edict syntax.spans[${String(index)}]`);
|
|
136
|
+
return {
|
|
137
|
+
className: syntaxClassForRole(requireString(record["role"], `Edict syntax.spans[${String(index)}].role`)),
|
|
138
|
+
range: decodeByteRange(record["span"], `Edict syntax.spans[${String(index)}].span`, source, mapper),
|
|
139
|
+
text: requireString(record["lexeme"], `Edict syntax.spans[${String(index)}].lexeme`),
|
|
140
|
+
};
|
|
141
|
+
});
|
|
142
|
+
return { state: "available", value: { spans } };
|
|
143
|
+
}
|
|
144
|
+
function decodeDiagnosticsRecord(value, source, mapper) {
|
|
145
|
+
const items = requireArray(value["diagnostics"], "Edict diagnostics.diagnostics").map((entry, index) => {
|
|
146
|
+
const record = requireRecord(entry, `Edict diagnostics[${String(index)}]`);
|
|
147
|
+
const message = record["message"];
|
|
148
|
+
return {
|
|
149
|
+
stage: requireString(record["stage"], `Edict diagnostics[${String(index)}].stage`),
|
|
150
|
+
kind: requireString(record["kind"], `Edict diagnostics[${String(index)}].kind`),
|
|
151
|
+
severity: "error",
|
|
152
|
+
range: decodeByteRange(record["span"], `Edict diagnostics[${String(index)}].span`, source, mapper),
|
|
153
|
+
...(message !== undefined ? { message: requireString(message, `Edict diagnostics[${String(index)}].message`) } : {}),
|
|
154
|
+
};
|
|
155
|
+
});
|
|
156
|
+
return { items };
|
|
157
|
+
}
|
|
158
|
+
function decodeReason(value, label) {
|
|
159
|
+
return requireArray(value, label).map((entry, index) => asJsonObject(entry, `${label}[${String(index)}]`));
|
|
160
|
+
}
|
|
161
|
+
function decodeCoreRecord(value) {
|
|
162
|
+
const state = requireString(value["state"], "Edict core.state");
|
|
163
|
+
if (state === "available") {
|
|
164
|
+
return {
|
|
165
|
+
state,
|
|
166
|
+
value: {
|
|
167
|
+
digest: requireDigest(value["digest"], "Edict core.digest"),
|
|
168
|
+
review: asJsonObject(value["review"], "Edict core.review"),
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
if (state === "blocked") {
|
|
173
|
+
return { state, reason: decodeReason(value["reason"], "Edict core.reason") };
|
|
174
|
+
}
|
|
175
|
+
if (state === "failed") {
|
|
176
|
+
return { state, error: decodeFailure(value["error"], "Edict core.error") };
|
|
177
|
+
}
|
|
178
|
+
fail(`unknown Edict core state ${state}`);
|
|
179
|
+
}
|
|
180
|
+
function decodeFailure(value, label) {
|
|
181
|
+
const record = requireRecord(value, label);
|
|
182
|
+
const message = record["message"];
|
|
183
|
+
const failures = record["failures"];
|
|
184
|
+
return {
|
|
185
|
+
kind: requireString(record["kind"], `${label}.kind`),
|
|
186
|
+
...(message !== undefined ? { message: requireString(message, `${label}.message`) } : {}),
|
|
187
|
+
...(failures !== undefined ? { failures: decodeReason(failures, `${label}.failures`) } : {}),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function decodeTargetIrRecord(value) {
|
|
191
|
+
const state = requireString(value["state"], "Edict targetIr.state");
|
|
192
|
+
if (state === "available") {
|
|
193
|
+
const target = requireRecord(value["target"], "Edict targetIr.target");
|
|
194
|
+
return {
|
|
195
|
+
state,
|
|
196
|
+
value: {
|
|
197
|
+
domain: requireString(value["domain"], "Edict targetIr.domain"),
|
|
198
|
+
target: {
|
|
199
|
+
coordinate: requireString(target["coordinate"], "Edict targetIr.target.coordinate"),
|
|
200
|
+
digest: requireDigest(target["digest"], "Edict targetIr.target.digest"),
|
|
201
|
+
},
|
|
202
|
+
digest: requireDigest(value["digest"], "Edict targetIr.digest"),
|
|
203
|
+
review: asJsonObject(value["review"], "Edict targetIr.review"),
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
if (state === "blocked") {
|
|
208
|
+
return { state, reason: decodeReason(value["reason"], "Edict targetIr.reason") };
|
|
209
|
+
}
|
|
210
|
+
if (state === "failed") {
|
|
211
|
+
return { state, error: decodeFailure(value["error"], "Edict targetIr.error") };
|
|
212
|
+
}
|
|
213
|
+
fail(`unknown Edict targetIr state ${state}`);
|
|
214
|
+
}
|
|
215
|
+
function decodeEchoReceiptRecord(value) {
|
|
216
|
+
const state = requireString(value["state"], "Edict echoReceipt.state");
|
|
217
|
+
if (value["receiptDigest"] !== undefined) {
|
|
218
|
+
fail("Edict echoReceipt.receiptDigest is not supported until canonical receipt bytes exist");
|
|
219
|
+
}
|
|
220
|
+
if (state === "available") {
|
|
221
|
+
const reason = value["reason"];
|
|
222
|
+
const reasonRecord = reason !== undefined
|
|
223
|
+
? requireRecord(reason, "Edict echoReceipt.reason")
|
|
224
|
+
: undefined;
|
|
225
|
+
const reasonKind = reasonRecord?.["kind"];
|
|
226
|
+
const reasonPayload = reasonRecord?.["payload"];
|
|
227
|
+
const targetIrDomain = value["targetIrDomain"];
|
|
228
|
+
return {
|
|
229
|
+
state,
|
|
230
|
+
value: {
|
|
231
|
+
outcomeKind: requireString(value["outcomeKind"], "Edict echoReceipt.outcomeKind"),
|
|
232
|
+
targetIrDigest: requireDigest(value["targetIrDigest"], "Edict echoReceipt.targetIrDigest"),
|
|
233
|
+
...(targetIrDomain !== undefined
|
|
234
|
+
? { targetIrDomain: requireString(targetIrDomain, "Edict echoReceipt.targetIrDomain") }
|
|
235
|
+
: {}),
|
|
236
|
+
...(reasonKind !== undefined
|
|
237
|
+
? { reasonKind: requireString(reasonKind, "Edict echoReceipt.reason.kind") }
|
|
238
|
+
: {}),
|
|
239
|
+
...(reasonPayload !== undefined
|
|
240
|
+
? { reasonPayload: asJsonObject(reasonPayload, "Edict echoReceipt.reason.payload") }
|
|
241
|
+
: {}),
|
|
242
|
+
receipt: asJsonObject(value["receipt"], "Edict echoReceipt.receipt"),
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
if (state === "blocked") {
|
|
247
|
+
return { state, reason: decodeReason(value["reason"], "Edict echoReceipt.reason") };
|
|
248
|
+
}
|
|
249
|
+
if (state === "failed") {
|
|
250
|
+
return { state, error: decodeFailure(value["error"], "Edict echoReceipt.error") };
|
|
251
|
+
}
|
|
252
|
+
fail(`unknown Edict echoReceipt state ${state}`);
|
|
253
|
+
}
|
|
254
|
+
function decodeStatusRecord(value) {
|
|
255
|
+
const status = requireString(value["status"], "Edict status.status");
|
|
256
|
+
if (status !== "ok" && status !== "error") {
|
|
257
|
+
fail(`unknown Edict status ${status}`);
|
|
258
|
+
}
|
|
259
|
+
const exitCode = requireInteger(value["exitCode"], "Edict status.exitCode");
|
|
260
|
+
if (exitCode !== 0 && exitCode !== 1 && exitCode !== 2) {
|
|
261
|
+
fail("Edict status.exitCode must be 0, 1, or 2");
|
|
262
|
+
}
|
|
263
|
+
const checked = requireInteger(value["checked"], "Edict status.checked");
|
|
264
|
+
const errors = requireInteger(value["errors"], "Edict status.errors");
|
|
265
|
+
if (checked < 0 || errors < 0) {
|
|
266
|
+
fail("Edict status.checked and Edict status.errors must be non-negative");
|
|
267
|
+
}
|
|
268
|
+
return {
|
|
269
|
+
status,
|
|
270
|
+
checked,
|
|
271
|
+
errors,
|
|
272
|
+
exitCode,
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
export function isEdictPath(filePath) {
|
|
276
|
+
return filePath.trim().toLowerCase().endsWith(".edict");
|
|
277
|
+
}
|
|
278
|
+
export function projectEdictJsonlRecords(request, records) {
|
|
279
|
+
const mapper = makeUtf8ByteMapper(request.content);
|
|
280
|
+
let syntax = { state: "not_requested" };
|
|
281
|
+
let diagnostics = { items: [] };
|
|
282
|
+
let diagnosticsSeen = false;
|
|
283
|
+
let core = { state: "not_requested" };
|
|
284
|
+
let targetIr = { state: "not_requested" };
|
|
285
|
+
let echoReceipt = { state: "not_requested" };
|
|
286
|
+
let status;
|
|
287
|
+
for (const entry of records) {
|
|
288
|
+
const record = requireRecord(entry, "Edict JSONL record");
|
|
289
|
+
const schema = requireString(record["schema"], "Edict JSONL record.schema");
|
|
290
|
+
switch (schema) {
|
|
291
|
+
case "edict.projection.syntax/v1":
|
|
292
|
+
requireEnvelope(record, "syntax", "Edict syntax");
|
|
293
|
+
requireInputName(record, request.name, "Edict syntax");
|
|
294
|
+
syntax = decodeSyntaxRecord(record, request.content, mapper);
|
|
295
|
+
break;
|
|
296
|
+
case "edict.projection.diagnostics/v1":
|
|
297
|
+
requireEnvelope(record, "diagnostics", "Edict diagnostics");
|
|
298
|
+
requireInputName(record, request.name, "Edict diagnostics");
|
|
299
|
+
diagnostics = decodeDiagnosticsRecord(record, request.content, mapper);
|
|
300
|
+
diagnosticsSeen = true;
|
|
301
|
+
break;
|
|
302
|
+
case "edict.projection.core/v1":
|
|
303
|
+
requireEnvelope(record, "core", "Edict core");
|
|
304
|
+
requireInputName(record, request.name, "Edict core");
|
|
305
|
+
core = decodeCoreRecord(record);
|
|
306
|
+
break;
|
|
307
|
+
case "edict.projection.target-ir/v1":
|
|
308
|
+
requireEnvelope(record, "targetIr", "Edict targetIr");
|
|
309
|
+
requireInputName(record, request.name, "Edict targetIr");
|
|
310
|
+
targetIr = decodeTargetIrRecord(record);
|
|
311
|
+
break;
|
|
312
|
+
case "edict.projection.echo-receipt/v1":
|
|
313
|
+
requireEnvelope(record, "echoReceipt", "Edict echoReceipt");
|
|
314
|
+
requireInputName(record, request.name, "Edict echoReceipt");
|
|
315
|
+
echoReceipt = decodeEchoReceiptRecord(record);
|
|
316
|
+
break;
|
|
317
|
+
case "edict.cli.event/v1":
|
|
318
|
+
requireEnvelope(record, "status", "Edict status");
|
|
319
|
+
status = decodeStatusRecord(record);
|
|
320
|
+
break;
|
|
321
|
+
default:
|
|
322
|
+
fail(`unknown Edict JSONL schema ${schema}`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
if (status === undefined) {
|
|
326
|
+
fail("Edict JSONL stream is missing final status record");
|
|
327
|
+
}
|
|
328
|
+
if (request.emit.includes("diagnostics") && !diagnosticsSeen) {
|
|
329
|
+
diagnostics = {
|
|
330
|
+
items: [
|
|
331
|
+
{
|
|
332
|
+
stage: "projection",
|
|
333
|
+
kind: "missing_projection_record",
|
|
334
|
+
severity: "error",
|
|
335
|
+
message: "Edict did not emit a requested diagnostics projection record",
|
|
336
|
+
range: {
|
|
337
|
+
start: mapper.byteToPoint(0),
|
|
338
|
+
end: mapper.byteToPoint(0),
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
],
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
if (request.emit.includes("syntax") && syntax.state === "not_requested") {
|
|
345
|
+
syntax = {
|
|
346
|
+
state: "failed",
|
|
347
|
+
error: {
|
|
348
|
+
kind: "missing_projection_record",
|
|
349
|
+
message: "Edict did not emit a requested syntax projection record",
|
|
350
|
+
},
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
if ((request.emit.includes("core") || request.emit.includes("digests"))
|
|
354
|
+
&& core.state === "not_requested") {
|
|
355
|
+
core = {
|
|
356
|
+
state: "failed",
|
|
357
|
+
error: {
|
|
358
|
+
kind: "missing_projection_record",
|
|
359
|
+
message: "Edict did not emit a requested Core projection record",
|
|
360
|
+
},
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
if ((request.emit.includes("targetIr") || request.emit.includes("digests"))
|
|
364
|
+
&& targetIr.state === "not_requested") {
|
|
365
|
+
targetIr = {
|
|
366
|
+
state: "failed",
|
|
367
|
+
error: {
|
|
368
|
+
kind: "missing_projection_record",
|
|
369
|
+
message: "Edict did not emit a requested Target IR projection record",
|
|
370
|
+
},
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
if (request.emit.includes("receipt") && echoReceipt.state === "not_requested") {
|
|
374
|
+
echoReceipt = {
|
|
375
|
+
state: "failed",
|
|
376
|
+
error: {
|
|
377
|
+
kind: "missing_projection_record",
|
|
378
|
+
message: "Edict did not emit a requested Echo receipt projection record",
|
|
379
|
+
},
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
return {
|
|
383
|
+
language: "edict",
|
|
384
|
+
name: request.name,
|
|
385
|
+
basis: request.basis ?? null,
|
|
386
|
+
syntax,
|
|
387
|
+
diagnostics,
|
|
388
|
+
core,
|
|
389
|
+
targetIr,
|
|
390
|
+
echoReceipt,
|
|
391
|
+
status,
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
//# sourceMappingURL=edict-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edict-projection.js","sourceRoot":"","sources":["../../src/operations/edict-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface ProjectionProfileExtensionInput {
|
|
2
|
+
readonly coordinate: string;
|
|
3
|
+
readonly digest: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ProjectionProfileInput {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly language: string;
|
|
8
|
+
readonly provider: string;
|
|
9
|
+
readonly extensions: readonly ProjectionProfileExtensionInput[];
|
|
10
|
+
readonly options?: Readonly<Record<string, unknown>> | undefined;
|
|
11
|
+
}
|
|
12
|
+
export interface ProjectionRouteInput {
|
|
13
|
+
readonly profileId: string;
|
|
14
|
+
readonly include: readonly string[];
|
|
15
|
+
readonly exclude?: readonly string[] | undefined;
|
|
16
|
+
}
|
|
17
|
+
export interface ProjectionExtensionFallbackInput {
|
|
18
|
+
readonly language: string;
|
|
19
|
+
readonly profileId: string;
|
|
20
|
+
readonly fileExtensions: readonly string[];
|
|
21
|
+
}
|
|
22
|
+
export interface ProjectionProfileResolverConfig {
|
|
23
|
+
readonly profiles: readonly ProjectionProfileInput[];
|
|
24
|
+
readonly routes?: readonly ProjectionRouteInput[] | undefined;
|
|
25
|
+
readonly extensionFallbacks?: readonly ProjectionExtensionFallbackInput[] | undefined;
|
|
26
|
+
}
|
|
27
|
+
export interface ProjectionProfileExtension {
|
|
28
|
+
readonly coordinate: string;
|
|
29
|
+
readonly digest: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ResolvedAuthorityContext {
|
|
32
|
+
readonly language: string;
|
|
33
|
+
readonly profileId: string;
|
|
34
|
+
readonly profileDigest: string;
|
|
35
|
+
readonly routingDigest?: string | undefined;
|
|
36
|
+
readonly provider: string;
|
|
37
|
+
readonly extensions: readonly ProjectionProfileExtension[];
|
|
38
|
+
readonly resolutionSource: "explicit" | "project_config" | "extension_fallback";
|
|
39
|
+
}
|
|
40
|
+
export type ProjectionRoutingFailureKind = "no_provider" | "unknown_profile" | "ambiguous_profile" | "profile_config_invalid";
|
|
41
|
+
export interface ProjectionRoutingFailure {
|
|
42
|
+
readonly kind: ProjectionRoutingFailureKind;
|
|
43
|
+
readonly message: string;
|
|
44
|
+
readonly path?: string | undefined;
|
|
45
|
+
readonly profileId?: string | undefined;
|
|
46
|
+
readonly matchingProfileIds?: readonly string[] | undefined;
|
|
47
|
+
}
|
|
48
|
+
export type ProjectionAuthorityResolution = {
|
|
49
|
+
readonly state: "resolved";
|
|
50
|
+
readonly authority: ResolvedAuthorityContext;
|
|
51
|
+
} | {
|
|
52
|
+
readonly state: "failed";
|
|
53
|
+
readonly failure: ProjectionRoutingFailure;
|
|
54
|
+
};
|
|
55
|
+
export interface ProjectionProfileResolver {
|
|
56
|
+
resolve(opts: {
|
|
57
|
+
readonly path: string;
|
|
58
|
+
readonly profile?: string | null | undefined;
|
|
59
|
+
readonly language?: string | null | undefined;
|
|
60
|
+
}): ProjectionAuthorityResolution;
|
|
61
|
+
}
|
|
62
|
+
export declare class ProjectionProfileResolverError extends Error {
|
|
63
|
+
readonly kind: "profile_config_invalid";
|
|
64
|
+
constructor(message: string);
|
|
65
|
+
}
|
|
66
|
+
export declare function createProjectionProfileResolver(config: ProjectionProfileResolverConfig): ProjectionProfileResolver;
|
|
67
|
+
//# sourceMappingURL=projection-profile-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection-profile-resolver.d.ts","sourceRoot":"","sources":["../../src/operations/projection-profile-resolver.ts"],"names":[],"mappings":"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"}
|