@ai-dossier/core 1.3.1 → 1.3.3
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/trace-config.d.ts +32 -0
- package/dist/trace-config.d.ts.map +1 -0
- package/dist/trace-config.js +154 -0
- package/dist/trace-config.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export type { SecurityCategory, SecurityFinding, SecurityReport, SecurityRule, S
|
|
|
22
22
|
export { buildReport, defaultSecurityRules, SecurityRuleRegistry, scanDossier, scanDossierFile, scanMarkdown, } from './security-scanner';
|
|
23
23
|
export { loadTrustedKeys, verifySignature, verifyWithEd25519, verifyWithKms } from './signature';
|
|
24
24
|
export { Ed25519Signer, Ed25519Verifier, getVerifierRegistry, KmsSigner, KmsVerifier, SignatureResult, Signer, Verifier, VerifierRegistry, VerifyResult, } from './signers';
|
|
25
|
+
export type { ConfigLayer as TraceConfigLayer, ResolvedTraceConfig, TraceConfigOptions, TraceConfigSource, } from './trace-config';
|
|
26
|
+
export { resolveTraceConfig } from './trace-config';
|
|
25
27
|
export type { StepInput as TraceStepInput, TraceInput, TraceRecorder, TraceRecorderOptions, TraceStatus, TraceUpdate, } from './trace-recorder';
|
|
26
28
|
export { createTraceRecorder, VALID_TRACE_STATUSES } from './trace-recorder';
|
|
27
29
|
export * from './types';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,eAAe,EACf,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,YAAY,GACb,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,SAAS,IAAI,cAAc,EAC3B,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,eAAe,EACf,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,YAAY,GACb,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,WAAW,IAAI,gBAAgB,EAC/B,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,YAAY,EACV,SAAS,IAAI,cAAc,EAC3B,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
24
24
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.
|
|
27
|
+
exports.scanBodyForUrls = exports.isUrlCoveredByDeclared = exports.isPlaceholderUrl = exports.findUndeclaredUrls = exports.findStaleReferences = exports.collectDeclaredUrls = exports.readFileIfExists = exports.getErrorStack = exports.getErrorMessage = exports.sha256Hex = exports.sha256Hash = exports.VALID_TRACE_STATUSES = exports.createTraceRecorder = exports.resolveTraceConfig = exports.VerifierRegistry = exports.KmsVerifier = exports.KmsSigner = exports.getVerifierRegistry = exports.Ed25519Verifier = exports.Ed25519Signer = exports.verifyWithKms = exports.verifyWithEd25519 = exports.verifySignature = exports.loadTrustedKeys = exports.scanMarkdown = exports.scanDossierFile = exports.scanDossier = exports.SecurityRuleRegistry = exports.defaultSecurityRules = exports.buildReport = exports.assessVerificationRisk = exports.assessContentRisk = exports.validateFrontmatter = exports.VALID_STATUSES = exports.VALID_RISK_LEVELS = exports.REQUIRED_FIELDS = exports.RECOMMENDED_FIELDS = exports.parseDossierFile = exports.parseDossierContent = exports.loadLintConfig = exports.lintDossierFile = exports.lintDossier = exports.LintRuleRegistry = exports.defaultRules = exports.formatDossierFile = exports.formatDossierContent = exports.validateStepCoherence = exports.validateCoherence = exports.verifyIntegrity = exports.calculateChecksum = void 0;
|
|
28
|
+
exports.createDefaultVerificationResult = void 0;
|
|
28
29
|
// Checksum exports
|
|
29
30
|
var checksum_1 = require("./checksum");
|
|
30
31
|
Object.defineProperty(exports, "calculateChecksum", { enumerable: true, get: function () { return checksum_1.calculateChecksum; } });
|
|
@@ -77,6 +78,8 @@ Object.defineProperty(exports, "getVerifierRegistry", { enumerable: true, get: f
|
|
|
77
78
|
Object.defineProperty(exports, "KmsSigner", { enumerable: true, get: function () { return signers_1.KmsSigner; } });
|
|
78
79
|
Object.defineProperty(exports, "KmsVerifier", { enumerable: true, get: function () { return signers_1.KmsVerifier; } });
|
|
79
80
|
Object.defineProperty(exports, "VerifierRegistry", { enumerable: true, get: function () { return signers_1.VerifierRegistry; } });
|
|
81
|
+
var trace_config_1 = require("./trace-config");
|
|
82
|
+
Object.defineProperty(exports, "resolveTraceConfig", { enumerable: true, get: function () { return trace_config_1.resolveTraceConfig; } });
|
|
80
83
|
var trace_recorder_1 = require("./trace-recorder");
|
|
81
84
|
Object.defineProperty(exports, "createTraceRecorder", { enumerable: true, get: function () { return trace_recorder_1.createTraceRecorder; } });
|
|
82
85
|
Object.defineProperty(exports, "VALID_TRACE_STATUSES", { enumerable: true, get: function () { return trace_recorder_1.VALID_TRACE_STATUSES; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;AAEH,mBAAmB;AACnB,uCAAgE;AAAvD,6GAAA,iBAAiB,OAAA;AAAE,2GAAA,eAAe,OAAA;AAU3C,yCAAuE;AAA9D,8GAAA,iBAAiB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAEjD,oBAAoB;AACpB,yCAAsE;AAA7D,iHAAA,oBAAoB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAUhD,iBAAiB;AACjB,mCAMkB;AALhB,sGAAA,YAAY,OAAA;AACZ,0GAAA,gBAAgB,OAAA;AAChB,qGAAA,WAAW,OAAA;AACX,yGAAA,eAAe,OAAA;AACf,wGAAA,cAAc,OAAA;AAEhB,iBAAiB;AACjB,mCAQkB;AAPhB,6GAAA,mBAAmB,OAAA;AACnB,0GAAA,gBAAgB,OAAA;AAChB,4GAAA,kBAAkB,OAAA;AAClB,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AACjB,wGAAA,cAAc,OAAA;AACd,6GAAA,mBAAmB,OAAA;AASrB,0BAA0B;AAC1B,qDAA8E;AAArE,oHAAA,iBAAiB,OAAA;AAAE,yHAAA,sBAAsB,OAAA;AAYlD,uDAO4B;AAN1B,+GAAA,WAAW,OAAA;AACX,wHAAA,oBAAoB,OAAA;AACpB,wHAAA,oBAAoB,OAAA;AACpB,+GAAA,WAAW,OAAA;AACX,mHAAA,eAAe,OAAA;AACf,gHAAA,YAAY,OAAA;AAEd,oBAAoB;AACpB,yCAAiG;AAAxF,4GAAA,eAAe,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,0GAAA,aAAa,OAAA;AAC3E,iDAAiD;AACjD,qCAWmB;AAVjB,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,8GAAA,mBAAmB,OAAA;AACnB,oGAAA,SAAS,OAAA;AACT,sGAAA,WAAW,OAAA;AAIX,2GAAA,gBAAgB,OAAA;AAUlB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAU3B,mDAA6E;AAApE,qHAAA,mBAAmB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAClD,eAAe;AACf,0CAAwB;AACxB,mBAAmB;AACnB,yCAAuD;AAA9C,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAC9B,kBAAkB;AAClB,yCAAgE;AAAvD,yGAAA,eAAe,OAAA;AAAE,uGAAA,aAAa,OAAA;AACvC,wBAAwB;AACxB,iCAA8C;AAArC,sGAAA,gBAAgB,OAAA;AACzB,yBAAyB;AACzB,mDAO6B;AAN3B,kHAAA,mBAAmB,OAAA;AACnB,kHAAA,mBAAmB,OAAA;AACnB,iHAAA,kBAAkB,OAAA;AAClB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,8GAAA,eAAe,OAAA;AAEjB,yBAAyB;AACzB,qDAAuE;AAA9D,+HAAA,+BAA+B,OAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type ConfigLayer = 'env' | 'project' | 'user' | 'credentials' | 'default';
|
|
2
|
+
export interface TraceConfigSource {
|
|
3
|
+
layer: ConfigLayer;
|
|
4
|
+
path?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ResolvedTraceConfig {
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
url: string | null;
|
|
9
|
+
token: string | null;
|
|
10
|
+
sources: {
|
|
11
|
+
enabled: TraceConfigSource;
|
|
12
|
+
url: TraceConfigSource | null;
|
|
13
|
+
token: TraceConfigSource | null;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface TraceConfigOptions {
|
|
17
|
+
/** Override CWD for project-config lookup (mostly for tests). */
|
|
18
|
+
cwd?: string;
|
|
19
|
+
/** Override $HOME for user-config lookup (mostly for tests). */
|
|
20
|
+
home?: string;
|
|
21
|
+
/** Override process.env (mostly for tests). */
|
|
22
|
+
env?: NodeJS.ProcessEnv;
|
|
23
|
+
/** File reader injection (mostly for tests). */
|
|
24
|
+
readFile?: (path: string) => string | null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the effective trace configuration from the precedence stack.
|
|
28
|
+
* The returned object always includes `sources` so callers can show the
|
|
29
|
+
* user which layer won (useful for diagnostic commands).
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveTraceConfig(opts?: TraceConfigOptions): ResolvedTraceConfig;
|
|
32
|
+
//# sourceMappingURL=trace-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-config.d.ts","sourceRoot":"","sources":["../src/trace-config.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;AAEjF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE;QACP,OAAO,EAAE,iBAAiB,CAAC;QAC3B,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAC9B,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC5C;AAqBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,kBAAuB,GAAG,mBAAmB,CAwErF"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Trace config resolver.
|
|
3
|
+
//
|
|
4
|
+
// Resolves which URL + token the TraceRecorder should use, walking a
|
|
5
|
+
// precedence stack: env > project (.dossierrc.json) > user (~/.dossier/
|
|
6
|
+
// config.json) > defaults. The token can also come from the CLI
|
|
7
|
+
// credentials store (~/.dossier/credentials.json) when not set elsewhere.
|
|
8
|
+
//
|
|
9
|
+
// Tracing is OPT-IN: the resolver returns { enabled: false } unless
|
|
10
|
+
// `tracing.enabled === true` is found in env or one of the config files,
|
|
11
|
+
// even if a URL and token happen to be available.
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.resolveTraceConfig = resolveTraceConfig;
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const node_os_1 = require("node:os");
|
|
16
|
+
const node_path_1 = require("node:path");
|
|
17
|
+
const DEFAULT_TRACE_URL = 'https://dossier-registry.vercel.app';
|
|
18
|
+
/**
|
|
19
|
+
* Resolve the effective trace configuration from the precedence stack.
|
|
20
|
+
* The returned object always includes `sources` so callers can show the
|
|
21
|
+
* user which layer won (useful for diagnostic commands).
|
|
22
|
+
*/
|
|
23
|
+
function resolveTraceConfig(opts = {}) {
|
|
24
|
+
const env = opts.env ?? process.env;
|
|
25
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
26
|
+
const home = opts.home ?? (0, node_os_1.homedir)();
|
|
27
|
+
const readFile = opts.readFile ?? defaultReadFile;
|
|
28
|
+
const userConfigPath = (0, node_path_1.join)(home, '.dossier', 'config.json');
|
|
29
|
+
const userConfig = parseJson(readFile(userConfigPath));
|
|
30
|
+
const projectConfigPath = findProjectConfig(cwd, readFile);
|
|
31
|
+
const projectConfig = projectConfigPath
|
|
32
|
+
? parseJson(readFile(projectConfigPath))
|
|
33
|
+
: null;
|
|
34
|
+
// --- enabled ---
|
|
35
|
+
let enabled = false;
|
|
36
|
+
let enabledSource = { layer: 'default' };
|
|
37
|
+
if (env.DOSSIER_TRACE_ENABLED != null) {
|
|
38
|
+
enabled = env.DOSSIER_TRACE_ENABLED.toLowerCase() === 'true';
|
|
39
|
+
enabledSource = { layer: 'env' };
|
|
40
|
+
}
|
|
41
|
+
else if (projectConfig?.tracing?.enabled != null) {
|
|
42
|
+
enabled = Boolean(projectConfig.tracing.enabled);
|
|
43
|
+
enabledSource = { layer: 'project', path: projectConfigPath ?? undefined };
|
|
44
|
+
}
|
|
45
|
+
else if (userConfig?.tracing?.enabled != null) {
|
|
46
|
+
enabled = Boolean(userConfig.tracing.enabled);
|
|
47
|
+
enabledSource = { layer: 'user', path: userConfigPath };
|
|
48
|
+
}
|
|
49
|
+
// --- url ---
|
|
50
|
+
let url = null;
|
|
51
|
+
let urlSource = null;
|
|
52
|
+
if (env.DOSSIER_TRACE_URL) {
|
|
53
|
+
url = env.DOSSIER_TRACE_URL;
|
|
54
|
+
urlSource = { layer: 'env' };
|
|
55
|
+
}
|
|
56
|
+
else if (projectConfig?.tracing?.url) {
|
|
57
|
+
url = projectConfig.tracing.url;
|
|
58
|
+
urlSource = { layer: 'project', path: projectConfigPath ?? undefined };
|
|
59
|
+
}
|
|
60
|
+
else if (userConfig?.tracing?.url) {
|
|
61
|
+
url = userConfig.tracing.url;
|
|
62
|
+
urlSource = { layer: 'user', path: userConfigPath };
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
url = pickDefaultRegistryUrl(userConfig) ?? DEFAULT_TRACE_URL;
|
|
66
|
+
urlSource = { layer: 'default' };
|
|
67
|
+
}
|
|
68
|
+
// --- token ---
|
|
69
|
+
let token = null;
|
|
70
|
+
let tokenSource = null;
|
|
71
|
+
if (env.DOSSIER_TRACE_TOKEN) {
|
|
72
|
+
token = env.DOSSIER_TRACE_TOKEN;
|
|
73
|
+
tokenSource = { layer: 'env' };
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const credsPath = (0, node_path_1.join)(home, '.dossier', 'credentials.json');
|
|
77
|
+
const creds = parseJson(readFile(credsPath));
|
|
78
|
+
if (creds) {
|
|
79
|
+
// Prefer credentials whose registry URL matches the resolved tracing URL.
|
|
80
|
+
const matched = findMatchingCredentials(creds, userConfig, url);
|
|
81
|
+
if (matched?.token) {
|
|
82
|
+
token = matched.token;
|
|
83
|
+
tokenSource = { layer: 'credentials', path: credsPath };
|
|
84
|
+
}
|
|
85
|
+
else if (creds.public?.token) {
|
|
86
|
+
token = creds.public.token;
|
|
87
|
+
tokenSource = { layer: 'credentials', path: credsPath };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
enabled: enabled && Boolean(url) && Boolean(token),
|
|
93
|
+
url,
|
|
94
|
+
token,
|
|
95
|
+
sources: { enabled: enabledSource, url: urlSource, token: tokenSource },
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function defaultReadFile(path) {
|
|
99
|
+
try {
|
|
100
|
+
return (0, node_fs_1.existsSync)(path) ? (0, node_fs_1.readFileSync)(path, 'utf8') : null;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function parseJson(contents) {
|
|
107
|
+
if (!contents)
|
|
108
|
+
return null;
|
|
109
|
+
try {
|
|
110
|
+
return JSON.parse(contents);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function findProjectConfig(startDir, readFile) {
|
|
117
|
+
let dir = startDir;
|
|
118
|
+
const root = (0, node_path_1.parse)(dir).root;
|
|
119
|
+
while (dir !== root) {
|
|
120
|
+
const rcFile = (0, node_path_1.join)(dir, '.dossierrc.json');
|
|
121
|
+
if (readFile(rcFile) != null)
|
|
122
|
+
return rcFile;
|
|
123
|
+
dir = (0, node_path_1.dirname)(dir);
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
function pickDefaultRegistryUrl(userConfig) {
|
|
128
|
+
if (!userConfig?.registries)
|
|
129
|
+
return null;
|
|
130
|
+
const defaultName = userConfig.defaultRegistry;
|
|
131
|
+
if (defaultName && userConfig.registries[defaultName]) {
|
|
132
|
+
return userConfig.registries[defaultName].url;
|
|
133
|
+
}
|
|
134
|
+
const flagged = Object.values(userConfig.registries).find((r) => r.default);
|
|
135
|
+
if (flagged)
|
|
136
|
+
return flagged.url;
|
|
137
|
+
const first = Object.values(userConfig.registries)[0];
|
|
138
|
+
return first?.url ?? null;
|
|
139
|
+
}
|
|
140
|
+
function findMatchingCredentials(creds, userConfig, resolvedUrl) {
|
|
141
|
+
if (!resolvedUrl || !userConfig?.registries)
|
|
142
|
+
return null;
|
|
143
|
+
const target = normalizeUrl(resolvedUrl);
|
|
144
|
+
for (const [name, entry] of Object.entries(userConfig.registries)) {
|
|
145
|
+
if (normalizeUrl(entry.url) === target && creds[name]) {
|
|
146
|
+
return creds[name];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
function normalizeUrl(u) {
|
|
152
|
+
return u.replace(/\/+$/, '').toLowerCase();
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=trace-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-config.js","sourceRoot":"","sources":["../src/trace-config.ts"],"names":[],"mappings":"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"}
|