@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,179 @@
|
|
|
1
|
+
import type { CapabilityBundleReleaseV2, PackageSourceRef, ProjectAdoptionLock } from "./adoption-contracts.js";
|
|
2
|
+
import { type PackageDeliveryReceipt, type RegistryConfigRelease, type RegistryEndpointBinding } from "./catalog-source.js";
|
|
3
|
+
import type { PackageAdoptionPlanFacts, PackageAdoptionTopologyFacts, PreservedPackageDependency } from "./contracts.js";
|
|
4
|
+
import type { ChangePlan } from "./contracts.js";
|
|
5
|
+
import type { ObservedAsset } from "./contracts.js";
|
|
6
|
+
import type { TransactionSnapshot } from "./filesystem-contracts.js";
|
|
7
|
+
import { type ResolutionJobEvidence } from "./resolution-evidence.js";
|
|
8
|
+
export type PackageAdoptionErrorCode = "PACKAGE_SOURCE_NOT_FOUND" | "PACKAGE_SOURCE_INTEGRITY_MISMATCH" | "PACKAGE_SOURCE_POLICY_VIOLATION" | "PACKAGE_SOURCE_AUTH_REQUIRED" | "PACKAGE_SOURCE_DENIED" | "PACKAGE_SOURCE_OUTCOME_UNKNOWN" | "PACKAGE_INSTALL_FAILED" | "PACKAGE_INSTALL_RECOVERY_REQUIRED";
|
|
9
|
+
export declare class PackageAdoptionError extends Error {
|
|
10
|
+
readonly code: PackageAdoptionErrorCode;
|
|
11
|
+
constructor(code: PackageAdoptionErrorCode, options?: ErrorOptions);
|
|
12
|
+
}
|
|
13
|
+
export type PackageArtifactInspection = Readonly<PackageSourceRef & {
|
|
14
|
+
dependencies: Readonly<Record<string, string>>;
|
|
15
|
+
lifecycleScripts: readonly string[];
|
|
16
|
+
}>;
|
|
17
|
+
export type PackageLockResolution = Readonly<{
|
|
18
|
+
lockfile: Uint8Array;
|
|
19
|
+
packages: readonly Readonly<Pick<PackageSourceRef, "registryId" | "packageName" | "version" | "integrity">>[];
|
|
20
|
+
}>;
|
|
21
|
+
export type PackageAdoptionPlan = Readonly<{
|
|
22
|
+
schemaVersion: 1 | 2;
|
|
23
|
+
sourceChannel: "production" | "development";
|
|
24
|
+
planId: string;
|
|
25
|
+
capabilityId: string;
|
|
26
|
+
capabilityVersion: string;
|
|
27
|
+
capabilityIntegrity: string;
|
|
28
|
+
consumerProfile: string;
|
|
29
|
+
generatedAt: string;
|
|
30
|
+
expiresAt: string;
|
|
31
|
+
packageJsonPreimageDigest: string;
|
|
32
|
+
desiredPackageJsonDigest: string;
|
|
33
|
+
desiredPackageJson: Uint8Array;
|
|
34
|
+
lockfilePreimage: Readonly<{
|
|
35
|
+
kind: "absent";
|
|
36
|
+
} | {
|
|
37
|
+
kind: "present";
|
|
38
|
+
digest: string;
|
|
39
|
+
}>;
|
|
40
|
+
desiredLockfileDigest: string;
|
|
41
|
+
desiredLockfile: Uint8Array;
|
|
42
|
+
registryRevisions: readonly Readonly<{
|
|
43
|
+
registryId: string;
|
|
44
|
+
revision: string;
|
|
45
|
+
}>[];
|
|
46
|
+
endpointBindings: readonly Readonly<Pick<RegistryEndpointBinding, "registryId" | "registryConfigRevision" | "bindingDigest" | "expiresAt">>[];
|
|
47
|
+
sources: readonly Readonly<PackageSourceRef>[];
|
|
48
|
+
installPolicy: Readonly<{
|
|
49
|
+
ignoreScripts: true;
|
|
50
|
+
allowWorkspaceProtocol: false;
|
|
51
|
+
allowPublicRegistryFallback: false;
|
|
52
|
+
}>;
|
|
53
|
+
topology?: Readonly<PackageAdoptionTopologyFacts>;
|
|
54
|
+
preservedDependencies?: readonly Readonly<PreservedPackageDependency>[];
|
|
55
|
+
preservedImporterDigests?: readonly Readonly<{
|
|
56
|
+
importerId: string;
|
|
57
|
+
preimageDigest: string;
|
|
58
|
+
desiredDigest: string;
|
|
59
|
+
}>[];
|
|
60
|
+
}>;
|
|
61
|
+
export declare function packageAdoptionFacts(plan: PackageAdoptionPlan): PackageAdoptionPlanFacts;
|
|
62
|
+
export declare function projectPackageManifest(input: {
|
|
63
|
+
release: CapabilityBundleReleaseV2;
|
|
64
|
+
packageJson: Uint8Array;
|
|
65
|
+
}): Uint8Array;
|
|
66
|
+
export declare function projectWorkspacePackageManifest(input: {
|
|
67
|
+
release: CapabilityBundleReleaseV2;
|
|
68
|
+
packageJson: Uint8Array;
|
|
69
|
+
}): Uint8Array;
|
|
70
|
+
export declare function projectPackageRemovalManifest(input: {
|
|
71
|
+
packageJson: Uint8Array;
|
|
72
|
+
remove: readonly Pick<PackageSourceRef, "packageName" | "usage">[];
|
|
73
|
+
}): Uint8Array;
|
|
74
|
+
export declare function projectWorkspacePackageRemovalManifest(input: {
|
|
75
|
+
packageJson: Uint8Array;
|
|
76
|
+
remove: readonly Pick<PackageSourceRef, "packageName" | "usage">[];
|
|
77
|
+
}): Uint8Array;
|
|
78
|
+
export declare function buildPackageRemovalPlan(input: {
|
|
79
|
+
release: CapabilityBundleReleaseV2;
|
|
80
|
+
currentLock: ProjectAdoptionLock;
|
|
81
|
+
projectManifest: Uint8Array;
|
|
82
|
+
packageJson: Uint8Array;
|
|
83
|
+
currentLockfile: Uint8Array;
|
|
84
|
+
desiredLockfile: Uint8Array;
|
|
85
|
+
endpointBindings: readonly RegistryEndpointBinding[];
|
|
86
|
+
observedAssets: readonly ObservedAsset[];
|
|
87
|
+
generatedAt: string;
|
|
88
|
+
expiresAt: string;
|
|
89
|
+
}): Readonly<{
|
|
90
|
+
plan: ChangePlan;
|
|
91
|
+
desiredContents: ReadonlyMap<string, Uint8Array>;
|
|
92
|
+
removedSources: readonly PackageSourceRef[];
|
|
93
|
+
}>;
|
|
94
|
+
export declare function buildWorkspacePackageRemovalPlan(input: {
|
|
95
|
+
release: CapabilityBundleReleaseV2;
|
|
96
|
+
currentLock: ProjectAdoptionLock;
|
|
97
|
+
projectManifest: Uint8Array;
|
|
98
|
+
packageJson: Uint8Array;
|
|
99
|
+
currentLockfile: Uint8Array;
|
|
100
|
+
endpointBindings: readonly RegistryEndpointBinding[];
|
|
101
|
+
observedAssets: readonly ObservedAsset[];
|
|
102
|
+
topology: PackageAdoptionTopologyFacts;
|
|
103
|
+
transactionRoot: string;
|
|
104
|
+
preservedImporterDigests: readonly Readonly<{
|
|
105
|
+
importerId: string;
|
|
106
|
+
preimageDigest: string;
|
|
107
|
+
desiredDigest: string;
|
|
108
|
+
}>[];
|
|
109
|
+
resolutionEvidence: ResolutionJobEvidence;
|
|
110
|
+
resolutionWorkerReleaseId: string;
|
|
111
|
+
remainingSources: readonly PackageSourceRef[];
|
|
112
|
+
generatedAt: string;
|
|
113
|
+
expiresAt: string;
|
|
114
|
+
}): Readonly<{
|
|
115
|
+
plan: ChangePlan;
|
|
116
|
+
desiredContents: ReadonlyMap<string, Uint8Array>;
|
|
117
|
+
removedSources: readonly PackageSourceRef[];
|
|
118
|
+
transactionRoot: string;
|
|
119
|
+
}>;
|
|
120
|
+
type PackageAdoptionPlanInput = {
|
|
121
|
+
release: CapabilityBundleReleaseV2;
|
|
122
|
+
registryConfigs: readonly RegistryConfigRelease[];
|
|
123
|
+
endpointBindings: readonly RegistryEndpointBinding[];
|
|
124
|
+
receipts: readonly PackageDeliveryReceipt[];
|
|
125
|
+
inspections: readonly PackageArtifactInspection[];
|
|
126
|
+
consumerProfile: string;
|
|
127
|
+
packageJson: Uint8Array;
|
|
128
|
+
desiredBasePackageJson?: Uint8Array;
|
|
129
|
+
currentLockfile?: Uint8Array;
|
|
130
|
+
lockResolution: PackageLockResolution;
|
|
131
|
+
generatedAt: string;
|
|
132
|
+
expiresAt: string;
|
|
133
|
+
};
|
|
134
|
+
type WorkspacePackageAdoptionPlanInput = Omit<PackageAdoptionPlanInput, "lockResolution"> & {
|
|
135
|
+
topology: PackageAdoptionTopologyFacts;
|
|
136
|
+
preservedImporterDigests: readonly Readonly<{
|
|
137
|
+
importerId: string;
|
|
138
|
+
preimageDigest: string;
|
|
139
|
+
desiredDigest: string;
|
|
140
|
+
}>[];
|
|
141
|
+
resolutionEvidence: ResolutionJobEvidence;
|
|
142
|
+
resolutionWorkerReleaseId: string;
|
|
143
|
+
};
|
|
144
|
+
export declare function buildPackageAdoptionPlan(input: PackageAdoptionPlanInput): PackageAdoptionPlan;
|
|
145
|
+
export declare function buildDevelopmentPackageAdoptionPlan(input: PackageAdoptionPlanInput): PackageAdoptionPlan;
|
|
146
|
+
export declare function buildWorkspacePackageAdoptionPlan(input: WorkspacePackageAdoptionPlanInput): PackageAdoptionPlan;
|
|
147
|
+
export declare function buildWorkspaceDevelopmentPackageAdoptionPlan(input: WorkspacePackageAdoptionPlanInput): PackageAdoptionPlan;
|
|
148
|
+
export type PackageManagerExecutionPort = Readonly<{
|
|
149
|
+
prepare(input: Readonly<{
|
|
150
|
+
projectRoot: string;
|
|
151
|
+
plan: ChangePlan;
|
|
152
|
+
}>): Promise<void>;
|
|
153
|
+
install(input: Readonly<{
|
|
154
|
+
projectRoot: string;
|
|
155
|
+
plan: ChangePlan;
|
|
156
|
+
}>): Promise<void>;
|
|
157
|
+
verify(input: Readonly<{
|
|
158
|
+
projectRoot: string;
|
|
159
|
+
plan: ChangePlan;
|
|
160
|
+
}>): Promise<void>;
|
|
161
|
+
restore(input: Readonly<{
|
|
162
|
+
projectRoot: string;
|
|
163
|
+
plan: ChangePlan;
|
|
164
|
+
}>): Promise<void>;
|
|
165
|
+
cleanup(input: Readonly<{
|
|
166
|
+
projectRoot: string;
|
|
167
|
+
plan: ChangePlan;
|
|
168
|
+
}>): Promise<void>;
|
|
169
|
+
}>;
|
|
170
|
+
export declare function executePackageAdoptionTransaction(input: {
|
|
171
|
+
projectRoot: string;
|
|
172
|
+
plan: ChangePlan;
|
|
173
|
+
approvedPlanId: string;
|
|
174
|
+
desiredContents: ReadonlyMap<string, Uint8Array>;
|
|
175
|
+
now: string;
|
|
176
|
+
packageManager: PackageManagerExecutionPort;
|
|
177
|
+
}): Promise<TransactionSnapshot>;
|
|
178
|
+
export {};
|
|
179
|
+
//# sourceMappingURL=package-adoption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-adoption.d.ts","sourceRoot":"","sources":["../src/package-adoption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { parsePackageDeliveryReceipt, parseRegistryConfigRelease, parseRegistryEndpointBinding } from "./catalog-source.js";
|
|
2
|
+
import { sha256Digest } from "./integrity.js";
|
|
3
|
+
import { applyPrepared, prepareApply, rollbackAppliedTransaction } from "./filesystem-transaction.js";
|
|
4
|
+
import { buildChangePlan } from "./planner.js";
|
|
5
|
+
import { calculateResolutionRequestDigest, verifyResolutionJobEvidence } from "./resolution-evidence.js";
|
|
6
|
+
export class PackageAdoptionError extends Error {
|
|
7
|
+
code;
|
|
8
|
+
constructor(code, options) {
|
|
9
|
+
super(code, options);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.name = "PackageAdoptionError";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function packageAdoptionFacts(plan) {
|
|
15
|
+
const common = {
|
|
16
|
+
sourceChannel: plan.sourceChannel,
|
|
17
|
+
packageJsonPreimageDigest: plan.packageJsonPreimageDigest,
|
|
18
|
+
desiredPackageJsonDigest: plan.desiredPackageJsonDigest,
|
|
19
|
+
lockfilePreimage: { ...plan.lockfilePreimage },
|
|
20
|
+
desiredLockfileDigest: plan.desiredLockfileDigest,
|
|
21
|
+
registryRevisions: plan.registryRevisions.map((item) => ({ ...item })),
|
|
22
|
+
endpointBindings: plan.endpointBindings.map(({ registryId, registryConfigRevision, bindingDigest, expiresAt }) => ({ registryId, registryConfigRevision, bindingDigest, expiresAt })),
|
|
23
|
+
sources: plan.sources.map((item) => ({ ...item })),
|
|
24
|
+
installPolicy: { ...plan.installPolicy },
|
|
25
|
+
};
|
|
26
|
+
if (plan.schemaVersion === 1)
|
|
27
|
+
return { schemaVersion: 1, ...common };
|
|
28
|
+
if (!plan.topology || !plan.preservedDependencies || !plan.preservedImporterDigests)
|
|
29
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
30
|
+
return { schemaVersion: 2, ...common, topology: { ...plan.topology }, preservedDependencies: plan.preservedDependencies.map((item) => ({ ...item })), preservedImporterDigests: plan.preservedImporterDigests.map((item) => ({ ...item })) };
|
|
31
|
+
}
|
|
32
|
+
const exactVersionPattern = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u;
|
|
33
|
+
const forbiddenSpecifierPattern = /^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;
|
|
34
|
+
function canonical(value) {
|
|
35
|
+
if (Array.isArray(value))
|
|
36
|
+
return `[${value.map(canonical).join(",")}]`;
|
|
37
|
+
if (value !== null && typeof value === "object")
|
|
38
|
+
return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonical(item)}`).join(",")}}`;
|
|
39
|
+
return JSON.stringify(value);
|
|
40
|
+
}
|
|
41
|
+
function parsePackageJson(bytes) {
|
|
42
|
+
let value;
|
|
43
|
+
try {
|
|
44
|
+
value = JSON.parse(Buffer.from(bytes).toString("utf8"));
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
48
|
+
}
|
|
49
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
50
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
function dependencyMap(value) {
|
|
54
|
+
if (value === undefined)
|
|
55
|
+
return {};
|
|
56
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
57
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
58
|
+
const entries = Object.entries(value);
|
|
59
|
+
if (entries.some(([, specifier]) => typeof specifier !== "string"))
|
|
60
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
61
|
+
return Object.fromEntries(entries);
|
|
62
|
+
}
|
|
63
|
+
function assertExistingDependenciesSafe(packageJson) {
|
|
64
|
+
for (const section of [dependencyMap(packageJson.dependencies), dependencyMap(packageJson.devDependencies), dependencyMap(packageJson.optionalDependencies)]) {
|
|
65
|
+
for (const [name, specifier] of Object.entries(section)) {
|
|
66
|
+
if (name.startsWith("@aipt/") && (!exactVersionPattern.test(specifier) || forbiddenSpecifierPattern.test(specifier)))
|
|
67
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const dependencySections = ["dependencies", "devDependencies", "optionalDependencies"];
|
|
72
|
+
function workspaceDependencyFacts(packageJson, managedNames) {
|
|
73
|
+
const preserved = [];
|
|
74
|
+
for (const section of dependencySections)
|
|
75
|
+
for (const [packageName, specifier] of Object.entries(dependencyMap(packageJson[section]))) {
|
|
76
|
+
if (managedNames.has(packageName)) {
|
|
77
|
+
if (!exactVersionPattern.test(specifier))
|
|
78
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(specifier))
|
|
82
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
83
|
+
preserved.push({ section, packageName, specifier });
|
|
84
|
+
}
|
|
85
|
+
return preserved.sort((left, right) => `${left.section}:${left.packageName}`.localeCompare(`${right.section}:${right.packageName}`));
|
|
86
|
+
}
|
|
87
|
+
export function projectPackageManifest(input) {
|
|
88
|
+
const packageJson = parsePackageJson(input.packageJson);
|
|
89
|
+
assertExistingDependenciesSafe(packageJson);
|
|
90
|
+
const runtime = Object.fromEntries(input.release.packageSources.filter(({ usage }) => usage === "runtime").map(({ packageName, version }) => [packageName, version]));
|
|
91
|
+
const development = Object.fromEntries(input.release.packageSources.filter(({ usage }) => usage === "development").map(({ packageName, version }) => [packageName, version]));
|
|
92
|
+
const desired = { ...packageJson, ...(Object.keys(runtime).length ? { dependencies: { ...dependencyMap(packageJson.dependencies), ...runtime } } : {}), ...(Object.keys(development).length ? { devDependencies: { ...dependencyMap(packageJson.devDependencies), ...development } } : {}) };
|
|
93
|
+
return Buffer.from(`${JSON.stringify(desired, null, 2)}\n`);
|
|
94
|
+
}
|
|
95
|
+
export function projectWorkspacePackageManifest(input) {
|
|
96
|
+
const packageJson = parsePackageJson(input.packageJson);
|
|
97
|
+
workspaceDependencyFacts(packageJson, new Set(input.release.packageSources.map((source) => source.packageName)));
|
|
98
|
+
const runtime = Object.fromEntries(input.release.packageSources.filter(({ usage }) => usage === "runtime").map(({ packageName, version }) => [packageName, version]));
|
|
99
|
+
const development = Object.fromEntries(input.release.packageSources.filter(({ usage }) => usage === "development").map(({ packageName, version }) => [packageName, version]));
|
|
100
|
+
return Buffer.from(`${JSON.stringify({ ...packageJson, ...(Object.keys(runtime).length ? { dependencies: { ...dependencyMap(packageJson.dependencies), ...runtime } } : {}), ...(Object.keys(development).length ? { devDependencies: { ...dependencyMap(packageJson.devDependencies), ...development } } : {}) }, null, 2)}\n`);
|
|
101
|
+
}
|
|
102
|
+
export function projectPackageRemovalManifest(input) {
|
|
103
|
+
const packageJson = parsePackageJson(input.packageJson);
|
|
104
|
+
assertExistingDependenciesSafe(packageJson);
|
|
105
|
+
const runtime = dependencyMap(packageJson.dependencies);
|
|
106
|
+
const development = dependencyMap(packageJson.devDependencies);
|
|
107
|
+
for (const source of input.remove)
|
|
108
|
+
delete (source.usage === "runtime" ? runtime : development)[source.packageName];
|
|
109
|
+
const desired = { ...packageJson };
|
|
110
|
+
if (Object.keys(runtime).length === 0)
|
|
111
|
+
delete desired.dependencies;
|
|
112
|
+
else
|
|
113
|
+
desired.dependencies = runtime;
|
|
114
|
+
if (Object.keys(development).length === 0)
|
|
115
|
+
delete desired.devDependencies;
|
|
116
|
+
else
|
|
117
|
+
desired.devDependencies = development;
|
|
118
|
+
return Buffer.from(`${JSON.stringify(desired, null, 2)}\n`);
|
|
119
|
+
}
|
|
120
|
+
export function projectWorkspacePackageRemovalManifest(input) {
|
|
121
|
+
const packageJson = parsePackageJson(input.packageJson);
|
|
122
|
+
workspaceDependencyFacts(packageJson, new Set(input.remove.map((source) => source.packageName)));
|
|
123
|
+
const runtime = dependencyMap(packageJson.dependencies);
|
|
124
|
+
const development = dependencyMap(packageJson.devDependencies);
|
|
125
|
+
for (const source of input.remove)
|
|
126
|
+
delete (source.usage === "runtime" ? runtime : development)[source.packageName];
|
|
127
|
+
const desired = { ...packageJson };
|
|
128
|
+
if (Object.keys(runtime).length === 0)
|
|
129
|
+
delete desired.dependencies;
|
|
130
|
+
else
|
|
131
|
+
desired.dependencies = runtime;
|
|
132
|
+
if (Object.keys(development).length === 0)
|
|
133
|
+
delete desired.devDependencies;
|
|
134
|
+
else
|
|
135
|
+
desired.devDependencies = development;
|
|
136
|
+
return Buffer.from(`${JSON.stringify(desired, null, 2)}\n`);
|
|
137
|
+
}
|
|
138
|
+
export function buildPackageRemovalPlan(input) {
|
|
139
|
+
const target = input.currentLock.capabilities.find((capability) => capability.capabilityId === input.release.capabilityId && capability.version === input.release.version);
|
|
140
|
+
if (!target?.packageAdoption)
|
|
141
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND");
|
|
142
|
+
const shared = new Set(input.currentLock.capabilities.filter((capability) => capability !== target).flatMap((capability) => capability.packageAdoption?.sources.map((source) => source.packageName) ?? []));
|
|
143
|
+
const removedSources = target.packageAdoption.sources.filter((source) => !shared.has(source.packageName));
|
|
144
|
+
const desiredPackageJson = projectPackageRemovalManifest({ packageJson: input.packageJson, remove: removedSources });
|
|
145
|
+
const manifest = parsePackageJson(input.projectManifest);
|
|
146
|
+
const selected = Array.isArray(manifest.capabilities) ? manifest.capabilities : [];
|
|
147
|
+
const desiredProjectManifest = Buffer.from(`${JSON.stringify({ ...manifest, capabilities: selected.filter((capability) => capability.capabilityId !== input.release.capabilityId || capability.version !== input.release.version) }, null, 2)}\n`);
|
|
148
|
+
const bindings = input.endpointBindings.filter((binding) => removedSources.some((source) => source.registryId === binding.registryId));
|
|
149
|
+
const changes = [
|
|
150
|
+
{ path: "project-capabilities.json", kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.projectManifest), desiredDigest: sha256Digest(desiredProjectManifest) },
|
|
151
|
+
{ path: "package.json", kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.packageJson), desiredDigest: sha256Digest(desiredPackageJson) },
|
|
152
|
+
{ path: "pnpm-lock.yaml", kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.currentLockfile), desiredDigest: sha256Digest(input.desiredLockfile) },
|
|
153
|
+
...target.assets.map((asset) => ({ path: asset.path, kind: "remove", ownership: asset.ownership ?? "owned-file", baseDigest: asset.digest })),
|
|
154
|
+
];
|
|
155
|
+
const plan = buildChangePlan({ action: "remove", capability: { schemaVersion: 1, capabilityId: input.release.capabilityId, version: input.release.version, integrity: input.release.integrity, assets: target.assets.map((asset) => ({ path: asset.path, ownership: asset.ownership ?? "owned-file", desiredDigest: asset.digest })), verifiers: input.release.verifiers.map((verifier) => ({ id: verifier.id, kind: "file-digest" })) }, changes, observedAssets: [...input.observedAssets], generatedAt: input.generatedAt, expiresAt: input.expiresAt, packageAdoption: { schemaVersion: 1, sourceChannel: target.packageAdoption.sourceChannel ?? "production", packageJsonPreimageDigest: sha256Digest(input.packageJson), desiredPackageJsonDigest: sha256Digest(desiredPackageJson), lockfilePreimage: { kind: "present", digest: sha256Digest(input.currentLockfile) }, desiredLockfileDigest: sha256Digest(input.desiredLockfile), registryRevisions: target.packageAdoption.registryRevisions.map((item) => ({ ...item })), endpointBindings: bindings.map(({ registryId, registryConfigRevision, bindingDigest, expiresAt }) => ({ registryId, registryConfigRevision, bindingDigest, expiresAt })), sources: removedSources.map((source) => ({ ...source })), installPolicy: { ignoreScripts: true, allowWorkspaceProtocol: false, allowPublicRegistryFallback: false } } });
|
|
156
|
+
return { plan, desiredContents: new Map([["project-capabilities.json", desiredProjectManifest], ["package.json", desiredPackageJson], ["pnpm-lock.yaml", input.desiredLockfile]]), removedSources };
|
|
157
|
+
}
|
|
158
|
+
export function buildWorkspacePackageRemovalPlan(input) {
|
|
159
|
+
const target = input.currentLock.capabilities.find((capability) => capability.capabilityId === input.release.capabilityId && capability.version === input.release.version);
|
|
160
|
+
if (!target?.packageAdoption || input.topology.mode !== "pnpm-shared-lockfile")
|
|
161
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND");
|
|
162
|
+
const shared = new Set(input.currentLock.capabilities.filter((capability) => capability !== target).flatMap((capability) => capability.packageAdoption?.sources.map((source) => source.packageName) ?? []));
|
|
163
|
+
const removedSources = target.packageAdoption.sources.filter((source) => !shared.has(source.packageName));
|
|
164
|
+
const desiredPackageJson = projectWorkspacePackageRemovalManifest({ packageJson: input.packageJson, remove: removedSources });
|
|
165
|
+
const managedSources = input.remainingSources.map(({ registryId, packageName, version, integrity }) => ({ registryId, packageName, version, integrity }));
|
|
166
|
+
const topology = { mode: input.topology.mode, unitRelativeRoot: input.topology.unitRelativeRoot, unitImporterId: input.topology.unitImporterId, lockfilePath: input.topology.lockfilePath, ...(input.topology.workspaceManifestPath ? { workspaceManifestPath: input.topology.workspaceManifestPath, workspaceManifestDigest: input.topology.workspaceManifestDigest } : {}) };
|
|
167
|
+
const verified = verifyResolutionJobEvidence(input.resolutionEvidence, {
|
|
168
|
+
requestDigest: calculateResolutionRequestDigest({ schemaVersion: 1, pnpmVersion: "11.21.0", topology, currentLockfileDigest: sha256Digest(input.currentLockfile), desiredPackageJsonDigest: sha256Digest(desiredPackageJson), sources: managedSources, preservedImporterDigests: input.preservedImporterDigests.map(({ importerId, preimageDigest }) => ({ importerId, preimageDigest })) }),
|
|
169
|
+
pnpmVersion: "11.21.0", workerReleaseId: input.resolutionWorkerReleaseId, targetImporterId: input.topology.unitImporterId, targetManifestDigest: sha256Digest(desiredPackageJson), preservedImporterDigests: input.preservedImporterDigests.map(({ importerId, preimageDigest }) => ({ importerId, preimageDigest })), managedSources, now: input.generatedAt,
|
|
170
|
+
});
|
|
171
|
+
const manifest = parsePackageJson(input.projectManifest);
|
|
172
|
+
const selected = Array.isArray(manifest.capabilities) ? manifest.capabilities : [];
|
|
173
|
+
const desiredProjectManifest = Buffer.from(`${JSON.stringify({ ...manifest, capabilities: selected.filter((capability) => capability.capabilityId !== input.release.capabilityId || capability.version !== input.release.version) }, null, 2)}\n`);
|
|
174
|
+
const unitPath = (value) => `${input.topology.unitRelativeRoot}/${value}`;
|
|
175
|
+
const bindings = input.endpointBindings.filter((binding) => removedSources.some((source) => source.registryId === binding.registryId));
|
|
176
|
+
const changes = [
|
|
177
|
+
{ path: unitPath("project-capabilities.json"), kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.projectManifest), desiredDigest: sha256Digest(desiredProjectManifest) },
|
|
178
|
+
{ path: unitPath("package.json"), kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.packageJson), desiredDigest: sha256Digest(desiredPackageJson) },
|
|
179
|
+
{ path: input.topology.lockfilePath, kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.currentLockfile), desiredDigest: verified.desiredLockDigest },
|
|
180
|
+
...target.assets.map((asset) => ({ path: unitPath(asset.path), kind: "remove", ownership: asset.ownership ?? "owned-file", baseDigest: asset.digest })),
|
|
181
|
+
];
|
|
182
|
+
const plan = buildChangePlan({ action: "remove", capability: { schemaVersion: 1, capabilityId: input.release.capabilityId, version: input.release.version, integrity: input.release.integrity, assets: target.assets.map((asset) => ({ path: asset.path, ownership: asset.ownership ?? "owned-file", desiredDigest: asset.digest })), verifiers: input.release.verifiers.map((verifier) => ({ id: verifier.id, kind: "file-digest" })) }, changes, observedAssets: [...input.observedAssets], generatedAt: input.generatedAt, expiresAt: input.expiresAt, packageAdoption: { schemaVersion: 2, sourceChannel: target.packageAdoption.sourceChannel ?? "production", packageJsonPreimageDigest: sha256Digest(input.packageJson), desiredPackageJsonDigest: sha256Digest(desiredPackageJson), lockfilePreimage: { kind: "present", digest: sha256Digest(input.currentLockfile) }, desiredLockfileDigest: verified.desiredLockDigest, registryRevisions: target.packageAdoption.registryRevisions.map((item) => ({ ...item })), endpointBindings: bindings.map(({ registryId, registryConfigRevision, bindingDigest, expiresAt }) => ({ registryId, registryConfigRevision, bindingDigest, expiresAt })), sources: removedSources.map((source) => ({ ...source })), installPolicy: { ignoreScripts: true, allowWorkspaceProtocol: false, allowPublicRegistryFallback: false }, topology, preservedDependencies: workspaceDependencyFacts(parsePackageJson(desiredPackageJson), new Set(input.remainingSources.map((source) => source.packageName))), preservedImporterDigests: input.preservedImporterDigests.map((item) => ({ ...item })) } });
|
|
183
|
+
return { plan, desiredContents: new Map([[unitPath("project-capabilities.json"), desiredProjectManifest], [unitPath("package.json"), desiredPackageJson], [input.topology.lockfilePath, verified.desiredLockfile]]), removedSources, transactionRoot: input.transactionRoot };
|
|
184
|
+
}
|
|
185
|
+
function buildPackageAdoptionPlanForChannel(input, channel) {
|
|
186
|
+
const availability = input.release.availability;
|
|
187
|
+
const production = availability.maturity === "available" && availability.visibility === "catalog-consumers" && availability.sourceState === "registry-verified";
|
|
188
|
+
const development = availability.maturity === "candidate" && availability.visibility === "maintainers-only" && availability.sourceState === "development-registry";
|
|
189
|
+
if ((channel === "production" ? !production : !development) || input.release.packageSources.length === 0)
|
|
190
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND");
|
|
191
|
+
const packageJson = parsePackageJson(input.packageJson);
|
|
192
|
+
const desiredBasePackageJson = input.desiredBasePackageJson ?? input.packageJson;
|
|
193
|
+
const desiredBase = parsePackageJson(desiredBasePackageJson);
|
|
194
|
+
const workspace = "topology" in input;
|
|
195
|
+
const preservedDependencies = workspace ? workspaceDependencyFacts(desiredBase, new Set(input.release.packageSources.map((source) => source.packageName))) : undefined;
|
|
196
|
+
if (!workspace)
|
|
197
|
+
assertExistingDependenciesSafe(packageJson);
|
|
198
|
+
if (!workspace)
|
|
199
|
+
assertExistingDependenciesSafe(desiredBase);
|
|
200
|
+
const registries = new Map(input.registryConfigs.map((value) => { const parsed = parseRegistryConfigRelease(value); return [parsed.registryId, parsed]; }));
|
|
201
|
+
const bindings = new Map(input.endpointBindings.map((value) => { const registry = registries.get(value.registryId); if (registry === undefined)
|
|
202
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND"); const parsed = parseRegistryEndpointBinding(value, registry); return [parsed.registryId, parsed]; }));
|
|
203
|
+
const receipts = new Map(input.receipts.map((value) => { const parsed = parsePackageDeliveryReceipt(value); return [parsed.receiptId, parsed]; }));
|
|
204
|
+
const inspections = new Map(input.inspections.map((value) => [`${value.registryId}:${value.packageName}@${value.version}`, value]));
|
|
205
|
+
const declared = new Map(input.release.packageSources.map((source) => [source.packageName, source]));
|
|
206
|
+
const workspaceResolution = workspace ? verifyResolutionJobEvidence(input.resolutionEvidence, {
|
|
207
|
+
requestDigest: calculateResolutionRequestDigest({
|
|
208
|
+
schemaVersion: 1,
|
|
209
|
+
pnpmVersion: "11.21.0",
|
|
210
|
+
topology: input.topology,
|
|
211
|
+
currentLockfileDigest: input.currentLockfile === undefined ? null : sha256Digest(input.currentLockfile),
|
|
212
|
+
desiredPackageJsonDigest: sha256Digest(projectWorkspacePackageManifest({ release: input.release, packageJson: desiredBasePackageJson })),
|
|
213
|
+
sources: input.release.packageSources.map(({ registryId, packageName, version, integrity }) => ({ registryId, packageName, version, integrity })),
|
|
214
|
+
preservedImporterDigests: input.preservedImporterDigests.map(({ importerId, preimageDigest }) => ({ importerId, preimageDigest })),
|
|
215
|
+
}),
|
|
216
|
+
pnpmVersion: "11.21.0",
|
|
217
|
+
workerReleaseId: input.resolutionWorkerReleaseId,
|
|
218
|
+
targetImporterId: input.topology.unitImporterId,
|
|
219
|
+
targetManifestDigest: sha256Digest(projectWorkspacePackageManifest({ release: input.release, packageJson: desiredBasePackageJson })),
|
|
220
|
+
preservedImporterDigests: input.preservedImporterDigests.map(({ importerId, preimageDigest }) => ({ importerId, preimageDigest })),
|
|
221
|
+
managedSources: input.release.packageSources.map(({ registryId, packageName, version, integrity }) => ({ registryId, packageName, version, integrity })),
|
|
222
|
+
now: input.generatedAt,
|
|
223
|
+
}) : undefined;
|
|
224
|
+
const effectiveResolution = workspace
|
|
225
|
+
? { lockfile: workspaceResolution.desiredLockfile, packages: workspaceResolution.packageFacts.filter((fact) => fact.managed).map(({ registryId, packageName, version, integrity }) => ({ registryId, packageName, version, integrity })) }
|
|
226
|
+
: input.lockResolution;
|
|
227
|
+
if (effectiveResolution.lockfile.byteLength === 0 || effectiveResolution.packages.length !== input.release.packageSources.length)
|
|
228
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION", { cause: new Error(`managed resolution count ${effectiveResolution.packages.length}/${input.release.packageSources.length}`) });
|
|
229
|
+
const locked = new Map(effectiveResolution.packages.map((item) => [item.packageName, item]));
|
|
230
|
+
for (const source of input.release.packageSources) {
|
|
231
|
+
const registry = registries.get(source.registryId);
|
|
232
|
+
const binding = bindings.get(source.registryId);
|
|
233
|
+
const receipt = receipts.get(source.deliveryReceiptId);
|
|
234
|
+
const inspection = inspections.get(`${source.registryId}:${source.packageName}@${source.version}`);
|
|
235
|
+
const lock = locked.get(source.packageName);
|
|
236
|
+
if (receipt !== undefined && ((channel === "production" && receipt.provenance === "development-readback-verified") || (channel === "development" && receipt.provenance !== "development-readback-verified")))
|
|
237
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
238
|
+
if (!registry || !binding || Date.parse(binding.expiresAt) <= Date.parse(input.expiresAt) || registry.status !== "enabled" || !registry.scopes.some((scope) => source.packageName.startsWith(`${scope}/`)) || !receipt || !inspection || !lock)
|
|
239
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND");
|
|
240
|
+
if (receipt.registryId !== source.registryId || receipt.registryConfigRevision !== registry.revision || receipt.packageName !== source.packageName || receipt.version !== source.version || receipt.integrity !== source.integrity || receipt.tarballDigest !== source.tarballDigest
|
|
241
|
+
|| inspection.integrity !== source.integrity || inspection.tarballDigest !== source.tarballDigest || inspection.deliveryReceiptId !== source.deliveryReceiptId
|
|
242
|
+
|| lock.registryId !== source.registryId || lock.version !== source.version || lock.integrity !== source.integrity)
|
|
243
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_INTEGRITY_MISMATCH");
|
|
244
|
+
if (!exactVersionPattern.test(source.version) || inspection.lifecycleScripts.length > 0)
|
|
245
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
246
|
+
for (const [dependency, specifier] of Object.entries(inspection.dependencies)) {
|
|
247
|
+
const dependencySource = declared.get(dependency);
|
|
248
|
+
if (dependency.startsWith("@aipt/") && (!dependencySource || dependencySource.version !== specifier || !exactVersionPattern.test(specifier)))
|
|
249
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION", { cause: new Error(`undeclared internal dependency ${source.packageName}->${dependency}@${specifier}`) });
|
|
250
|
+
if (forbiddenSpecifierPattern.test(specifier))
|
|
251
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const desiredPackageJson = workspace ? projectWorkspacePackageManifest({ release: input.release, packageJson: desiredBasePackageJson }) : projectPackageManifest({ release: input.release, packageJson: desiredBasePackageJson });
|
|
255
|
+
const facts = {
|
|
256
|
+
schemaVersion: workspace ? 2 : 1,
|
|
257
|
+
sourceChannel: channel,
|
|
258
|
+
capabilityId: input.release.capabilityId,
|
|
259
|
+
capabilityVersion: input.release.version,
|
|
260
|
+
capabilityIntegrity: input.release.integrity,
|
|
261
|
+
consumerProfile: input.consumerProfile,
|
|
262
|
+
generatedAt: input.generatedAt,
|
|
263
|
+
expiresAt: input.expiresAt,
|
|
264
|
+
packageJsonPreimageDigest: sha256Digest(input.packageJson),
|
|
265
|
+
desiredPackageJsonDigest: sha256Digest(desiredPackageJson),
|
|
266
|
+
lockfilePreimage: Object.freeze(input.currentLockfile === undefined ? { kind: "absent" } : { kind: "present", digest: sha256Digest(input.currentLockfile) }),
|
|
267
|
+
desiredLockfileDigest: sha256Digest(effectiveResolution.lockfile),
|
|
268
|
+
registryRevisions: Object.freeze([...registries.values()].filter((registry) => input.release.packageSources.some((source) => source.registryId === registry.registryId)).map(({ registryId, revision }) => Object.freeze({ registryId, revision })).sort((left, right) => left.registryId.localeCompare(right.registryId))),
|
|
269
|
+
endpointBindings: Object.freeze([...bindings.values()].filter((binding) => input.release.packageSources.some((source) => source.registryId === binding.registryId)).map(({ registryId, registryConfigRevision, bindingDigest, expiresAt }) => Object.freeze({ registryId, registryConfigRevision, bindingDigest, expiresAt })).sort((left, right) => left.registryId.localeCompare(right.registryId))),
|
|
270
|
+
sources: Object.freeze(input.release.packageSources.map((source) => Object.freeze({ ...source }))),
|
|
271
|
+
installPolicy: Object.freeze({ ignoreScripts: true, allowWorkspaceProtocol: false, allowPublicRegistryFallback: false }),
|
|
272
|
+
...(workspace ? { topology: Object.freeze({ ...input.topology }), preservedDependencies: Object.freeze(preservedDependencies.map((item) => Object.freeze({ ...item }))), preservedImporterDigests: Object.freeze(input.preservedImporterDigests.map((item) => Object.freeze({ ...item }))) } : {}),
|
|
273
|
+
};
|
|
274
|
+
const planId = sha256Digest(canonical(facts));
|
|
275
|
+
return Object.freeze({ ...facts, planId, desiredPackageJson, desiredLockfile: effectiveResolution.lockfile });
|
|
276
|
+
}
|
|
277
|
+
export function buildPackageAdoptionPlan(input) { return buildPackageAdoptionPlanForChannel(input, "production"); }
|
|
278
|
+
export function buildDevelopmentPackageAdoptionPlan(input) { return buildPackageAdoptionPlanForChannel(input, "development"); }
|
|
279
|
+
export function buildWorkspacePackageAdoptionPlan(input) { return buildPackageAdoptionPlanForChannel(input, "production"); }
|
|
280
|
+
export function buildWorkspaceDevelopmentPackageAdoptionPlan(input) { return buildPackageAdoptionPlanForChannel(input, "development"); }
|
|
281
|
+
function assertPackageOperationsMatchFacts(plan) {
|
|
282
|
+
const facts = plan.packageAdoption;
|
|
283
|
+
if (facts === undefined)
|
|
284
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
285
|
+
const manifestPath = facts.schemaVersion === 2 && facts.topology.mode === "pnpm-shared-lockfile" ? `${facts.topology.unitRelativeRoot}/package.json` : "package.json";
|
|
286
|
+
const lockfilePath = facts.schemaVersion === 2 ? facts.topology.lockfilePath : "pnpm-lock.yaml";
|
|
287
|
+
const manifest = plan.operations.filter(({ path }) => path === manifestPath);
|
|
288
|
+
const lockfile = plan.operations.filter(({ path }) => path === lockfilePath);
|
|
289
|
+
if (manifest.length !== 1 || lockfile.length !== 1)
|
|
290
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
291
|
+
const manifestOperation = manifest[0];
|
|
292
|
+
const lockfileOperation = lockfile[0];
|
|
293
|
+
const manifestMatches = manifestOperation.kind === "replace"
|
|
294
|
+
&& manifestOperation.baseDigest === facts.packageJsonPreimageDigest
|
|
295
|
+
&& manifestOperation.desiredDigest === facts.desiredPackageJsonDigest
|
|
296
|
+
&& manifestOperation.disposition === "ready";
|
|
297
|
+
const lockfileMatches = lockfileOperation.kind === (facts.lockfilePreimage.kind === "absent" ? "create" : "replace")
|
|
298
|
+
&& (facts.lockfilePreimage.kind === "absent" ? lockfileOperation.baseDigest === undefined : lockfileOperation.baseDigest === facts.lockfilePreimage.digest)
|
|
299
|
+
&& lockfileOperation.desiredDigest === facts.desiredLockfileDigest
|
|
300
|
+
&& lockfileOperation.disposition === "ready";
|
|
301
|
+
if (!manifestMatches || !lockfileMatches)
|
|
302
|
+
throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
|
|
303
|
+
}
|
|
304
|
+
export async function executePackageAdoptionTransaction(input) {
|
|
305
|
+
assertPackageOperationsMatchFacts(input.plan);
|
|
306
|
+
let applied = false;
|
|
307
|
+
try {
|
|
308
|
+
await input.packageManager.prepare({ projectRoot: input.projectRoot, plan: input.plan });
|
|
309
|
+
const prepared = await prepareApply({ projectRoot: input.projectRoot, plan: input.plan, approvedPlanId: input.approvedPlanId, desiredContents: input.desiredContents, now: input.now });
|
|
310
|
+
const snapshot = await applyPrepared(prepared);
|
|
311
|
+
applied = true;
|
|
312
|
+
await input.packageManager.install({ projectRoot: input.projectRoot, plan: input.plan });
|
|
313
|
+
await input.packageManager.verify({ projectRoot: input.projectRoot, plan: input.plan });
|
|
314
|
+
return snapshot;
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
if (applied) {
|
|
318
|
+
await rollbackAppliedTransaction({ projectRoot: input.projectRoot, planId: input.plan.planId, now: new Date().toISOString(), failureCode: "PACKAGE_INSTALL_FAILED" });
|
|
319
|
+
try {
|
|
320
|
+
await input.packageManager.restore({ projectRoot: input.projectRoot, plan: input.plan });
|
|
321
|
+
}
|
|
322
|
+
catch (restoreError) {
|
|
323
|
+
throw new PackageAdoptionError("PACKAGE_INSTALL_RECOVERY_REQUIRED", { cause: restoreError });
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
throw error;
|
|
327
|
+
}
|
|
328
|
+
finally {
|
|
329
|
+
await input.packageManager.cleanup({ projectRoot: input.projectRoot, plan: input.plan });
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=package-adoption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-adoption.js","sourceRoot":"","sources":["../src/package-adoption.ts"],"names":[],"mappings":"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"}
|