veryfront 0.1.795 → 0.1.797
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/esm/deno.js +1 -1
- package/esm/src/agent/runtime/message-adapter.d.ts +1 -1
- package/esm/src/agent/runtime/message-adapter.d.ts.map +1 -1
- package/esm/src/agent/runtime/message-adapter.js +119 -36
- package/esm/src/html/utils.d.ts.map +1 -1
- package/esm/src/html/utils.js +35 -5
- package/esm/src/release-assets/build-executor.d.ts.map +1 -1
- package/esm/src/release-assets/build-executor.js +69 -7
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
package/esm/deno.js
CHANGED
|
@@ -113,7 +113,7 @@ export declare function getAgentRuntimeToolCallPart(part: unknown): {
|
|
|
113
113
|
input: Record<string, unknown>;
|
|
114
114
|
} | null;
|
|
115
115
|
/** Return a runtime tool-result part when the value carries a tool result. */
|
|
116
|
-
export declare function getAgentRuntimeToolResultPart(part: unknown): {
|
|
116
|
+
export declare function getAgentRuntimeToolResultPart(part: unknown, toolNameFallback?: string): {
|
|
117
117
|
toolCallId: string;
|
|
118
118
|
toolName: string;
|
|
119
119
|
output: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/message-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"message-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/message-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -196,14 +196,15 @@ export function getAgentRuntimeToolCallPart(part) {
|
|
|
196
196
|
};
|
|
197
197
|
}
|
|
198
198
|
/** Return a runtime tool-result part when the value carries a tool result. */
|
|
199
|
-
export function getAgentRuntimeToolResultPart(part) {
|
|
199
|
+
export function getAgentRuntimeToolResultPart(part, toolNameFallback) {
|
|
200
200
|
if (!isRecord(part) || part.type !== "tool-result" && part.type !== "tool_result") {
|
|
201
201
|
return null;
|
|
202
202
|
}
|
|
203
203
|
const toolCallId = getOptionalStringField(part, "toolCallId") ??
|
|
204
204
|
getOptionalStringField(part, "tool_call_id");
|
|
205
205
|
const toolName = getOptionalStringField(part, "toolName") ??
|
|
206
|
-
getOptionalStringField(part, "tool_name")
|
|
206
|
+
getOptionalStringField(part, "tool_name") ??
|
|
207
|
+
toolNameFallback;
|
|
207
208
|
if (!toolCallId || !toolName) {
|
|
208
209
|
return null;
|
|
209
210
|
}
|
|
@@ -217,6 +218,13 @@ export function getAgentRuntimeToolResultPart(part) {
|
|
|
217
218
|
: null,
|
|
218
219
|
};
|
|
219
220
|
}
|
|
221
|
+
function getAgentRuntimeToolResultCallId(part) {
|
|
222
|
+
if (!isRecord(part) || part.type !== "tool-result" && part.type !== "tool_result") {
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
return getOptionalStringField(part, "toolCallId") ??
|
|
226
|
+
getOptionalStringField(part, "tool_call_id");
|
|
227
|
+
}
|
|
220
228
|
/** Create a chat tool-result part. */
|
|
221
229
|
export function createToolResultPart(part) {
|
|
222
230
|
return {
|
|
@@ -235,6 +243,7 @@ function collectAgentRuntimeProviderContentParts(parts) {
|
|
|
235
243
|
const toolCallParts = [];
|
|
236
244
|
const toolResultParts = [];
|
|
237
245
|
const fileParts = [];
|
|
246
|
+
const toolNamesById = new Map();
|
|
238
247
|
for (const part of parts) {
|
|
239
248
|
const textPart = getAgentRuntimeTextPart(part);
|
|
240
249
|
if (textPart) {
|
|
@@ -253,13 +262,15 @@ function collectAgentRuntimeProviderContentParts(parts) {
|
|
|
253
262
|
continue;
|
|
254
263
|
}
|
|
255
264
|
}
|
|
256
|
-
const
|
|
265
|
+
const toolResultCallId = getAgentRuntimeToolResultCallId(part);
|
|
266
|
+
const toolResultPart = getAgentRuntimeToolResultPart(part, toolResultCallId ? toolNamesById.get(toolResultCallId) : undefined);
|
|
257
267
|
if (toolResultPart) {
|
|
258
268
|
toolResultParts.push(createToolResultPart(toolResultPart));
|
|
259
269
|
continue;
|
|
260
270
|
}
|
|
261
271
|
const toolCallPart = getAgentRuntimeToolCallPart(part);
|
|
262
272
|
if (toolCallPart) {
|
|
273
|
+
toolNamesById.set(toolCallPart.toolCallId, toolCallPart.toolName);
|
|
263
274
|
toolCallParts.push({
|
|
264
275
|
type: "tool-call",
|
|
265
276
|
toolCallId: toolCallPart.toolCallId,
|
|
@@ -270,49 +281,124 @@ function collectAgentRuntimeProviderContentParts(parts) {
|
|
|
270
281
|
}
|
|
271
282
|
return { textParts, reasoningParts, toolCallParts, toolResultParts, fileParts };
|
|
272
283
|
}
|
|
273
|
-
function
|
|
274
|
-
const
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
284
|
+
function convertAssistantAgentRuntimePartsToProviderMessages(parts) {
|
|
285
|
+
const assistantContent = [];
|
|
286
|
+
const deferredAssistantContent = [];
|
|
287
|
+
const toolResults = [];
|
|
288
|
+
const pendingToolCallIds = new Set();
|
|
289
|
+
const toolNamesById = new Map();
|
|
290
|
+
const providerMessages = [];
|
|
291
|
+
const flushAssistantMessage = (content) => {
|
|
292
|
+
if (content.length === 0) {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
providerMessages.push({ role: "assistant", content: [...content] });
|
|
296
|
+
content.length = 0;
|
|
297
|
+
};
|
|
298
|
+
const flushToolMessage = () => {
|
|
299
|
+
if (toolResults.length === 0) {
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
providerMessages.push({ role: "tool", content: [...toolResults] });
|
|
303
|
+
toolResults.length = 0;
|
|
304
|
+
};
|
|
305
|
+
const pushAssistantPart = (part) => {
|
|
306
|
+
if (part.type === "tool-call") {
|
|
307
|
+
if (deferredAssistantContent.length > 0) {
|
|
308
|
+
flushAssistantMessage(assistantContent);
|
|
309
|
+
flushToolMessage();
|
|
310
|
+
flushAssistantMessage(deferredAssistantContent);
|
|
279
311
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
312
|
+
assistantContent.push(part);
|
|
313
|
+
pendingToolCallIds.add(part.toolCallId);
|
|
314
|
+
toolNamesById.set(part.toolCallId, part.toolName);
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
if (pendingToolCallIds.size > 0) {
|
|
318
|
+
deferredAssistantContent.push(part);
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
if (toolResults.length > 0) {
|
|
322
|
+
flushAssistantMessage(assistantContent);
|
|
323
|
+
flushToolMessage();
|
|
324
|
+
flushAssistantMessage(deferredAssistantContent);
|
|
325
|
+
}
|
|
326
|
+
assistantContent.push(part);
|
|
327
|
+
};
|
|
328
|
+
const pushToolResult = (part) => {
|
|
329
|
+
toolResults.push(part);
|
|
330
|
+
pendingToolCallIds.delete(part.toolCallId);
|
|
331
|
+
};
|
|
332
|
+
for (const part of parts) {
|
|
333
|
+
const textPart = getAgentRuntimeTextPart(part);
|
|
334
|
+
if (textPart) {
|
|
335
|
+
pushAssistantPart(textPart);
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
const reasoningPart = getAgentRuntimeReasoningPart(part);
|
|
339
|
+
if (reasoningPart) {
|
|
340
|
+
pushAssistantPart(reasoningPart);
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
343
|
+
const toolResultCallId = getAgentRuntimeToolResultCallId(part);
|
|
344
|
+
const toolResultPart = getAgentRuntimeToolResultPart(part, toolResultCallId ? toolNamesById.get(toolResultCallId) : undefined);
|
|
345
|
+
if (toolResultPart) {
|
|
346
|
+
pushToolResult(createToolResultPart(toolResultPart));
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
const toolCallPart = getAgentRuntimeToolCallPart(part);
|
|
350
|
+
if (toolCallPart) {
|
|
351
|
+
pushAssistantPart({
|
|
352
|
+
type: "tool-call",
|
|
353
|
+
toolCallId: toolCallPart.toolCallId,
|
|
354
|
+
toolName: toolCallPart.toolName,
|
|
355
|
+
input: toolCallPart.input,
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
flushAssistantMessage(assistantContent);
|
|
360
|
+
flushToolMessage();
|
|
361
|
+
flushAssistantMessage(deferredAssistantContent);
|
|
362
|
+
return providerMessages;
|
|
363
|
+
}
|
|
364
|
+
function createProviderMessagesFromAgentRuntimeMessage(message) {
|
|
365
|
+
if (message.role === "assistant") {
|
|
366
|
+
return convertAssistantAgentRuntimePartsToProviderMessages(message.parts);
|
|
367
|
+
}
|
|
368
|
+
const { textParts, toolResultParts, fileParts } = collectAgentRuntimeProviderContentParts(message.parts);
|
|
369
|
+
switch (message.role) {
|
|
284
370
|
case "tool":
|
|
285
371
|
if (toolResultParts.length === 0) {
|
|
286
|
-
return
|
|
372
|
+
return [];
|
|
287
373
|
}
|
|
288
|
-
return {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
374
|
+
return [{
|
|
375
|
+
role: "tool",
|
|
376
|
+
content: toolResultParts,
|
|
377
|
+
}];
|
|
292
378
|
case "user": {
|
|
293
379
|
if (textParts.length === 0 && fileParts.length === 0) {
|
|
294
|
-
return
|
|
380
|
+
return [];
|
|
295
381
|
}
|
|
296
382
|
if (fileParts.length === 0) {
|
|
297
|
-
return {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
383
|
+
return [{
|
|
384
|
+
role: "user",
|
|
385
|
+
content: joinTextParts(textParts),
|
|
386
|
+
}];
|
|
301
387
|
}
|
|
302
388
|
const content = [...textParts, ...fileParts];
|
|
303
|
-
return {
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
389
|
+
return [{
|
|
390
|
+
role: "user",
|
|
391
|
+
content,
|
|
392
|
+
}];
|
|
307
393
|
}
|
|
308
394
|
case "system": {
|
|
309
395
|
if (textParts.length === 0) {
|
|
310
|
-
return
|
|
396
|
+
return [];
|
|
311
397
|
}
|
|
312
|
-
return {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
398
|
+
return [{
|
|
399
|
+
role: "system",
|
|
400
|
+
content: joinTextParts(textParts),
|
|
401
|
+
}];
|
|
316
402
|
}
|
|
317
403
|
default: {
|
|
318
404
|
const exhaustiveCheck = message.role;
|
|
@@ -333,10 +419,7 @@ export function convertProviderMessagesToAgentRuntimeMessages(messages) {
|
|
|
333
419
|
export function convertAgentRuntimeMessagesToProviderMessages(messages) {
|
|
334
420
|
const converted = [];
|
|
335
421
|
for (const message of messages) {
|
|
336
|
-
|
|
337
|
-
if (convertedMessage) {
|
|
338
|
-
converted.push(convertedMessage);
|
|
339
|
-
}
|
|
422
|
+
converted.push(...createProviderMessagesFromAgentRuntimeMessage(message));
|
|
340
423
|
}
|
|
341
424
|
return converted;
|
|
342
425
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAcjF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAQR;AAaD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AA4DD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGrD,CAAC;AA6JF,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpD;AA+ED,wBAAsB,cAAc,CAClC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC,CA8DzB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAElF"}
|
package/esm/src/html/utils.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { escapeHTML } from "./html-escape.js";
|
|
2
2
|
import { LRUCache } from "../utils/lru-wrapper.js";
|
|
3
|
+
import { releaseAssetUrl } from "../release-assets/constants.js";
|
|
3
4
|
import { VERYFRONT_VERSION } from "../utils/constants/cdn.js";
|
|
4
5
|
import { DEFAULT_REACT_VERSION, esmShReact, readProjectDependencyVersions, resolveProjectReactVersion, stripSemverRange, } from "../transforms/esm/package-registry.js";
|
|
5
6
|
function joinAttributes(attrs) {
|
|
@@ -196,11 +197,40 @@ function stableManifestDependencyKey(manifest) {
|
|
|
196
197
|
})
|
|
197
198
|
: "";
|
|
198
199
|
}
|
|
199
|
-
function
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
200
|
+
function canonicalDependencyUrl(value) {
|
|
201
|
+
try {
|
|
202
|
+
const url = new URL(value);
|
|
203
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
204
|
+
return value;
|
|
205
|
+
const sortedParams = [...url.searchParams.entries()].sort(([leftKey, leftValue], [rightKey, rightValue,]) => leftKey.localeCompare(rightKey) || leftValue.localeCompare(rightValue));
|
|
206
|
+
url.search = "";
|
|
207
|
+
for (const [key, paramValue] of sortedParams) {
|
|
208
|
+
url.searchParams.append(key, paramValue);
|
|
209
|
+
}
|
|
210
|
+
return url.toString();
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
return value;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function applyManifestDependencies(imports, manifest) {
|
|
217
|
+
if (!manifest)
|
|
218
|
+
return imports;
|
|
219
|
+
const dependencyAssets = new Map();
|
|
220
|
+
for (const [specifier, entry] of Object.entries(manifest.dependencies)) {
|
|
221
|
+
const assetUrl = releaseAssetUrl(entry.contentHash, "js");
|
|
222
|
+
dependencyAssets.set(specifier, assetUrl);
|
|
223
|
+
dependencyAssets.set(canonicalDependencyUrl(specifier), assetUrl);
|
|
224
|
+
}
|
|
225
|
+
return Object.fromEntries(Object.entries(imports).map(([specifier, url]) => {
|
|
226
|
+
if (!url.startsWith("http://") && !url.startsWith("https://")) {
|
|
227
|
+
return [specifier, url];
|
|
228
|
+
}
|
|
229
|
+
return [
|
|
230
|
+
specifier,
|
|
231
|
+
dependencyAssets.get(url) ?? dependencyAssets.get(canonicalDependencyUrl(url)) ?? url,
|
|
232
|
+
];
|
|
233
|
+
}));
|
|
204
234
|
}
|
|
205
235
|
function isImportMapOnlyOptions(options) {
|
|
206
236
|
return !("projectDir" in options) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-executor.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/build-executor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"build-executor.d.ts","sourceRoot":"","sources":["../../../src/src/release-assets/build-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,6 +222,26 @@ function buildDependencyUrlMap(dependencies, dependencyModules) {
|
|
|
222
222
|
}
|
|
223
223
|
return urls;
|
|
224
224
|
}
|
|
225
|
+
function dependencyFallbackUrl(dependency) {
|
|
226
|
+
if (dependency.manifestKey.startsWith("http://") ||
|
|
227
|
+
dependency.manifestKey.startsWith("https://")) {
|
|
228
|
+
return dependency.manifestKey;
|
|
229
|
+
}
|
|
230
|
+
for (const specifier of dependency.specifiers) {
|
|
231
|
+
if (specifier.startsWith("http://") || specifier.startsWith("https://")) {
|
|
232
|
+
return specifier;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
function addDependencyUrlAliases(urls, dependency, url) {
|
|
238
|
+
urls.set(dependency.manifestKey, url);
|
|
239
|
+
if (dependency.sourcePath)
|
|
240
|
+
urls.set(`file://${dependency.sourcePath}`, url);
|
|
241
|
+
for (const specifier of dependency.specifiers) {
|
|
242
|
+
urls.set(normalizeDependencySpecifier(specifier), url);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
225
245
|
function addDependencyModule(dependencies, dependency) {
|
|
226
246
|
const sourcePath = dependency.sourcePath ?? resolveLocalDependencyPath(dependency.specifier) ??
|
|
227
247
|
undefined;
|
|
@@ -329,7 +349,7 @@ async function vendorHttpImportsWithCache(code, options) {
|
|
|
329
349
|
}))),
|
|
330
350
|
};
|
|
331
351
|
}
|
|
332
|
-
async function finalizeDependencyModules(dependencyModules, uploadQueue, pendingBytes) {
|
|
352
|
+
async function finalizeDependencyModules(dependencyModules, uploadQueue, pendingBytes, gaps) {
|
|
333
353
|
const bySpecifier = new Map();
|
|
334
354
|
const byFilePath = new Map();
|
|
335
355
|
for (const dependency of dependencyModules.values()) {
|
|
@@ -343,6 +363,9 @@ async function finalizeDependencyModules(dependencyModules, uploadQueue, pending
|
|
|
343
363
|
byFilePath.set(dependency.sourcePath, dependency);
|
|
344
364
|
}
|
|
345
365
|
const finalized = new Map();
|
|
366
|
+
const fallbackUrls = new Map();
|
|
367
|
+
const skippedCycles = new Set();
|
|
368
|
+
const recordedCycleGaps = new Set();
|
|
346
369
|
const visiting = [];
|
|
347
370
|
function resolveDependencyImport(specifier, parent) {
|
|
348
371
|
const filePath = resolveLocalDependencyPath(specifier, parent.sourcePath);
|
|
@@ -353,14 +376,32 @@ async function finalizeDependencyModules(dependencyModules, uploadQueue, pending
|
|
|
353
376
|
}
|
|
354
377
|
return bySpecifier.get(normalizeDependencySpecifier(specifier)) ?? null;
|
|
355
378
|
}
|
|
379
|
+
function recordDependencyCycle(cycleKeys) {
|
|
380
|
+
// Separate content-hashed ESM files cannot represent cyclic imports without
|
|
381
|
+
// release-scoped aliases or bundling, so keep only that component on source URL fallback.
|
|
382
|
+
for (const key of cycleKeys)
|
|
383
|
+
skippedCycles.add(key);
|
|
384
|
+
const gap = `dependency-cycle:${cycleKeys.join("->")}`;
|
|
385
|
+
if (!recordedCycleGaps.has(gap)) {
|
|
386
|
+
recordedCycleGaps.add(gap);
|
|
387
|
+
gaps.push(gap);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
function cycleFallbackFor(dependency) {
|
|
391
|
+
if (!skippedCycles.has(dependency.manifestKey))
|
|
392
|
+
return null;
|
|
393
|
+
return dependencyFallbackUrl(dependency);
|
|
394
|
+
}
|
|
356
395
|
async function finalize(manifestKey) {
|
|
357
396
|
const existing = finalized.get(manifestKey);
|
|
358
397
|
if (existing)
|
|
359
398
|
return existing;
|
|
360
399
|
if (visiting.includes(manifestKey)) {
|
|
361
|
-
|
|
362
|
-
|
|
400
|
+
recordDependencyCycle([...visiting.slice(visiting.indexOf(manifestKey)), manifestKey]);
|
|
401
|
+
return null;
|
|
363
402
|
}
|
|
403
|
+
if (skippedCycles.has(manifestKey))
|
|
404
|
+
return null;
|
|
364
405
|
const dependency = dependencyModules.get(manifestKey);
|
|
365
406
|
if (!dependency)
|
|
366
407
|
return null;
|
|
@@ -378,16 +419,21 @@ async function finalizeDependencyModules(dependencyModules, uploadQueue, pending
|
|
|
378
419
|
if (!child)
|
|
379
420
|
continue;
|
|
380
421
|
if (child.manifestKey === manifestKey) {
|
|
381
|
-
|
|
422
|
+
recordDependencyCycle([manifestKey, manifestKey]);
|
|
423
|
+
continue;
|
|
382
424
|
}
|
|
383
425
|
await finalize(child.manifestKey);
|
|
384
426
|
}
|
|
427
|
+
if (skippedCycles.has(manifestKey))
|
|
428
|
+
return null;
|
|
385
429
|
const rewritten = await replaceSpecifiers(dependency.code, (specifier) => {
|
|
386
430
|
const child = resolveDependencyImport(specifier, dependency);
|
|
387
431
|
if (!child)
|
|
388
432
|
return null;
|
|
389
433
|
const asset = finalized.get(child.manifestKey);
|
|
390
|
-
|
|
434
|
+
if (asset)
|
|
435
|
+
return releaseAssetUrl(asset.contentHash, "js");
|
|
436
|
+
return cycleFallbackFor(child);
|
|
391
437
|
});
|
|
392
438
|
const entry = await addPreparedJavaScriptAsset(`__dependencies__/${manifestKey}`, rewritten, uploadQueue, pendingBytes);
|
|
393
439
|
if (!entry) {
|
|
@@ -410,7 +456,17 @@ async function finalizeDependencyModules(dependencyModules, uploadQueue, pending
|
|
|
410
456
|
finally {
|
|
411
457
|
visiting.length = 0;
|
|
412
458
|
}
|
|
413
|
-
|
|
459
|
+
for (const manifestKey of skippedCycles) {
|
|
460
|
+
const dependency = dependencyModules.get(manifestKey);
|
|
461
|
+
if (!dependency)
|
|
462
|
+
continue;
|
|
463
|
+
const fallbackUrl = dependencyFallbackUrl(dependency);
|
|
464
|
+
if (!fallbackUrl) {
|
|
465
|
+
throw new Error(`Unrepresentable vendored dependency cycle: ${manifestKey}`);
|
|
466
|
+
}
|
|
467
|
+
addDependencyUrlAliases(fallbackUrls, dependency, fallbackUrl);
|
|
468
|
+
}
|
|
469
|
+
return { assets: Object.fromEntries(finalized), fallbackUrls };
|
|
414
470
|
}
|
|
415
471
|
async function finalizeProjectModules(transformedModules, knownPaths, dependencyUrls, uploadQueue, pendingBytes, gaps) {
|
|
416
472
|
const finalized = new Map();
|
|
@@ -721,8 +777,11 @@ async function runBuildInner(input, tempDir, client, transform) {
|
|
|
721
777
|
}
|
|
722
778
|
const frameworkDependencies = await buildFrameworkDependencies(input, tempDir, transform, uploadQueue, pendingBytes, gaps);
|
|
723
779
|
let httpDependencies;
|
|
780
|
+
let httpDependencyFallbackUrls;
|
|
724
781
|
try {
|
|
725
|
-
|
|
782
|
+
const finalizedHttpDependencies = await finalizeDependencyModules(dependencyModules, uploadQueue, pendingBytes, gaps);
|
|
783
|
+
httpDependencies = finalizedHttpDependencies.assets;
|
|
784
|
+
httpDependencyFallbackUrls = finalizedHttpDependencies.fallbackUrls;
|
|
726
785
|
}
|
|
727
786
|
catch (error) {
|
|
728
787
|
const sanitized = sanitizeError(error);
|
|
@@ -742,6 +801,9 @@ async function runBuildInner(input, tempDir, client, transform) {
|
|
|
742
801
|
}
|
|
743
802
|
const dependencies = { ...frameworkDependencies, ...httpDependencies };
|
|
744
803
|
const dependencyUrls = buildDependencyUrlMap(dependencies, dependencyModules);
|
|
804
|
+
for (const [specifier, url] of httpDependencyFallbackUrls) {
|
|
805
|
+
dependencyUrls.set(specifier, url);
|
|
806
|
+
}
|
|
745
807
|
const { modules, skippedModules } = await finalizeProjectModules(transformedModules, knownPaths, dependencyUrls, uploadQueue, pendingBytes, gaps);
|
|
746
808
|
for (const logicalPath of transformedModules.keys()) {
|
|
747
809
|
if (modules[logicalPath])
|