@uapkg/diagnostics 1.1.8 → 1.1.10
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 +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -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/registryTools/RegistryToolsDiagnostics.d.ts +128 -0
- package/dist/registryTools/RegistryToolsDiagnostics.d.ts.map +1 -0
- package/dist/registryTools/RegistryToolsDiagnostics.js +56 -0
- package/dist/registryTools/RegistryToolsDiagnostics.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 +33 -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,81 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factory helpers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createNetworkErrorDiagnostic(url, reason) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'error',
|
|
7
|
+
code: 'NETWORK_ERROR',
|
|
8
|
+
message: `Network error for "${url}": ${reason}.`,
|
|
9
|
+
hint: 'Check your network connection and retry.',
|
|
10
|
+
data: { url, reason },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function createGitErrorDiagnostic(command, stderr, exitCode) {
|
|
14
|
+
return {
|
|
15
|
+
level: 'error',
|
|
16
|
+
code: 'GIT_ERROR',
|
|
17
|
+
message: `Git command failed (exit ${exitCode}): ${command}.`,
|
|
18
|
+
hint: 'Ensure git is installed and the registry URL is reachable.',
|
|
19
|
+
data: { command, stderr, exitCode },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createSchemaInvalidDiagnostic(filePath, issues) {
|
|
23
|
+
return {
|
|
24
|
+
level: 'error',
|
|
25
|
+
code: 'SCHEMA_INVALID',
|
|
26
|
+
message: `Schema validation failed for "${filePath}".`,
|
|
27
|
+
hint: 'Review the file against the expected schema.',
|
|
28
|
+
data: { filePath, issues },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function createRegistryNotFoundDiagnostic(registryName) {
|
|
32
|
+
return {
|
|
33
|
+
level: 'error',
|
|
34
|
+
code: 'REGISTRY_NOT_FOUND',
|
|
35
|
+
message: `Registry "${registryName}" is not defined in configuration.`,
|
|
36
|
+
hint: `Add the registry. Example:
|
|
37
|
+
uapkg registry add ${registryName} https://registry.example.com
|
|
38
|
+
|
|
39
|
+
Or configure manually:
|
|
40
|
+
uapkg config set registries.${registryName}.url https://registry.example.com
|
|
41
|
+
uapkg config set registries.${registryName}.ref.type branch
|
|
42
|
+
uapkg config set registries.${registryName}.ref.value main`,
|
|
43
|
+
data: { registryName },
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export function createLockAcquisitionFailedDiagnostic(lockPath, ownerPid) {
|
|
47
|
+
return {
|
|
48
|
+
level: 'error',
|
|
49
|
+
code: 'LOCK_ACQUISITION_FAILED',
|
|
50
|
+
message: `Could not acquire registry lock at "${lockPath}" (held by PID ${ownerPid}).`,
|
|
51
|
+
hint: 'Another uapkg process may be updating this registry. Wait or remove the stale lock.',
|
|
52
|
+
data: { lockPath, ownerPid },
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function createCacheReadErrorDiagnostic(cachePath, reason) {
|
|
56
|
+
return {
|
|
57
|
+
level: 'error',
|
|
58
|
+
code: 'CACHE_READ_ERROR',
|
|
59
|
+
message: `Failed to read registry cache at "${cachePath}": ${reason}.`,
|
|
60
|
+
hint: 'The cache may be corrupted. Try running `uapkg update` to refresh.',
|
|
61
|
+
data: { cachePath, reason },
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export function createRegistryUnreachableDiagnostic(input) {
|
|
65
|
+
return {
|
|
66
|
+
level: input.level ?? (input.initialized ? 'warning' : 'error'),
|
|
67
|
+
code: 'REGISTRY_UNREACHABLE',
|
|
68
|
+
message: `The "${input.registryName}" registry could not be reached at ${input.url}.`,
|
|
69
|
+
emitPolicy: 'once',
|
|
70
|
+
hint: `Verify the registry URL with 'uapkg config get registries.${input.registryName}.url --trace'.
|
|
71
|
+
The registry may also be temporarily unavailable.`,
|
|
72
|
+
data: {
|
|
73
|
+
registryName: input.registryName,
|
|
74
|
+
url: input.url,
|
|
75
|
+
cause: input.cause,
|
|
76
|
+
initialized: input.initialized,
|
|
77
|
+
httpStatus: input.httpStatus,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=RegistryDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegistryDiagnostics.js","sourceRoot":"","sources":["../../src/registry/RegistryDiagnostics.ts"],"names":[],"mappings":"AAkFA,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,UAAU,4BAA4B,CAAC,GAAW,EAAE,MAAc;IACtE,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,sBAAsB,GAAG,MAAM,MAAM,GAAG;QACjD,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,MAAc,EAAE,QAAgB;IACxF,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,4BAA4B,QAAQ,MAAM,OAAO,GAAG;QAC7D,IAAI,EAAE,4DAA4D;QAClE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB,EAAE,MAAyB;IACvF,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,iCAAiC,QAAQ,IAAI;QACtD,IAAI,EAAE,8CAA8C;QACpD,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,YAAoB;IACnE,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,aAAa,YAAY,oCAAoC;QACtE,IAAI,EAAE;uBACa,YAAY;;;gCAGH,YAAY;gCACZ,YAAY;gCACZ,YAAY,iBAAiB;QACzD,IAAI,EAAE,EAAE,YAAY,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,QAAgB,EAChB,QAAgB;IAEhB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,uCAAuC,QAAQ,kBAAkB,QAAQ,IAAI;QACtF,IAAI,EAAE,qFAAqF;QAC3F,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,SAAiB,EAAE,MAAc;IAC9E,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,qCAAqC,SAAS,MAAM,MAAM,GAAG;QACtE,IAAI,EAAE,oEAAoE;QAC1E,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,KAOnD;IACC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/D,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,QAAQ,KAAK,CAAC,YAAY,sCAAsC,KAAK,CAAC,GAAG,GAAG;QACrF,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,6DAA6D,KAAK,CAAC,YAAY;kDACvC;QAC9C,IAAI,EAAE;YACJ,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** Package name does not match its on-disk manifest path. */
|
|
3
|
+
export type RegistryToolsPathMismatchDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_PATH_MISMATCH', {
|
|
4
|
+
readonly packageName: string;
|
|
5
|
+
readonly expectedPath: string;
|
|
6
|
+
readonly actualPath: string;
|
|
7
|
+
}>;
|
|
8
|
+
/** Existing package manifest declares a different `packageSource` than the request. */
|
|
9
|
+
export type RegistryToolsPackageSourceMismatchDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_PACKAGE_SOURCE_MISMATCH', {
|
|
10
|
+
readonly packageName: string;
|
|
11
|
+
readonly existing: {
|
|
12
|
+
readonly type: string;
|
|
13
|
+
readonly url: string;
|
|
14
|
+
};
|
|
15
|
+
readonly requested: {
|
|
16
|
+
readonly type: string;
|
|
17
|
+
readonly url: string;
|
|
18
|
+
};
|
|
19
|
+
}>;
|
|
20
|
+
/** A version already exists and `overwriteExistingVersion` was not set. */
|
|
21
|
+
export type RegistryToolsVersionExistsDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_VERSION_EXISTS', {
|
|
22
|
+
readonly packageName: string;
|
|
23
|
+
readonly version: string;
|
|
24
|
+
}>;
|
|
25
|
+
/** Requested version was not found on the package. */
|
|
26
|
+
export type RegistryToolsVersionNotFoundDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_VERSION_NOT_FOUND', {
|
|
27
|
+
readonly packageName: string;
|
|
28
|
+
readonly version: string;
|
|
29
|
+
}>;
|
|
30
|
+
/** Package manifest is missing and was not allowed to be created. */
|
|
31
|
+
export type RegistryToolsPackageMissingDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_PACKAGE_MISSING', {
|
|
32
|
+
readonly packageName: string;
|
|
33
|
+
readonly manifestPath: string;
|
|
34
|
+
}>;
|
|
35
|
+
/** Versions in a manifest are not sorted newest-first by SemVer. */
|
|
36
|
+
export type RegistryToolsVersionsUnsortedDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_VERSIONS_UNSORTED', {
|
|
37
|
+
readonly packageName: string;
|
|
38
|
+
readonly actual: readonly string[];
|
|
39
|
+
readonly expected: readonly string[];
|
|
40
|
+
}>;
|
|
41
|
+
/** External-registry dependency is forbidden by policy. */
|
|
42
|
+
export type RegistryToolsExternalRegistryDeniedDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_EXTERNAL_REGISTRY_DENIED', {
|
|
43
|
+
readonly packageName: string;
|
|
44
|
+
readonly version: string;
|
|
45
|
+
readonly dependency: string;
|
|
46
|
+
readonly registryName: string;
|
|
47
|
+
readonly bucket: 'dependencies' | 'devDependencies' | 'peerDependencies';
|
|
48
|
+
}>;
|
|
49
|
+
/** External-registry dependency uses a registry name not in the allow-list. */
|
|
50
|
+
export type RegistryToolsExternalRegistryNotAllowedDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_EXTERNAL_REGISTRY_NOT_ALLOWED', {
|
|
51
|
+
readonly packageName: string;
|
|
52
|
+
readonly version: string;
|
|
53
|
+
readonly dependency: string;
|
|
54
|
+
readonly registryName: string;
|
|
55
|
+
readonly allowList: readonly string[];
|
|
56
|
+
readonly bucket: 'dependencies' | 'devDependencies' | 'peerDependencies';
|
|
57
|
+
}>;
|
|
58
|
+
/** A required (non-external) dependency is not present in this registry. */
|
|
59
|
+
export type RegistryToolsDependencyNotInRegistryDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_DEPENDENCY_NOT_IN_REGISTRY', {
|
|
60
|
+
readonly packageName: string;
|
|
61
|
+
readonly version: string;
|
|
62
|
+
readonly dependency: string;
|
|
63
|
+
}>;
|
|
64
|
+
/** A dependency version range cannot be satisfied by any version in the registry. */
|
|
65
|
+
export type RegistryToolsDependencyRangeUnreachableDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_DEPENDENCY_RANGE_UNREACHABLE', {
|
|
66
|
+
readonly packageName: string;
|
|
67
|
+
readonly version: string;
|
|
68
|
+
readonly dependency: string;
|
|
69
|
+
readonly range: string;
|
|
70
|
+
readonly availableVersions: readonly string[];
|
|
71
|
+
}>;
|
|
72
|
+
/** A removal was attempted but disallowed by policy. */
|
|
73
|
+
export type RegistryToolsRemovalDeniedDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_REMOVAL_DENIED', {
|
|
74
|
+
readonly kind: 'version' | 'package';
|
|
75
|
+
readonly packageName: string;
|
|
76
|
+
readonly version?: string;
|
|
77
|
+
readonly policy: string;
|
|
78
|
+
}>;
|
|
79
|
+
/** A computed integrity does not match an expected integrity. */
|
|
80
|
+
export type RegistryToolsIntegrityMismatchDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_INTEGRITY_MISMATCH', {
|
|
81
|
+
readonly filePath: string;
|
|
82
|
+
readonly expectedHash: string;
|
|
83
|
+
readonly actualHash: string;
|
|
84
|
+
readonly expectedSize: number;
|
|
85
|
+
readonly actualSize: number;
|
|
86
|
+
}>;
|
|
87
|
+
/** A release file name does not match an accepted pattern. */
|
|
88
|
+
export type RegistryToolsReleaseFileNameInvalidDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_RELEASE_FILE_NAME_INVALID', {
|
|
89
|
+
readonly packageName: string;
|
|
90
|
+
readonly version: string;
|
|
91
|
+
readonly fileName: string;
|
|
92
|
+
readonly accepted: readonly string[];
|
|
93
|
+
}>;
|
|
94
|
+
/** Generic violation surfaced by the official-registry policy validator. */
|
|
95
|
+
export type RegistryToolsOfficialPolicyViolationDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_OFFICIAL_POLICY_VIOLATION', {
|
|
96
|
+
readonly rule: string;
|
|
97
|
+
readonly detail: string;
|
|
98
|
+
readonly path?: string;
|
|
99
|
+
}>;
|
|
100
|
+
/** An unrecognized top-level or nested key was found in a registry manifest. */
|
|
101
|
+
export type RegistryToolsUnknownKeyDiagnostic = DiagnosticBase<'REGISTRY_TOOLS_UNKNOWN_KEY', {
|
|
102
|
+
readonly path: string;
|
|
103
|
+
readonly key: string;
|
|
104
|
+
}>;
|
|
105
|
+
/** Union of all registry-tools diagnostics. */
|
|
106
|
+
export type RegistryToolsDiagnostic = RegistryToolsPathMismatchDiagnostic | RegistryToolsPackageSourceMismatchDiagnostic | RegistryToolsVersionExistsDiagnostic | RegistryToolsVersionNotFoundDiagnostic | RegistryToolsPackageMissingDiagnostic | RegistryToolsVersionsUnsortedDiagnostic | RegistryToolsExternalRegistryDeniedDiagnostic | RegistryToolsExternalRegistryNotAllowedDiagnostic | RegistryToolsDependencyNotInRegistryDiagnostic | RegistryToolsDependencyRangeUnreachableDiagnostic | RegistryToolsRemovalDeniedDiagnostic | RegistryToolsIntegrityMismatchDiagnostic | RegistryToolsReleaseFileNameInvalidDiagnostic | RegistryToolsOfficialPolicyViolationDiagnostic | RegistryToolsUnknownKeyDiagnostic;
|
|
107
|
+
export declare function createRegistryToolsPathMismatchDiagnostic(packageName: string, expectedPath: string, actualPath: string): RegistryToolsPathMismatchDiagnostic;
|
|
108
|
+
export declare function createRegistryToolsPackageSourceMismatchDiagnostic(packageName: string, existing: {
|
|
109
|
+
readonly type: string;
|
|
110
|
+
readonly url: string;
|
|
111
|
+
}, requested: {
|
|
112
|
+
readonly type: string;
|
|
113
|
+
readonly url: string;
|
|
114
|
+
}): RegistryToolsPackageSourceMismatchDiagnostic;
|
|
115
|
+
export declare function createRegistryToolsVersionExistsDiagnostic(packageName: string, version: string): RegistryToolsVersionExistsDiagnostic;
|
|
116
|
+
export declare function createRegistryToolsVersionNotFoundDiagnostic(packageName: string, version: string): RegistryToolsVersionNotFoundDiagnostic;
|
|
117
|
+
export declare function createRegistryToolsPackageMissingDiagnostic(packageName: string, manifestPath: string): RegistryToolsPackageMissingDiagnostic;
|
|
118
|
+
export declare function createRegistryToolsVersionsUnsortedDiagnostic(packageName: string, actual: readonly string[], expected: readonly string[]): RegistryToolsVersionsUnsortedDiagnostic;
|
|
119
|
+
export declare function createRegistryToolsExternalRegistryDeniedDiagnostic(args: Omit<RegistryToolsExternalRegistryDeniedDiagnostic['data'], never>): RegistryToolsExternalRegistryDeniedDiagnostic;
|
|
120
|
+
export declare function createRegistryToolsExternalRegistryNotAllowedDiagnostic(args: Omit<RegistryToolsExternalRegistryNotAllowedDiagnostic['data'], never>): RegistryToolsExternalRegistryNotAllowedDiagnostic;
|
|
121
|
+
export declare function createRegistryToolsDependencyNotInRegistryDiagnostic(packageName: string, version: string, dependency: string): RegistryToolsDependencyNotInRegistryDiagnostic;
|
|
122
|
+
export declare function createRegistryToolsDependencyRangeUnreachableDiagnostic(packageName: string, version: string, dependency: string, range: string, availableVersions: readonly string[]): RegistryToolsDependencyRangeUnreachableDiagnostic;
|
|
123
|
+
export declare function createRegistryToolsRemovalDeniedDiagnostic(kind: 'version' | 'package', packageName: string, policy: string, version?: string): RegistryToolsRemovalDeniedDiagnostic;
|
|
124
|
+
export declare function createRegistryToolsIntegrityMismatchDiagnostic(filePath: string, expectedHash: string, actualHash: string, expectedSize: number, actualSize: number): RegistryToolsIntegrityMismatchDiagnostic;
|
|
125
|
+
export declare function createRegistryToolsReleaseFileNameInvalidDiagnostic(packageName: string, version: string, fileName: string, accepted: readonly string[]): RegistryToolsReleaseFileNameInvalidDiagnostic;
|
|
126
|
+
export declare function createRegistryToolsOfficialPolicyViolationDiagnostic(rule: string, detail: string, path?: string): RegistryToolsOfficialPolicyViolationDiagnostic;
|
|
127
|
+
export declare function createRegistryToolsUnknownKeyDiagnostic(path: string, key: string, level?: 'warning' | 'error'): RegistryToolsUnknownKeyDiagnostic;
|
|
128
|
+
//# sourceMappingURL=RegistryToolsDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegistryToolsDiagnostics.d.ts","sourceRoot":"","sources":["../../src/registryTools/RegistryToolsDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAU5D,6DAA6D;AAC7D,MAAM,MAAM,mCAAmC,GAAG,cAAc,CAC9D,8BAA8B,EAC9B;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CACF,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,4CAA4C,GAAG,cAAc,CACvE,wCAAwC,EACxC;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE,CACF,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,oCAAoC,GAAG,cAAc,CAC/D,+BAA+B,EAC/B;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CACF,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,sCAAsC,GAAG,cAAc,CACjE,kCAAkC,EAClC;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CACF,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,qCAAqC,GAAG,cAAc,CAChE,gCAAgC,EAChC;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CACF,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,uCAAuC,GAAG,cAAc,CAClE,kCAAkC,EAClC;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CACF,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,6CAA6C,GAAG,cAAc,CACxE,yCAAyC,EACzC;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;CAC1E,CACF,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,iDAAiD,GAAG,cAAc,CAC5E,8CAA8C,EAC9C;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;CAC1E,CACF,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,8CAA8C,GAAG,cAAc,CACzE,2CAA2C,EAC3C;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CACF,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,iDAAiD,GAAG,cAAc,CAC5E,6CAA6C,EAC7C;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C,CACF,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,oCAAoC,GAAG,cAAc,CAC/D,+BAA+B,EAC/B;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,wCAAwC,GAAG,cAAc,CACnE,mCAAmC,EACnC;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CACF,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,6CAA6C,GAAG,cAAc,CACxE,0CAA0C,EAC1C;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CACF,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,8CAA8C,GAAG,cAAc,CACzE,0CAA0C,EAC1C;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CACF,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,iCAAiC,GAAG,cAAc,CAC5D,4BAA4B,EAC5B;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CACF,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,uBAAuB,GAC/B,mCAAmC,GACnC,4CAA4C,GAC5C,oCAAoC,GACpC,sCAAsC,GACtC,qCAAqC,GACrC,uCAAuC,GACvC,6CAA6C,GAC7C,iDAAiD,GACjD,8CAA8C,GAC9C,iDAAiD,GACjD,oCAAoC,GACpC,wCAAwC,GACxC,6CAA6C,GAC7C,8CAA8C,GAC9C,iCAAiC,CAAC;AAUtC,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,mCAAmC,CASrC;AAED,wBAAgB,kDAAkD,CAChE,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACzD,SAAS,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACzD,4CAA4C,CAU9C;AAED,wBAAgB,0CAA0C,CACxD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,oCAAoC,CAStC;AAED,wBAAgB,4CAA4C,CAC1D,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,sCAAsC,CASxC;AAED,wBAAgB,2CAA2C,CACzD,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,qCAAqC,CASvC;AAED,wBAAgB,6CAA6C,CAC3D,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,uCAAuC,CASzC;AAED,wBAAgB,mDAAmD,CACjE,IAAI,EAAE,IAAI,CAAC,6CAA6C,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GACvE,6CAA6C,CAU/C;AAED,wBAAgB,uDAAuD,CACrE,IAAI,EAAE,IAAI,CAAC,iDAAiD,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAC3E,iDAAiD,CAUnD;AAED,wBAAgB,oDAAoD,CAClE,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,8CAA8C,CAShD;AAED,wBAAgB,uDAAuD,CACrE,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,iDAAiD,CASnD;AAED,wBAAgB,0CAA0C,CACxD,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,oCAAoC,CAWtC;AAED,wBAAgB,8CAA8C,CAC5D,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,wCAAwC,CAS1C;AAED,wBAAgB,mDAAmD,CACjE,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,6CAA6C,CAS/C;AAED,wBAAgB,oDAAoD,CAClE,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,8CAA8C,CAShD;AAED,wBAAgB,uCAAuC,CACrD,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,SAAS,GAAG,OAAmB,GACrC,iCAAiC,CASnC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factory helpers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
import { createDiagnostic } from '../base/Diagnostic.js';
|
|
5
|
+
const ONCE = { emitPolicy: 'once' };
|
|
6
|
+
export function createRegistryToolsPathMismatchDiagnostic(packageName, expectedPath, actualPath) {
|
|
7
|
+
return createDiagnostic('REGISTRY_TOOLS_PATH_MISMATCH', 'error', `Package "${packageName}" was found at "${actualPath}" but should live at "${expectedPath}".`, { packageName, expectedPath, actualPath }, 'Move the manifest to packages/{first-letter}/{name}.json or correct the package name.', ONCE);
|
|
8
|
+
}
|
|
9
|
+
export function createRegistryToolsPackageSourceMismatchDiagnostic(packageName, existing, requested) {
|
|
10
|
+
return createDiagnostic('REGISTRY_TOOLS_PACKAGE_SOURCE_MISMATCH', 'error', `Package "${packageName}" already declares a different packageSource (${existing.type}:${existing.url}); ` +
|
|
11
|
+
`the request used (${requested.type}:${requested.url}).`, { packageName, existing, requested }, 'Either update the request to match the existing source, or remove and re-create the package intentionally.', ONCE);
|
|
12
|
+
}
|
|
13
|
+
export function createRegistryToolsVersionExistsDiagnostic(packageName, version) {
|
|
14
|
+
return createDiagnostic('REGISTRY_TOOLS_VERSION_EXISTS', 'error', `Version "${version}" already exists for package "${packageName}".`, { packageName, version }, 'Pass `overwriteExistingVersion: true` to replace it, or publish a new version.', ONCE);
|
|
15
|
+
}
|
|
16
|
+
export function createRegistryToolsVersionNotFoundDiagnostic(packageName, version) {
|
|
17
|
+
return createDiagnostic('REGISTRY_TOOLS_VERSION_NOT_FOUND', 'error', `Version "${version}" was not found for package "${packageName}".`, { packageName, version }, 'Use `listVersions` to see the available versions.', ONCE);
|
|
18
|
+
}
|
|
19
|
+
export function createRegistryToolsPackageMissingDiagnostic(packageName, manifestPath) {
|
|
20
|
+
return createDiagnostic('REGISTRY_TOOLS_PACKAGE_MISSING', 'error', `Package manifest for "${packageName}" was not found at "${manifestPath}".`, { packageName, manifestPath }, 'Pass `createPackageManifestIfMissing: true` on the add request to create it.', ONCE);
|
|
21
|
+
}
|
|
22
|
+
export function createRegistryToolsVersionsUnsortedDiagnostic(packageName, actual, expected) {
|
|
23
|
+
return createDiagnostic('REGISTRY_TOOLS_VERSIONS_UNSORTED', 'warning', `Versions on package "${packageName}" are not sorted newest-first.`, { packageName, actual, expected }, 'Re-write the manifest. Registry tools sorts versions newest-first by SemVer.', ONCE);
|
|
24
|
+
}
|
|
25
|
+
export function createRegistryToolsExternalRegistryDeniedDiagnostic(args) {
|
|
26
|
+
return createDiagnostic('REGISTRY_TOOLS_EXTERNAL_REGISTRY_DENIED', 'error', `Dependency "${args.dependency}" of "${args.packageName}@${args.version}" targets external registry ` +
|
|
27
|
+
`"${args.registryName}", but external registries are denied by policy.`, args, 'Set `policy.externalRegistries` to `allow-listed` or `allow-any` if cross-registry dependencies are intended.', ONCE);
|
|
28
|
+
}
|
|
29
|
+
export function createRegistryToolsExternalRegistryNotAllowedDiagnostic(args) {
|
|
30
|
+
return createDiagnostic('REGISTRY_TOOLS_EXTERNAL_REGISTRY_NOT_ALLOWED', 'error', `Dependency "${args.dependency}" of "${args.packageName}@${args.version}" targets external registry ` +
|
|
31
|
+
`"${args.registryName}", which is not in the allow-list [${args.allowList.join(', ')}].`, args, 'Add the registry name to `policy.allowedExternalRegistryNames` or remove the dependency.', ONCE);
|
|
32
|
+
}
|
|
33
|
+
export function createRegistryToolsDependencyNotInRegistryDiagnostic(packageName, version, dependency) {
|
|
34
|
+
return createDiagnostic('REGISTRY_TOOLS_DEPENDENCY_NOT_IN_REGISTRY', 'error', `Dependency "${dependency}" of "${packageName}@${version}" is not present in this registry.`, { packageName, version, dependency }, 'Publish the dependency first, or mark it as an external-registry dependency.', ONCE);
|
|
35
|
+
}
|
|
36
|
+
export function createRegistryToolsDependencyRangeUnreachableDiagnostic(packageName, version, dependency, range, availableVersions) {
|
|
37
|
+
return createDiagnostic('REGISTRY_TOOLS_DEPENDENCY_RANGE_UNREACHABLE', 'error', `Dependency "${dependency}@${range}" of "${packageName}@${version}" cannot be satisfied by any published version.`, { packageName, version, dependency, range, availableVersions }, `Available versions: ${availableVersions.length > 0 ? availableVersions.join(', ') : '(none)'}.`, ONCE);
|
|
38
|
+
}
|
|
39
|
+
export function createRegistryToolsRemovalDeniedDiagnostic(kind, packageName, policy, version) {
|
|
40
|
+
return createDiagnostic('REGISTRY_TOOLS_REMOVAL_DENIED', 'error', kind === 'version'
|
|
41
|
+
? `Removing version "${version ?? '?'}" of "${packageName}" is not allowed (policy: ${policy}).`
|
|
42
|
+
: `Removing package "${packageName}" is not allowed (policy: ${policy}).`, { kind, packageName, version, policy }, 'Update `policy.removals` if removals are intentional.', ONCE);
|
|
43
|
+
}
|
|
44
|
+
export function createRegistryToolsIntegrityMismatchDiagnostic(filePath, expectedHash, actualHash, expectedSize, actualSize) {
|
|
45
|
+
return createDiagnostic('REGISTRY_TOOLS_INTEGRITY_MISMATCH', 'error', `Integrity mismatch for "${filePath}".`, { filePath, expectedHash, actualHash, expectedSize, actualSize }, `Expected ${expectedHash} (${expectedSize} bytes); got ${actualHash} (${actualSize} bytes).`, ONCE);
|
|
46
|
+
}
|
|
47
|
+
export function createRegistryToolsReleaseFileNameInvalidDiagnostic(packageName, version, fileName, accepted) {
|
|
48
|
+
return createDiagnostic('REGISTRY_TOOLS_RELEASE_FILE_NAME_INVALID', 'error', `Release file "${fileName}" for "${packageName}@${version}" is not an accepted name.`, { packageName, version, fileName, accepted }, `Use one of: ${accepted.join(', ')}.`, ONCE);
|
|
49
|
+
}
|
|
50
|
+
export function createRegistryToolsOfficialPolicyViolationDiagnostic(rule, detail, path) {
|
|
51
|
+
return createDiagnostic('REGISTRY_TOOLS_OFFICIAL_POLICY_VIOLATION', 'error', `Official-registry policy violation (${rule}): ${detail}.`, { rule, detail, path }, 'Adjust the package contents to satisfy the official-registry policy and try again.', ONCE);
|
|
52
|
+
}
|
|
53
|
+
export function createRegistryToolsUnknownKeyDiagnostic(path, key, level = 'warning') {
|
|
54
|
+
return createDiagnostic('REGISTRY_TOOLS_UNKNOWN_KEY', level, `Unknown key "${key}" at "${path}".`, { path, key }, 'Remove the key, or update `@uapkg/registry-schema` if it is a new field.', ONCE);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=RegistryToolsDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegistryToolsDiagnostics.js","sourceRoot":"","sources":["../../src/registryTools/RegistryToolsDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** Two or more registries resolve the same package name to different versions (single-version kind). */
|
|
3
|
+
export type VersionConflictDiagnostic = DiagnosticBase<'VERSION_CONFLICT', {
|
|
4
|
+
readonly packageName: string;
|
|
5
|
+
readonly versions: readonly string[];
|
|
6
|
+
readonly registry: string;
|
|
7
|
+
}>;
|
|
8
|
+
/** A dependency cycle was detected. */
|
|
9
|
+
export type CircularDepDiagnostic = DiagnosticBase<'CIRCULAR_DEP', {
|
|
10
|
+
readonly path: readonly string[];
|
|
11
|
+
}>;
|
|
12
|
+
/** Requested package could not be found in any configured registry. */
|
|
13
|
+
export type PackageNotFoundDiagnostic = DiagnosticBase<'PACKAGE_NOT_FOUND', {
|
|
14
|
+
readonly packageName: string;
|
|
15
|
+
readonly registry: string;
|
|
16
|
+
}>;
|
|
17
|
+
/** No published version satisfies the requested range. */
|
|
18
|
+
export type VersionNotFoundDiagnostic = DiagnosticBase<'VERSION_NOT_FOUND', {
|
|
19
|
+
readonly packageName: string;
|
|
20
|
+
readonly versionRange: string;
|
|
21
|
+
readonly registry: string;
|
|
22
|
+
readonly availableVersions: readonly string[];
|
|
23
|
+
}>;
|
|
24
|
+
/** Same package name required from two different registries. */
|
|
25
|
+
export type RegistryNameCollisionDiagnostic = DiagnosticBase<'REGISTRY_NAME_COLLISION', {
|
|
26
|
+
readonly packageName: string;
|
|
27
|
+
readonly registries: readonly string[];
|
|
28
|
+
}>;
|
|
29
|
+
/** Union of all resolver diagnostics. */
|
|
30
|
+
export type ResolverDiagnostic = VersionConflictDiagnostic | CircularDepDiagnostic | PackageNotFoundDiagnostic | VersionNotFoundDiagnostic | RegistryNameCollisionDiagnostic;
|
|
31
|
+
export declare function createVersionConflictDiagnostic(packageName: string, versions: readonly string[], registry: string): VersionConflictDiagnostic;
|
|
32
|
+
export declare function createCircularDepDiagnostic(path: readonly string[]): CircularDepDiagnostic;
|
|
33
|
+
export declare function createPackageNotFoundDiagnostic(packageName: string, registry: string): PackageNotFoundDiagnostic;
|
|
34
|
+
export declare function createVersionNotFoundDiagnostic(packageName: string, versionRange: string, registry: string, availableVersions: readonly string[]): VersionNotFoundDiagnostic;
|
|
35
|
+
export declare function createRegistryNameCollisionDiagnostic(packageName: string, registries: readonly string[]): RegistryNameCollisionDiagnostic;
|
|
36
|
+
//# sourceMappingURL=ResolverDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolverDiagnostics.d.ts","sourceRoot":"","sources":["../../src/resolver/ResolverDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,wGAAwG;AACxG,MAAM,MAAM,yBAAyB,GAAG,cAAc,CACpD,kBAAkB,EAClB;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CACF,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAChD,cAAc,EACd;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CACF,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,yBAAyB,GAAG,cAAc,CACpD,mBAAmB,EACnB;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CACF,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,yBAAyB,GAAG,cAAc,CACpD,mBAAmB,EACnB;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C,CACF,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,+BAA+B,GAAG,cAAc,CAC1D,yBAAyB,EACzB;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC,CACF,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAC1B,yBAAyB,GACzB,qBAAqB,GACrB,yBAAyB,GACzB,yBAAyB,GACzB,+BAA+B,CAAC;AAMpC,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,QAAQ,EAAE,MAAM,GACf,yBAAyB,CAQ3B;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,qBAAqB,CAQ1F;AAED,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,yBAAyB,CAQhH;AAED,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,yBAAyB,CAQ3B;AAED,wBAAgB,qCAAqC,CACnD,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,+BAA+B,CAQjC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factory helpers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createVersionConflictDiagnostic(packageName, versions, registry) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'error',
|
|
7
|
+
code: 'VERSION_CONFLICT',
|
|
8
|
+
message: `Version conflict for "${packageName}" in registry "${registry}": resolved to [${versions.join(', ')}].`,
|
|
9
|
+
hint: 'Single-version packages cannot coexist at multiple versions. Pin an explicit version or use overrides.',
|
|
10
|
+
data: { packageName, versions, registry },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function createCircularDepDiagnostic(path) {
|
|
14
|
+
return {
|
|
15
|
+
level: 'error',
|
|
16
|
+
code: 'CIRCULAR_DEP',
|
|
17
|
+
message: `Circular dependency detected: ${path.join(' → ')}.`,
|
|
18
|
+
hint: 'Break the cycle by removing or restructuring the dependency.',
|
|
19
|
+
data: { path },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createPackageNotFoundDiagnostic(packageName, registry) {
|
|
23
|
+
return {
|
|
24
|
+
level: 'error',
|
|
25
|
+
code: 'PACKAGE_NOT_FOUND',
|
|
26
|
+
message: `Package "${packageName}" not found in registry "${registry}".`,
|
|
27
|
+
hint: 'Verify the package name and ensure the registry is up-to-date.',
|
|
28
|
+
data: { packageName, registry },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function createVersionNotFoundDiagnostic(packageName, versionRange, registry, availableVersions) {
|
|
32
|
+
return {
|
|
33
|
+
level: 'error',
|
|
34
|
+
code: 'VERSION_NOT_FOUND',
|
|
35
|
+
message: `No version of "${packageName}" in registry "${registry}" satisfies "${versionRange}".`,
|
|
36
|
+
hint: `Available versions: ${availableVersions.length > 0 ? availableVersions.join(', ') : '(none)'}.`,
|
|
37
|
+
data: { packageName, versionRange, registry, availableVersions },
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function createRegistryNameCollisionDiagnostic(packageName, registries) {
|
|
41
|
+
return {
|
|
42
|
+
level: 'error',
|
|
43
|
+
code: 'REGISTRY_NAME_COLLISION',
|
|
44
|
+
message: `Package "${packageName}" is required from multiple registries: [${registries.join(', ')}].`,
|
|
45
|
+
hint: 'A package name must resolve from a single registry.',
|
|
46
|
+
data: { packageName, registries },
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=ResolverDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolverDiagnostics.js","sourceRoot":"","sources":["../../src/resolver/ResolverDiagnostics.ts"],"names":[],"mappings":"AA6DA,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,UAAU,+BAA+B,CAC7C,WAAmB,EACnB,QAA2B,EAC3B,QAAgB;IAEhB,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,yBAAyB,WAAW,kBAAkB,QAAQ,mBAAmB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACjH,IAAI,EAAE,wGAAwG;QAC9G,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAuB;IACjE,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,iCAAiC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;QAC7D,IAAI,EAAE,8DAA8D;QACpE,IAAI,EAAE,EAAE,IAAI,EAAE;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAAmB,EAAE,QAAgB;IACnF,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,YAAY,WAAW,4BAA4B,QAAQ,IAAI;QACxE,IAAI,EAAE,gEAAgE;QACtE,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,WAAmB,EACnB,YAAoB,EACpB,QAAgB,EAChB,iBAAoC;IAEpC,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,kBAAkB,WAAW,kBAAkB,QAAQ,gBAAgB,YAAY,IAAI;QAChG,IAAI,EAAE,uBAAuB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG;QACtG,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,WAAmB,EACnB,UAA6B;IAE7B,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,YAAY,WAAW,4CAA4C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACrG,IAAI,EAAE,qDAAqD;QAC3D,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;KAClC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/**
|
|
3
|
+
* A target install directory exists but has no `uapkg.json` inside.
|
|
4
|
+
* The installer refuses to overwrite because the directory's identity is
|
|
5
|
+
* unknown. Use `--force` to override.
|
|
6
|
+
*/
|
|
7
|
+
export type SafetyTargetExistsNoManifestDiagnostic = DiagnosticBase<'SAFETY_TARGET_EXISTS_NO_MANIFEST', {
|
|
8
|
+
readonly packageName: string;
|
|
9
|
+
readonly path: string;
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* A plugin-kind manifest declared a custom install `path` for one of its
|
|
13
|
+
* dependencies. Only project-kind manifests may override paths; plugins fall
|
|
14
|
+
* back to the default install location and this warning is emitted.
|
|
15
|
+
*/
|
|
16
|
+
export type SafetyPathNotProjectManifestDiagnostic = DiagnosticBase<'SAFETY_PATH_NOT_PROJECT_MANIFEST', {
|
|
17
|
+
readonly pluginName: string;
|
|
18
|
+
readonly dependencyName: string;
|
|
19
|
+
readonly requestedPath: string;
|
|
20
|
+
readonly fallbackPath: string;
|
|
21
|
+
}>;
|
|
22
|
+
/** Informational: a safety check was bypassed because --force was passed. */
|
|
23
|
+
export type SafetyOverriddenByForceDiagnostic = DiagnosticBase<'SAFETY_OVERRIDDEN_BY_FORCE', {
|
|
24
|
+
readonly packageName: string;
|
|
25
|
+
readonly policy: string;
|
|
26
|
+
}>;
|
|
27
|
+
export type SafetyDiagnostic = SafetyTargetExistsNoManifestDiagnostic | SafetyPathNotProjectManifestDiagnostic | SafetyOverriddenByForceDiagnostic;
|
|
28
|
+
export declare function createSafetyTargetExistsNoManifestDiagnostic(packageName: string, path: string): SafetyTargetExistsNoManifestDiagnostic;
|
|
29
|
+
export declare function createSafetyPathNotProjectManifestDiagnostic(pluginName: string, dependencyName: string, requestedPath: string, fallbackPath: string): SafetyPathNotProjectManifestDiagnostic;
|
|
30
|
+
export declare function createSafetyOverriddenByForceDiagnostic(packageName: string, policy: string): SafetyOverriddenByForceDiagnostic;
|
|
31
|
+
//# sourceMappingURL=SafetyDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SafetyDiagnostics.d.ts","sourceRoot":"","sources":["../../src/safety/SafetyDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D;;;;GAIG;AACH,MAAM,MAAM,sCAAsC,GAAG,cAAc,CACjE,kCAAkC,EAClC;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,sCAAsC,GAAG,cAAc,CACjE,kCAAkC,EAClC;IACE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CACF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,iCAAiC,GAAG,cAAc,CAC5D,4BAA4B,EAC5B;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,sCAAsC,GACtC,sCAAsC,GACtC,iCAAiC,CAAC;AAMtC,wBAAgB,4CAA4C,CAC1D,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,sCAAsC,CAQxC;AAED,wBAAgB,4CAA4C,CAC1D,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,GACnB,sCAAsC,CAQxC;AAED,wBAAgB,uCAAuC,CACrD,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,iCAAiC,CAOnC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factories
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createSafetyTargetExistsNoManifestDiagnostic(packageName, path) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'error',
|
|
7
|
+
code: 'SAFETY_TARGET_EXISTS_NO_MANIFEST',
|
|
8
|
+
message: `Refusing to overwrite "${path}" (no uapkg.json found) for package "${packageName}".`,
|
|
9
|
+
hint: 'Remove the directory or re-run with --force to overwrite.',
|
|
10
|
+
data: { packageName, path },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function createSafetyPathNotProjectManifestDiagnostic(pluginName, dependencyName, requestedPath, fallbackPath) {
|
|
14
|
+
return {
|
|
15
|
+
level: 'warning',
|
|
16
|
+
code: 'SAFETY_PATH_NOT_PROJECT_MANIFEST',
|
|
17
|
+
message: `Plugin "${pluginName}" requested install path "${requestedPath}" for "${dependencyName}"; using default "${fallbackPath}" instead.`,
|
|
18
|
+
hint: 'Only project-kind manifests may dictate install paths. Move the override to your project manifest.',
|
|
19
|
+
data: { pluginName, dependencyName, requestedPath, fallbackPath },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createSafetyOverriddenByForceDiagnostic(packageName, policy) {
|
|
23
|
+
return {
|
|
24
|
+
level: 'info',
|
|
25
|
+
code: 'SAFETY_OVERRIDDEN_BY_FORCE',
|
|
26
|
+
message: `Safety policy "${policy}" bypassed for "${packageName}" (--force).`,
|
|
27
|
+
data: { packageName, policy },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=SafetyDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SafetyDiagnostics.js","sourceRoot":"","sources":["../../src/safety/SafetyDiagnostics.ts"],"names":[],"mappings":"AAgDA,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,UAAU,4CAA4C,CAC1D,WAAmB,EACnB,IAAY;IAEZ,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE,0BAA0B,IAAI,wCAAwC,WAAW,IAAI;QAC9F,IAAI,EAAE,2DAA2D;QACjE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4CAA4C,CAC1D,UAAkB,EAClB,cAAsB,EACtB,aAAqB,EACrB,YAAoB;IAEpB,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE,WAAW,UAAU,6BAA6B,aAAa,UAAU,cAAc,qBAAqB,YAAY,YAAY;QAC7I,IAAI,EAAE,oGAAoG;QAC1G,IAAI,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,WAAmB,EACnB,MAAc;IAEd,OAAO;QACL,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,kBAAkB,MAAM,mBAAmB,WAAW,cAAc;QAC7E,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** The raw CLI specifier could not be parsed into `(@org/)?name(@range)?`. */
|
|
3
|
+
export type InvalidPackageSpecDiagnostic = DiagnosticBase<'INVALID_PACKAGE_SPEC', {
|
|
4
|
+
readonly input: string;
|
|
5
|
+
readonly reason: string;
|
|
6
|
+
}>;
|
|
7
|
+
/** Organization portion of a package spec was not a valid OrgName. */
|
|
8
|
+
export type InvalidOrgNameDiagnostic = DiagnosticBase<'INVALID_ORG_NAME', {
|
|
9
|
+
readonly input: string;
|
|
10
|
+
readonly org: string;
|
|
11
|
+
}>;
|
|
12
|
+
/** Version range portion of a package spec was not a valid semver range. */
|
|
13
|
+
export type InvalidVersionRangeDiagnostic = DiagnosticBase<'INVALID_VERSION_RANGE', {
|
|
14
|
+
readonly input: string;
|
|
15
|
+
readonly range: string;
|
|
16
|
+
}>;
|
|
17
|
+
export type SpecParseDiagnostic = InvalidPackageSpecDiagnostic | InvalidOrgNameDiagnostic | InvalidVersionRangeDiagnostic;
|
|
18
|
+
export declare function createInvalidPackageSpecDiagnostic(input: string, reason: string): InvalidPackageSpecDiagnostic;
|
|
19
|
+
export declare function createInvalidOrgNameDiagnostic(input: string, org: string): InvalidOrgNameDiagnostic;
|
|
20
|
+
export declare function createInvalidVersionRangeDiagnostic(input: string, range: string): InvalidVersionRangeDiagnostic;
|
|
21
|
+
//# sourceMappingURL=SpecDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpecDiagnostics.d.ts","sourceRoot":"","sources":["../../src/spec/SpecDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,8EAA8E;AAC9E,MAAM,MAAM,4BAA4B,GAAG,cAAc,CACvD,sBAAsB,EACtB;IACE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,kBAAkB,EAClB;IACE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CACF,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,6BAA6B,GAAG,cAAc,CACxD,uBAAuB,EACvB;IACE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CACF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,4BAA4B,GAC5B,wBAAwB,GACxB,6BAA6B,CAAC;AAMlC,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,4BAA4B,CAQ9G;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAQnG;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,6BAA6B,CAQ/G"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factories
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createInvalidPackageSpecDiagnostic(input, reason) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'error',
|
|
7
|
+
code: 'INVALID_PACKAGE_SPEC',
|
|
8
|
+
message: `Invalid package specifier "${input}": ${reason}.`,
|
|
9
|
+
hint: 'Use the form "(@org/)?name(@range)?" — e.g. "@myorg/my-pkg@^1.0.0".',
|
|
10
|
+
data: { input, reason },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function createInvalidOrgNameDiagnostic(input, org) {
|
|
14
|
+
return {
|
|
15
|
+
level: 'error',
|
|
16
|
+
code: 'INVALID_ORG_NAME',
|
|
17
|
+
message: `Invalid organization name "${org}" in specifier "${input}".`,
|
|
18
|
+
hint: 'Organization names must be lowercase alphanumeric with hyphens or underscores.',
|
|
19
|
+
data: { input, org },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createInvalidVersionRangeDiagnostic(input, range) {
|
|
23
|
+
return {
|
|
24
|
+
level: 'error',
|
|
25
|
+
code: 'INVALID_VERSION_RANGE',
|
|
26
|
+
message: `Invalid semver range "${range}" in specifier "${input}".`,
|
|
27
|
+
hint: 'Use a valid semver range like "^1.0.0", "~2.3.4", or ">=1.0.0 <2.0.0".',
|
|
28
|
+
data: { input, range },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=SpecDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpecDiagnostics.js","sourceRoot":"","sources":["../../src/spec/SpecDiagnostics.ts"],"names":[],"mappings":"AAsCA,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,UAAU,kCAAkC,CAAC,KAAa,EAAE,MAAc;IAC9E,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,8BAA8B,KAAK,MAAM,MAAM,GAAG;QAC3D,IAAI,EAAE,qEAAqE;QAC3E,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa,EAAE,GAAW;IACvE,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,8BAA8B,GAAG,mBAAmB,KAAK,IAAI;QACtE,IAAI,EAAE,gFAAgF;QACtF,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,KAAa,EAAE,KAAa;IAC9E,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,yBAAyB,KAAK,mBAAmB,KAAK,IAAI;QACnE,IAAI,EAAE,wEAAwE;QAC9E,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;KACvB,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ConfigDiagnostic } from './config/ConfigDiagnostics.js';
|
|
2
|
+
import type { GeneralDiagnostic } from './general/GeneralDiagnostics.js';
|
|
3
|
+
import type { InstallerDiagnostic } from './installer/InstallerDiagnostics.js';
|
|
4
|
+
import type { ManifestDiagnostic } from './manifest/ManifestDiagnostics.js';
|
|
5
|
+
import type { PackDiagnostic } from './pack/PackDiagnostics.js';
|
|
6
|
+
import type { PostinstallDiagnostic } from './postinstall/PostinstallDiagnostics.js';
|
|
7
|
+
import type { RegistryDiagnostic } from './registry/RegistryDiagnostics.js';
|
|
8
|
+
import type { RegistryToolsDiagnostic } from './registryTools/RegistryToolsDiagnostics.js';
|
|
9
|
+
import type { ResolverDiagnostic } from './resolver/ResolverDiagnostics.js';
|
|
10
|
+
import type { SafetyDiagnostic } from './safety/SafetyDiagnostics.js';
|
|
11
|
+
import type { SpecParseDiagnostic } from './spec/SpecDiagnostics.js';
|
|
12
|
+
/**
|
|
13
|
+
* The unified Diagnostic type — a discriminated union of every known
|
|
14
|
+
* diagnostic, keyed on `code`.
|
|
15
|
+
*
|
|
16
|
+
* To add a new diagnostic:
|
|
17
|
+
* 1. Create its type in the appropriate family file.
|
|
18
|
+
* 2. Add it to that family's union.
|
|
19
|
+
* 3. It is automatically part of `Diagnostic` through this re-export.
|
|
20
|
+
*/
|
|
21
|
+
export type Diagnostic = ResolverDiagnostic | ConfigDiagnostic | RegistryDiagnostic | RegistryToolsDiagnostic | ManifestDiagnostic | PackDiagnostic | GeneralDiagnostic | InstallerDiagnostic | PostinstallDiagnostic | SafetyDiagnostic | SpecParseDiagnostic;
|
|
22
|
+
/**
|
|
23
|
+
* Extract a specific diagnostic by code.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* type VC = DiagnosticByCode<'VERSION_CONFLICT'>;
|
|
27
|
+
*/
|
|
28
|
+
export type DiagnosticByCode<C extends Diagnostic['code']> = Extract<Diagnostic, {
|
|
29
|
+
code: C;
|
|
30
|
+
}>;
|
|
31
|
+
/** All known diagnostic codes. */
|
|
32
|
+
export type DiagnosticCode = Diagnostic['code'];
|
|
33
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,uBAAuB,GACvB,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,mBAAmB,GACnB,qBAAqB,GACrB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE9F,kCAAkC;AAClC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|