@uapkg/diagnostics 1.1.7 → 1.1.9
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/base/Diagnostic.d.ts +30 -0
- package/dist/base/Diagnostic.d.ts.map +1 -0
- package/dist/base/Diagnostic.js +27 -0
- package/dist/base/Diagnostic.js.map +1 -0
- package/dist/base/DiagnosticBag.d.ts +42 -0
- package/dist/base/DiagnosticBag.d.ts.map +1 -0
- package/dist/base/DiagnosticBag.js +78 -0
- package/dist/base/DiagnosticBag.js.map +1 -0
- package/dist/base/DiagnosticFingerprint.d.ts +11 -0
- package/dist/base/DiagnosticFingerprint.d.ts.map +1 -0
- package/dist/base/DiagnosticFingerprint.js +23 -0
- package/dist/base/DiagnosticFingerprint.js.map +1 -0
- package/dist/base/DiagnosticLevel.d.ts +9 -0
- package/dist/base/DiagnosticLevel.d.ts.map +1 -0
- package/dist/base/DiagnosticLevel.js +2 -0
- package/dist/base/DiagnosticLevel.js.map +1 -0
- package/dist/base/Result.d.ts +24 -0
- package/dist/base/Result.d.ts.map +1 -0
- package/dist/base/Result.js +23 -0
- package/dist/base/Result.js.map +1 -0
- package/dist/config/ConfigDiagnostics.d.ts +47 -0
- package/dist/config/ConfigDiagnostics.d.ts.map +1 -0
- package/dist/config/ConfigDiagnostics.js +47 -0
- package/dist/config/ConfigDiagnostics.js.map +1 -0
- package/dist/general/GeneralDiagnostics.d.ts +21 -0
- package/dist/general/GeneralDiagnostics.d.ts.map +1 -0
- package/dist/general/GeneralDiagnostics.js +31 -0
- package/dist/general/GeneralDiagnostics.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/installer/InstallerDiagnostics.d.ts +53 -0
- package/dist/installer/InstallerDiagnostics.d.ts.map +1 -0
- package/dist/installer/InstallerDiagnostics.js +64 -0
- package/dist/installer/InstallerDiagnostics.js.map +1 -0
- package/dist/manifest/ManifestDiagnostics.d.ts +68 -0
- package/dist/manifest/ManifestDiagnostics.d.ts.map +1 -0
- package/dist/manifest/ManifestDiagnostics.js +90 -0
- package/dist/manifest/ManifestDiagnostics.js.map +1 -0
- package/dist/pack/PackDiagnostics.d.ts +47 -0
- package/dist/pack/PackDiagnostics.d.ts.map +1 -0
- package/dist/pack/PackDiagnostics.js +74 -0
- package/dist/pack/PackDiagnostics.js.map +1 -0
- package/dist/postinstall/PostinstallDiagnostics.d.ts +45 -0
- package/dist/postinstall/PostinstallDiagnostics.d.ts.map +1 -0
- package/dist/postinstall/PostinstallDiagnostics.js +59 -0
- package/dist/postinstall/PostinstallDiagnostics.js.map +1 -0
- package/dist/registry/RegistryDiagnostics.d.ts +56 -0
- package/dist/registry/RegistryDiagnostics.d.ts.map +1 -0
- package/dist/registry/RegistryDiagnostics.js +81 -0
- package/dist/registry/RegistryDiagnostics.js.map +1 -0
- package/dist/resolver/ResolverDiagnostics.d.ts +36 -0
- package/dist/resolver/ResolverDiagnostics.d.ts.map +1 -0
- package/dist/resolver/ResolverDiagnostics.js +49 -0
- package/dist/resolver/ResolverDiagnostics.js.map +1 -0
- package/dist/safety/SafetyDiagnostics.d.ts +31 -0
- package/dist/safety/SafetyDiagnostics.d.ts.map +1 -0
- package/dist/safety/SafetyDiagnostics.js +30 -0
- package/dist/safety/SafetyDiagnostics.js.map +1 -0
- package/dist/spec/SpecDiagnostics.d.ts +21 -0
- package/dist/spec/SpecDiagnostics.d.ts.map +1 -0
- package/dist/spec/SpecDiagnostics.js +31 -0
- package/dist/spec/SpecDiagnostics.js.map +1 -0
- package/dist/types.d.ts +32 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstallerDiagnostics.d.ts","sourceRoot":"","sources":["../../src/installer/InstallerDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factories
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createDownloadFailedDiagnostic(packageName, url, reason, attempt) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'error',
|
|
7
|
+
code: 'DOWNLOAD_FAILED',
|
|
8
|
+
message: `Download of "${packageName}" failed (attempt ${attempt}): ${reason}.`,
|
|
9
|
+
hint: 'Check your network connection and registry URL.',
|
|
10
|
+
data: { packageName, url, reason, attempt },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function createDownloadHttpStatusDiagnostic(packageName, url, status) {
|
|
14
|
+
return {
|
|
15
|
+
level: 'error',
|
|
16
|
+
code: 'DOWNLOAD_HTTP_STATUS',
|
|
17
|
+
message: `Download of "${packageName}" returned HTTP ${status}.`,
|
|
18
|
+
data: { packageName, url, status },
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function createNetworkTimeoutDiagnostic(packageName, url, timeoutSeconds) {
|
|
22
|
+
return {
|
|
23
|
+
level: 'error',
|
|
24
|
+
code: 'NETWORK_TIMEOUT',
|
|
25
|
+
message: `Download of "${packageName}" timed out after ${timeoutSeconds}s.`,
|
|
26
|
+
hint: 'Increase `network.timeout` in your uapkg config.',
|
|
27
|
+
data: { packageName, url, timeoutSeconds },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function createNetworkRetriesExhaustedDiagnostic(packageName, url, attempts) {
|
|
31
|
+
return {
|
|
32
|
+
level: 'error',
|
|
33
|
+
code: 'NETWORK_RETRIES_EXHAUSTED',
|
|
34
|
+
message: `Giving up on "${packageName}" after ${attempts} attempts.`,
|
|
35
|
+
hint: 'Increase `network.retries` or check network stability.',
|
|
36
|
+
data: { packageName, url, attempts },
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function createIntegrityMismatchDiagnostic(packageName, expected, actual) {
|
|
40
|
+
return {
|
|
41
|
+
level: 'error',
|
|
42
|
+
code: 'INTEGRITY_MISMATCH',
|
|
43
|
+
message: `Integrity mismatch for "${packageName}".`,
|
|
44
|
+
hint: 'The download may be corrupt or the registry entry has changed; re-run or report to the registry.',
|
|
45
|
+
data: { packageName, expected, actual },
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export function createExtractionFailedDiagnostic(packageName, path, reason) {
|
|
49
|
+
return {
|
|
50
|
+
level: 'error',
|
|
51
|
+
code: 'EXTRACTION_FAILED',
|
|
52
|
+
message: `Extraction of "${packageName}" to "${path}" failed: ${reason}.`,
|
|
53
|
+
data: { packageName, path, reason },
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function createDiskRemoveFailedDiagnostic(packageName, path, reason) {
|
|
57
|
+
return {
|
|
58
|
+
level: 'error',
|
|
59
|
+
code: 'DISK_REMOVE_FAILED',
|
|
60
|
+
message: `Failed to remove "${packageName}" at "${path}": ${reason}.`,
|
|
61
|
+
data: { packageName, path, reason },
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=InstallerDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstallerDiagnostics.js","sourceRoot":"","sources":["../../src/installer/InstallerDiagnostics.ts"],"names":[],"mappings":"AAsFA,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,UAAU,8BAA8B,CAC5C,WAAmB,EACnB,GAAW,EACX,MAAc,EACd,OAAe;IAEf,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,gBAAgB,WAAW,qBAAqB,OAAO,MAAM,MAAM,GAAG;QAC/E,IAAI,EAAE,iDAAiD;QACvD,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;KAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,WAAmB,EACnB,GAAW,EACX,MAAc;IAEd,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,gBAAgB,WAAW,mBAAmB,MAAM,GAAG;QAChE,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,WAAmB,EACnB,GAAW,EACX,cAAsB;IAEtB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,gBAAgB,WAAW,qBAAqB,cAAc,IAAI;QAC3E,IAAI,EAAE,kDAAkD;QACxD,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,WAAmB,EACnB,GAAW,EACX,QAAgB;IAEhB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,iBAAiB,WAAW,WAAW,QAAQ,YAAY;QACpE,IAAI,EAAE,wDAAwD;QAC9D,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,WAAmB,EACnB,QAAgB,EAChB,MAAc;IAEd,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,2BAA2B,WAAW,IAAI;QACnD,IAAI,EAAE,kGAAkG;QACxG,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,WAAmB,EACnB,IAAY,EACZ,MAAc;IAEd,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,kBAAkB,WAAW,SAAS,IAAI,aAAa,MAAM,GAAG;QACzE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,WAAmB,EACnB,IAAY,EACZ,MAAc;IAEd,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,qBAAqB,WAAW,SAAS,IAAI,MAAM,MAAM,GAAG;QACrE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;KACpC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** Manifest content failed schema validation. */
|
|
3
|
+
export type ManifestInvalidDiagnostic = DiagnosticBase<'MANIFEST_INVALID', {
|
|
4
|
+
readonly filePath: string;
|
|
5
|
+
readonly issues: readonly string[];
|
|
6
|
+
}>;
|
|
7
|
+
/** Lockfile content failed schema validation. */
|
|
8
|
+
export type LockfileInvalidDiagnostic = DiagnosticBase<'LOCKFILE_INVALID', {
|
|
9
|
+
readonly filePath: string;
|
|
10
|
+
readonly issues: readonly string[];
|
|
11
|
+
}>;
|
|
12
|
+
/** Lockfile is missing from disk. */
|
|
13
|
+
export type LockfileMissingDiagnostic = DiagnosticBase<'LOCKFILE_MISSING', {
|
|
14
|
+
readonly filePath: string;
|
|
15
|
+
}>;
|
|
16
|
+
/** Lockfile is present but does not match manifest/config expectations. */
|
|
17
|
+
export type LockfileOutOfSyncDiagnostic = DiagnosticBase<'LOCKFILE_OUT_OF_SYNC', {
|
|
18
|
+
readonly issues: readonly {
|
|
19
|
+
readonly severity: 'error' | 'warning' | 'info';
|
|
20
|
+
readonly code: string;
|
|
21
|
+
readonly message: string;
|
|
22
|
+
readonly packageName?: string;
|
|
23
|
+
}[];
|
|
24
|
+
readonly totalIssues: number;
|
|
25
|
+
readonly additionalIssues: number;
|
|
26
|
+
readonly logFilePath: string;
|
|
27
|
+
}>;
|
|
28
|
+
/** Overrides are only allowed in root project manifests. */
|
|
29
|
+
export type ForbiddenOverridesDiagnostic = DiagnosticBase<'FORBIDDEN_OVERRIDES', {
|
|
30
|
+
readonly manifestKind: string;
|
|
31
|
+
readonly filePath: string;
|
|
32
|
+
}>;
|
|
33
|
+
/** A registry name referenced in a dependency is not in configuration. */
|
|
34
|
+
export type UnresolvedRegistryDiagnostic = DiagnosticBase<'UNRESOLVED_REGISTRY', {
|
|
35
|
+
readonly registryName: string;
|
|
36
|
+
readonly dependencyName: string;
|
|
37
|
+
}>;
|
|
38
|
+
/** Failed to read a manifest or lockfile from disk. */
|
|
39
|
+
export type ManifestReadErrorDiagnostic = DiagnosticBase<'MANIFEST_READ_ERROR', {
|
|
40
|
+
readonly filePath: string;
|
|
41
|
+
readonly reason: string;
|
|
42
|
+
}>;
|
|
43
|
+
/** Failed to write a manifest or lockfile to disk. */
|
|
44
|
+
export type ManifestWriteErrorDiagnostic = DiagnosticBase<'MANIFEST_WRITE_ERROR', {
|
|
45
|
+
readonly filePath: string;
|
|
46
|
+
readonly reason: string;
|
|
47
|
+
}>;
|
|
48
|
+
/** Remove was requested for a package that does not exist in manifest buckets. */
|
|
49
|
+
export type DependencyNotFoundDiagnostic = DiagnosticBase<'DEPENDENCY_NOT_FOUND', {
|
|
50
|
+
readonly packageName: string;
|
|
51
|
+
}>;
|
|
52
|
+
/** Union of all manifest diagnostics. */
|
|
53
|
+
export type ManifestDiagnostic = ManifestInvalidDiagnostic | LockfileInvalidDiagnostic | LockfileMissingDiagnostic | LockfileOutOfSyncDiagnostic | ForbiddenOverridesDiagnostic | UnresolvedRegistryDiagnostic | ManifestReadErrorDiagnostic | ManifestWriteErrorDiagnostic | DependencyNotFoundDiagnostic;
|
|
54
|
+
export declare function createManifestInvalidDiagnostic(filePath: string, issues: readonly string[]): ManifestInvalidDiagnostic;
|
|
55
|
+
export declare function createLockfileInvalidDiagnostic(filePath: string, issues: readonly string[]): LockfileInvalidDiagnostic;
|
|
56
|
+
export declare function createLockfileMissingDiagnostic(filePath: string, level?: 'warning' | 'error'): LockfileMissingDiagnostic;
|
|
57
|
+
export declare function createLockfileOutOfSyncDiagnostic(issues: readonly {
|
|
58
|
+
readonly severity: 'error' | 'warning' | 'info';
|
|
59
|
+
readonly code: string;
|
|
60
|
+
readonly message: string;
|
|
61
|
+
readonly packageName?: string;
|
|
62
|
+
}[], totalIssues: number, logFilePath: string): LockfileOutOfSyncDiagnostic;
|
|
63
|
+
export declare function createForbiddenOverridesDiagnostic(manifestKind: string, filePath: string): ForbiddenOverridesDiagnostic;
|
|
64
|
+
export declare function createUnresolvedRegistryDiagnostic(registryName: string, dependencyName: string): UnresolvedRegistryDiagnostic;
|
|
65
|
+
export declare function createManifestReadErrorDiagnostic(filePath: string, reason: string): ManifestReadErrorDiagnostic;
|
|
66
|
+
export declare function createManifestWriteErrorDiagnostic(filePath: string, reason: string): ManifestWriteErrorDiagnostic;
|
|
67
|
+
export declare function createDependencyNotFoundDiagnostic(packageName: string): DependencyNotFoundDiagnostic;
|
|
68
|
+
//# sourceMappingURL=ManifestDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManifestDiagnostics.d.ts","sourceRoot":"","sources":["../../src/manifest/ManifestDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factory helpers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createManifestInvalidDiagnostic(filePath, issues) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'error',
|
|
7
|
+
code: 'MANIFEST_INVALID',
|
|
8
|
+
message: `Manifest validation failed for "${filePath}".`,
|
|
9
|
+
hint: 'Review your uapkg.json against the expected schema.',
|
|
10
|
+
data: { filePath, issues },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function createLockfileInvalidDiagnostic(filePath, issues) {
|
|
14
|
+
return {
|
|
15
|
+
level: 'error',
|
|
16
|
+
code: 'LOCKFILE_INVALID',
|
|
17
|
+
message: `Lockfile validation failed for "${filePath}".`,
|
|
18
|
+
hint: 'Delete uapkg.lock and re-run install to regenerate.',
|
|
19
|
+
data: { filePath, issues },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createLockfileMissingDiagnostic(filePath, level = 'warning') {
|
|
23
|
+
return {
|
|
24
|
+
level,
|
|
25
|
+
code: 'LOCKFILE_MISSING',
|
|
26
|
+
message: `No lockfile found at "${filePath}".`,
|
|
27
|
+
hint: 'Run `uapkg install` to generate a lockfile, or use `--frozen` only when one already exists.',
|
|
28
|
+
data: { filePath },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function createLockfileOutOfSyncDiagnostic(issues, totalIssues, logFilePath) {
|
|
32
|
+
return {
|
|
33
|
+
level: 'error',
|
|
34
|
+
code: 'LOCKFILE_OUT_OF_SYNC',
|
|
35
|
+
message: 'Lockfile is out of sync with the current manifest and registry state.',
|
|
36
|
+
hint: 'Run `uapkg install` or `uapkg update` to regenerate the lockfile before using `--frozen`.',
|
|
37
|
+
data: {
|
|
38
|
+
issues,
|
|
39
|
+
totalIssues,
|
|
40
|
+
additionalIssues: Math.max(0, totalIssues - issues.length),
|
|
41
|
+
logFilePath,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export function createForbiddenOverridesDiagnostic(manifestKind, filePath) {
|
|
46
|
+
return {
|
|
47
|
+
level: 'error',
|
|
48
|
+
code: 'FORBIDDEN_OVERRIDES',
|
|
49
|
+
message: `Overrides are not allowed in "${manifestKind}" manifests ("${filePath}").`,
|
|
50
|
+
hint: 'Overrides may only appear in root project manifests.',
|
|
51
|
+
data: { manifestKind, filePath },
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export function createUnresolvedRegistryDiagnostic(registryName, dependencyName) {
|
|
55
|
+
return {
|
|
56
|
+
level: 'error',
|
|
57
|
+
code: 'UNRESOLVED_REGISTRY',
|
|
58
|
+
message: `Registry "${registryName}" referenced by dependency "${dependencyName}" is not configured.`,
|
|
59
|
+
hint: 'Add the registry to your uapkg configuration.',
|
|
60
|
+
data: { registryName, dependencyName },
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function createManifestReadErrorDiagnostic(filePath, reason) {
|
|
64
|
+
return {
|
|
65
|
+
level: 'error',
|
|
66
|
+
code: 'MANIFEST_READ_ERROR',
|
|
67
|
+
message: `Failed to read "${filePath}": ${reason}.`,
|
|
68
|
+
hint: 'Ensure the file exists and is valid JSON.',
|
|
69
|
+
data: { filePath, reason },
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export function createManifestWriteErrorDiagnostic(filePath, reason) {
|
|
73
|
+
return {
|
|
74
|
+
level: 'error',
|
|
75
|
+
code: 'MANIFEST_WRITE_ERROR',
|
|
76
|
+
message: `Failed to write "${filePath}": ${reason}.`,
|
|
77
|
+
hint: 'Ensure the directory exists and you have write permissions.',
|
|
78
|
+
data: { filePath, reason },
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export function createDependencyNotFoundDiagnostic(packageName) {
|
|
82
|
+
return {
|
|
83
|
+
level: 'info',
|
|
84
|
+
code: 'DEPENDENCY_NOT_FOUND',
|
|
85
|
+
message: `Package "${packageName}" is not declared in this manifest and will not be removed.`,
|
|
86
|
+
hint: 'Run `uapkg list` to inspect currently declared dependencies.',
|
|
87
|
+
data: { packageName },
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=ManifestDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManifestDiagnostics.js","sourceRoot":"","sources":["../../src/manifest/ManifestDiagnostics.ts"],"names":[],"mappings":"AAwGA,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,UAAU,+BAA+B,CAC7C,QAAgB,EAChB,MAAyB;IAEzB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,mCAAmC,QAAQ,IAAI;QACxD,IAAI,EAAE,qDAAqD;QAC3D,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,QAAgB,EAChB,MAAyB;IAEzB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,mCAAmC,QAAQ,IAAI;QACxD,IAAI,EAAE,qDAAqD;QAC3D,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,QAAgB,EAChB,QAA6B,SAAS;IAEtC,OAAO;QACL,KAAK;QACL,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,yBAAyB,QAAQ,IAAI;QAC9C,IAAI,EAAE,6FAA6F;QACnG,IAAI,EAAE,EAAE,QAAQ,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,MAKG,EACH,WAAmB,EACnB,WAAmB;IAEnB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,uEAAuE;QAChF,IAAI,EAAE,2FAA2F;QACjG,IAAI,EAAE;YACJ,MAAM;YACN,WAAW;YACX,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1D,WAAW;SACZ;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,YAAoB,EACpB,QAAgB;IAEhB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,iCAAiC,YAAY,iBAAiB,QAAQ,KAAK;QACpF,IAAI,EAAE,sDAAsD;QAC5D,IAAI,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,YAAoB,EACpB,cAAsB;IAEtB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,aAAa,YAAY,+BAA+B,cAAc,sBAAsB;QACrG,IAAI,EAAE,+CAA+C;QACrD,IAAI,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAgB,EAAE,MAAc;IAChF,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,mBAAmB,QAAQ,MAAM,MAAM,GAAG;QACnD,IAAI,EAAE,2CAA2C;QACjD,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAAgB,EAAE,MAAc;IACjF,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,oBAAoB,QAAQ,MAAM,MAAM,GAAG;QACpD,IAAI,EAAE,6DAA6D;QACnE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,WAAmB;IACpE,OAAO;QACL,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,YAAY,WAAW,6DAA6D;QAC7F,IAAI,EAAE,8DAA8D;QACpE,IAAI,EAAE,EAAE,WAAW,EAAE;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** Cyclic symlink detected during file crawl. */
|
|
3
|
+
export type CyclicSymlinkDiagnostic = DiagnosticBase<'CYCLIC_SYMLINK', {
|
|
4
|
+
readonly filePath: string;
|
|
5
|
+
}>;
|
|
6
|
+
/** Symlink resolves outside the plugin root. */
|
|
7
|
+
export type SymlinkOutsideRootDiagnostic = DiagnosticBase<'SYMLINK_OUTSIDE_ROOT', {
|
|
8
|
+
readonly filePath: string;
|
|
9
|
+
}>;
|
|
10
|
+
/** Path normalization produced an invalid result. */
|
|
11
|
+
export type InvalidPathDiagnostic = DiagnosticBase<'INVALID_PATH', {
|
|
12
|
+
readonly filePath: string;
|
|
13
|
+
}>;
|
|
14
|
+
/** No uapkg.json found walking upward from cwd. */
|
|
15
|
+
export type PluginRootNotFoundDiagnostic = DiagnosticBase<'PLUGIN_ROOT_NOT_FOUND', {
|
|
16
|
+
readonly cwd: string;
|
|
17
|
+
}>;
|
|
18
|
+
/** Unresolved LFS pointer file (fatal when --allow-missing-lfs is off). */
|
|
19
|
+
export type UnresolvedLfsDiagnostic = DiagnosticBase<'UNRESOLVED_LFS', {
|
|
20
|
+
readonly filePath: string;
|
|
21
|
+
}>;
|
|
22
|
+
/** LFS pointer was skipped (warning when --allow-missing-lfs is on). */
|
|
23
|
+
export type LfsSkippedDiagnostic = DiagnosticBase<'LFS_SKIPPED', {
|
|
24
|
+
readonly filePath: string;
|
|
25
|
+
}>;
|
|
26
|
+
/** No files were selected for packing after filtering. */
|
|
27
|
+
export type NoFilesSelectedDiagnostic = DiagnosticBase<'NO_FILES_SELECTED', Record<string, never>>;
|
|
28
|
+
/** --outFile resolved to a directory instead of a file. */
|
|
29
|
+
export type OutFileIsDirectoryDiagnostic = DiagnosticBase<'OUTFILE_IS_DIRECTORY', {
|
|
30
|
+
readonly filePath: string;
|
|
31
|
+
}>;
|
|
32
|
+
/** Plugin descriptor (*.uplugin) is required for pack operations. */
|
|
33
|
+
export type UpluginMissingDiagnostic = DiagnosticBase<'UPLUGIN_MISSING', {
|
|
34
|
+
readonly pluginRoot: string;
|
|
35
|
+
}>;
|
|
36
|
+
/** Union of all pack diagnostics. */
|
|
37
|
+
export type PackDiagnostic = CyclicSymlinkDiagnostic | SymlinkOutsideRootDiagnostic | InvalidPathDiagnostic | PluginRootNotFoundDiagnostic | UnresolvedLfsDiagnostic | LfsSkippedDiagnostic | NoFilesSelectedDiagnostic | OutFileIsDirectoryDiagnostic | UpluginMissingDiagnostic;
|
|
38
|
+
export declare function createCyclicSymlinkDiagnostic(filePath: string): CyclicSymlinkDiagnostic;
|
|
39
|
+
export declare function createSymlinkOutsideRootDiagnostic(filePath: string): SymlinkOutsideRootDiagnostic;
|
|
40
|
+
export declare function createInvalidPathDiagnostic(filePath: string): InvalidPathDiagnostic;
|
|
41
|
+
export declare function createPluginRootNotFoundDiagnostic(cwd: string): PluginRootNotFoundDiagnostic;
|
|
42
|
+
export declare function createUnresolvedLfsDiagnostic(filePath: string): UnresolvedLfsDiagnostic;
|
|
43
|
+
export declare function createLfsSkippedDiagnostic(filePath: string): LfsSkippedDiagnostic;
|
|
44
|
+
export declare function createNoFilesSelectedDiagnostic(): NoFilesSelectedDiagnostic;
|
|
45
|
+
export declare function createOutFileIsDirectoryDiagnostic(filePath: string): OutFileIsDirectoryDiagnostic;
|
|
46
|
+
export declare function createUpluginMissingDiagnostic(pluginRoot: string): UpluginMissingDiagnostic;
|
|
47
|
+
//# sourceMappingURL=PackDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackDiagnostics.d.ts","sourceRoot":"","sources":["../../src/pack/PackDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,iDAAiD;AACjD,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,gBAAgB,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtG,gDAAgD;AAChD,MAAM,MAAM,4BAA4B,GAAG,cAAc,CAAC,sBAAsB,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjH,qDAAqD;AACrD,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,cAAc,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAElG,mDAAmD;AACnD,MAAM,MAAM,4BAA4B,GAAG,cAAc,CAAC,uBAAuB,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE7G,2EAA2E;AAC3E,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,gBAAgB,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtG,wEAAwE;AACxE,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,aAAa,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhG,0DAA0D;AAC1D,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnG,2DAA2D;AAC3D,MAAM,MAAM,4BAA4B,GAAG,cAAc,CAAC,sBAAsB,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjH,qEAAqE;AACrE,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC,iBAAiB,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE1G,qCAAqC;AACrC,MAAM,MAAM,cAAc,GACtB,uBAAuB,GACvB,4BAA4B,GAC5B,qBAAqB,GACrB,4BAA4B,GAC5B,uBAAuB,GACvB,oBAAoB,GACpB,yBAAyB,GACzB,4BAA4B,GAC5B,wBAAwB,CAAC;AAM7B,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,uBAAuB,CAOvF;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,4BAA4B,CAOjG;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAEnF;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,4BAA4B,CAQ5F;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,uBAAuB,CAQvF;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAOjF;AAED,wBAAgB,+BAA+B,IAAI,yBAAyB,CAO3E;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,4BAA4B,CAOjG;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,wBAAwB,CAQ3F"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factory helpers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createCyclicSymlinkDiagnostic(filePath) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'error',
|
|
7
|
+
code: 'CYCLIC_SYMLINK',
|
|
8
|
+
message: `Cyclic symlink detected at ${filePath}.`,
|
|
9
|
+
data: { filePath },
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function createSymlinkOutsideRootDiagnostic(filePath) {
|
|
13
|
+
return {
|
|
14
|
+
level: 'error',
|
|
15
|
+
code: 'SYMLINK_OUTSIDE_ROOT',
|
|
16
|
+
message: `Symlink resolves outside plugin root: ${filePath}.`,
|
|
17
|
+
data: { filePath },
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function createInvalidPathDiagnostic(filePath) {
|
|
21
|
+
return { level: 'error', code: 'INVALID_PATH', message: `Invalid normalized path: ${filePath}.`, data: { filePath } };
|
|
22
|
+
}
|
|
23
|
+
export function createPluginRootNotFoundDiagnostic(cwd) {
|
|
24
|
+
return {
|
|
25
|
+
level: 'error',
|
|
26
|
+
code: 'PLUGIN_ROOT_NOT_FOUND',
|
|
27
|
+
message: 'No uapkg.json found from current directory upward.',
|
|
28
|
+
hint: 'Run this command from within a uapkg project.',
|
|
29
|
+
data: { cwd },
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function createUnresolvedLfsDiagnostic(filePath) {
|
|
33
|
+
return {
|
|
34
|
+
level: 'error',
|
|
35
|
+
code: 'UNRESOLVED_LFS',
|
|
36
|
+
message: `Unresolved LFS pointer file: ${filePath}.`,
|
|
37
|
+
hint: "Run 'git lfs pull' or use --allow-missing-lfs.",
|
|
38
|
+
data: { filePath },
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function createLfsSkippedDiagnostic(filePath) {
|
|
42
|
+
return {
|
|
43
|
+
level: 'warning',
|
|
44
|
+
code: 'LFS_SKIPPED',
|
|
45
|
+
message: `Skipping unresolved LFS file: ${filePath}.`,
|
|
46
|
+
data: { filePath },
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function createNoFilesSelectedDiagnostic() {
|
|
50
|
+
return {
|
|
51
|
+
level: 'error',
|
|
52
|
+
code: 'NO_FILES_SELECTED',
|
|
53
|
+
message: 'No files selected for packing after ignore/LFS resolution.',
|
|
54
|
+
data: {},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export function createOutFileIsDirectoryDiagnostic(filePath) {
|
|
58
|
+
return {
|
|
59
|
+
level: 'error',
|
|
60
|
+
code: 'OUTFILE_IS_DIRECTORY',
|
|
61
|
+
message: '--outFile must be a file path, not a directory.',
|
|
62
|
+
data: { filePath },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function createUpluginMissingDiagnostic(pluginRoot) {
|
|
66
|
+
return {
|
|
67
|
+
level: 'error',
|
|
68
|
+
code: 'UPLUGIN_MISSING',
|
|
69
|
+
message: `No plugin descriptor (*.uplugin) was found in "${pluginRoot}".`,
|
|
70
|
+
hint: 'Ensure your plugin root contains a .uplugin file before running `uapkg pack`.',
|
|
71
|
+
data: { pluginRoot },
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=PackDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackDiagnostics.js","sourceRoot":"","sources":["../../src/pack/PackDiagnostics.ts"],"names":[],"mappings":"AA6CA,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,8BAA8B,QAAQ,GAAG;QAClD,IAAI,EAAE,EAAE,QAAQ,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAAgB;IACjE,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,yCAAyC,QAAQ,GAAG;QAC7D,IAAI,EAAE,EAAE,QAAQ,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,4BAA4B,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;AACxH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,GAAW;IAC5D,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,oDAAoD;QAC7D,IAAI,EAAE,+CAA+C;QACrD,IAAI,EAAE,EAAE,GAAG,EAAE;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,gCAAgC,QAAQ,GAAG;QACpD,IAAI,EAAE,gDAAgD;QACtD,IAAI,EAAE,EAAE,QAAQ,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,iCAAiC,QAAQ,GAAG;QACrD,IAAI,EAAE,EAAE,QAAQ,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,4DAA4D;QACrE,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAAgB;IACjE,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,iDAAiD;QAC1D,IAAI,EAAE,EAAE,QAAQ,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,UAAkB;IAC/D,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,kDAAkD,UAAU,IAAI;QACzE,IAAI,EAAE,+EAA+E;QACrF,IAAI,EAAE,EAAE,UAAU,EAAE;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** Postinstall was denied by policy (install.postInstallPolicy or per-registry override). */
|
|
3
|
+
export type PostinstallPolicyDeniedDiagnostic = DiagnosticBase<'POSTINSTALL_POLICY_DENIED', {
|
|
4
|
+
readonly packageName: string;
|
|
5
|
+
readonly registry: string;
|
|
6
|
+
readonly policy: 'allow' | 'deny';
|
|
7
|
+
readonly resolvedFrom: 'registry' | 'install';
|
|
8
|
+
}>;
|
|
9
|
+
/** Loading the postinstall module failed (e.g. import error). */
|
|
10
|
+
export type PostinstallLoadFailedDiagnostic = DiagnosticBase<'POSTINSTALL_LOAD_FAILED', {
|
|
11
|
+
readonly packageName: string;
|
|
12
|
+
readonly entryFile: string;
|
|
13
|
+
readonly reason: string;
|
|
14
|
+
}>;
|
|
15
|
+
/** The postinstall module's default export failed Zod validation. */
|
|
16
|
+
export type PostinstallInvalidExportDiagnostic = DiagnosticBase<'POSTINSTALL_INVALID_EXPORT', {
|
|
17
|
+
readonly packageName: string;
|
|
18
|
+
readonly entryFile: string;
|
|
19
|
+
readonly issues: readonly string[];
|
|
20
|
+
}>;
|
|
21
|
+
/** More than one candidate postinstall entry file exists (e.g. both .ts and .js). */
|
|
22
|
+
export type PostinstallDuplicateEntryDiagnostic = DiagnosticBase<'POSTINSTALL_DUPLICATE_ENTRY', {
|
|
23
|
+
readonly packageName: string;
|
|
24
|
+
readonly candidates: readonly string[];
|
|
25
|
+
}>;
|
|
26
|
+
/** Marker-block in a generated file is corrupt or was edited manually. */
|
|
27
|
+
export type PostinstallMarkerCorruptDiagnostic = DiagnosticBase<'POSTINSTALL_MARKER_CORRUPT', {
|
|
28
|
+
readonly packageName: string;
|
|
29
|
+
readonly file: string;
|
|
30
|
+
readonly reason: string;
|
|
31
|
+
}>;
|
|
32
|
+
/** esbuild failed to transpile a `.ts` postinstall entry file. */
|
|
33
|
+
export type PostinstallEsbuildErrorDiagnostic = DiagnosticBase<'POSTINSTALL_ESBUILD_ERROR', {
|
|
34
|
+
readonly packageName: string;
|
|
35
|
+
readonly entryFile: string;
|
|
36
|
+
readonly reason: string;
|
|
37
|
+
}>;
|
|
38
|
+
export type PostinstallDiagnostic = PostinstallPolicyDeniedDiagnostic | PostinstallLoadFailedDiagnostic | PostinstallInvalidExportDiagnostic | PostinstallDuplicateEntryDiagnostic | PostinstallMarkerCorruptDiagnostic | PostinstallEsbuildErrorDiagnostic;
|
|
39
|
+
export declare function createPostinstallPolicyDeniedDiagnostic(packageName: string, registry: string, policy: 'allow' | 'deny', resolvedFrom: 'registry' | 'install'): PostinstallPolicyDeniedDiagnostic;
|
|
40
|
+
export declare function createPostinstallLoadFailedDiagnostic(packageName: string, entryFile: string, reason: string): PostinstallLoadFailedDiagnostic;
|
|
41
|
+
export declare function createPostinstallInvalidExportDiagnostic(packageName: string, entryFile: string, issues: readonly string[]): PostinstallInvalidExportDiagnostic;
|
|
42
|
+
export declare function createPostinstallDuplicateEntryDiagnostic(packageName: string, candidates: readonly string[]): PostinstallDuplicateEntryDiagnostic;
|
|
43
|
+
export declare function createPostinstallMarkerCorruptDiagnostic(packageName: string, file: string, reason: string): PostinstallMarkerCorruptDiagnostic;
|
|
44
|
+
export declare function createPostinstallEsbuildErrorDiagnostic(packageName: string, entryFile: string, reason: string): PostinstallEsbuildErrorDiagnostic;
|
|
45
|
+
//# sourceMappingURL=PostinstallDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostinstallDiagnostics.d.ts","sourceRoot":"","sources":["../../src/postinstall/PostinstallDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,6FAA6F;AAC7F,MAAM,MAAM,iCAAiC,GAAG,cAAc,CAC5D,2BAA2B,EAC3B;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,UAAU,GAAG,SAAS,CAAC;CAC/C,CACF,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,+BAA+B,GAAG,cAAc,CAC1D,yBAAyB,EACzB;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,kCAAkC,GAAG,cAAc,CAC7D,4BAA4B,EAC5B;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CACF,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,mCAAmC,GAAG,cAAc,CAC9D,6BAA6B,EAC7B;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC,CACF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,kCAAkC,GAAG,cAAc,CAC7D,4BAA4B,EAC5B;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,iCAAiC,GAAG,cAAc,CAC5D,2BAA2B,EAC3B;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,iCAAiC,GACjC,+BAA+B,GAC/B,kCAAkC,GAClC,mCAAmC,GACnC,kCAAkC,GAClC,iCAAiC,CAAC;AAMtC,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GAAG,MAAM,EACxB,YAAY,EAAE,UAAU,GAAG,SAAS,GACnC,iCAAiC,CAWnC;AAED,wBAAgB,qCAAqC,CACnD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,+BAA+B,CAOjC;AAED,wBAAgB,wCAAwC,CACtD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,kCAAkC,CAQpC;AAED,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,mCAAmC,CAQrC;AAED,wBAAgB,wCAAwC,CACtD,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,kCAAkC,CAQpC;AAED,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,iCAAiC,CAQnC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factories
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createPostinstallPolicyDeniedDiagnostic(packageName, registry, policy, resolvedFrom) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'info',
|
|
7
|
+
code: 'POSTINSTALL_POLICY_DENIED',
|
|
8
|
+
message: `Postinstall skipped for "${packageName}" (policy=${policy}, from ${resolvedFrom}).`,
|
|
9
|
+
hint: resolvedFrom === 'registry'
|
|
10
|
+
? `Override per-registry via \`registries.${registry}.postInstallPolicy = "allow"\`.`
|
|
11
|
+
: 'Override globally via `install.postInstallPolicy = "allow"` in your uapkg config.',
|
|
12
|
+
data: { packageName, registry, policy, resolvedFrom },
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function createPostinstallLoadFailedDiagnostic(packageName, entryFile, reason) {
|
|
16
|
+
return {
|
|
17
|
+
level: 'error',
|
|
18
|
+
code: 'POSTINSTALL_LOAD_FAILED',
|
|
19
|
+
message: `Failed to load postinstall for "${packageName}" from "${entryFile}": ${reason}.`,
|
|
20
|
+
data: { packageName, entryFile, reason },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function createPostinstallInvalidExportDiagnostic(packageName, entryFile, issues) {
|
|
24
|
+
return {
|
|
25
|
+
level: 'error',
|
|
26
|
+
code: 'POSTINSTALL_INVALID_EXPORT',
|
|
27
|
+
message: `Postinstall default export for "${packageName}" is invalid.`,
|
|
28
|
+
hint: 'Use `definePostinstall({...})` and export the result as default.',
|
|
29
|
+
data: { packageName, entryFile, issues },
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function createPostinstallDuplicateEntryDiagnostic(packageName, candidates) {
|
|
33
|
+
return {
|
|
34
|
+
level: 'error',
|
|
35
|
+
code: 'POSTINSTALL_DUPLICATE_ENTRY',
|
|
36
|
+
message: `Multiple postinstall entry files found for "${packageName}".`,
|
|
37
|
+
hint: 'Keep only one of `.uapkg/postinstall.ts|.js|.mjs`.',
|
|
38
|
+
data: { packageName, candidates },
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function createPostinstallMarkerCorruptDiagnostic(packageName, file, reason) {
|
|
42
|
+
return {
|
|
43
|
+
level: 'error',
|
|
44
|
+
code: 'POSTINSTALL_MARKER_CORRUPT',
|
|
45
|
+
message: `Postinstall marker block corrupt in "${file}" for "${packageName}": ${reason}.`,
|
|
46
|
+
hint: 'Restore the UAPKG-BEGIN/END markers or remove them manually and re-run.',
|
|
47
|
+
data: { packageName, file, reason },
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function createPostinstallEsbuildErrorDiagnostic(packageName, entryFile, reason) {
|
|
51
|
+
return {
|
|
52
|
+
level: 'error',
|
|
53
|
+
code: 'POSTINSTALL_ESBUILD_ERROR',
|
|
54
|
+
message: `esbuild failed on "${entryFile}" for "${packageName}": ${reason}.`,
|
|
55
|
+
hint: 'Note: uapkg transpiles but does not type-check; fix the file in your IDE.',
|
|
56
|
+
data: { packageName, entryFile, reason },
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=PostinstallDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostinstallDiagnostics.js","sourceRoot":"","sources":["../../src/postinstall/PostinstallDiagnostics.ts"],"names":[],"mappings":"AA0EA,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,UAAU,uCAAuC,CACrD,WAAmB,EACnB,QAAgB,EAChB,MAAwB,EACxB,YAAoC;IAEpC,OAAO;QACL,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,4BAA4B,WAAW,aAAa,MAAM,UAAU,YAAY,IAAI;QAC7F,IAAI,EACF,YAAY,KAAK,UAAU;YACzB,CAAC,CAAC,0CAA0C,QAAQ,iCAAiC;YACrF,CAAC,CAAC,mFAAmF;QACzF,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE;KACtD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,WAAmB,EACnB,SAAiB,EACjB,MAAc;IAEd,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,mCAAmC,WAAW,WAAW,SAAS,MAAM,MAAM,GAAG;QAC1F,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,WAAmB,EACnB,SAAiB,EACjB,MAAyB;IAEzB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,mCAAmC,WAAW,eAAe;QACtE,IAAI,EAAE,kEAAkE;QACxE,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yCAAyC,CACvD,WAAmB,EACnB,UAA6B;IAE7B,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,+CAA+C,WAAW,IAAI;QACvE,IAAI,EAAE,oDAAoD;QAC1D,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,WAAmB,EACnB,IAAY,EACZ,MAAc;IAEd,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,wCAAwC,IAAI,UAAU,WAAW,MAAM,MAAM,GAAG;QACzF,IAAI,EAAE,yEAAyE;QAC/E,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,WAAmB,EACnB,SAAiB,EACjB,MAAc;IAEd,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,sBAAsB,SAAS,UAAU,WAAW,MAAM,MAAM,GAAG;QAC5E,IAAI,EAAE,2EAA2E;QACjF,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** A network-level error when communicating with a registry. */
|
|
3
|
+
export type NetworkErrorDiagnostic = DiagnosticBase<'NETWORK_ERROR', {
|
|
4
|
+
readonly url: string;
|
|
5
|
+
readonly reason: string;
|
|
6
|
+
}>;
|
|
7
|
+
/** A git operation failed. */
|
|
8
|
+
export type GitErrorDiagnostic = DiagnosticBase<'GIT_ERROR', {
|
|
9
|
+
readonly command: string;
|
|
10
|
+
readonly stderr: string;
|
|
11
|
+
readonly exitCode: number;
|
|
12
|
+
}>;
|
|
13
|
+
/** A registry document did not pass schema validation. */
|
|
14
|
+
export type SchemaInvalidDiagnostic = DiagnosticBase<'SCHEMA_INVALID', {
|
|
15
|
+
readonly filePath: string;
|
|
16
|
+
readonly issues: readonly string[];
|
|
17
|
+
}>;
|
|
18
|
+
/** A referenced registry name is not found in configuration. */
|
|
19
|
+
export type RegistryNotFoundDiagnostic = DiagnosticBase<'REGISTRY_NOT_FOUND', {
|
|
20
|
+
readonly registryName: string;
|
|
21
|
+
}>;
|
|
22
|
+
/** Failed to acquire the registry update lock. */
|
|
23
|
+
export type LockAcquisitionFailedDiagnostic = DiagnosticBase<'LOCK_ACQUISITION_FAILED', {
|
|
24
|
+
readonly lockPath: string;
|
|
25
|
+
readonly ownerPid: number;
|
|
26
|
+
}>;
|
|
27
|
+
/** Registry cache could not be read. */
|
|
28
|
+
export type CacheReadErrorDiagnostic = DiagnosticBase<'CACHE_READ_ERROR', {
|
|
29
|
+
readonly cachePath: string;
|
|
30
|
+
readonly reason: string;
|
|
31
|
+
}>;
|
|
32
|
+
/** Registry could not be reached, optionally with cached state available. */
|
|
33
|
+
export type RegistryUnreachableDiagnostic = DiagnosticBase<'REGISTRY_UNREACHABLE', {
|
|
34
|
+
readonly registryName: string;
|
|
35
|
+
readonly url: string;
|
|
36
|
+
readonly httpStatus?: number;
|
|
37
|
+
readonly cause: string;
|
|
38
|
+
readonly initialized: boolean;
|
|
39
|
+
}>;
|
|
40
|
+
/** Union of all registry diagnostics. */
|
|
41
|
+
export type RegistryDiagnostic = NetworkErrorDiagnostic | GitErrorDiagnostic | SchemaInvalidDiagnostic | RegistryNotFoundDiagnostic | LockAcquisitionFailedDiagnostic | CacheReadErrorDiagnostic | RegistryUnreachableDiagnostic;
|
|
42
|
+
export declare function createNetworkErrorDiagnostic(url: string, reason: string): NetworkErrorDiagnostic;
|
|
43
|
+
export declare function createGitErrorDiagnostic(command: string, stderr: string, exitCode: number): GitErrorDiagnostic;
|
|
44
|
+
export declare function createSchemaInvalidDiagnostic(filePath: string, issues: readonly string[]): SchemaInvalidDiagnostic;
|
|
45
|
+
export declare function createRegistryNotFoundDiagnostic(registryName: string): RegistryNotFoundDiagnostic;
|
|
46
|
+
export declare function createLockAcquisitionFailedDiagnostic(lockPath: string, ownerPid: number): LockAcquisitionFailedDiagnostic;
|
|
47
|
+
export declare function createCacheReadErrorDiagnostic(cachePath: string, reason: string): CacheReadErrorDiagnostic;
|
|
48
|
+
export declare function createRegistryUnreachableDiagnostic(input: {
|
|
49
|
+
readonly registryName: string;
|
|
50
|
+
readonly url: string;
|
|
51
|
+
readonly cause: string;
|
|
52
|
+
readonly initialized: boolean;
|
|
53
|
+
readonly httpStatus?: number;
|
|
54
|
+
readonly level?: 'error' | 'warning';
|
|
55
|
+
}): RegistryUnreachableDiagnostic;
|
|
56
|
+
//# sourceMappingURL=RegistryDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegistryDiagnostics.d.ts","sourceRoot":"","sources":["../../src/registry/RegistryDiagnostics.ts"],"names":[],"mappings":"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"}
|