@caryhu/codemine-forge 0.0.1-alpha.2 → 0.0.1-alpha.4
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/dist/build-pipeline/angular-resources.d.ts +12 -0
- package/dist/build-pipeline/angular-resources.js +316 -0
- package/dist/build-pipeline/browser-bundle.d.ts +6 -0
- package/dist/build-pipeline/browser-bundle.js +128 -227
- package/dist/build-pipeline/diagnostics.d.ts +5 -0
- package/dist/build-pipeline/diagnostics.js +52 -1
- package/dist/build-pipeline/index.d.ts +2 -2
- package/dist/build-pipeline/index.js +6 -4
- package/dist/build-pipeline/pipeline.js +178 -11
- package/dist/build-pipeline/types.d.ts +7 -1
- package/dist/dev-server-preview/index.d.ts +2 -2
- package/dist/dev-server-preview/index.js +1 -4
- package/dist/dev-server-preview/server.d.ts +1 -1
- package/dist/dev-server-preview/server.js +9 -18
- package/dist/dev-server-preview/types.d.ts +2 -2
- package/dist/framework-compatibility.d.ts +27 -0
- package/dist/framework-compatibility.js +109 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +18 -8
- package/dist/package-resolution/cdn-source.js +13 -1
- package/dist/package-resolution/diagnostics.d.ts +3 -0
- package/dist/package-resolution/diagnostics.js +28 -1
- package/dist/package-resolution/index.d.ts +2 -1
- package/dist/package-resolution/index.js +4 -1
- package/dist/package-resolution/resolver.d.ts +3 -3
- package/dist/package-resolution/resolver.js +146 -7
- package/dist/package-resolution/types.d.ts +9 -1
- package/dist/terminal-commands/npm-dev.js +1 -1
- package/package.json +2 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isSupportedViteBuildScript = exports.createBuildPipeline = exports.DefaultBuildPipeline = void 0;
|
|
4
4
|
const package_resolution_1 = require("../package-resolution");
|
|
5
|
+
const framework_compatibility_1 = require("../framework-compatibility");
|
|
5
6
|
const telemetry_1 = require("../telemetry");
|
|
6
7
|
const virtual_file_system_1 = require("../virtual-file-system");
|
|
7
8
|
const diagnostics_1 = require("./diagnostics");
|
|
@@ -15,6 +16,25 @@ const DEFAULT_ENTRY_CANDIDATES = [
|
|
|
15
16
|
"/src/main.ts",
|
|
16
17
|
"/src/main.js",
|
|
17
18
|
];
|
|
19
|
+
const ANGULAR_GRAPH_RESOLVE_EXTENSIONS = [
|
|
20
|
+
"",
|
|
21
|
+
".tsx",
|
|
22
|
+
".ts",
|
|
23
|
+
".jsx",
|
|
24
|
+
".js",
|
|
25
|
+
];
|
|
26
|
+
const ANGULAR_GRAPH_INDEX_RESOLVE_EXTENSIONS = [
|
|
27
|
+
"/index.tsx",
|
|
28
|
+
"/index.ts",
|
|
29
|
+
"/index.jsx",
|
|
30
|
+
"/index.js",
|
|
31
|
+
];
|
|
32
|
+
const ANGULAR_GRAPH_SCRIPT_EXTENSIONS = new Set([
|
|
33
|
+
".js",
|
|
34
|
+
".jsx",
|
|
35
|
+
".ts",
|
|
36
|
+
".tsx",
|
|
37
|
+
]);
|
|
18
38
|
class DefaultBuildPipeline {
|
|
19
39
|
constructor(options) {
|
|
20
40
|
this.options = options;
|
|
@@ -45,16 +65,7 @@ class DefaultBuildPipeline {
|
|
|
45
65
|
}
|
|
46
66
|
throw error;
|
|
47
67
|
}
|
|
48
|
-
const
|
|
49
|
-
if (buildScript === undefined) {
|
|
50
|
-
return this.failure(mode, [(0, diagnostics_1.createMissingBuildScriptDiagnostic)(), ...warningDiagnostics], timingStart, viteConfig);
|
|
51
|
-
}
|
|
52
|
-
if (!isSupportedViteBuildScript(buildScript)) {
|
|
53
|
-
return this.failure(mode, [
|
|
54
|
-
(0, diagnostics_1.createUnsupportedBuildScriptDiagnostic)(buildScript),
|
|
55
|
-
...warningDiagnostics,
|
|
56
|
-
], timingStart, viteConfig);
|
|
57
|
-
}
|
|
68
|
+
const angularOptions = (0, framework_compatibility_1.resolveAngularCompatibilityOptions)(manifest, this.options.frameworkCompatibility?.angular);
|
|
58
69
|
const manifestCancellation = getCancellationDiagnostic(request.signal);
|
|
59
70
|
if (manifestCancellation !== undefined) {
|
|
60
71
|
return this.failure(mode, [manifestCancellation, ...warningDiagnostics], timingStart, viteConfig);
|
|
@@ -63,8 +74,32 @@ class DefaultBuildPipeline {
|
|
|
63
74
|
if (entry === undefined) {
|
|
64
75
|
return this.failure(mode, [(0, diagnostics_1.createMissingEntryDiagnostic)(), ...warningDiagnostics], timingStart, viteConfig);
|
|
65
76
|
}
|
|
77
|
+
const angularBuildCompatibility = await createAngularBuildCompatibility(this.options.fileSystem, entry, manifest, angularOptions, viteConfig);
|
|
66
78
|
try {
|
|
67
|
-
|
|
79
|
+
let packageResolution;
|
|
80
|
+
try {
|
|
81
|
+
packageResolution = await this.options.packageResolver.resolve({
|
|
82
|
+
additionalDependencies: angularBuildCompatibility.additionalDependencies,
|
|
83
|
+
frameworkCompatibility: {
|
|
84
|
+
...this.options.frameworkCompatibility,
|
|
85
|
+
angular: angularOptions,
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
if (error instanceof package_resolution_1.ForgePackageResolutionError &&
|
|
91
|
+
angularBuildCompatibility.injectZoneJs &&
|
|
92
|
+
error.diagnostic.code === "unresolved_package" &&
|
|
93
|
+
"dependencyName" in error.diagnostic &&
|
|
94
|
+
error.diagnostic.dependencyName === "zone.js") {
|
|
95
|
+
return this.failure(mode, [
|
|
96
|
+
(0, diagnostics_1.createAngularZoneJsRequiredDiagnostic)(entry),
|
|
97
|
+
...error.warnings,
|
|
98
|
+
...warningDiagnostics,
|
|
99
|
+
], timingStart, viteConfig);
|
|
100
|
+
}
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
68
103
|
const packageWarnings = packageResolution.warnings;
|
|
69
104
|
const packageCancellation = getCancellationDiagnostic(request.signal);
|
|
70
105
|
if (packageCancellation !== undefined) {
|
|
@@ -72,6 +107,7 @@ class DefaultBuildPipeline {
|
|
|
72
107
|
}
|
|
73
108
|
const sourceFiles = await collectSourceFiles(this.options.fileSystem);
|
|
74
109
|
const browserBundleResult = await (0, browser_bundle_1.createBrowserBundle)({
|
|
110
|
+
angularCompatibility: angularBuildCompatibility.browserBundle,
|
|
75
111
|
entry,
|
|
76
112
|
fileSystem: this.options.fileSystem,
|
|
77
113
|
packageResolution,
|
|
@@ -268,6 +304,137 @@ function isSupportedViteBuildScript(script) {
|
|
|
268
304
|
return argv.length >= 2 && argv[0] === "vite" && argv[1] === "build";
|
|
269
305
|
}
|
|
270
306
|
exports.isSupportedViteBuildScript = isSupportedViteBuildScript;
|
|
307
|
+
async function createAngularBuildCompatibility(fileSystem, entry, manifest, angularOptions, viteConfig) {
|
|
308
|
+
if (!angularOptions.enabled) {
|
|
309
|
+
return {
|
|
310
|
+
additionalDependencies: [],
|
|
311
|
+
injectZoneJs: false,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
const shouldCheckZoneJs = angularOptions.ensureZoneJs !== false &&
|
|
315
|
+
hasManifestDependency(manifest, "@angular/platform-browser-dynamic");
|
|
316
|
+
const graphSignals = shouldCheckZoneJs
|
|
317
|
+
? await collectAngularEntryGraphSignals(fileSystem, entry, viteConfig)
|
|
318
|
+
: {
|
|
319
|
+
importsZoneJs: false,
|
|
320
|
+
usesNgModuleBootstrap: false,
|
|
321
|
+
};
|
|
322
|
+
const injectZoneJs = shouldCheckZoneJs &&
|
|
323
|
+
graphSignals.usesNgModuleBootstrap &&
|
|
324
|
+
!graphSignals.importsZoneJs;
|
|
325
|
+
const additionalDependencies = injectZoneJs && !hasManifestDependency(manifest, "zone.js")
|
|
326
|
+
? [
|
|
327
|
+
{
|
|
328
|
+
kind: "dependency",
|
|
329
|
+
name: "zone.js",
|
|
330
|
+
requestedRange: (0, framework_compatibility_1.selectAngularZoneJsVersion)(manifest, []),
|
|
331
|
+
},
|
|
332
|
+
]
|
|
333
|
+
: [];
|
|
334
|
+
return {
|
|
335
|
+
additionalDependencies,
|
|
336
|
+
browserBundle: {
|
|
337
|
+
injectZoneJs,
|
|
338
|
+
inlineComponentResources: angularOptions.inlineComponentResources,
|
|
339
|
+
linker: angularOptions.linker,
|
|
340
|
+
},
|
|
341
|
+
injectZoneJs,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
async function collectAngularEntryGraphSignals(fileSystem, entry, viteConfig, visited = new Set()) {
|
|
345
|
+
if (visited.has(entry) || !ANGULAR_GRAPH_SCRIPT_EXTENSIONS.has(getExtension(entry))) {
|
|
346
|
+
return {
|
|
347
|
+
importsZoneJs: false,
|
|
348
|
+
usesNgModuleBootstrap: false,
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
visited.add(entry);
|
|
352
|
+
const source = await fileSystem.readText(entry);
|
|
353
|
+
const imports = extractImportSpecifiers(source);
|
|
354
|
+
let importsZoneJs = imports.includes("zone.js");
|
|
355
|
+
let usesNgModuleBootstrap = source.includes("platformBrowserDynamic") ||
|
|
356
|
+
source.includes(".bootstrapModule(");
|
|
357
|
+
for (const specifier of imports) {
|
|
358
|
+
const aliasSpecifier = resolveAliasSpecifier(specifier, viteConfig?.aliases ?? {});
|
|
359
|
+
const localSpecifier = aliasSpecifier ?? specifier;
|
|
360
|
+
if (!isLocalSpecifier(localSpecifier)) {
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
363
|
+
const resolved = await resolveAngularGraphImport(fileSystem, entry, localSpecifier);
|
|
364
|
+
if (resolved === undefined) {
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
const childSignals = await collectAngularEntryGraphSignals(fileSystem, resolved, viteConfig, visited);
|
|
368
|
+
importsZoneJs = importsZoneJs || childSignals.importsZoneJs;
|
|
369
|
+
usesNgModuleBootstrap =
|
|
370
|
+
usesNgModuleBootstrap || childSignals.usesNgModuleBootstrap;
|
|
371
|
+
}
|
|
372
|
+
return {
|
|
373
|
+
importsZoneJs,
|
|
374
|
+
usesNgModuleBootstrap,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
async function resolveAngularGraphImport(fileSystem, importer, specifier) {
|
|
378
|
+
const basePath = specifier.startsWith("/")
|
|
379
|
+
? specifier
|
|
380
|
+
: `${dirname(importer)}/${specifier}`;
|
|
381
|
+
const normalized = (0, virtual_file_system_1.normalizeForgePath)(basePath);
|
|
382
|
+
if (!normalized.ok) {
|
|
383
|
+
return undefined;
|
|
384
|
+
}
|
|
385
|
+
for (const suffix of ANGULAR_GRAPH_RESOLVE_EXTENSIONS) {
|
|
386
|
+
const candidate = `${normalized.path}${suffix}`;
|
|
387
|
+
if (await fileSystem.exists(candidate)) {
|
|
388
|
+
return candidate;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
for (const suffix of ANGULAR_GRAPH_INDEX_RESOLVE_EXTENSIONS) {
|
|
392
|
+
const candidate = `${normalized.path}${suffix}`;
|
|
393
|
+
if (await fileSystem.exists(candidate)) {
|
|
394
|
+
return candidate;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return undefined;
|
|
398
|
+
}
|
|
399
|
+
function extractImportSpecifiers(source) {
|
|
400
|
+
const patterns = [
|
|
401
|
+
/\bimport\s+(?:[^'"]*?\s+from\s*)?["']([^"']+)["']/g,
|
|
402
|
+
/\bexport\s+[^'"]*?\s+from\s*["']([^"']+)["']/g,
|
|
403
|
+
/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,
|
|
404
|
+
];
|
|
405
|
+
const specifiers = [];
|
|
406
|
+
for (const pattern of patterns) {
|
|
407
|
+
for (const match of source.matchAll(pattern)) {
|
|
408
|
+
specifiers.push(match[1]);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
return specifiers;
|
|
412
|
+
}
|
|
413
|
+
function resolveAliasSpecifier(specifier, aliases) {
|
|
414
|
+
for (const [find, replacement] of Object.entries(aliases).sort(([left], [right]) => right.length - left.length || left.localeCompare(right))) {
|
|
415
|
+
if (specifier === find) {
|
|
416
|
+
return replacement;
|
|
417
|
+
}
|
|
418
|
+
if (specifier.startsWith(`${find}/`)) {
|
|
419
|
+
const normalizedReplacement = replacement.endsWith("/")
|
|
420
|
+
? replacement.slice(0, -1)
|
|
421
|
+
: replacement;
|
|
422
|
+
return `${normalizedReplacement}${specifier.slice(find.length)}`;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return undefined;
|
|
426
|
+
}
|
|
427
|
+
function hasManifestDependency(manifest, packageName) {
|
|
428
|
+
return (packageName in manifest.dependencies ||
|
|
429
|
+
packageName in manifest.devDependencies);
|
|
430
|
+
}
|
|
431
|
+
function isLocalSpecifier(specifier) {
|
|
432
|
+
return specifier.startsWith(".") || specifier.startsWith("/");
|
|
433
|
+
}
|
|
434
|
+
function getExtension(path) {
|
|
435
|
+
const index = path.lastIndexOf(".");
|
|
436
|
+
return index === -1 ? "" : path.slice(index).toLowerCase();
|
|
437
|
+
}
|
|
271
438
|
async function findHtmlModuleEntry(fileSystem) {
|
|
272
439
|
if (!(await fileSystem.exists("/index.html"))) {
|
|
273
440
|
return undefined;
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import type { ForgeImportMap, ForgePackageDiagnostic, ForgePackageResolutionResult, ForgePackageResolver } from "../package-resolution";
|
|
2
|
+
import type { ForgeFrameworkCompatibilityOptions } from "../framework-compatibility";
|
|
2
3
|
import type { ForgeEsbuildWasmWorkerDiagnostic, ForgeEsbuildWasmWorkerService } from "../esbuild-wasm-worker";
|
|
3
4
|
import type { ForgeVirtualFileSystem, ForgeVirtualFileSystemStorage } from "../virtual-file-system";
|
|
4
5
|
import type { ForgeTelemetryReporter } from "../telemetry";
|
|
5
6
|
export declare const BUILD_PIPELINE_CAPABILITY: "build-pipeline";
|
|
6
7
|
export type ForgeBuildMode = "production";
|
|
7
|
-
export type ForgeBuildPipelineDiagnosticCode = "build_cancelled" | "esbuild_worker_transform_failed" | "missing_build_script" | "missing_entry" | "unresolved_import" | "unsupported_build_script" | "vite_config_not_executed";
|
|
8
|
+
export type ForgeBuildPipelineDiagnosticCode = "angular_external_resource_unsupported" | "angular_partial_linker_required" | "angular_resource_not_found" | "angular_resource_transform_failed" | "angular_zonejs_required" | "build_cancelled" | "esbuild_worker_transform_failed" | "missing_build_script" | "missing_entry" | "unresolved_import" | "unsupported_build_script" | "vite_config_not_executed";
|
|
8
9
|
export interface ForgeBuildPipelineDiagnostic {
|
|
9
10
|
readonly code: ForgeBuildPipelineDiagnosticCode;
|
|
10
11
|
readonly severity: "error" | "warning";
|
|
11
12
|
readonly message: string;
|
|
13
|
+
readonly dependencyName?: string;
|
|
12
14
|
readonly path?: string;
|
|
13
15
|
readonly script?: string;
|
|
14
16
|
readonly importSpecifier?: string;
|
|
15
17
|
readonly importer?: string;
|
|
18
|
+
readonly packageName?: string;
|
|
19
|
+
readonly packageVersion?: string;
|
|
20
|
+
readonly resourcePath?: string;
|
|
16
21
|
readonly cause?: unknown;
|
|
17
22
|
readonly workerDiagnostic?: ForgeEsbuildWasmWorkerDiagnostic;
|
|
18
23
|
}
|
|
@@ -85,6 +90,7 @@ export interface ForgeBuildPipelineOptions {
|
|
|
85
90
|
readonly fileSystem: ForgeVirtualFileSystem;
|
|
86
91
|
readonly packageResolver: ForgePackageResolver;
|
|
87
92
|
readonly esbuildWorker?: ForgeEsbuildWasmWorkerService;
|
|
93
|
+
readonly frameworkCompatibility?: ForgeFrameworkCompatibilityOptions;
|
|
88
94
|
readonly telemetry?: ForgeTelemetryReporter;
|
|
89
95
|
readonly now?: () => string;
|
|
90
96
|
readonly storage?: ForgeVirtualFileSystemStorage;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createSessionNotFoundDiagnostic, createSessionStoppedDiagnostic, } from "./diagnostics";
|
|
2
2
|
export { createForgePreviewDocument, createForgePreviewErrorOverlayDocument, } from "./preview-document";
|
|
3
|
-
export { createDevServerPreview, DefaultDevServerPreview,
|
|
3
|
+
export { createDevServerPreview, DefaultDevServerPreview, } from "./server";
|
|
4
4
|
export { DEV_SERVER_PREVIEW_CAPABILITY, type ForgeCreatePreviewDocumentOptions, type ForgeDevServerAdapterFramework, type ForgeDevServerAdapterHmrMode, type ForgeDevServerAdapterMetadata, type ForgeDevServerAdapterName, type ForgeDevServerPreview, type ForgeDevServerPreviewDiagnostic, type ForgeDevServerPreviewDiagnosticCode, type ForgeDevServerPreviewEvent, type ForgeDevServerPreviewEventListener, type ForgeDevServerPreviewOptions, type ForgeDevSession, type ForgeDevSessionDiagnostic, type ForgeDevSessionFailedEvent, type ForgeDevSessionFileChange, type ForgeDevSessionRefreshResult, type ForgeDevSessionStartedEvent, type ForgeDevSessionStartResult, type ForgeDevSessionStatus, type ForgeDevSessionStoppedEvent, type ForgeDevSessionStopResult, type ForgePreviewDocument, type ForgePreviewModuleUpdate, type ForgePreviewModuleUpdatedEvent, type ForgePreviewRefreshedEvent, type ForgePreviewStyleUpdate, type ForgePreviewStyleUpdatedEvent, type ForgeRebuildDevSessionOptions, type ForgeStartDevSessionOptions, } from "./types";
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEV_SERVER_PREVIEW_CAPABILITY = exports.
|
|
3
|
+
exports.DEV_SERVER_PREVIEW_CAPABILITY = exports.DefaultDevServerPreview = exports.createDevServerPreview = exports.createForgePreviewErrorOverlayDocument = exports.createForgePreviewDocument = exports.createSessionStoppedDiagnostic = exports.createSessionNotFoundDiagnostic = void 0;
|
|
4
4
|
var diagnostics_1 = require("./diagnostics");
|
|
5
|
-
Object.defineProperty(exports, "createMissingDevScriptDiagnostic", { enumerable: true, get: function () { return diagnostics_1.createMissingDevScriptDiagnostic; } });
|
|
6
5
|
Object.defineProperty(exports, "createSessionNotFoundDiagnostic", { enumerable: true, get: function () { return diagnostics_1.createSessionNotFoundDiagnostic; } });
|
|
7
6
|
Object.defineProperty(exports, "createSessionStoppedDiagnostic", { enumerable: true, get: function () { return diagnostics_1.createSessionStoppedDiagnostic; } });
|
|
8
|
-
Object.defineProperty(exports, "createUnsupportedDevScriptDiagnostic", { enumerable: true, get: function () { return diagnostics_1.createUnsupportedDevScriptDiagnostic; } });
|
|
9
7
|
var preview_document_1 = require("./preview-document");
|
|
10
8
|
Object.defineProperty(exports, "createForgePreviewDocument", { enumerable: true, get: function () { return preview_document_1.createForgePreviewDocument; } });
|
|
11
9
|
Object.defineProperty(exports, "createForgePreviewErrorOverlayDocument", { enumerable: true, get: function () { return preview_document_1.createForgePreviewErrorOverlayDocument; } });
|
|
12
10
|
var server_1 = require("./server");
|
|
13
11
|
Object.defineProperty(exports, "createDevServerPreview", { enumerable: true, get: function () { return server_1.createDevServerPreview; } });
|
|
14
12
|
Object.defineProperty(exports, "DefaultDevServerPreview", { enumerable: true, get: function () { return server_1.DefaultDevServerPreview; } });
|
|
15
|
-
Object.defineProperty(exports, "isSupportedViteDevScript", { enumerable: true, get: function () { return server_1.isSupportedViteDevScript; } });
|
|
16
13
|
var types_1 = require("./types");
|
|
17
14
|
Object.defineProperty(exports, "DEV_SERVER_PREVIEW_CAPABILITY", { enumerable: true, get: function () { return types_1.DEV_SERVER_PREVIEW_CAPABILITY; } });
|
|
@@ -14,7 +14,7 @@ export declare class DefaultDevServerPreview implements ForgeDevServerPreview {
|
|
|
14
14
|
stop(sessionId: string): Promise<ForgeDevSessionStopResult>;
|
|
15
15
|
getSession(sessionId: string): ForgeDevSession | undefined;
|
|
16
16
|
watch(listener: ForgeDevServerPreviewEventListener): ForgeUnsubscribe;
|
|
17
|
-
private
|
|
17
|
+
private readPreviewManifest;
|
|
18
18
|
private failStart;
|
|
19
19
|
private handleFileEvent;
|
|
20
20
|
private handleWorkspaceChange;
|
|
@@ -34,11 +34,11 @@ class DefaultDevServerPreview {
|
|
|
34
34
|
},
|
|
35
35
|
};
|
|
36
36
|
this.sessions.set(sessionId, record);
|
|
37
|
-
const
|
|
38
|
-
if (!
|
|
39
|
-
return this.failStart(record,
|
|
37
|
+
const previewManifestResult = await this.readPreviewManifest();
|
|
38
|
+
if (!previewManifestResult.success) {
|
|
39
|
+
return this.failStart(record, previewManifestResult.diagnostics, "manifest");
|
|
40
40
|
}
|
|
41
|
-
record.adapter = selectDevServerAdapter(
|
|
41
|
+
record.adapter = selectDevServerAdapter(previewManifestResult.manifest);
|
|
42
42
|
record.session = {
|
|
43
43
|
...record.session,
|
|
44
44
|
adapter: record.adapter,
|
|
@@ -116,22 +116,9 @@ class DefaultDevServerPreview {
|
|
|
116
116
|
this.listeners.delete(listener);
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
|
-
async
|
|
119
|
+
async readPreviewManifest() {
|
|
120
120
|
try {
|
|
121
121
|
const manifest = await (0, package_resolution_1.readPackageManifest)(this.options.fileSystem);
|
|
122
|
-
const devScript = manifest.scripts.dev;
|
|
123
|
-
if (devScript === undefined) {
|
|
124
|
-
return {
|
|
125
|
-
success: false,
|
|
126
|
-
diagnostics: [(0, diagnostics_1.createMissingDevScriptDiagnostic)()],
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
if (!isSupportedViteDevScript(devScript)) {
|
|
130
|
-
return {
|
|
131
|
-
success: false,
|
|
132
|
-
diagnostics: [(0, diagnostics_1.createUnsupportedDevScriptDiagnostic)(devScript)],
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
122
|
return {
|
|
136
123
|
success: true,
|
|
137
124
|
diagnostics: [],
|
|
@@ -414,6 +401,10 @@ function selectDevServerAdapter(manifest) {
|
|
|
414
401
|
if ("react" in dependencies || "react-dom" in dependencies) {
|
|
415
402
|
return createDevServerAdapterMetadata("vite-react", "react");
|
|
416
403
|
}
|
|
404
|
+
if ("@angular/core" in dependencies ||
|
|
405
|
+
"@angular/platform-browser-dynamic" in dependencies) {
|
|
406
|
+
return createDevServerAdapterMetadata("vite-angular", "angular");
|
|
407
|
+
}
|
|
417
408
|
if ("vue" in dependencies) {
|
|
418
409
|
return createDevServerAdapterMetadata("vite-vue", "vue");
|
|
419
410
|
}
|
|
@@ -4,8 +4,8 @@ import type { ForgeFileEvent, ForgeUnsubscribe, ForgeVirtualFileSystem } from ".
|
|
|
4
4
|
export declare const DEV_SERVER_PREVIEW_CAPABILITY: "dev-server-preview";
|
|
5
5
|
export type ForgeDevSessionStatus = "starting" | "running" | "rebuilding" | "stopped" | "failed";
|
|
6
6
|
export type ForgeDevServerPreviewDiagnosticCode = "missing_dev_script" | "session_not_found" | "session_stopped" | "unsupported_dev_script";
|
|
7
|
-
export type ForgeDevServerAdapterName = "vite-react" | "vite-vanilla" | "vite-vue";
|
|
8
|
-
export type ForgeDevServerAdapterFramework = "react" | "vanilla" | "vue";
|
|
7
|
+
export type ForgeDevServerAdapterName = "vite-angular" | "vite-react" | "vite-vanilla" | "vite-vue";
|
|
8
|
+
export type ForgeDevServerAdapterFramework = "angular" | "react" | "vanilla" | "vue";
|
|
9
9
|
export type ForgeDevServerAdapterHmrMode = "hmr-lite";
|
|
10
10
|
export interface ForgeDevServerAdapterMetadata {
|
|
11
11
|
readonly framework: ForgeDevServerAdapterFramework;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ForgePackageManifest, ForgePackageRecord } from "./package-resolution/types";
|
|
2
|
+
export declare const DEFAULT_ANGULAR_SINGLETON_PACKAGES: readonly ["@angular/animations", "@angular/common", "@angular/compiler", "@angular/core", "@angular/forms", "@angular/platform-browser", "@angular/platform-browser-dynamic", "@angular/router", "rxjs", "zone.js"];
|
|
3
|
+
export interface ForgeFrameworkCompatibilityOptions {
|
|
4
|
+
readonly angular?: ForgeAngularCompatibilityOptions;
|
|
5
|
+
}
|
|
6
|
+
export interface ForgeAngularCompatibilityOptions {
|
|
7
|
+
readonly enabled?: boolean | "auto";
|
|
8
|
+
readonly ensureZoneJs?: boolean | "auto";
|
|
9
|
+
readonly inlineComponentResources?: boolean;
|
|
10
|
+
readonly linker?: "auto" | "diagnostic" | "disabled";
|
|
11
|
+
readonly peerDependencyPins?: Readonly<Record<string, string>>;
|
|
12
|
+
readonly singletonPackages?: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export interface ResolvedForgeAngularCompatibilityOptions {
|
|
15
|
+
readonly enabled: boolean;
|
|
16
|
+
readonly ensureZoneJs: boolean | "auto";
|
|
17
|
+
readonly inlineComponentResources: boolean;
|
|
18
|
+
readonly linker: "auto" | "diagnostic" | "disabled";
|
|
19
|
+
readonly peerDependencyPins: Readonly<Record<string, string>>;
|
|
20
|
+
readonly singletonPackages: readonly string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function resolveAngularCompatibilityOptions(manifest: ForgePackageManifest, options: ForgeAngularCompatibilityOptions | undefined): ResolvedForgeAngularCompatibilityOptions;
|
|
23
|
+
export declare function createAngularPeerDependencyPinMap(manifest: ForgePackageManifest, packageRecords: readonly ForgePackageRecord[], angularOptions: ResolvedForgeAngularCompatibilityOptions): Readonly<Record<string, string>>;
|
|
24
|
+
export declare function shouldApplyAngularPeerDependencyPins(packageName: string, angularOptions: ResolvedForgeAngularCompatibilityOptions): boolean;
|
|
25
|
+
export declare function isAngularSingletonPackage(packageName: string, angularOptions: ResolvedForgeAngularCompatibilityOptions): boolean;
|
|
26
|
+
export declare function normalizeVersionPin(range: string): string | undefined;
|
|
27
|
+
export declare function selectAngularZoneJsVersion(manifest: ForgePackageManifest, packageRecords: readonly ForgePackageRecord[]): string;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.selectAngularZoneJsVersion = exports.normalizeVersionPin = exports.isAngularSingletonPackage = exports.shouldApplyAngularPeerDependencyPins = exports.createAngularPeerDependencyPinMap = exports.resolveAngularCompatibilityOptions = exports.DEFAULT_ANGULAR_SINGLETON_PACKAGES = void 0;
|
|
4
|
+
exports.DEFAULT_ANGULAR_SINGLETON_PACKAGES = [
|
|
5
|
+
"@angular/animations",
|
|
6
|
+
"@angular/common",
|
|
7
|
+
"@angular/compiler",
|
|
8
|
+
"@angular/core",
|
|
9
|
+
"@angular/forms",
|
|
10
|
+
"@angular/platform-browser",
|
|
11
|
+
"@angular/platform-browser-dynamic",
|
|
12
|
+
"@angular/router",
|
|
13
|
+
"rxjs",
|
|
14
|
+
"zone.js",
|
|
15
|
+
];
|
|
16
|
+
function resolveAngularCompatibilityOptions(manifest, options) {
|
|
17
|
+
const enabled = options?.enabled === undefined || options.enabled === "auto"
|
|
18
|
+
? hasManifestDependency(manifest, "@angular/core")
|
|
19
|
+
: options.enabled;
|
|
20
|
+
return {
|
|
21
|
+
enabled,
|
|
22
|
+
ensureZoneJs: options?.ensureZoneJs ?? "auto",
|
|
23
|
+
inlineComponentResources: options?.inlineComponentResources ?? true,
|
|
24
|
+
linker: options?.linker ?? "diagnostic",
|
|
25
|
+
peerDependencyPins: { ...(options?.peerDependencyPins ?? {}) },
|
|
26
|
+
singletonPackages: options?.singletonPackages ?? exports.DEFAULT_ANGULAR_SINGLETON_PACKAGES,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.resolveAngularCompatibilityOptions = resolveAngularCompatibilityOptions;
|
|
30
|
+
function createAngularPeerDependencyPinMap(manifest, packageRecords, angularOptions) {
|
|
31
|
+
if (!angularOptions.enabled) {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
const manifestDependencies = {
|
|
35
|
+
...manifest.dependencies,
|
|
36
|
+
...manifest.devDependencies,
|
|
37
|
+
};
|
|
38
|
+
const pins = {};
|
|
39
|
+
for (const packageName of angularOptions.singletonPackages) {
|
|
40
|
+
const packageRecord = packageRecords.find((record) => record.name === packageName);
|
|
41
|
+
if (packageRecord !== undefined) {
|
|
42
|
+
pins[packageName] = packageRecord.version;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const requestedRange = manifestDependencies[packageName];
|
|
46
|
+
const versionPin = requestedRange === undefined
|
|
47
|
+
? undefined
|
|
48
|
+
: normalizeVersionPin(requestedRange);
|
|
49
|
+
if (versionPin !== undefined) {
|
|
50
|
+
pins[packageName] = versionPin;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
...pins,
|
|
55
|
+
...angularOptions.peerDependencyPins,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
exports.createAngularPeerDependencyPinMap = createAngularPeerDependencyPinMap;
|
|
59
|
+
function shouldApplyAngularPeerDependencyPins(packageName, angularOptions) {
|
|
60
|
+
return (angularOptions.enabled &&
|
|
61
|
+
!isAngularSingletonPackage(packageName, angularOptions) &&
|
|
62
|
+
isLikelyThirdPartyAngularPackage(packageName));
|
|
63
|
+
}
|
|
64
|
+
exports.shouldApplyAngularPeerDependencyPins = shouldApplyAngularPeerDependencyPins;
|
|
65
|
+
function isAngularSingletonPackage(packageName, angularOptions) {
|
|
66
|
+
return angularOptions.singletonPackages.includes(packageName);
|
|
67
|
+
}
|
|
68
|
+
exports.isAngularSingletonPackage = isAngularSingletonPackage;
|
|
69
|
+
function normalizeVersionPin(range) {
|
|
70
|
+
const cleaned = range.trim();
|
|
71
|
+
const simple = cleaned.match(/^[~^]?\s*(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/);
|
|
72
|
+
if (simple !== null) {
|
|
73
|
+
return simple[1];
|
|
74
|
+
}
|
|
75
|
+
const lowerBound = cleaned.match(/>=\s*(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?)/);
|
|
76
|
+
return lowerBound?.[1];
|
|
77
|
+
}
|
|
78
|
+
exports.normalizeVersionPin = normalizeVersionPin;
|
|
79
|
+
function selectAngularZoneJsVersion(manifest, packageRecords) {
|
|
80
|
+
const existingZonePackage = packageRecords.find((record) => record.name === "zone.js");
|
|
81
|
+
if (existingZonePackage !== undefined) {
|
|
82
|
+
return existingZonePackage.version;
|
|
83
|
+
}
|
|
84
|
+
const manifestDependencies = {
|
|
85
|
+
...manifest.dependencies,
|
|
86
|
+
...manifest.devDependencies,
|
|
87
|
+
};
|
|
88
|
+
const declaredZoneVersion = manifestDependencies["zone.js"];
|
|
89
|
+
if (declaredZoneVersion !== undefined) {
|
|
90
|
+
return normalizeVersionPin(declaredZoneVersion) ?? declaredZoneVersion;
|
|
91
|
+
}
|
|
92
|
+
const angularCoreVersion = packageRecords.find((record) => record.name === "@angular/core")?.version ??
|
|
93
|
+
normalizeVersionPin(manifestDependencies["@angular/core"] ?? "");
|
|
94
|
+
const angularMajor = angularCoreVersion?.match(/^(\d+)\./)?.[1];
|
|
95
|
+
return angularMajor !== undefined && Number.parseInt(angularMajor, 10) >= 19
|
|
96
|
+
? "0.15.0"
|
|
97
|
+
: "0.14.10";
|
|
98
|
+
}
|
|
99
|
+
exports.selectAngularZoneJsVersion = selectAngularZoneJsVersion;
|
|
100
|
+
function hasManifestDependency(manifest, packageName) {
|
|
101
|
+
return (packageName in manifest.dependencies ||
|
|
102
|
+
packageName in manifest.devDependencies);
|
|
103
|
+
}
|
|
104
|
+
function isLikelyThirdPartyAngularPackage(packageName) {
|
|
105
|
+
return packageName
|
|
106
|
+
.toLowerCase()
|
|
107
|
+
.split(/[\/._-]+/)
|
|
108
|
+
.includes("angular");
|
|
109
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { createEsbuildWasmWorkerMessageHandler, createEsbuildWasmWorkerService, createTransformFailureDiagnostic, createUnsupportedOperationDiagnostic, createWasmInitializationFailureDiagnostic, createWorkerNotInitializedDiagnostic, createWorkerStartupFailureDiagnostic, DefaultEsbuildWasmWorkerService, ESBUILD_WASM_WORKER_CAPABILITY, ESBUILD_WASM_WORKER_PROTOCOL, installEsbuildWasmWorker, type ForgeEsbuildWasmDiagnosticCauseCategory, type ForgeEsbuildWasmInitializeFailureResult, type ForgeEsbuildWasmInitializeRequest, type ForgeEsbuildWasmInitializeResult, type ForgeEsbuildWasmInitializeSuccessResult, type ForgeEsbuildWasmInitializeWorkerFailureResponse, type ForgeEsbuildWasmInitializeWorkerRequest, type ForgeEsbuildWasmInitializeWorkerSuccessResponse, type ForgeEsbuildWasmRuntime, type ForgeEsbuildWasmRuntimeMetadata, type ForgeEsbuildWasmTransformFailureResult, type ForgeEsbuildWasmTransformLoader, type ForgeEsbuildWasmTransformRequest, type ForgeEsbuildWasmTransformResult, type ForgeEsbuildWasmTransformSuccessResult, type ForgeEsbuildWasmTransformWarning, type ForgeEsbuildWasmTransformWorkerFailureResponse, type ForgeEsbuildWasmTransformWorkerRequest, type ForgeEsbuildWasmTransformWorkerSuccessResponse, type ForgeEsbuildWasmUnsupportedOperation, type ForgeEsbuildWasmUnsupportedOperationResult, type ForgeEsbuildWasmUrl, type ForgeEsbuildWasmWorkerAdapterOptions, type ForgeEsbuildWasmWorkerDiagnostic, type ForgeEsbuildWasmWorkerDiagnosticCode, type ForgeEsbuildWasmWorkerFactory, type ForgeEsbuildWasmWorkerGlobalScope, type ForgeEsbuildWasmWorkerMessageEvent, type ForgeEsbuildWasmWorkerPort, type ForgeEsbuildWasmWorkerRequestMessage, type ForgeEsbuildWasmWorkerResponseMessage, type ForgeEsbuildWasmWorkerService, type ForgeEsbuildWasmWorkerServiceOptions, } from "./esbuild-wasm-worker";
|
|
2
2
|
export { createForgeController, openForgeController, type ForgeController, type ForgeControllerOptions, type ForgeOpenControllerOptions, } from "./forge-controller";
|
|
3
|
-
export { BUILD_PIPELINE_CAPABILITY, createBuildCancelledDiagnostic, createBuildPipeline, createEsbuildWorkerTransformDiagnostic,
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
3
|
+
export { createAngularExternalResourceUnsupportedDiagnostic, createAngularPartialLinkerRequiredDiagnostic, createAngularResourceNotFoundDiagnostic, createAngularResourceTransformFailedDiagnostic, createAngularZoneJsRequiredDiagnostic, BUILD_PIPELINE_CAPABILITY, createBuildCancelledDiagnostic, createBuildPipeline, createEsbuildWorkerTransformDiagnostic, createMissingEntryDiagnostic, createUnresolvedImportDiagnostic, createViteConfigNotExecutedDiagnostic, DefaultBuildPipeline, type ForgeBrowserBundle, type ForgeBrowserBundleManifest, type ForgeBrowserBundleModule, type ForgeBrowserBundleModuleOrigin, type ForgeBuildDiagnostic, type ForgeBuildManifest, type ForgeBuildMode, type ForgeBuildOutputFile, type ForgeBuildPipeline, type ForgeBuildPipelineDiagnostic, type ForgeBuildPipelineDiagnosticCode, type ForgeBuildPipelineOptions, type ForgeBuildRequest, type ForgeBuildResult, type ForgeBuildTiming, type ForgeViteConfigMetadata, } from "./build-pipeline";
|
|
4
|
+
export { DEFAULT_ANGULAR_SINGLETON_PACKAGES, createAngularPeerDependencyPinMap, isAngularSingletonPackage, normalizeVersionPin, resolveAngularCompatibilityOptions, selectAngularZoneJsVersion, shouldApplyAngularPeerDependencyPins, type ForgeAngularCompatibilityOptions, type ForgeFrameworkCompatibilityOptions, type ResolvedForgeAngularCompatibilityOptions, } from "./framework-compatibility";
|
|
5
|
+
export { createAngularPeerDependencyUnpinnedDiagnostic, createAngularSingletonDuplicateDiagnostic, createAngularSingletonVersionConflictDiagnostic, createInvalidDependencyDiagnostic, createInvalidManifestDiagnostic, createCdnPackageSource, createOfflineCacheMissDiagnostic, createPackageCacheKey, createPackageResolutionDiagnostic, createPackageResolver, createUnsupportedRangeDiagnostic, createUnresolvedPackageDiagnostic, collectDependencyRequests, DEFAULT_FORGE_MANIFEST_PATH, DefaultPackageResolver, ForgePackageResolutionError, PACKAGE_RESOLUTION_CAPABILITY, readPackageManifest, type ForgeBundleAliases, type ForgeCdnPackageFetch, type ForgeCdnPackageMetadataUrlFactory, type ForgeCdnPackageSourceOptions, type ForgeDependencyKind, type ForgeDependencyRequest, type ForgeImportMap, type ForgePackageCacheMode, type ForgePackageDiagnostic, type ForgePackageFile, type ForgePackageLockMetadata, type ForgePackageLockPackage, type ForgePackageManifest, type ForgePackageRecord, type ForgePackageResolutionDiagnostic, type ForgePackageResolutionDiagnosticCode, type ForgePackageResolutionMode, type ForgePackageResolutionResult, type ForgePackageResolver, type ForgePackageResolverOptions, type ForgePackageSource, type ForgeResolvePackagesOptions, } from "./package-resolution";
|
|
6
|
+
export { createDevServerPreview, createForgePreviewDocument, createForgePreviewErrorOverlayDocument, createSessionNotFoundDiagnostic, createSessionStoppedDiagnostic, DefaultDevServerPreview, DEV_SERVER_PREVIEW_CAPABILITY, type ForgeCreatePreviewDocumentOptions, type ForgeDevServerAdapterFramework, type ForgeDevServerAdapterHmrMode, type ForgeDevServerAdapterMetadata, type ForgeDevServerAdapterName, type ForgeDevServerPreview, type ForgeDevServerPreviewDiagnostic, type ForgeDevServerPreviewDiagnosticCode, type ForgeDevServerPreviewEvent, type ForgeDevServerPreviewEventListener, type ForgeDevServerPreviewOptions, type ForgeDevSession, type ForgeDevSessionDiagnostic, type ForgeDevSessionFailedEvent, type ForgeDevSessionFileChange, type ForgeDevSessionRefreshResult, type ForgeDevSessionStartedEvent, type ForgeDevSessionStartResult, type ForgeDevSessionStatus, type ForgeDevSessionStoppedEvent, type ForgeDevSessionStopResult, type ForgePreviewDocument, type ForgePreviewModuleUpdate, type ForgePreviewModuleUpdatedEvent, type ForgePreviewRefreshedEvent, type ForgePreviewStyleUpdate, type ForgePreviewStyleUpdatedEvent, type ForgeRebuildDevSessionOptions, type ForgeStartDevSessionOptions, } from "./dev-server-preview";
|
|
6
7
|
export { createForgeTerminal, createNpmInstallCommandHandler, createNpmRunBuildCommandHandler, createNpmRunDevCommandHandler, createParseErrorDiagnostic, createUnsupportedCommandDiagnostic, DefaultForgeTerminal, NpmInstallCommandHandler, NpmRunBuildCommandHandler, NpmRunDevCommandHandler, parseForgeCommandText, TERMINAL_COMMANDS_CAPABILITY, type ForgeCommand, type ForgeCommandContext, type ForgeCommandDiagnostic, type ForgeCommandHandler, type ForgeCommandParseResult, type ForgeCommandResult, type ForgeTerminal, type ForgeTerminalDiagnostic, type ForgeTerminalDiagnosticCode, type ForgeTerminalExecuteOptions, type ForgeTerminalOptions, type ForgeTerminalOutputKind, type ForgeTerminalOutputLine, } from "./terminal-commands";
|
|
7
8
|
export { completeForgeTelemetryTiming, createForgeUnsupportedPackageReason, emitForgeTelemetry, startForgeTelemetryTiming, summarizeForgeTelemetryDiagnostics, TELEMETRY_CAPABILITY, type ForgeBuildTelemetryEvent, type ForgePackageResolutionTelemetryEvent, type ForgeTelemetryDiagnosticLike, type ForgeTelemetryDiagnosticSummary, type ForgeTelemetryEvent, type ForgeTelemetryOperation, type ForgeTelemetryOutcome, type ForgeTelemetryReporter, type ForgeTelemetryTiming, type ForgeTelemetryTimingStart, type ForgeUnsupportedPackageReason, } from "./telemetry";
|
|
8
9
|
export { createVirtualFileSystem, createForgeDiagnostic, createInvalidPathDiagnostic, createInvalidSnapshotDiagnostic, createMissingParentDiagnostic, createNotFoundDiagnostic, createNotImplementedDiagnostic, createPathTraversalDiagnostic, createIndexedDbForgeStorage, createLimitExceededDiagnostic, exportWorkspaceSnapshot, ForgeFileSystemError, DEFAULT_FORGE_VFS_LIMITS, FORGE_INDEXED_DB_NAME, FORGE_INDEXED_DB_STORES, FORGE_INDEXED_DB_VERSION, FORGE_WORKSPACE_SNAPSHOT_EXPORT_SCHEMA_VERSION, IndexedDbForgeStorage, importWorkspaceSnapshot, normalizeForgePath, openVirtualFileSystem, resolveForgeVirtualFileSystemLimits, VIRTUAL_FILE_SYSTEM_CAPABILITY, type ForgeBuildCacheRecord, type ForgeDiagnosticInput, type ForgeDeleteOptions, type ForgeDiagnostic, type ForgeDiagnosticCode, type ForgeDiagnosticSeverity, type ForgeDirEntry, type ForgeFileCreatedEvent, type ForgeFileDeletedEvent, type ForgeFileEvent, type ForgeFileKind, type ForgeFileRecord, type ForgeFileRenamedEvent, type ForgeFileSource, type ForgeFileStat, type ForgeFileUpdatedEvent, type ForgeFileWatchListener, type ForgeLimitDiagnostic, type ForgeMkdirOptions, type ForgeOpenVirtualFileSystemOptions, type ForgePackageCacheRecord, type ForgePersistedWorkspace, type ForgeSerializedFileRecord, type ForgeSerializedWorkspaceSnapshot, type ForgeSerializedWorkspaceSnapshotPayload, type ForgeVirtualFileSystemLimits, type ResolvedForgeVirtualFileSystemLimits, type ForgeRestoreOptions, type ForgeSnapshot, type ForgeSnapshotOptions, type ForgeUnsubscribe, type ForgeVirtualFileSystemOptions, type ForgeVirtualFileSystemStorage, type ForgeVirtualFileSystem, type ForgeWorkspace, type ForgeWorkspaceMetadata, type ForgeWorkspaceSnapshotExportOptions, type ForgeWriteFileOptions, type ForgePathNormalizationResult, type IndexedDbForgeStorageOptions, } from "./virtual-file-system";
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.VIRTUAL_FILE_SYSTEM_CAPABILITY = exports.resolveForgeVirtualFileSystemLimits = exports.openVirtualFileSystem = exports.normalizeForgePath = exports.importWorkspaceSnapshot = exports.IndexedDbForgeStorage = exports.FORGE_WORKSPACE_SNAPSHOT_EXPORT_SCHEMA_VERSION = exports.FORGE_INDEXED_DB_VERSION = exports.FORGE_INDEXED_DB_STORES = exports.FORGE_INDEXED_DB_NAME = exports.DEFAULT_FORGE_VFS_LIMITS = exports.ForgeFileSystemError = exports.exportWorkspaceSnapshot = exports.createLimitExceededDiagnostic = exports.createIndexedDbForgeStorage = exports.createPathTraversalDiagnostic = exports.createNotImplementedDiagnostic = exports.createNotFoundDiagnostic = exports.createMissingParentDiagnostic = exports.createInvalidSnapshotDiagnostic = exports.createInvalidPathDiagnostic = exports.createForgeDiagnostic = exports.createVirtualFileSystem = exports.TELEMETRY_CAPABILITY = exports.summarizeForgeTelemetryDiagnostics = exports.startForgeTelemetryTiming = exports.emitForgeTelemetry = exports.createForgeUnsupportedPackageReason = exports.completeForgeTelemetryTiming = exports.TERMINAL_COMMANDS_CAPABILITY = exports.parseForgeCommandText = exports.NpmRunDevCommandHandler = exports.NpmRunBuildCommandHandler = exports.NpmInstallCommandHandler = exports.DefaultForgeTerminal = exports.createUnsupportedCommandDiagnostic = exports.createParseErrorDiagnostic = exports.createNpmRunDevCommandHandler = exports.createNpmRunBuildCommandHandler = exports.createNpmInstallCommandHandler = void 0;
|
|
3
|
+
exports.PACKAGE_RESOLUTION_CAPABILITY = exports.ForgePackageResolutionError = exports.DefaultPackageResolver = exports.DEFAULT_FORGE_MANIFEST_PATH = exports.collectDependencyRequests = exports.createUnresolvedPackageDiagnostic = exports.createUnsupportedRangeDiagnostic = exports.createPackageResolver = exports.createPackageResolutionDiagnostic = exports.createPackageCacheKey = exports.createOfflineCacheMissDiagnostic = exports.createCdnPackageSource = exports.createInvalidManifestDiagnostic = exports.createInvalidDependencyDiagnostic = exports.createAngularSingletonVersionConflictDiagnostic = exports.createAngularSingletonDuplicateDiagnostic = exports.createAngularPeerDependencyUnpinnedDiagnostic = exports.shouldApplyAngularPeerDependencyPins = exports.selectAngularZoneJsVersion = exports.resolveAngularCompatibilityOptions = exports.normalizeVersionPin = exports.isAngularSingletonPackage = exports.createAngularPeerDependencyPinMap = exports.DEFAULT_ANGULAR_SINGLETON_PACKAGES = exports.DefaultBuildPipeline = exports.createViteConfigNotExecutedDiagnostic = exports.createUnresolvedImportDiagnostic = exports.createMissingEntryDiagnostic = exports.createEsbuildWorkerTransformDiagnostic = exports.createBuildPipeline = exports.createBuildCancelledDiagnostic = exports.BUILD_PIPELINE_CAPABILITY = exports.createAngularZoneJsRequiredDiagnostic = exports.createAngularResourceTransformFailedDiagnostic = exports.createAngularResourceNotFoundDiagnostic = exports.createAngularPartialLinkerRequiredDiagnostic = exports.createAngularExternalResourceUnsupportedDiagnostic = exports.openForgeController = exports.createForgeController = exports.installEsbuildWasmWorker = exports.ESBUILD_WASM_WORKER_PROTOCOL = exports.ESBUILD_WASM_WORKER_CAPABILITY = exports.DefaultEsbuildWasmWorkerService = exports.createWorkerStartupFailureDiagnostic = exports.createWorkerNotInitializedDiagnostic = exports.createWasmInitializationFailureDiagnostic = exports.createUnsupportedOperationDiagnostic = exports.createTransformFailureDiagnostic = exports.createEsbuildWasmWorkerService = exports.createEsbuildWasmWorkerMessageHandler = void 0;
|
|
4
|
+
exports.VIRTUAL_FILE_SYSTEM_CAPABILITY = exports.resolveForgeVirtualFileSystemLimits = exports.openVirtualFileSystem = exports.normalizeForgePath = exports.importWorkspaceSnapshot = exports.IndexedDbForgeStorage = exports.FORGE_WORKSPACE_SNAPSHOT_EXPORT_SCHEMA_VERSION = exports.FORGE_INDEXED_DB_VERSION = exports.FORGE_INDEXED_DB_STORES = exports.FORGE_INDEXED_DB_NAME = exports.DEFAULT_FORGE_VFS_LIMITS = exports.ForgeFileSystemError = exports.exportWorkspaceSnapshot = exports.createLimitExceededDiagnostic = exports.createIndexedDbForgeStorage = exports.createPathTraversalDiagnostic = exports.createNotImplementedDiagnostic = exports.createNotFoundDiagnostic = exports.createMissingParentDiagnostic = exports.createInvalidSnapshotDiagnostic = exports.createInvalidPathDiagnostic = exports.createForgeDiagnostic = exports.createVirtualFileSystem = exports.TELEMETRY_CAPABILITY = exports.summarizeForgeTelemetryDiagnostics = exports.startForgeTelemetryTiming = exports.emitForgeTelemetry = exports.createForgeUnsupportedPackageReason = exports.completeForgeTelemetryTiming = exports.TERMINAL_COMMANDS_CAPABILITY = exports.parseForgeCommandText = exports.NpmRunDevCommandHandler = exports.NpmRunBuildCommandHandler = exports.NpmInstallCommandHandler = exports.DefaultForgeTerminal = exports.createUnsupportedCommandDiagnostic = exports.createParseErrorDiagnostic = exports.createNpmRunDevCommandHandler = exports.createNpmRunBuildCommandHandler = exports.createNpmInstallCommandHandler = exports.createForgeTerminal = exports.DEV_SERVER_PREVIEW_CAPABILITY = exports.DefaultDevServerPreview = exports.createSessionStoppedDiagnostic = exports.createSessionNotFoundDiagnostic = exports.createForgePreviewErrorOverlayDocument = exports.createForgePreviewDocument = exports.createDevServerPreview = exports.readPackageManifest = void 0;
|
|
5
5
|
var esbuild_wasm_worker_1 = require("./esbuild-wasm-worker");
|
|
6
6
|
Object.defineProperty(exports, "createEsbuildWasmWorkerMessageHandler", { enumerable: true, get: function () { return esbuild_wasm_worker_1.createEsbuildWasmWorkerMessageHandler; } });
|
|
7
7
|
Object.defineProperty(exports, "createEsbuildWasmWorkerService", { enumerable: true, get: function () { return esbuild_wasm_worker_1.createEsbuildWasmWorkerService; } });
|
|
@@ -18,18 +18,31 @@ var forge_controller_1 = require("./forge-controller");
|
|
|
18
18
|
Object.defineProperty(exports, "createForgeController", { enumerable: true, get: function () { return forge_controller_1.createForgeController; } });
|
|
19
19
|
Object.defineProperty(exports, "openForgeController", { enumerable: true, get: function () { return forge_controller_1.openForgeController; } });
|
|
20
20
|
var build_pipeline_1 = require("./build-pipeline");
|
|
21
|
+
Object.defineProperty(exports, "createAngularExternalResourceUnsupportedDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createAngularExternalResourceUnsupportedDiagnostic; } });
|
|
22
|
+
Object.defineProperty(exports, "createAngularPartialLinkerRequiredDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createAngularPartialLinkerRequiredDiagnostic; } });
|
|
23
|
+
Object.defineProperty(exports, "createAngularResourceNotFoundDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createAngularResourceNotFoundDiagnostic; } });
|
|
24
|
+
Object.defineProperty(exports, "createAngularResourceTransformFailedDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createAngularResourceTransformFailedDiagnostic; } });
|
|
25
|
+
Object.defineProperty(exports, "createAngularZoneJsRequiredDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createAngularZoneJsRequiredDiagnostic; } });
|
|
21
26
|
Object.defineProperty(exports, "BUILD_PIPELINE_CAPABILITY", { enumerable: true, get: function () { return build_pipeline_1.BUILD_PIPELINE_CAPABILITY; } });
|
|
22
27
|
Object.defineProperty(exports, "createBuildCancelledDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createBuildCancelledDiagnostic; } });
|
|
23
28
|
Object.defineProperty(exports, "createBuildPipeline", { enumerable: true, get: function () { return build_pipeline_1.createBuildPipeline; } });
|
|
24
29
|
Object.defineProperty(exports, "createEsbuildWorkerTransformDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createEsbuildWorkerTransformDiagnostic; } });
|
|
25
|
-
Object.defineProperty(exports, "createMissingBuildScriptDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createMissingBuildScriptDiagnostic; } });
|
|
26
30
|
Object.defineProperty(exports, "createMissingEntryDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createMissingEntryDiagnostic; } });
|
|
27
31
|
Object.defineProperty(exports, "createUnresolvedImportDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createUnresolvedImportDiagnostic; } });
|
|
28
|
-
Object.defineProperty(exports, "createUnsupportedBuildScriptDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createUnsupportedBuildScriptDiagnostic; } });
|
|
29
32
|
Object.defineProperty(exports, "createViteConfigNotExecutedDiagnostic", { enumerable: true, get: function () { return build_pipeline_1.createViteConfigNotExecutedDiagnostic; } });
|
|
30
33
|
Object.defineProperty(exports, "DefaultBuildPipeline", { enumerable: true, get: function () { return build_pipeline_1.DefaultBuildPipeline; } });
|
|
31
|
-
|
|
34
|
+
var framework_compatibility_1 = require("./framework-compatibility");
|
|
35
|
+
Object.defineProperty(exports, "DEFAULT_ANGULAR_SINGLETON_PACKAGES", { enumerable: true, get: function () { return framework_compatibility_1.DEFAULT_ANGULAR_SINGLETON_PACKAGES; } });
|
|
36
|
+
Object.defineProperty(exports, "createAngularPeerDependencyPinMap", { enumerable: true, get: function () { return framework_compatibility_1.createAngularPeerDependencyPinMap; } });
|
|
37
|
+
Object.defineProperty(exports, "isAngularSingletonPackage", { enumerable: true, get: function () { return framework_compatibility_1.isAngularSingletonPackage; } });
|
|
38
|
+
Object.defineProperty(exports, "normalizeVersionPin", { enumerable: true, get: function () { return framework_compatibility_1.normalizeVersionPin; } });
|
|
39
|
+
Object.defineProperty(exports, "resolveAngularCompatibilityOptions", { enumerable: true, get: function () { return framework_compatibility_1.resolveAngularCompatibilityOptions; } });
|
|
40
|
+
Object.defineProperty(exports, "selectAngularZoneJsVersion", { enumerable: true, get: function () { return framework_compatibility_1.selectAngularZoneJsVersion; } });
|
|
41
|
+
Object.defineProperty(exports, "shouldApplyAngularPeerDependencyPins", { enumerable: true, get: function () { return framework_compatibility_1.shouldApplyAngularPeerDependencyPins; } });
|
|
32
42
|
var package_resolution_1 = require("./package-resolution");
|
|
43
|
+
Object.defineProperty(exports, "createAngularPeerDependencyUnpinnedDiagnostic", { enumerable: true, get: function () { return package_resolution_1.createAngularPeerDependencyUnpinnedDiagnostic; } });
|
|
44
|
+
Object.defineProperty(exports, "createAngularSingletonDuplicateDiagnostic", { enumerable: true, get: function () { return package_resolution_1.createAngularSingletonDuplicateDiagnostic; } });
|
|
45
|
+
Object.defineProperty(exports, "createAngularSingletonVersionConflictDiagnostic", { enumerable: true, get: function () { return package_resolution_1.createAngularSingletonVersionConflictDiagnostic; } });
|
|
33
46
|
Object.defineProperty(exports, "createInvalidDependencyDiagnostic", { enumerable: true, get: function () { return package_resolution_1.createInvalidDependencyDiagnostic; } });
|
|
34
47
|
Object.defineProperty(exports, "createInvalidManifestDiagnostic", { enumerable: true, get: function () { return package_resolution_1.createInvalidManifestDiagnostic; } });
|
|
35
48
|
Object.defineProperty(exports, "createCdnPackageSource", { enumerable: true, get: function () { return package_resolution_1.createCdnPackageSource; } });
|
|
@@ -49,13 +62,10 @@ var dev_server_preview_1 = require("./dev-server-preview");
|
|
|
49
62
|
Object.defineProperty(exports, "createDevServerPreview", { enumerable: true, get: function () { return dev_server_preview_1.createDevServerPreview; } });
|
|
50
63
|
Object.defineProperty(exports, "createForgePreviewDocument", { enumerable: true, get: function () { return dev_server_preview_1.createForgePreviewDocument; } });
|
|
51
64
|
Object.defineProperty(exports, "createForgePreviewErrorOverlayDocument", { enumerable: true, get: function () { return dev_server_preview_1.createForgePreviewErrorOverlayDocument; } });
|
|
52
|
-
Object.defineProperty(exports, "createMissingDevScriptDiagnostic", { enumerable: true, get: function () { return dev_server_preview_1.createMissingDevScriptDiagnostic; } });
|
|
53
65
|
Object.defineProperty(exports, "createSessionNotFoundDiagnostic", { enumerable: true, get: function () { return dev_server_preview_1.createSessionNotFoundDiagnostic; } });
|
|
54
66
|
Object.defineProperty(exports, "createSessionStoppedDiagnostic", { enumerable: true, get: function () { return dev_server_preview_1.createSessionStoppedDiagnostic; } });
|
|
55
|
-
Object.defineProperty(exports, "createUnsupportedDevScriptDiagnostic", { enumerable: true, get: function () { return dev_server_preview_1.createUnsupportedDevScriptDiagnostic; } });
|
|
56
67
|
Object.defineProperty(exports, "DefaultDevServerPreview", { enumerable: true, get: function () { return dev_server_preview_1.DefaultDevServerPreview; } });
|
|
57
68
|
Object.defineProperty(exports, "DEV_SERVER_PREVIEW_CAPABILITY", { enumerable: true, get: function () { return dev_server_preview_1.DEV_SERVER_PREVIEW_CAPABILITY; } });
|
|
58
|
-
Object.defineProperty(exports, "isSupportedViteDevScript", { enumerable: true, get: function () { return dev_server_preview_1.isSupportedViteDevScript; } });
|
|
59
69
|
var terminal_commands_1 = require("./terminal-commands");
|
|
60
70
|
Object.defineProperty(exports, "createForgeTerminal", { enumerable: true, get: function () { return terminal_commands_1.createForgeTerminal; } });
|
|
61
71
|
Object.defineProperty(exports, "createNpmInstallCommandHandler", { enumerable: true, get: function () { return terminal_commands_1.createNpmInstallCommandHandler; } });
|