@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,30 @@
|
|
|
1
|
+
import type { DiagnosticLevel } from './DiagnosticLevel.js';
|
|
2
|
+
export type DiagnosticEmitPolicy = 'always' | 'once';
|
|
3
|
+
/**
|
|
4
|
+
* Base shape for all diagnostics. Every concrete diagnostic must extend this
|
|
5
|
+
* interface, discriminating on `code` so that `data` is always strongly typed.
|
|
6
|
+
*
|
|
7
|
+
* @typeParam C - The string literal diagnostic code.
|
|
8
|
+
* @typeParam D - The shape of the typed data payload (defaults to `undefined`).
|
|
9
|
+
*/
|
|
10
|
+
export interface DiagnosticBase<C extends string = string, D = undefined> {
|
|
11
|
+
/** Severity of this diagnostic. */
|
|
12
|
+
readonly level: DiagnosticLevel;
|
|
13
|
+
/** Stable, machine-readable code used for discrimination. */
|
|
14
|
+
readonly code: C;
|
|
15
|
+
/** Human-readable summary. */
|
|
16
|
+
readonly message: string;
|
|
17
|
+
/** Actionable hint shown to the user. */
|
|
18
|
+
readonly hint?: string;
|
|
19
|
+
/** Emit strategy for user-facing reporting. */
|
|
20
|
+
readonly emitPolicy?: DiagnosticEmitPolicy;
|
|
21
|
+
/** Stable dedupe key used when `emitPolicy` is `once`. */
|
|
22
|
+
readonly emitFingerprint?: string;
|
|
23
|
+
/** Strongly typed payload whose shape is determined by `code`. */
|
|
24
|
+
readonly data: D;
|
|
25
|
+
}
|
|
26
|
+
/** Create an error-level diagnostic. */
|
|
27
|
+
export declare function createDiagnostic<C extends string, D = undefined>(code: C, level: DiagnosticLevel, message: string, data: D, hint?: string, options?: {
|
|
28
|
+
readonly emitPolicy?: DiagnosticEmitPolicy;
|
|
29
|
+
}): DiagnosticBase<C, D>;
|
|
30
|
+
//# sourceMappingURL=Diagnostic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Diagnostic.d.ts","sourceRoot":"","sources":["../../src/base/Diagnostic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS;IACtE,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAEhC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAE3C,0DAA0D;IAC1D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAElC,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CAClB;AAMD,wCAAwC;AACxC,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,EAC9D,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;CAC5C,GACA,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAsBtB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createDiagnosticFingerprint } from './DiagnosticFingerprint.js';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Convenience helpers to construct a diagnostic without specifying every field
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
/** Create an error-level diagnostic. */
|
|
6
|
+
export function createDiagnostic(code, level, message, data, hint, options) {
|
|
7
|
+
const emitPolicy = options?.emitPolicy;
|
|
8
|
+
const emitFingerprint = emitPolicy === 'once'
|
|
9
|
+
? createDiagnosticFingerprint({
|
|
10
|
+
level,
|
|
11
|
+
code,
|
|
12
|
+
message,
|
|
13
|
+
hint,
|
|
14
|
+
data,
|
|
15
|
+
})
|
|
16
|
+
: undefined;
|
|
17
|
+
return {
|
|
18
|
+
level,
|
|
19
|
+
code,
|
|
20
|
+
message,
|
|
21
|
+
data,
|
|
22
|
+
hint,
|
|
23
|
+
emitPolicy,
|
|
24
|
+
emitFingerprint,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=Diagnostic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Diagnostic.js","sourceRoot":"","sources":["../../src/base/Diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAmCzE,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAE9E,wCAAwC;AACxC,MAAM,UAAU,gBAAgB,CAC9B,IAAO,EACP,KAAsB,EACtB,OAAe,EACf,IAAO,EACP,IAAa,EACb,OAEC;IAED,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACvC,MAAM,eAAe,GACnB,UAAU,KAAK,MAAM;QACnB,CAAC,CAAC,2BAA2B,CAAC;YAC1B,KAAK;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,IAAI;SACL,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Diagnostic } from '../types.js';
|
|
2
|
+
import type { DiagnosticLevel } from './DiagnosticLevel.js';
|
|
3
|
+
import { type Result } from './Result.js';
|
|
4
|
+
/**
|
|
5
|
+
* Mutable accumulator for diagnostics produced during an operation.
|
|
6
|
+
*
|
|
7
|
+
* Typical usage:
|
|
8
|
+
* ```ts
|
|
9
|
+
* const bag = new DiagnosticBag();
|
|
10
|
+
* bag.addError('MY_CODE', 'Something broke', undefined, 'Try X');
|
|
11
|
+
* if (bag.hasErrors()) return bag.toFailure();
|
|
12
|
+
* return bag.toResult(value);
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare class DiagnosticBag {
|
|
16
|
+
private readonly items;
|
|
17
|
+
/** Number of diagnostics collected so far. */
|
|
18
|
+
get length(): number;
|
|
19
|
+
/** Add a pre-built diagnostic. */
|
|
20
|
+
add(diagnostic: Diagnostic): this;
|
|
21
|
+
/** Shorthand: add an error-level diagnostic. */
|
|
22
|
+
addError<C extends string, D = undefined>(code: C, message: string, data: D, hint?: string): this;
|
|
23
|
+
/** Shorthand: add a warning-level diagnostic. */
|
|
24
|
+
addWarning<C extends string, D = undefined>(code: C, message: string, data: D, hint?: string): this;
|
|
25
|
+
/** Shorthand: add an info-level diagnostic. */
|
|
26
|
+
addInfo<C extends string, D = undefined>(code: C, message: string, data: D, hint?: string): this;
|
|
27
|
+
/** Merge another bag's diagnostics into this one. */
|
|
28
|
+
merge(other: DiagnosticBag): this;
|
|
29
|
+
/** Merge a readonly diagnostic array into this bag. */
|
|
30
|
+
mergeArray(diagnostics: readonly Diagnostic[]): this;
|
|
31
|
+
/** True if at least one diagnostic has level `error`. */
|
|
32
|
+
hasErrors(): boolean;
|
|
33
|
+
/** True if at least one diagnostic has the given level. */
|
|
34
|
+
hasLevel(level: DiagnosticLevel): boolean;
|
|
35
|
+
/** Return all collected diagnostics as a readonly array. */
|
|
36
|
+
all(): readonly Diagnostic[];
|
|
37
|
+
/** Build a successful `Result<T>` carrying accumulated diagnostics. */
|
|
38
|
+
toResult<T>(value: T): Result<T>;
|
|
39
|
+
/** Build a failed `Result` from the accumulated diagnostics. */
|
|
40
|
+
toFailure(): Result<never>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=DiagnosticBag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagnosticBag.d.ts","sourceRoot":"","sources":["../../src/base/DiagnosticBag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAE1C,8CAA8C;IAC9C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,kCAAkC;IAClC,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAKjC,gDAAgD;IAChD,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAKjG,iDAAiD;IACjD,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAKnG,+CAA+C;IAC/C,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAKhG,qDAAqD;IACrD,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOjC,uDAAuD;IACvD,UAAU,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI;IAOpD,yDAAyD;IACzD,SAAS,IAAI,OAAO;IAIpB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAIzC,4DAA4D;IAC5D,GAAG,IAAI,SAAS,UAAU,EAAE;IAI5B,uEAAuE;IACvE,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAOhC,gEAAgE;IAChE,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC;CAG3B"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { createDiagnostic } from './Diagnostic.js';
|
|
2
|
+
import { fail, ok } from './Result.js';
|
|
3
|
+
/**
|
|
4
|
+
* Mutable accumulator for diagnostics produced during an operation.
|
|
5
|
+
*
|
|
6
|
+
* Typical usage:
|
|
7
|
+
* ```ts
|
|
8
|
+
* const bag = new DiagnosticBag();
|
|
9
|
+
* bag.addError('MY_CODE', 'Something broke', undefined, 'Try X');
|
|
10
|
+
* if (bag.hasErrors()) return bag.toFailure();
|
|
11
|
+
* return bag.toResult(value);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export class DiagnosticBag {
|
|
15
|
+
items = [];
|
|
16
|
+
/** Number of diagnostics collected so far. */
|
|
17
|
+
get length() {
|
|
18
|
+
return this.items.length;
|
|
19
|
+
}
|
|
20
|
+
/** Add a pre-built diagnostic. */
|
|
21
|
+
add(diagnostic) {
|
|
22
|
+
this.items.push(diagnostic);
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
/** Shorthand: add an error-level diagnostic. */
|
|
26
|
+
addError(code, message, data, hint) {
|
|
27
|
+
this.items.push(createDiagnostic(code, 'error', message, data, hint));
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/** Shorthand: add a warning-level diagnostic. */
|
|
31
|
+
addWarning(code, message, data, hint) {
|
|
32
|
+
this.items.push(createDiagnostic(code, 'warning', message, data, hint));
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/** Shorthand: add an info-level diagnostic. */
|
|
36
|
+
addInfo(code, message, data, hint) {
|
|
37
|
+
this.items.push(createDiagnostic(code, 'info', message, data, hint));
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
/** Merge another bag's diagnostics into this one. */
|
|
41
|
+
merge(other) {
|
|
42
|
+
for (const d of other.items) {
|
|
43
|
+
this.items.push(d);
|
|
44
|
+
}
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
/** Merge a readonly diagnostic array into this bag. */
|
|
48
|
+
mergeArray(diagnostics) {
|
|
49
|
+
for (const d of diagnostics) {
|
|
50
|
+
this.items.push(d);
|
|
51
|
+
}
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/** True if at least one diagnostic has level `error`. */
|
|
55
|
+
hasErrors() {
|
|
56
|
+
return this.items.some((d) => d.level === 'error');
|
|
57
|
+
}
|
|
58
|
+
/** True if at least one diagnostic has the given level. */
|
|
59
|
+
hasLevel(level) {
|
|
60
|
+
return this.items.some((d) => d.level === level);
|
|
61
|
+
}
|
|
62
|
+
/** Return all collected diagnostics as a readonly array. */
|
|
63
|
+
all() {
|
|
64
|
+
return this.items;
|
|
65
|
+
}
|
|
66
|
+
/** Build a successful `Result<T>` carrying accumulated diagnostics. */
|
|
67
|
+
toResult(value) {
|
|
68
|
+
if (this.hasErrors()) {
|
|
69
|
+
return fail(this.items);
|
|
70
|
+
}
|
|
71
|
+
return ok(value, this.items);
|
|
72
|
+
}
|
|
73
|
+
/** Build a failed `Result` from the accumulated diagnostics. */
|
|
74
|
+
toFailure() {
|
|
75
|
+
return fail(this.items);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=DiagnosticBag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagnosticBag.js","sourceRoot":"","sources":["../../src/base/DiagnosticBag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IACP,KAAK,GAAiB,EAAE,CAAC;IAE1C,8CAA8C;IAC9C,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,kCAAkC;IAClC,GAAG,CAAC,UAAsB;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,QAAQ,CAAkC,IAAO,EAAE,OAAe,EAAE,IAAO,EAAE,IAAa;QACxF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAe,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iDAAiD;IACjD,UAAU,CAAkC,IAAO,EAAE,OAAe,EAAE,IAAO,EAAE,IAAa;QAC1F,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAe,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+CAA+C;IAC/C,OAAO,CAAkC,IAAO,EAAE,OAAe,EAAE,IAAO,EAAE,IAAa;QACvF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAe,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,KAAoB;QACxB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,UAAU,CAAC,WAAkC;QAC3C,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACzD,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,2DAA2D;IAC3D,QAAQ,CAAC,KAAsB;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,4DAA4D;IAC5D,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,uEAAuE;IACvE,QAAQ,CAAI,KAAQ;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,gEAAgE;IAChE,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DiagnosticLevel } from './DiagnosticLevel.js';
|
|
2
|
+
interface FingerprintInput {
|
|
3
|
+
readonly level: DiagnosticLevel;
|
|
4
|
+
readonly code: string;
|
|
5
|
+
readonly message: string;
|
|
6
|
+
readonly hint?: string;
|
|
7
|
+
readonly data: unknown;
|
|
8
|
+
}
|
|
9
|
+
export declare function createDiagnosticFingerprint(input: FingerprintInput): string;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=DiagnosticFingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagnosticFingerprint.d.ts","sourceRoot":"","sources":["../../src/base/DiagnosticFingerprint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,UAAU,gBAAgB;IACxB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAU3E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
export function createDiagnosticFingerprint(input) {
|
|
3
|
+
const serialized = stableSerialize({
|
|
4
|
+
level: input.level,
|
|
5
|
+
code: input.code,
|
|
6
|
+
message: input.message,
|
|
7
|
+
hint: input.hint ?? null,
|
|
8
|
+
data: input.data ?? null,
|
|
9
|
+
});
|
|
10
|
+
return createHash('sha256').update(serialized).digest('hex');
|
|
11
|
+
}
|
|
12
|
+
function stableSerialize(value) {
|
|
13
|
+
if (value === null || typeof value !== 'object') {
|
|
14
|
+
return JSON.stringify(value);
|
|
15
|
+
}
|
|
16
|
+
if (Array.isArray(value)) {
|
|
17
|
+
return `[${value.map((item) => stableSerialize(item)).join(',')}]`;
|
|
18
|
+
}
|
|
19
|
+
const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
|
|
20
|
+
const body = entries.map(([key, item]) => `${JSON.stringify(key)}:${stableSerialize(item)}`).join(',');
|
|
21
|
+
return `{${body}}`;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=DiagnosticFingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagnosticFingerprint.js","sourceRoot":"","sources":["../../src/base/DiagnosticFingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC,MAAM,UAAU,2BAA2B,CAAC,KAAuB;IACjE,MAAM,UAAU,GAAG,eAAe,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;KACzB,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACrE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvG,OAAO,IAAI,IAAI,GAAG,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostic severity levels.
|
|
3
|
+
*
|
|
4
|
+
* - `error` – operation cannot continue
|
|
5
|
+
* - `warning` – operation can continue but something is concerning
|
|
6
|
+
* - `info` – informational only
|
|
7
|
+
*/
|
|
8
|
+
export type DiagnosticLevel = 'error' | 'warning' | 'info';
|
|
9
|
+
//# sourceMappingURL=DiagnosticLevel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagnosticLevel.d.ts","sourceRoot":"","sources":["../../src/base/DiagnosticLevel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiagnosticLevel.js","sourceRoot":"","sources":["../../src/base/DiagnosticLevel.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Diagnostic } from '../types.js';
|
|
2
|
+
/** Successful result carrying a value and optional diagnostics. */
|
|
3
|
+
export interface ResultOk<T> {
|
|
4
|
+
readonly ok: true;
|
|
5
|
+
readonly value: T;
|
|
6
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
7
|
+
}
|
|
8
|
+
/** Failed result carrying at least one diagnostic. */
|
|
9
|
+
export interface ResultFail {
|
|
10
|
+
readonly ok: false;
|
|
11
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
12
|
+
}
|
|
13
|
+
/** Discriminated union returned by every fallible uapkg operation. */
|
|
14
|
+
export type Result<T> = ResultOk<T> | ResultFail;
|
|
15
|
+
/** Create a successful result. */
|
|
16
|
+
export declare function ok<T>(value: T, diagnostics?: readonly Diagnostic[]): ResultOk<T>;
|
|
17
|
+
/** Create a failed result. */
|
|
18
|
+
export declare function fail(diagnostics: readonly Diagnostic[]): ResultFail;
|
|
19
|
+
/**
|
|
20
|
+
* Build a result from a diagnostics array and an optional value.
|
|
21
|
+
* If any diagnostic has level `error`, the result is a failure.
|
|
22
|
+
*/
|
|
23
|
+
export declare function fromDiagnostics<T>(diagnostics: readonly Diagnostic[], value?: T): Result<T>;
|
|
24
|
+
//# sourceMappingURL=Result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../src/base/Result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,mEAAmE;AACnE,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED,sDAAsD;AACtD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED,sEAAsE;AACtE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAMjD,kCAAkC;AAClC,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,GAAE,SAAS,UAAU,EAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEpF;AAED,8BAA8B;AAC9B,wBAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CAEnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,UAAU,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAM3F"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factory helpers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
/** Create a successful result. */
|
|
5
|
+
export function ok(value, diagnostics = []) {
|
|
6
|
+
return { ok: true, value, diagnostics };
|
|
7
|
+
}
|
|
8
|
+
/** Create a failed result. */
|
|
9
|
+
export function fail(diagnostics) {
|
|
10
|
+
return { ok: false, diagnostics };
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Build a result from a diagnostics array and an optional value.
|
|
14
|
+
* If any diagnostic has level `error`, the result is a failure.
|
|
15
|
+
*/
|
|
16
|
+
export function fromDiagnostics(diagnostics, value) {
|
|
17
|
+
const hasError = diagnostics.some((d) => d.level === 'error');
|
|
18
|
+
if (hasError || value === undefined) {
|
|
19
|
+
return { ok: false, diagnostics };
|
|
20
|
+
}
|
|
21
|
+
return { ok: true, value, diagnostics };
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=Result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Result.js","sourceRoot":"","sources":["../../src/base/Result.ts"],"names":[],"mappings":"AAsBA,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,kCAAkC;AAClC,MAAM,UAAU,EAAE,CAAI,KAAQ,EAAE,cAAqC,EAAE;IACrE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,IAAI,CAAC,WAAkC;IACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAI,WAAkC,EAAE,KAAS;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IAC9D,IAAI,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** A config file contains invalid JSON and could not be parsed. */
|
|
3
|
+
export type ConfigInvalidJsonDiagnostic = DiagnosticBase<'CONFIG_INVALID_JSON', {
|
|
4
|
+
readonly filePath: string;
|
|
5
|
+
readonly reason: string;
|
|
6
|
+
}>;
|
|
7
|
+
/** Config value type is incompatible with expected merge shape. */
|
|
8
|
+
export type ConfigTypeMismatchDiagnostic = DiagnosticBase<'CONFIG_TYPE_MISMATCH', {
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly expectedType: string;
|
|
11
|
+
readonly actualType: string;
|
|
12
|
+
readonly source: string;
|
|
13
|
+
readonly filePath?: string;
|
|
14
|
+
}>;
|
|
15
|
+
/** Unknown config key encountered in a config layer. */
|
|
16
|
+
export type ConfigUnknownKeyDiagnostic = DiagnosticBase<'CONFIG_UNKNOWN_KEY', {
|
|
17
|
+
readonly path: string;
|
|
18
|
+
readonly source: string;
|
|
19
|
+
readonly filePath?: string;
|
|
20
|
+
}>;
|
|
21
|
+
/** Cross-field semantic mismatch: default registry not defined in registries map. */
|
|
22
|
+
export type ConfigUnresolvedDefaultRegistryDiagnostic = DiagnosticBase<'CONFIG_UNRESOLVED_DEFAULT_REGISTRY', {
|
|
23
|
+
readonly registryName: string;
|
|
24
|
+
}>;
|
|
25
|
+
/** Value failed a narrower semantic validation rule. */
|
|
26
|
+
export type ConfigInvalidValueDiagnostic = DiagnosticBase<'CONFIG_INVALID_VALUE', {
|
|
27
|
+
readonly path: string;
|
|
28
|
+
readonly rule: string;
|
|
29
|
+
}>;
|
|
30
|
+
/** Union of all config diagnostics. */
|
|
31
|
+
export type ConfigDiagnostic = ConfigInvalidJsonDiagnostic | ConfigTypeMismatchDiagnostic | ConfigUnknownKeyDiagnostic | ConfigUnresolvedDefaultRegistryDiagnostic | ConfigInvalidValueDiagnostic;
|
|
32
|
+
export declare function createConfigInvalidJsonDiagnostic(filePath: string, reason: string): ConfigInvalidJsonDiagnostic;
|
|
33
|
+
export declare function createConfigTypeMismatchDiagnostic(input: {
|
|
34
|
+
readonly path: string;
|
|
35
|
+
readonly expectedType: string;
|
|
36
|
+
readonly actualType: string;
|
|
37
|
+
readonly source: string;
|
|
38
|
+
readonly filePath?: string;
|
|
39
|
+
}): ConfigTypeMismatchDiagnostic;
|
|
40
|
+
export declare function createConfigUnknownKeyDiagnostic(input: {
|
|
41
|
+
readonly path: string;
|
|
42
|
+
readonly source: string;
|
|
43
|
+
readonly filePath?: string;
|
|
44
|
+
}): ConfigUnknownKeyDiagnostic;
|
|
45
|
+
export declare function createConfigUnresolvedDefaultRegistryDiagnostic(registryName: string): ConfigUnresolvedDefaultRegistryDiagnostic;
|
|
46
|
+
export declare function createConfigInvalidValueDiagnostic(path: string, rule: string): ConfigInvalidValueDiagnostic;
|
|
47
|
+
//# sourceMappingURL=ConfigDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigDiagnostics.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,mEAAmE;AACnE,MAAM,MAAM,2BAA2B,GAAG,cAAc,CACtD,qBAAqB,EACrB;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,4BAA4B,GAAG,cAAc,CACvD,sBAAsB,EACtB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CACF,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,0BAA0B,GAAG,cAAc,CACrD,oBAAoB,EACpB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CACF,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,yCAAyC,GAAG,cAAc,CACpE,oCAAoC,EACpC;IACE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CACF,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,4BAA4B,GAAG,cAAc,CACvD,sBAAsB,EACtB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CACF,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,gBAAgB,GACxB,2BAA2B,GAC3B,4BAA4B,GAC5B,0BAA0B,GAC1B,yCAAyC,GACzC,4BAA4B,CAAC;AAEjC,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,2BAA2B,CAQ/G;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,4BAA4B,CAQ/B;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,0BAA0B,CAQ7B;AAED,wBAAgB,+CAA+C,CAC7D,YAAY,EAAE,MAAM,GACnB,yCAAyC,CAS3C;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,4BAA4B,CAQ3G"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export function createConfigInvalidJsonDiagnostic(filePath, reason) {
|
|
2
|
+
return {
|
|
3
|
+
level: 'warning',
|
|
4
|
+
code: 'CONFIG_INVALID_JSON',
|
|
5
|
+
message: `Ignoring invalid JSON in config file "${filePath}".`,
|
|
6
|
+
hint: 'Fix JSON syntax in this file to restore those settings.',
|
|
7
|
+
data: { filePath, reason },
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export function createConfigTypeMismatchDiagnostic(input) {
|
|
11
|
+
return {
|
|
12
|
+
level: 'warning',
|
|
13
|
+
code: 'CONFIG_TYPE_MISMATCH',
|
|
14
|
+
message: `Ignoring config value at "${input.path}" because it is ${input.actualType}, expected ${input.expectedType}.`,
|
|
15
|
+
hint: 'Use a value type compatible with this config key.',
|
|
16
|
+
data: input,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function createConfigUnknownKeyDiagnostic(input) {
|
|
20
|
+
return {
|
|
21
|
+
level: 'warning',
|
|
22
|
+
code: 'CONFIG_UNKNOWN_KEY',
|
|
23
|
+
message: `Ignoring unknown config key "${input.path}".`,
|
|
24
|
+
hint: 'Remove or rename this key to a supported configuration path.',
|
|
25
|
+
data: input,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function createConfigUnresolvedDefaultRegistryDiagnostic(registryName) {
|
|
29
|
+
return {
|
|
30
|
+
level: 'warning',
|
|
31
|
+
code: 'CONFIG_UNRESOLVED_DEFAULT_REGISTRY',
|
|
32
|
+
message: `Default registry "${registryName}" is not defined under "registries".`,
|
|
33
|
+
emitPolicy: 'once',
|
|
34
|
+
hint: `Add "registries.${registryName}" or set a different default with 'uapkg registry use <name>'.`,
|
|
35
|
+
data: { registryName },
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export function createConfigInvalidValueDiagnostic(path, rule) {
|
|
39
|
+
return {
|
|
40
|
+
level: 'warning',
|
|
41
|
+
code: 'CONFIG_INVALID_VALUE',
|
|
42
|
+
message: `Config value at "${path}" may be invalid: ${rule}.`,
|
|
43
|
+
hint: 'Update this value to match the expected format for this key.',
|
|
44
|
+
data: { path, rule },
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ConfigDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigDiagnostics.js","sourceRoot":"","sources":["../../src/config/ConfigDiagnostics.ts"],"names":[],"mappings":"AA0DA,MAAM,UAAU,iCAAiC,CAAC,QAAgB,EAAE,MAAc;IAChF,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,yCAAyC,QAAQ,IAAI;QAC9D,IAAI,EAAE,yDAAyD;QAC/D,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAMlD;IACC,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,6BAA6B,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,UAAU,cAAc,KAAK,CAAC,YAAY,GAAG;QACtH,IAAI,EAAE,mDAAmD;QACzD,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAIhD;IACC,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,gCAAgC,KAAK,CAAC,IAAI,IAAI;QACvD,IAAI,EAAE,8DAA8D;QACpE,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+CAA+C,CAC7D,YAAoB;IAEpB,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,oCAAoC;QAC1C,OAAO,EAAE,qBAAqB,YAAY,sCAAsC;QAChF,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,mBAAmB,YAAY,gEAAgE;QACrG,IAAI,EAAE,EAAE,YAAY,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,IAAY,EAAE,IAAY;IAC3E,OAAO;QACL,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,IAAI,GAAG;QAC7D,IAAI,EAAE,8DAA8D;QACpE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { DiagnosticBase } from '../base/Diagnostic.js';
|
|
2
|
+
/** Generic JSON or data parse error. */
|
|
3
|
+
export type ParseErrorDiagnostic = DiagnosticBase<'PARSE_ERROR', {
|
|
4
|
+
readonly filePath?: string;
|
|
5
|
+
readonly reason: string;
|
|
6
|
+
}>;
|
|
7
|
+
/** File system I/O error. */
|
|
8
|
+
export type IoErrorDiagnostic = DiagnosticBase<'IO_ERROR', {
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly reason: string;
|
|
11
|
+
}>;
|
|
12
|
+
/** Catch-all for truly unexpected situations (should be rare). */
|
|
13
|
+
export type UnknownErrorDiagnostic = DiagnosticBase<'UNKNOWN_ERROR', {
|
|
14
|
+
readonly reason: string;
|
|
15
|
+
}>;
|
|
16
|
+
/** Union of all general diagnostics. */
|
|
17
|
+
export type GeneralDiagnostic = ParseErrorDiagnostic | IoErrorDiagnostic | UnknownErrorDiagnostic;
|
|
18
|
+
export declare function createParseErrorDiagnostic(reason: string, filePath?: string): ParseErrorDiagnostic;
|
|
19
|
+
export declare function createIoErrorDiagnostic(path: string, reason: string): IoErrorDiagnostic;
|
|
20
|
+
export declare function createUnknownErrorDiagnostic(reason: string): UnknownErrorDiagnostic;
|
|
21
|
+
//# sourceMappingURL=GeneralDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneralDiagnostics.d.ts","sourceRoot":"","sources":["../../src/general/GeneralDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,wCAAwC;AACxC,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAC/C,aAAa,EACb;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAC5C,UAAU,EACV;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,sBAAsB,GAAG,cAAc,CACjD,eAAe,EACf;IACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,sBAAsB,CAAC;AAMlG,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAQlG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAQvF;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAQnF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Factory helpers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export function createParseErrorDiagnostic(reason, filePath) {
|
|
5
|
+
return {
|
|
6
|
+
level: 'error',
|
|
7
|
+
code: 'PARSE_ERROR',
|
|
8
|
+
message: filePath ? `Parse error in "${filePath}": ${reason}.` : `Parse error: ${reason}.`,
|
|
9
|
+
hint: 'Ensure the input is well-formed.',
|
|
10
|
+
data: { filePath, reason },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function createIoErrorDiagnostic(path, reason) {
|
|
14
|
+
return {
|
|
15
|
+
level: 'error',
|
|
16
|
+
code: 'IO_ERROR',
|
|
17
|
+
message: `I/O error at "${path}": ${reason}.`,
|
|
18
|
+
hint: 'Check file permissions and that the path exists.',
|
|
19
|
+
data: { path, reason },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createUnknownErrorDiagnostic(reason) {
|
|
23
|
+
return {
|
|
24
|
+
level: 'error',
|
|
25
|
+
code: 'UNKNOWN_ERROR',
|
|
26
|
+
message: `An unexpected error occurred: ${reason}.`,
|
|
27
|
+
hint: 'If this persists, please report a bug.',
|
|
28
|
+
data: { reason },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=GeneralDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneralDiagnostics.js","sourceRoot":"","sources":["../../src/general/GeneralDiagnostics.ts"],"names":[],"mappings":"AAmCA,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,UAAU,0BAA0B,CAAC,MAAc,EAAE,QAAiB;IAC1E,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,QAAQ,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB,MAAM,GAAG;QAC1F,IAAI,EAAE,kCAAkC;QACxC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,MAAc;IAClE,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,iBAAiB,IAAI,MAAM,MAAM,GAAG;QAC7C,IAAI,EAAE,kDAAkD;QACxD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACzD,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,iCAAiC,MAAM,GAAG;QACnD,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,EAAE,MAAM,EAAE;KACjB,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type { DiagnosticBase, DiagnosticEmitPolicy } from './base/Diagnostic.js';
|
|
2
|
+
export { createDiagnostic } from './base/Diagnostic.js';
|
|
3
|
+
export { DiagnosticBag } from './base/DiagnosticBag.js';
|
|
4
|
+
export { createDiagnosticFingerprint } from './base/DiagnosticFingerprint.js';
|
|
5
|
+
export type { DiagnosticLevel } from './base/DiagnosticLevel.js';
|
|
6
|
+
export type { Result, ResultFail, ResultOk } from './base/Result.js';
|
|
7
|
+
export { fail, fromDiagnostics, ok } from './base/Result.js';
|
|
8
|
+
export type { ConfigDiagnostic, ConfigInvalidJsonDiagnostic, ConfigInvalidValueDiagnostic, ConfigTypeMismatchDiagnostic, ConfigUnknownKeyDiagnostic, ConfigUnresolvedDefaultRegistryDiagnostic, } from './config/ConfigDiagnostics.js';
|
|
9
|
+
export { createConfigInvalidJsonDiagnostic, createConfigInvalidValueDiagnostic, createConfigTypeMismatchDiagnostic, createConfigUnknownKeyDiagnostic, createConfigUnresolvedDefaultRegistryDiagnostic, } from './config/ConfigDiagnostics.js';
|
|
10
|
+
export type { GeneralDiagnostic, IoErrorDiagnostic, ParseErrorDiagnostic, UnknownErrorDiagnostic, } from './general/GeneralDiagnostics.js';
|
|
11
|
+
export { createIoErrorDiagnostic, createParseErrorDiagnostic, createUnknownErrorDiagnostic, } from './general/GeneralDiagnostics.js';
|
|
12
|
+
export type { DiskRemoveFailedDiagnostic, DownloadFailedDiagnostic, DownloadHttpStatusDiagnostic, ExtractionFailedDiagnostic, InstallerDiagnostic, IntegrityMismatchDiagnostic, NetworkRetriesExhaustedDiagnostic, NetworkTimeoutDiagnostic, } from './installer/InstallerDiagnostics.js';
|
|
13
|
+
export { createDiskRemoveFailedDiagnostic, createDownloadFailedDiagnostic, createDownloadHttpStatusDiagnostic, createExtractionFailedDiagnostic, createIntegrityMismatchDiagnostic, createNetworkRetriesExhaustedDiagnostic, createNetworkTimeoutDiagnostic, } from './installer/InstallerDiagnostics.js';
|
|
14
|
+
export type { DependencyNotFoundDiagnostic, ForbiddenOverridesDiagnostic, LockfileInvalidDiagnostic, LockfileMissingDiagnostic, LockfileOutOfSyncDiagnostic, ManifestDiagnostic, ManifestInvalidDiagnostic, ManifestReadErrorDiagnostic, ManifestWriteErrorDiagnostic, UnresolvedRegistryDiagnostic, } from './manifest/ManifestDiagnostics.js';
|
|
15
|
+
export { createDependencyNotFoundDiagnostic, createForbiddenOverridesDiagnostic, createLockfileInvalidDiagnostic, createLockfileMissingDiagnostic, createLockfileOutOfSyncDiagnostic, createManifestInvalidDiagnostic, createManifestReadErrorDiagnostic, createManifestWriteErrorDiagnostic, createUnresolvedRegistryDiagnostic, } from './manifest/ManifestDiagnostics.js';
|
|
16
|
+
export type { CyclicSymlinkDiagnostic, InvalidPathDiagnostic, LfsSkippedDiagnostic, NoFilesSelectedDiagnostic, OutFileIsDirectoryDiagnostic, PackDiagnostic, PluginRootNotFoundDiagnostic, SymlinkOutsideRootDiagnostic, UnresolvedLfsDiagnostic, UpluginMissingDiagnostic, } from './pack/PackDiagnostics.js';
|
|
17
|
+
export { createCyclicSymlinkDiagnostic, createInvalidPathDiagnostic, createLfsSkippedDiagnostic, createNoFilesSelectedDiagnostic, createOutFileIsDirectoryDiagnostic, createPluginRootNotFoundDiagnostic, createSymlinkOutsideRootDiagnostic, createUnresolvedLfsDiagnostic, createUpluginMissingDiagnostic, } from './pack/PackDiagnostics.js';
|
|
18
|
+
export type { PostinstallDiagnostic, PostinstallDuplicateEntryDiagnostic, PostinstallEsbuildErrorDiagnostic, PostinstallInvalidExportDiagnostic, PostinstallLoadFailedDiagnostic, PostinstallMarkerCorruptDiagnostic, PostinstallPolicyDeniedDiagnostic, } from './postinstall/PostinstallDiagnostics.js';
|
|
19
|
+
export { createPostinstallDuplicateEntryDiagnostic, createPostinstallEsbuildErrorDiagnostic, createPostinstallInvalidExportDiagnostic, createPostinstallLoadFailedDiagnostic, createPostinstallMarkerCorruptDiagnostic, createPostinstallPolicyDeniedDiagnostic, } from './postinstall/PostinstallDiagnostics.js';
|
|
20
|
+
export type { CacheReadErrorDiagnostic, GitErrorDiagnostic, LockAcquisitionFailedDiagnostic, NetworkErrorDiagnostic, RegistryDiagnostic, RegistryNotFoundDiagnostic, RegistryUnreachableDiagnostic, SchemaInvalidDiagnostic, } from './registry/RegistryDiagnostics.js';
|
|
21
|
+
export { createCacheReadErrorDiagnostic, createGitErrorDiagnostic, createLockAcquisitionFailedDiagnostic, createNetworkErrorDiagnostic, createRegistryNotFoundDiagnostic, createRegistryUnreachableDiagnostic, createSchemaInvalidDiagnostic, } from './registry/RegistryDiagnostics.js';
|
|
22
|
+
export type { RegistryToolsDependencyNotInRegistryDiagnostic, RegistryToolsDependencyRangeUnreachableDiagnostic, RegistryToolsDiagnostic, RegistryToolsExternalRegistryDeniedDiagnostic, RegistryToolsExternalRegistryNotAllowedDiagnostic, RegistryToolsIntegrityMismatchDiagnostic, RegistryToolsOfficialPolicyViolationDiagnostic, RegistryToolsPackageMissingDiagnostic, RegistryToolsPackageSourceMismatchDiagnostic, RegistryToolsPathMismatchDiagnostic, RegistryToolsReleaseFileNameInvalidDiagnostic, RegistryToolsRemovalDeniedDiagnostic, RegistryToolsUnknownKeyDiagnostic, RegistryToolsVersionExistsDiagnostic, RegistryToolsVersionNotFoundDiagnostic, RegistryToolsVersionsUnsortedDiagnostic, } from './registryTools/RegistryToolsDiagnostics.js';
|
|
23
|
+
export { createRegistryToolsDependencyNotInRegistryDiagnostic, createRegistryToolsDependencyRangeUnreachableDiagnostic, createRegistryToolsExternalRegistryDeniedDiagnostic, createRegistryToolsExternalRegistryNotAllowedDiagnostic, createRegistryToolsIntegrityMismatchDiagnostic, createRegistryToolsOfficialPolicyViolationDiagnostic, createRegistryToolsPackageMissingDiagnostic, createRegistryToolsPackageSourceMismatchDiagnostic, createRegistryToolsPathMismatchDiagnostic, createRegistryToolsReleaseFileNameInvalidDiagnostic, createRegistryToolsRemovalDeniedDiagnostic, createRegistryToolsUnknownKeyDiagnostic, createRegistryToolsVersionExistsDiagnostic, createRegistryToolsVersionNotFoundDiagnostic, createRegistryToolsVersionsUnsortedDiagnostic, } from './registryTools/RegistryToolsDiagnostics.js';
|
|
24
|
+
export type { CircularDepDiagnostic, PackageNotFoundDiagnostic, RegistryNameCollisionDiagnostic, ResolverDiagnostic, VersionConflictDiagnostic, VersionNotFoundDiagnostic, } from './resolver/ResolverDiagnostics.js';
|
|
25
|
+
export { createCircularDepDiagnostic, createPackageNotFoundDiagnostic, createRegistryNameCollisionDiagnostic, createVersionConflictDiagnostic, createVersionNotFoundDiagnostic, } from './resolver/ResolverDiagnostics.js';
|
|
26
|
+
export type { SafetyDiagnostic, SafetyOverriddenByForceDiagnostic, SafetyPathNotProjectManifestDiagnostic, SafetyTargetExistsNoManifestDiagnostic, } from './safety/SafetyDiagnostics.js';
|
|
27
|
+
export { createSafetyOverriddenByForceDiagnostic, createSafetyPathNotProjectManifestDiagnostic, createSafetyTargetExistsNoManifestDiagnostic, } from './safety/SafetyDiagnostics.js';
|
|
28
|
+
export type { InvalidOrgNameDiagnostic, InvalidPackageSpecDiagnostic, InvalidVersionRangeDiagnostic, SpecParseDiagnostic, } from './spec/SpecDiagnostics.js';
|
|
29
|
+
export { createInvalidOrgNameDiagnostic, createInvalidPackageSpecDiagnostic, createInvalidVersionRangeDiagnostic, } from './spec/SpecDiagnostics.js';
|
|
30
|
+
export type { Diagnostic, DiagnosticByCode, DiagnosticCode } from './types.js';
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// @uapkg/diagnostics — public API
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export { createDiagnostic } from './base/Diagnostic.js';
|
|
5
|
+
export { DiagnosticBag } from './base/DiagnosticBag.js';
|
|
6
|
+
export { createDiagnosticFingerprint } from './base/DiagnosticFingerprint.js';
|
|
7
|
+
export { fail, fromDiagnostics, ok } from './base/Result.js';
|
|
8
|
+
export { createConfigInvalidJsonDiagnostic, createConfigInvalidValueDiagnostic, createConfigTypeMismatchDiagnostic, createConfigUnknownKeyDiagnostic, createConfigUnresolvedDefaultRegistryDiagnostic, } from './config/ConfigDiagnostics.js';
|
|
9
|
+
export { createIoErrorDiagnostic, createParseErrorDiagnostic, createUnknownErrorDiagnostic, } from './general/GeneralDiagnostics.js';
|
|
10
|
+
export { createDiskRemoveFailedDiagnostic, createDownloadFailedDiagnostic, createDownloadHttpStatusDiagnostic, createExtractionFailedDiagnostic, createIntegrityMismatchDiagnostic, createNetworkRetriesExhaustedDiagnostic, createNetworkTimeoutDiagnostic, } from './installer/InstallerDiagnostics.js';
|
|
11
|
+
export { createDependencyNotFoundDiagnostic, createForbiddenOverridesDiagnostic, createLockfileInvalidDiagnostic, createLockfileMissingDiagnostic, createLockfileOutOfSyncDiagnostic, createManifestInvalidDiagnostic, createManifestReadErrorDiagnostic, createManifestWriteErrorDiagnostic, createUnresolvedRegistryDiagnostic, } from './manifest/ManifestDiagnostics.js';
|
|
12
|
+
export { createCyclicSymlinkDiagnostic, createInvalidPathDiagnostic, createLfsSkippedDiagnostic, createNoFilesSelectedDiagnostic, createOutFileIsDirectoryDiagnostic, createPluginRootNotFoundDiagnostic, createSymlinkOutsideRootDiagnostic, createUnresolvedLfsDiagnostic, createUpluginMissingDiagnostic, } from './pack/PackDiagnostics.js';
|
|
13
|
+
export { createPostinstallDuplicateEntryDiagnostic, createPostinstallEsbuildErrorDiagnostic, createPostinstallInvalidExportDiagnostic, createPostinstallLoadFailedDiagnostic, createPostinstallMarkerCorruptDiagnostic, createPostinstallPolicyDeniedDiagnostic, } from './postinstall/PostinstallDiagnostics.js';
|
|
14
|
+
export { createCacheReadErrorDiagnostic, createGitErrorDiagnostic, createLockAcquisitionFailedDiagnostic, createNetworkErrorDiagnostic, createRegistryNotFoundDiagnostic, createRegistryUnreachableDiagnostic, createSchemaInvalidDiagnostic, } from './registry/RegistryDiagnostics.js';
|
|
15
|
+
export { createRegistryToolsDependencyNotInRegistryDiagnostic, createRegistryToolsDependencyRangeUnreachableDiagnostic, createRegistryToolsExternalRegistryDeniedDiagnostic, createRegistryToolsExternalRegistryNotAllowedDiagnostic, createRegistryToolsIntegrityMismatchDiagnostic, createRegistryToolsOfficialPolicyViolationDiagnostic, createRegistryToolsPackageMissingDiagnostic, createRegistryToolsPackageSourceMismatchDiagnostic, createRegistryToolsPathMismatchDiagnostic, createRegistryToolsReleaseFileNameInvalidDiagnostic, createRegistryToolsRemovalDeniedDiagnostic, createRegistryToolsUnknownKeyDiagnostic, createRegistryToolsVersionExistsDiagnostic, createRegistryToolsVersionNotFoundDiagnostic, createRegistryToolsVersionsUnsortedDiagnostic, } from './registryTools/RegistryToolsDiagnostics.js';
|
|
16
|
+
export { createCircularDepDiagnostic, createPackageNotFoundDiagnostic, createRegistryNameCollisionDiagnostic, createVersionConflictDiagnostic, createVersionNotFoundDiagnostic, } from './resolver/ResolverDiagnostics.js';
|
|
17
|
+
export { createSafetyOverriddenByForceDiagnostic, createSafetyPathNotProjectManifestDiagnostic, createSafetyTargetExistsNoManifestDiagnostic, } from './safety/SafetyDiagnostics.js';
|
|
18
|
+
export { createInvalidOrgNameDiagnostic, createInvalidPackageSpecDiagnostic, createInvalidVersionRangeDiagnostic, } from './spec/SpecDiagnostics.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAG9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAI9E,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAU7D,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,EAClC,gCAAgC,EAChC,+CAA+C,GAChD,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAYzC,OAAO,EACL,gCAAgC,EAChC,8BAA8B,EAC9B,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,EACjC,uCAAuC,EACvC,8BAA8B,GAC/B,MAAM,qCAAqC,CAAC;AAc7C,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,+BAA+B,EAC/B,+BAA+B,EAC/B,iCAAiC,EACjC,+BAA+B,EAC/B,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAc3C,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,kCAAkC,EAClC,kCAAkC,EAClC,kCAAkC,EAClC,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AAWnC,OAAO,EACL,yCAAyC,EACzC,uCAAuC,EACvC,wCAAwC,EACxC,qCAAqC,EACrC,wCAAwC,EACxC,uCAAuC,GACxC,MAAM,yCAAyC,CAAC;AAYjD,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,qCAAqC,EACrC,4BAA4B,EAC5B,gCAAgC,EAChC,mCAAmC,EACnC,6BAA6B,GAC9B,MAAM,mCAAmC,CAAC;AAoB3C,OAAO,EACL,oDAAoD,EACpD,uDAAuD,EACvD,mDAAmD,EACnD,uDAAuD,EACvD,8CAA8C,EAC9C,oDAAoD,EACpD,2CAA2C,EAC3C,kDAAkD,EAClD,yCAAyC,EACzC,mDAAmD,EACnD,0CAA0C,EAC1C,uCAAuC,EACvC,0CAA0C,EAC1C,4CAA4C,EAC5C,6CAA6C,GAC9C,MAAM,6CAA6C,CAAC;AAUrD,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,qCAAqC,EACrC,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAQ3C,OAAO,EACL,uCAAuC,EACvC,4CAA4C,EAC5C,4CAA4C,GAC7C,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,2BAA2B,CAAC"}
|