@aipt/platform-kernel 0.1.5
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/README.md +25 -0
- package/dist/adoption-contracts.d.ts +140 -0
- package/dist/adoption-contracts.d.ts.map +1 -0
- package/dist/adoption-contracts.js +2 -0
- package/dist/adoption-contracts.js.map +1 -0
- package/dist/adoption-metadata.d.ts +72 -0
- package/dist/adoption-metadata.d.ts.map +1 -0
- package/dist/adoption-metadata.js +408 -0
- package/dist/adoption-metadata.js.map +1 -0
- package/dist/adoption-schemas.d.ts +1608 -0
- package/dist/adoption-schemas.d.ts.map +1 -0
- package/dist/adoption-schemas.js +319 -0
- package/dist/adoption-schemas.js.map +1 -0
- package/dist/application-config-binding.d.ts +54 -0
- package/dist/application-config-binding.d.ts.map +1 -0
- package/dist/application-config-binding.js +139 -0
- package/dist/application-config-binding.js.map +1 -0
- package/dist/application-config-contract.d.ts +159 -0
- package/dist/application-config-contract.d.ts.map +1 -0
- package/dist/application-config-contract.js +142 -0
- package/dist/application-config-contract.js.map +1 -0
- package/dist/blank-profile.d.ts +60 -0
- package/dist/blank-profile.d.ts.map +1 -0
- package/dist/blank-profile.js +182 -0
- package/dist/blank-profile.js.map +1 -0
- package/dist/catalog-source.d.ts +167 -0
- package/dist/catalog-source.d.ts.map +1 -0
- package/dist/catalog-source.js +252 -0
- package/dist/catalog-source.js.map +1 -0
- package/dist/code-module-publication.d.ts +113 -0
- package/dist/code-module-publication.d.ts.map +1 -0
- package/dist/code-module-publication.js +71 -0
- package/dist/code-module-publication.js.map +1 -0
- package/dist/contracts.d.ts +150 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +3 -0
- package/dist/contracts.js.map +1 -0
- package/dist/delivery.d.ts +201 -0
- package/dist/delivery.d.ts.map +1 -0
- package/dist/delivery.js +364 -0
- package/dist/delivery.js.map +1 -0
- package/dist/dependency-resolution.d.ts +46 -0
- package/dist/dependency-resolution.d.ts.map +1 -0
- package/dist/dependency-resolution.js +35 -0
- package/dist/dependency-resolution.js.map +1 -0
- package/dist/doctor.d.ts +50 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +62 -0
- package/dist/doctor.js.map +1 -0
- package/dist/durability-trace.d.ts +31 -0
- package/dist/durability-trace.d.ts.map +1 -0
- package/dist/durability-trace.js +45 -0
- package/dist/durability-trace.js.map +1 -0
- package/dist/engineering-operations.d.ts +43 -0
- package/dist/engineering-operations.d.ts.map +1 -0
- package/dist/engineering-operations.js +19 -0
- package/dist/engineering-operations.js.map +1 -0
- package/dist/engineering-product.d.ts +261 -0
- package/dist/engineering-product.d.ts.map +1 -0
- package/dist/engineering-product.js +61 -0
- package/dist/engineering-product.js.map +1 -0
- package/dist/example-recipe.d.ts +147 -0
- package/dist/example-recipe.d.ts.map +1 -0
- package/dist/example-recipe.js +58 -0
- package/dist/example-recipe.js.map +1 -0
- package/dist/feature-planner.d.ts +59 -0
- package/dist/feature-planner.d.ts.map +1 -0
- package/dist/feature-planner.js +160 -0
- package/dist/feature-planner.js.map +1 -0
- package/dist/filesystem-contracts.d.ts +77 -0
- package/dist/filesystem-contracts.d.ts.map +1 -0
- package/dist/filesystem-contracts.js +2 -0
- package/dist/filesystem-contracts.js.map +1 -0
- package/dist/filesystem-transaction.d.ts +52 -0
- package/dist/filesystem-transaction.d.ts.map +1 -0
- package/dist/filesystem-transaction.js +749 -0
- package/dist/filesystem-transaction.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/integrity.d.ts +3 -0
- package/dist/integrity.d.ts.map +1 -0
- package/dist/integrity.js +17 -0
- package/dist/integrity.js.map +1 -0
- package/dist/local-artifact-registry.d.ts +55 -0
- package/dist/local-artifact-registry.d.ts.map +1 -0
- package/dist/local-artifact-registry.js +87 -0
- package/dist/local-artifact-registry.js.map +1 -0
- package/dist/locked-repository-state.d.ts +21 -0
- package/dist/locked-repository-state.d.ts.map +1 -0
- package/dist/locked-repository-state.js +62 -0
- package/dist/locked-repository-state.js.map +1 -0
- package/dist/managed-region.d.ts +11 -0
- package/dist/managed-region.d.ts.map +1 -0
- package/dist/managed-region.js +45 -0
- package/dist/managed-region.js.map +1 -0
- package/dist/package-adoption.d.ts +179 -0
- package/dist/package-adoption.d.ts.map +1 -0
- package/dist/package-adoption.js +332 -0
- package/dist/package-adoption.js.map +1 -0
- package/dist/package-release.d.ts +42 -0
- package/dist/package-release.d.ts.map +1 -0
- package/dist/package-release.js +85 -0
- package/dist/package-release.js.map +1 -0
- package/dist/plan-state.d.ts +10 -0
- package/dist/plan-state.d.ts.map +1 -0
- package/dist/plan-state.js +33 -0
- package/dist/plan-state.js.map +1 -0
- package/dist/planner.d.ts +19 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +111 -0
- package/dist/planner.js.map +1 -0
- package/dist/platform-package-sources.d.ts +49 -0
- package/dist/platform-package-sources.d.ts.map +1 -0
- package/dist/platform-package-sources.js +98 -0
- package/dist/platform-package-sources.js.map +1 -0
- package/dist/project-bootstrap.d.ts +42 -0
- package/dist/project-bootstrap.d.ts.map +1 -0
- package/dist/project-bootstrap.js +270 -0
- package/dist/project-bootstrap.js.map +1 -0
- package/dist/project-control.d.ts +149 -0
- package/dist/project-control.d.ts.map +1 -0
- package/dist/project-control.js +46 -0
- package/dist/project-control.js.map +1 -0
- package/dist/project-maintenance.d.ts +30 -0
- package/dist/project-maintenance.d.ts.map +1 -0
- package/dist/project-maintenance.js +29 -0
- package/dist/project-maintenance.js.map +1 -0
- package/dist/project-recovery.d.ts +31 -0
- package/dist/project-recovery.d.ts.map +1 -0
- package/dist/project-recovery.js +80 -0
- package/dist/project-recovery.js.map +1 -0
- package/dist/recovery-override.d.ts +20 -0
- package/dist/recovery-override.d.ts.map +1 -0
- package/dist/recovery-override.js +27 -0
- package/dist/recovery-override.js.map +1 -0
- package/dist/release-loader.d.ts +9 -0
- package/dist/release-loader.d.ts.map +1 -0
- package/dist/release-loader.js +86 -0
- package/dist/release-loader.js.map +1 -0
- package/dist/resolution-evidence.d.ts +67 -0
- package/dist/resolution-evidence.d.ts.map +1 -0
- package/dist/resolution-evidence.js +98 -0
- package/dist/resolution-evidence.js.map +1 -0
- package/dist/resolution-worker-build.d.ts +33 -0
- package/dist/resolution-worker-build.d.ts.map +1 -0
- package/dist/resolution-worker-build.js +42 -0
- package/dist/resolution-worker-build.js.map +1 -0
- package/dist/runtime-observability.d.ts +147 -0
- package/dist/runtime-observability.d.ts.map +1 -0
- package/dist/runtime-observability.js +264 -0
- package/dist/runtime-observability.js.map +1 -0
- package/dist/schemas.d.ts +740 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +348 -0
- package/dist/schemas.js.map +1 -0
- package/dist/solution-catalog.d.ts +169 -0
- package/dist/solution-catalog.d.ts.map +1 -0
- package/dist/solution-catalog.js +60 -0
- package/dist/solution-catalog.js.map +1 -0
- package/dist/standalone-npm-profile.d.ts +146 -0
- package/dist/standalone-npm-profile.d.ts.map +1 -0
- package/dist/standalone-npm-profile.js +425 -0
- package/dist/standalone-npm-profile.js.map +1 -0
- package/dist/testing.d.ts +5 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +3 -0
- package/dist/testing.js.map +1 -0
- package/dist/upgrade-planner.d.ts +45 -0
- package/dist/upgrade-planner.d.ts.map +1 -0
- package/dist/upgrade-planner.js +207 -0
- package/dist/upgrade-planner.js.map +1 -0
- package/dist/workspace-publication.d.ts +18 -0
- package/dist/workspace-publication.d.ts.map +1 -0
- package/dist/workspace-publication.js +33 -0
- package/dist/workspace-publication.js.map +1 -0
- package/dist/workspace-topology.d.ts +22 -0
- package/dist/workspace-topology.d.ts.map +1 -0
- package/dist/workspace-topology.js +117 -0
- package/dist/workspace-topology.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { canonicalize, sha256Digest } from "./integrity.js";
|
|
2
|
+
export class CodeModulePublicationError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
constructor(code) {
|
|
5
|
+
super(code);
|
|
6
|
+
this.code = code;
|
|
7
|
+
this.name = "CodeModulePublicationError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const digestPattern = /^sha256:[a-f0-9]{64}$/u, identity = /^[a-z][a-z0-9._-]{2,127}$/u, packageName = /^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+$/u;
|
|
11
|
+
function exact(value, keys) { return Object.keys(value).every(k => keys.includes(k)) && keys.every(k => k in value); }
|
|
12
|
+
export function assertPublishableModule(value) { if (!exact(value, ["schemaVersion", "moduleId", "packageName", "version", "visibility", "manifestDigest", "artifactDigest", "artifactIntegrity", "fileCount", "unpackedBytes", "license", "sbomDigest", "auditHighCount", "provenance", "revision"]) || value.schemaVersion !== 1 || !identity.test(value.moduleId) || !packageName.test(value.packageName) || !/^[0-9]+\.[0-9]+\.[0-9]+(?:-[a-z0-9.-]+)?$/u.test(value.version) || !digestPattern.test(value.manifestDigest) || !digestPattern.test(value.artifactDigest) || !/^sha512-[A-Za-z0-9+/]+=*$/u.test(value.artifactIntegrity) || !digestPattern.test(value.sbomDigest) || value.fileCount < 1 || value.unpackedBytes < 1 || value.auditHighCount !== 0 || value.revision < 1)
|
|
13
|
+
throw new CodeModulePublicationError("MODULE_NOT_ELIGIBLE"); }
|
|
14
|
+
/** 回环报文不出本机,明文 http 没有可截获的链路;其余一律 HTTPS——发布凭据不走明文网络。 */
|
|
15
|
+
const loopbackOrigin = /^(?:localhost|127(?:\.\d{1,3}){3}|\[::1\])$/u;
|
|
16
|
+
export function publishableRegistryOrigin(origin) { let url; try {
|
|
17
|
+
url = new URL(origin);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
} return (url.protocol === "https:" || (url.protocol === "http:" && loopbackOrigin.test(url.hostname))) && url.username === "" && url.password === "" && url.search === "" && url.hash === ""; }
|
|
22
|
+
export function assertRegistryBinding(value) { if (!exact(value, ["schemaVersion", "target", "registryId", "origin", "authentication", "credentialReference", "revision"]) || value.schemaVersion !== 1 || !identity.test(value.registryId) || !identity.test(value.credentialReference) || !publishableRegistryOrigin(value.origin) || value.revision < 1 || (value.target === "public" && value.authentication !== "trusted-publishing") || (value.target === "private" && value.authentication !== "restricted-token"))
|
|
23
|
+
throw new CodeModulePublicationError("PUBLICATION_TARGET_INVALID"); }
|
|
24
|
+
export function publicationEligibility(module, target) { const findings = []; try {
|
|
25
|
+
assertPublishableModule(module);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
findings.push("模块制品、SBOM、许可证或安全审计未通过");
|
|
29
|
+
} ; if (target === "public" && module.visibility !== "public")
|
|
30
|
+
findings.push("私有模块不允许发布到公开 Registry"); if (target === "public" && !module.provenance)
|
|
31
|
+
findings.push("公开发布缺少 provenance"); return Object.freeze({ eligible: findings.length === 0, findings }); }
|
|
32
|
+
export function compilePublicationPlan(input) { assertPublishableModule(input.module); assertRegistryBinding(input.target); if (!publicationEligibility(input.module, input.target.target).eligible)
|
|
33
|
+
throw new CodeModulePublicationError("MODULE_NOT_ELIGIBLE"); if (input.remote && input.remote.artifactDigest !== input.module.artifactDigest)
|
|
34
|
+
throw new CodeModulePublicationError("PUBLICATION_VERSION_CONFLICT"); const body = { schemaVersion: 1, module: input.module, target: input.target, remotePrecondition: input.remote ? "same-digest" : "absent", authorizationDigest: input.authorizationDigest, createdAt: input.createdAt, expiresAt: input.expiresAt, approved: false }; const planDigest = sha256Digest(canonicalize(body)); return Object.freeze({ ...body, planId: `publication.${planDigest.slice(7, 31)}`, planDigest }); }
|
|
35
|
+
export function approvePublicationPlan(plan) { return Object.freeze({ ...plan, approved: true }); }
|
|
36
|
+
export async function applyPublicationPlan(input) { const { plan } = input; if (!plan.approved || plan.planDigest !== input.expectedPlanDigest || canonicalize(plan.module) !== canonicalize(input.currentModule) || canonicalize(plan.target) !== canonicalize(input.currentBinding))
|
|
37
|
+
throw new CodeModulePublicationError("PUBLICATION_PLAN_INVALID"); if (Date.parse(input.appliedAt) >= Date.parse(plan.expiresAt))
|
|
38
|
+
throw new CodeModulePublicationError("PUBLICATION_PLAN_EXPIRED"); if (plan.authorizationDigest !== input.authorizationDigest)
|
|
39
|
+
throw new CodeModulePublicationError("PUBLICATION_AUTHORIZATION_CHANGED"); if (!input.credentialSecret)
|
|
40
|
+
throw new CodeModulePublicationError("PUBLICATION_CREDENTIAL_UNAVAILABLE"); let remote = await input.registry.observe(plan.module.packageName, plan.module.version); if (remote && remote.artifactDigest !== plan.module.artifactDigest)
|
|
41
|
+
throw new CodeModulePublicationError("PUBLICATION_VERSION_CONFLICT"); let outcome = remote ? "already-present" : "published"; if (!remote) {
|
|
42
|
+
try {
|
|
43
|
+
await input.registry.publish({ module: plan.module, binding: plan.target, credentialSecret: input.credentialSecret });
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
const code = error instanceof Error ? error.message : "";
|
|
47
|
+
if (code === "PUBLICATION_CREDENTIAL_UNAVAILABLE" || code === "PUBLICATION_VERSION_CONFLICT" || code === "PUBLICATION_REGISTRY_WRITE_FAILED")
|
|
48
|
+
throw new CodeModulePublicationError(code);
|
|
49
|
+
remote = await input.registry.observe(plan.module.packageName, plan.module.version);
|
|
50
|
+
if (!remote || remote.artifactDigest !== plan.module.artifactDigest)
|
|
51
|
+
throw new CodeModulePublicationError("PUBLICATION_OUTCOME_UNKNOWN");
|
|
52
|
+
}
|
|
53
|
+
remote = await input.registry.observe(plan.module.packageName, plan.module.version);
|
|
54
|
+
if (!remote || remote.artifactDigest !== plan.module.artifactDigest)
|
|
55
|
+
throw new CodeModulePublicationError("PUBLICATION_OUTCOME_UNKNOWN");
|
|
56
|
+
} ; const body = { schemaVersion: 1, planId: plan.planId, planDigest: plan.planDigest, registryId: plan.target.registryId, packageName: plan.module.packageName, version: plan.module.version, artifactDigest: plan.module.artifactDigest, outcome, publishedAt: input.appliedAt }; return Object.freeze({ ...body, receiptId: sha256Digest(canonicalize(body)) }); }
|
|
57
|
+
export class FakePublicationRegistry {
|
|
58
|
+
expectedCredential;
|
|
59
|
+
failAfterWrite;
|
|
60
|
+
#packages = new Map();
|
|
61
|
+
constructor(expectedCredential, failAfterWrite = false) {
|
|
62
|
+
this.expectedCredential = expectedCredential;
|
|
63
|
+
this.failAfterWrite = failAfterWrite;
|
|
64
|
+
}
|
|
65
|
+
async observe(name, version) { return this.#packages.get(`${name}@${version}`); }
|
|
66
|
+
async publish({ module, credentialSecret }) { if (credentialSecret !== this.expectedCredential)
|
|
67
|
+
throw new CodeModulePublicationError("PUBLICATION_CREDENTIAL_UNAVAILABLE"); const key = `${module.packageName}@${module.version}`, old = this.#packages.get(key); if (old && old.artifactDigest !== module.artifactDigest)
|
|
68
|
+
throw new CodeModulePublicationError("PUBLICATION_VERSION_CONFLICT"); this.#packages.set(key, { packageName: module.packageName, version: module.version, artifactDigest: module.artifactDigest, artifactIntegrity: module.artifactIntegrity }); if (this.failAfterWrite)
|
|
69
|
+
throw new Error("FAKE_TIMEOUT_AFTER_WRITE"); }
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=code-module-publication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-module-publication.js","sourceRoot":"","sources":["../src/code-module-publication.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
export declare const capabilityIdPattern = "^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$";
|
|
2
|
+
export declare const sha256Pattern = "^sha256:[a-f0-9]{64}$";
|
|
3
|
+
export type CapabilityRelease = {
|
|
4
|
+
schemaVersion: 1;
|
|
5
|
+
capabilityId: string;
|
|
6
|
+
version: string;
|
|
7
|
+
integrity: string;
|
|
8
|
+
assets: Array<{
|
|
9
|
+
path: string;
|
|
10
|
+
ownership: AssetOwnership;
|
|
11
|
+
desiredDigest?: string;
|
|
12
|
+
}>;
|
|
13
|
+
verifiers: Array<{
|
|
14
|
+
id: string;
|
|
15
|
+
kind: "command" | "file-digest";
|
|
16
|
+
}>;
|
|
17
|
+
};
|
|
18
|
+
export type ProjectManifest = {
|
|
19
|
+
schemaVersion: 1;
|
|
20
|
+
template?: {
|
|
21
|
+
id: string;
|
|
22
|
+
version: string;
|
|
23
|
+
};
|
|
24
|
+
profile?: {
|
|
25
|
+
id: string;
|
|
26
|
+
parameters: Record<string, string>;
|
|
27
|
+
};
|
|
28
|
+
capabilities: Array<{
|
|
29
|
+
capabilityId: string;
|
|
30
|
+
version: string;
|
|
31
|
+
}>;
|
|
32
|
+
};
|
|
33
|
+
export type ProjectLock = {
|
|
34
|
+
schemaVersion: 1;
|
|
35
|
+
capabilities: Array<{
|
|
36
|
+
capabilityId: string;
|
|
37
|
+
version: string;
|
|
38
|
+
integrity: string;
|
|
39
|
+
appliedPlanId: string;
|
|
40
|
+
assets: Array<{
|
|
41
|
+
path: string;
|
|
42
|
+
digest: string;
|
|
43
|
+
}>;
|
|
44
|
+
evidenceIds: string[];
|
|
45
|
+
}>;
|
|
46
|
+
};
|
|
47
|
+
export type Evidence = {
|
|
48
|
+
schemaVersion: 1;
|
|
49
|
+
evidenceId: string;
|
|
50
|
+
capabilityId: string;
|
|
51
|
+
capabilityVersion: string;
|
|
52
|
+
verifierId: string;
|
|
53
|
+
result: "passed" | "failed";
|
|
54
|
+
observedAt: string;
|
|
55
|
+
};
|
|
56
|
+
export type AssetOwnership = "owned-file" | "managed-region" | "seed-file" | "shared-file" | "user-file";
|
|
57
|
+
export type PlanAction = "adopt" | "upgrade" | "remove";
|
|
58
|
+
export type PlanState = "created" | "reviewable" | "conflicted" | "approved" | "applying" | "applied" | "verified" | "failed" | "recovery-required" | "recovered" | "expired";
|
|
59
|
+
export type ProposedChange = {
|
|
60
|
+
path: string;
|
|
61
|
+
kind: "create" | "replace" | "merge" | "remove";
|
|
62
|
+
ownership: AssetOwnership;
|
|
63
|
+
desiredDigest?: string;
|
|
64
|
+
baseDigest?: string;
|
|
65
|
+
regionId?: string;
|
|
66
|
+
};
|
|
67
|
+
export type ObservedAsset = {
|
|
68
|
+
path: string;
|
|
69
|
+
exists: boolean;
|
|
70
|
+
digest?: string;
|
|
71
|
+
};
|
|
72
|
+
export type PlannedOperation = ProposedChange & {
|
|
73
|
+
disposition: "ready" | "noop" | "conflict";
|
|
74
|
+
conflictCode?: "USER_OWNED" | "UNEXPECTED_EXISTING" | "BASE_DIGEST_MISMATCH";
|
|
75
|
+
};
|
|
76
|
+
export type ChangePlan = {
|
|
77
|
+
schemaVersion: 1;
|
|
78
|
+
planId: string;
|
|
79
|
+
action: PlanAction;
|
|
80
|
+
state: "reviewable" | "conflicted";
|
|
81
|
+
capability: Pick<CapabilityRelease, "capabilityId" | "version" | "integrity">;
|
|
82
|
+
generatedAt: string;
|
|
83
|
+
expiresAt: string;
|
|
84
|
+
inputDigest: string;
|
|
85
|
+
operations: PlannedOperation[];
|
|
86
|
+
packageAdoption?: PackageAdoptionPlanFacts;
|
|
87
|
+
};
|
|
88
|
+
type PackageAdoptionPlanCommonFacts = {
|
|
89
|
+
sourceChannel?: "production" | "development";
|
|
90
|
+
packageJsonPreimageDigest: string;
|
|
91
|
+
desiredPackageJsonDigest: string;
|
|
92
|
+
lockfilePreimage: {
|
|
93
|
+
kind: "absent";
|
|
94
|
+
} | {
|
|
95
|
+
kind: "present";
|
|
96
|
+
digest: string;
|
|
97
|
+
};
|
|
98
|
+
desiredLockfileDigest: string;
|
|
99
|
+
registryRevisions: Array<{
|
|
100
|
+
registryId: string;
|
|
101
|
+
revision: string;
|
|
102
|
+
}>;
|
|
103
|
+
endpointBindings: Array<{
|
|
104
|
+
registryId: string;
|
|
105
|
+
registryConfigRevision: string;
|
|
106
|
+
bindingDigest: string;
|
|
107
|
+
expiresAt: string;
|
|
108
|
+
}>;
|
|
109
|
+
sources: Array<{
|
|
110
|
+
registryId: string;
|
|
111
|
+
packageName: string;
|
|
112
|
+
version: string;
|
|
113
|
+
integrity: string;
|
|
114
|
+
tarballDigest: string;
|
|
115
|
+
deliveryReceiptId: string;
|
|
116
|
+
usage: "runtime" | "development";
|
|
117
|
+
}>;
|
|
118
|
+
installPolicy: {
|
|
119
|
+
ignoreScripts: true;
|
|
120
|
+
allowWorkspaceProtocol: false;
|
|
121
|
+
allowPublicRegistryFallback: false;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
export type PreservedPackageDependency = {
|
|
125
|
+
section: "dependencies" | "devDependencies" | "optionalDependencies";
|
|
126
|
+
packageName: string;
|
|
127
|
+
specifier: string;
|
|
128
|
+
};
|
|
129
|
+
export type PackageAdoptionTopologyFacts = {
|
|
130
|
+
mode: "standalone" | "pnpm-shared-lockfile";
|
|
131
|
+
unitRelativeRoot: string;
|
|
132
|
+
unitImporterId: string;
|
|
133
|
+
lockfilePath: "pnpm-lock.yaml";
|
|
134
|
+
workspaceManifestPath?: "pnpm-workspace.yaml";
|
|
135
|
+
workspaceManifestDigest?: string;
|
|
136
|
+
};
|
|
137
|
+
export type PackageAdoptionPlanFacts = (PackageAdoptionPlanCommonFacts & {
|
|
138
|
+
schemaVersion: 1;
|
|
139
|
+
}) | (PackageAdoptionPlanCommonFacts & {
|
|
140
|
+
schemaVersion: 2;
|
|
141
|
+
topology: PackageAdoptionTopologyFacts;
|
|
142
|
+
preservedDependencies: PreservedPackageDependency[];
|
|
143
|
+
preservedImporterDigests: Array<{
|
|
144
|
+
importerId: string;
|
|
145
|
+
preimageDigest: string;
|
|
146
|
+
desiredDigest: string;
|
|
147
|
+
}>;
|
|
148
|
+
});
|
|
149
|
+
export {};
|
|
150
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,oCAAoC,CAAC;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
export type DeliveryKind = "npm-publish" | "application-deploy" | "artifact-publication" | "hosted-static";
|
|
2
|
+
export type DeliveryArtifact = {
|
|
3
|
+
type: "npm-package" | "node-application" | "web-application" | "published-package" | "web-bundle";
|
|
4
|
+
identity: string;
|
|
5
|
+
digest: string;
|
|
6
|
+
};
|
|
7
|
+
export type DeliveryTarget = {
|
|
8
|
+
adapterId: "registry.npmjs" | "deployment.local-docker" | "publication.offline-web" | "publication.hosted-static";
|
|
9
|
+
location: string;
|
|
10
|
+
};
|
|
11
|
+
export type NpmPublicationPolicy = {
|
|
12
|
+
mode: "staged";
|
|
13
|
+
access: "public";
|
|
14
|
+
tag: string;
|
|
15
|
+
authentication: "trusted-publishing";
|
|
16
|
+
trustedAction: "stage-only";
|
|
17
|
+
provenance: "required";
|
|
18
|
+
execution: TrustedExecutionIdentity;
|
|
19
|
+
};
|
|
20
|
+
export type TrustedExecutionIdentity = {
|
|
21
|
+
provider: "github-actions" | "gitlab-ci";
|
|
22
|
+
repository: string;
|
|
23
|
+
workflow: string;
|
|
24
|
+
ref: string;
|
|
25
|
+
environment?: string;
|
|
26
|
+
};
|
|
27
|
+
export type DeliveryPlan = {
|
|
28
|
+
schemaVersion: 1 | 2;
|
|
29
|
+
planId: string;
|
|
30
|
+
kind: DeliveryKind;
|
|
31
|
+
state: "reviewable";
|
|
32
|
+
project: {
|
|
33
|
+
profile: string;
|
|
34
|
+
lockDigest: string;
|
|
35
|
+
appliedPlanId: string;
|
|
36
|
+
};
|
|
37
|
+
artifact: DeliveryArtifact;
|
|
38
|
+
target: DeliveryTarget;
|
|
39
|
+
risk: "irreversible-publish" | "local-reversible-deployment" | "local-reversible-publication" | "external-reversible-publication";
|
|
40
|
+
createdAt: string;
|
|
41
|
+
expiresAt: string;
|
|
42
|
+
publication?: NpmPublicationPolicy;
|
|
43
|
+
};
|
|
44
|
+
export type DeliveryStageRecord = {
|
|
45
|
+
schemaVersion: 1;
|
|
46
|
+
recordId: string;
|
|
47
|
+
planId: string;
|
|
48
|
+
stageId: string;
|
|
49
|
+
artifactDigest: string;
|
|
50
|
+
status: "registry-accepted";
|
|
51
|
+
createdAt: string;
|
|
52
|
+
};
|
|
53
|
+
export type DeliveryAttemptRecord = {
|
|
54
|
+
schemaVersion: 1;
|
|
55
|
+
recordId: string;
|
|
56
|
+
planId: string;
|
|
57
|
+
artifactDigest: string;
|
|
58
|
+
status: "remote-write-started";
|
|
59
|
+
startedAt: string;
|
|
60
|
+
};
|
|
61
|
+
export type DeliveryStageReviewRecord = {
|
|
62
|
+
schemaVersion: 1;
|
|
63
|
+
recordId: string;
|
|
64
|
+
planId: string;
|
|
65
|
+
stageId: string;
|
|
66
|
+
artifactDigest: string;
|
|
67
|
+
status: "artifact-digest-verified";
|
|
68
|
+
reviewedAt: string;
|
|
69
|
+
};
|
|
70
|
+
export type DeliveryReceiptV1 = {
|
|
71
|
+
schemaVersion: 1;
|
|
72
|
+
receiptId: string;
|
|
73
|
+
planId: string;
|
|
74
|
+
kind: DeliveryKind;
|
|
75
|
+
adapterId: DeliveryTarget["adapterId"];
|
|
76
|
+
artifactDigest: string;
|
|
77
|
+
target: string;
|
|
78
|
+
status: "verified";
|
|
79
|
+
externalIdentity: string;
|
|
80
|
+
completedAt: string;
|
|
81
|
+
details: Record<string, string>;
|
|
82
|
+
};
|
|
83
|
+
export type DeliveryReceiptV2 = {
|
|
84
|
+
schemaVersion: 2;
|
|
85
|
+
receiptId: string;
|
|
86
|
+
planId: string;
|
|
87
|
+
kind: "npm-publish";
|
|
88
|
+
adapterId: "registry.npmjs";
|
|
89
|
+
artifactDigest: string;
|
|
90
|
+
target: string;
|
|
91
|
+
status: "verified";
|
|
92
|
+
externalIdentity: string;
|
|
93
|
+
completedAt: string;
|
|
94
|
+
npm: {
|
|
95
|
+
stageId: string;
|
|
96
|
+
registry: "https://registry.npmjs.org";
|
|
97
|
+
tarballDigest: string;
|
|
98
|
+
access: "public";
|
|
99
|
+
tag: string;
|
|
100
|
+
provenance: "registry-attested";
|
|
101
|
+
attestationUrlDigest: string;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
export type DeliveryReceipt = DeliveryReceiptV1 | DeliveryReceiptV2;
|
|
105
|
+
export type DeliveryPrepareInput = {
|
|
106
|
+
projectRoot: string;
|
|
107
|
+
profile: string;
|
|
108
|
+
parameters: Record<string, string>;
|
|
109
|
+
};
|
|
110
|
+
export type PreparedDeliveryArtifact = {
|
|
111
|
+
artifact: DeliveryArtifact;
|
|
112
|
+
target: DeliveryTarget;
|
|
113
|
+
details: Record<string, string>;
|
|
114
|
+
};
|
|
115
|
+
export type DeliveryExecuteInput = {
|
|
116
|
+
projectRoot: string;
|
|
117
|
+
plan: DeliveryPlan;
|
|
118
|
+
onRemoteWriteStarting?: () => Promise<void>;
|
|
119
|
+
};
|
|
120
|
+
export type AdapterExecutionResult = {
|
|
121
|
+
externalIdentity: string;
|
|
122
|
+
details: Record<string, string>;
|
|
123
|
+
};
|
|
124
|
+
export type DeliveryInspectInput = {
|
|
125
|
+
projectRoot: string;
|
|
126
|
+
plan: DeliveryPlan;
|
|
127
|
+
};
|
|
128
|
+
export type AdapterInspection = {
|
|
129
|
+
state: "absent" | "staged" | "verification-pending" | "verified" | "closed" | "unknown";
|
|
130
|
+
externalIdentity?: string;
|
|
131
|
+
details: Record<string, string>;
|
|
132
|
+
};
|
|
133
|
+
export interface ArtifactDeliveryPort {
|
|
134
|
+
readonly adapterId: DeliveryTarget["adapterId"];
|
|
135
|
+
prepare(input: DeliveryPrepareInput): Promise<PreparedDeliveryArtifact>;
|
|
136
|
+
execute(input: DeliveryExecuteInput): Promise<AdapterExecutionResult>;
|
|
137
|
+
inspect(input: DeliveryInspectInput): Promise<AdapterInspection>;
|
|
138
|
+
recover(input: DeliveryInspectInput): Promise<AdapterInspection>;
|
|
139
|
+
}
|
|
140
|
+
export declare class DeliveryError extends Error {
|
|
141
|
+
readonly code: "DELIVERY_PROJECT_UNSUPPORTED" | "DELIVERY_NOT_ADOPTED" | "DELIVERY_PLAN_NOT_FOUND" | "DELIVERY_PLAN_EXPIRED" | "DELIVERY_PRECONDITION_FAILED" | "DELIVERY_TARGET_EXISTS" | "DELIVERY_ADAPTER_UNAVAILABLE" | "DELIVERY_EXECUTION_UNKNOWN" | "DELIVERY_EXECUTION_FAILED" | "DELIVERY_RECEIPT_INVALID" | "NPM_AUTHENTICATION_REQUIRED" | "NPM_AUTHORIZATION_DENIED" | "NPM_2FA_REQUIRED" | "NPM_TRUSTED_PUBLISHER_MISMATCH" | "NPM_TOKEN_POLICY_UNVERIFIED" | "NPM_STAGE_UNSUPPORTED" | "NPM_STAGE_CONFLICT" | "NPM_PROVENANCE_REQUIRED" | "NPM_REGISTRY_PROPAGATION_PENDING" | "NPM_REGISTRY_OUTCOME_UNKNOWN";
|
|
142
|
+
constructor(code: "DELIVERY_PROJECT_UNSUPPORTED" | "DELIVERY_NOT_ADOPTED" | "DELIVERY_PLAN_NOT_FOUND" | "DELIVERY_PLAN_EXPIRED" | "DELIVERY_PRECONDITION_FAILED" | "DELIVERY_TARGET_EXISTS" | "DELIVERY_ADAPTER_UNAVAILABLE" | "DELIVERY_EXECUTION_UNKNOWN" | "DELIVERY_EXECUTION_FAILED" | "DELIVERY_RECEIPT_INVALID" | "NPM_AUTHENTICATION_REQUIRED" | "NPM_AUTHORIZATION_DENIED" | "NPM_2FA_REQUIRED" | "NPM_TRUSTED_PUBLISHER_MISMATCH" | "NPM_TOKEN_POLICY_UNVERIFIED" | "NPM_STAGE_UNSUPPORTED" | "NPM_STAGE_CONFLICT" | "NPM_PROVENANCE_REQUIRED" | "NPM_REGISTRY_PROPAGATION_PENDING" | "NPM_REGISTRY_OUTCOME_UNKNOWN", message: string);
|
|
143
|
+
}
|
|
144
|
+
export declare function calculateDeliveryPlanId(plan: Omit<DeliveryPlan, "planId">): string;
|
|
145
|
+
export declare function createDeliveryPlan(input: Omit<DeliveryPlan, "schemaVersion" | "planId" | "state">): DeliveryPlan;
|
|
146
|
+
export declare function parseDeliveryPlan(value: unknown): DeliveryPlan;
|
|
147
|
+
export declare function createDeliveryStageRecord(input: Omit<DeliveryStageRecord, "schemaVersion" | "recordId" | "status">): DeliveryStageRecord;
|
|
148
|
+
export declare function createDeliveryAttemptRecord(input: Omit<DeliveryAttemptRecord, "schemaVersion" | "recordId" | "status">): DeliveryAttemptRecord;
|
|
149
|
+
export declare function parseDeliveryAttemptRecord(value: unknown): DeliveryAttemptRecord;
|
|
150
|
+
export declare function parseDeliveryStageRecord(value: unknown): DeliveryStageRecord;
|
|
151
|
+
export declare function createDeliveryStageReviewRecord(input: Omit<DeliveryStageReviewRecord, "schemaVersion" | "recordId" | "status">): DeliveryStageReviewRecord;
|
|
152
|
+
export declare function parseDeliveryStageReviewRecord(value: unknown): DeliveryStageReviewRecord;
|
|
153
|
+
type DeliveryReceiptInput = Omit<DeliveryReceiptV1, "schemaVersion" | "receiptId" | "status"> | Omit<DeliveryReceiptV2, "schemaVersion" | "receiptId" | "status">;
|
|
154
|
+
export declare function createDeliveryReceipt(input: DeliveryReceiptInput): DeliveryReceipt;
|
|
155
|
+
export declare function parseDeliveryReceipt(value: unknown): DeliveryReceipt;
|
|
156
|
+
export declare function saveDeliveryPlan(input: {
|
|
157
|
+
projectRoot: string;
|
|
158
|
+
plan: DeliveryPlan;
|
|
159
|
+
}): Promise<DeliveryPlan>;
|
|
160
|
+
export declare function readDeliveryPlan(input: {
|
|
161
|
+
projectRoot: string;
|
|
162
|
+
planId: string;
|
|
163
|
+
}): Promise<DeliveryPlan>;
|
|
164
|
+
export declare function saveDeliveryReceipt(input: {
|
|
165
|
+
projectRoot: string;
|
|
166
|
+
receipt: DeliveryReceipt;
|
|
167
|
+
}): Promise<DeliveryReceipt>;
|
|
168
|
+
export declare function readDeliveryReceipt(input: {
|
|
169
|
+
projectRoot: string;
|
|
170
|
+
planId: string;
|
|
171
|
+
}): Promise<DeliveryReceipt | null>;
|
|
172
|
+
export declare function saveDeliveryAttemptRecord(input: {
|
|
173
|
+
projectRoot: string;
|
|
174
|
+
record: DeliveryAttemptRecord;
|
|
175
|
+
}): Promise<DeliveryAttemptRecord>;
|
|
176
|
+
export declare function readDeliveryAttemptRecord(input: {
|
|
177
|
+
projectRoot: string;
|
|
178
|
+
planId: string;
|
|
179
|
+
}): Promise<DeliveryAttemptRecord | null>;
|
|
180
|
+
export declare function findUnresolvedDeliveryAttempt(input: {
|
|
181
|
+
projectRoot: string;
|
|
182
|
+
artifactIdentity: string;
|
|
183
|
+
}): Promise<DeliveryAttemptRecord | null>;
|
|
184
|
+
export declare function saveDeliveryStageRecord(input: {
|
|
185
|
+
projectRoot: string;
|
|
186
|
+
record: DeliveryStageRecord;
|
|
187
|
+
}): Promise<DeliveryStageRecord>;
|
|
188
|
+
export declare function readDeliveryStageRecord(input: {
|
|
189
|
+
projectRoot: string;
|
|
190
|
+
planId: string;
|
|
191
|
+
}): Promise<DeliveryStageRecord | null>;
|
|
192
|
+
export declare function saveDeliveryStageReviewRecord(input: {
|
|
193
|
+
projectRoot: string;
|
|
194
|
+
record: DeliveryStageReviewRecord;
|
|
195
|
+
}): Promise<DeliveryStageReviewRecord>;
|
|
196
|
+
export declare function readDeliveryStageReviewRecord(input: {
|
|
197
|
+
projectRoot: string;
|
|
198
|
+
planId: string;
|
|
199
|
+
}): Promise<DeliveryStageReviewRecord | null>;
|
|
200
|
+
export {};
|
|
201
|
+
//# sourceMappingURL=delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../src/delivery.ts"],"names":[],"mappings":"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"}
|