@farmslot/protocol 0.83.1 → 0.84.0
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/CHANGELOG.md +52 -0
- package/dist/checklist-target.d.ts +5 -1
- package/dist/checklist-target.d.ts.map +1 -1
- package/dist/checklist-target.js +41 -0
- package/dist/checklist-target.js.map +1 -1
- package/dist/client-cache/cache.d.ts.map +1 -1
- package/dist/client-cache/cache.js +370 -26
- package/dist/client-cache/cache.js.map +1 -1
- package/dist/client-cache/command-method.d.ts +1 -1
- package/dist/client-cache/command-method.d.ts.map +1 -1
- package/dist/client-cache/command-method.js +1 -0
- package/dist/client-cache/command-method.js.map +1 -1
- package/dist/client-cache/entity-collection.d.ts +115 -0
- package/dist/client-cache/entity-collection.d.ts.map +1 -0
- package/dist/client-cache/entity-collection.js +323 -0
- package/dist/client-cache/entity-collection.js.map +1 -0
- package/dist/client-cache/entity-guards.d.ts +47 -0
- package/dist/client-cache/entity-guards.d.ts.map +1 -0
- package/dist/client-cache/entity-guards.js +193 -0
- package/dist/client-cache/entity-guards.js.map +1 -0
- package/dist/client-cache/entity-views.d.ts +62 -0
- package/dist/client-cache/entity-views.d.ts.map +1 -0
- package/dist/client-cache/entity-views.js +386 -0
- package/dist/client-cache/entity-views.js.map +1 -0
- package/dist/client-cache/index.d.ts +4 -0
- package/dist/client-cache/index.d.ts.map +1 -1
- package/dist/client-cache/index.js +4 -0
- package/dist/client-cache/index.js.map +1 -1
- package/dist/client-cache/keys.d.ts +13 -0
- package/dist/client-cache/keys.d.ts.map +1 -1
- package/dist/client-cache/keys.js +1 -0
- package/dist/client-cache/keys.js.map +1 -1
- package/dist/client-cache/native-history.d.ts +9 -2
- package/dist/client-cache/native-history.d.ts.map +1 -1
- package/dist/client-cache/native-history.js +66 -18
- package/dist/client-cache/native-history.js.map +1 -1
- package/dist/client-cache/registry.d.ts +15 -0
- package/dist/client-cache/registry.d.ts.map +1 -1
- package/dist/client-cache/registry.js +10 -0
- package/dist/client-cache/registry.js.map +1 -1
- package/dist/client-cache/run-details.d.ts +2 -1
- package/dist/client-cache/run-details.d.ts.map +1 -1
- package/dist/client-cache/run-details.js.map +1 -1
- package/dist/client-cache/run-list-versions.d.ts.map +1 -1
- package/dist/client-cache/run-list-versions.js.map +1 -1
- package/dist/client-cache/sync-state.d.ts +23 -0
- package/dist/client-cache/sync-state.d.ts.map +1 -0
- package/dist/client-cache/sync-state.js +39 -0
- package/dist/client-cache/sync-state.js.map +1 -0
- package/dist/client-cache/text-links.d.ts +11 -0
- package/dist/client-cache/text-links.d.ts.map +1 -0
- package/dist/client-cache/text-links.js +61 -0
- package/dist/client-cache/text-links.js.map +1 -0
- package/dist/client-cache/types.d.ts +11 -0
- package/dist/client-cache/types.d.ts.map +1 -1
- package/dist/contracts/agents.d.ts +6 -0
- package/dist/contracts/agents.d.ts.map +1 -1
- package/dist/contracts/agents.js.map +1 -1
- package/dist/contracts/analytics.d.ts +2 -2
- package/dist/contracts/analytics.d.ts.map +1 -1
- package/dist/contracts/evals.d.ts +9 -0
- package/dist/contracts/evals.d.ts.map +1 -1
- package/dist/contracts/evals.js +5 -0
- package/dist/contracts/evals.js.map +1 -1
- package/dist/contracts/family.d.ts +1 -1
- package/dist/contracts/family.d.ts.map +1 -1
- package/dist/contracts/pr-rules.d.ts +1 -1
- package/dist/contracts/pr-rules.d.ts.map +1 -1
- package/dist/contracts/pr-rules.js +3 -1
- package/dist/contracts/pr-rules.js.map +1 -1
- package/dist/contracts/review-workspace.d.ts +12 -0
- package/dist/contracts/review-workspace.d.ts.map +1 -1
- package/dist/contracts/review-workspace.js +9 -2
- package/dist/contracts/review-workspace.js.map +1 -1
- package/dist/contracts/reviews.d.ts +1 -1
- package/dist/contracts/reviews.d.ts.map +1 -1
- package/dist/contracts/run-lifecycle-view.d.ts.map +1 -1
- package/dist/contracts/run-lifecycle-view.js +9 -7
- package/dist/contracts/run-lifecycle-view.js.map +1 -1
- package/dist/contracts/runs.d.ts +77 -23
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js +2 -2
- package/dist/contracts/runs.js.map +1 -1
- package/dist/contracts/slot-recovery.d.ts +10 -1
- package/dist/contracts/slot-recovery.d.ts.map +1 -1
- package/dist/contracts/slot-recovery.js +18 -10
- package/dist/contracts/slot-recovery.js.map +1 -1
- package/dist/contracts/slots.d.ts +31 -1
- package/dist/contracts/slots.d.ts.map +1 -1
- package/dist/contracts/task.d.ts +2 -0
- package/dist/contracts/task.d.ts.map +1 -1
- package/dist/contracts/task.js.map +1 -1
- package/dist/contracts/template-placeholders.d.ts.map +1 -1
- package/dist/contracts/template-placeholders.js +3 -2
- package/dist/contracts/template-placeholders.js.map +1 -1
- package/dist/deep-freeze.d.ts +6 -0
- package/dist/deep-freeze.d.ts.map +1 -0
- package/dist/deep-freeze.js +13 -0
- package/dist/deep-freeze.js.map +1 -0
- package/dist/file-stamp.d.ts +10 -0
- package/dist/file-stamp.d.ts.map +1 -0
- package/dist/file-stamp.js +12 -0
- package/dist/file-stamp.js.map +1 -0
- package/dist/fleet/host-load.d.ts +18 -0
- package/dist/fleet/host-load.d.ts.map +1 -0
- package/dist/fleet/host-load.js +30 -0
- package/dist/fleet/host-load.js.map +1 -0
- package/dist/fleet/stale.d.ts +13 -0
- package/dist/fleet/stale.d.ts.map +1 -0
- package/dist/fleet/stale.js +18 -0
- package/dist/fleet/stale.js.map +1 -0
- package/dist/fleet/summary.d.ts +8 -0
- package/dist/fleet/summary.d.ts.map +1 -0
- package/dist/fleet/summary.js +45 -0
- package/dist/fleet/summary.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/pr-rule-config.d.ts +2 -0
- package/dist/integrations/pr-rule-config.d.ts.map +1 -1
- package/dist/integrations/pr-rule-config.js +17 -4
- package/dist/integrations/pr-rule-config.js.map +1 -1
- package/dist/integrations/pr-workflow-defaults.d.ts.map +1 -1
- package/dist/integrations/pr-workflow-defaults.js +6 -3
- package/dist/integrations/pr-workflow-defaults.js.map +1 -1
- package/dist/node/farm-paths.d.ts +5 -0
- package/dist/node/farm-paths.d.ts.map +1 -1
- package/dist/node/farm-paths.js +64 -27
- package/dist/node/farm-paths.js.map +1 -1
- package/dist/node/pack-portability.d.ts +16 -0
- package/dist/node/pack-portability.d.ts.map +1 -1
- package/dist/node/pack-portability.js +169 -32
- package/dist/node/pack-portability.js.map +1 -1
- package/dist/node/slot-by-repo.d.ts +15 -1
- package/dist/node/slot-by-repo.d.ts.map +1 -1
- package/dist/node/slot-by-repo.js +115 -31
- package/dist/node/slot-by-repo.js.map +1 -1
- package/dist/node/tcp-metrics.d.ts +7 -0
- package/dist/node/tcp-metrics.d.ts.map +1 -0
- package/dist/node/tcp-metrics.js +131 -0
- package/dist/node/tcp-metrics.js.map +1 -0
- package/dist/performance/ranking.d.ts.map +1 -1
- package/dist/performance/ranking.js +1 -0
- package/dist/performance/ranking.js.map +1 -1
- package/dist/performance/recorder.d.ts.map +1 -1
- package/dist/performance/recorder.js +1 -1
- package/dist/performance/recorder.js.map +1 -1
- package/dist/performance/types.d.ts +5 -1
- package/dist/performance/types.d.ts.map +1 -1
- package/dist/performance/types.js +3 -0
- package/dist/performance/types.js.map +1 -1
- package/dist/performance/validation.d.ts.map +1 -1
- package/dist/performance/validation.js +19 -9
- package/dist/performance/validation.js.map +1 -1
- package/dist/recipe/common.d.ts.map +1 -1
- package/dist/recipe/common.js +2 -1
- package/dist/recipe/common.js.map +1 -1
- package/dist/recipe/manifest.js +1 -1
- package/dist/recipe/manifest.js.map +1 -1
- package/dist/rpc/auth.d.ts +6 -0
- package/dist/rpc/auth.d.ts.map +1 -1
- package/dist/rpc/auth.js.map +1 -1
- package/dist/rpc/clip.d.ts +38 -0
- package/dist/rpc/clip.d.ts.map +1 -0
- package/dist/rpc/clip.js +26 -0
- package/dist/rpc/clip.js.map +1 -0
- package/dist/rpc/eval.d.ts +5 -0
- package/dist/rpc/eval.d.ts.map +1 -1
- package/dist/rpc/fleet.d.ts +28 -1
- package/dist/rpc/fleet.d.ts.map +1 -1
- package/dist/rpc/fleet.js.map +1 -1
- package/dist/rpc/fs.d.ts +18 -0
- package/dist/rpc/fs.d.ts.map +1 -1
- package/dist/rpc/fs.js +2 -0
- package/dist/rpc/fs.js.map +1 -1
- package/dist/rpc/index.d.ts +1 -0
- package/dist/rpc/index.d.ts.map +1 -1
- package/dist/rpc/index.js +1 -0
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/native-session.d.ts +31 -0
- package/dist/rpc/native-session.d.ts.map +1 -1
- package/dist/rpc/native-session.js.map +1 -1
- package/dist/rpc/pr.d.ts +24 -0
- package/dist/rpc/pr.d.ts.map +1 -1
- package/dist/rpc/registry.d.ts +3 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +4 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/run.d.ts +2 -1
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/run.js.map +1 -1
- package/dist/rpc/runner-models.d.ts.map +1 -1
- package/dist/rpc/runner-models.js +1 -0
- package/dist/rpc/runner-models.js.map +1 -1
- package/dist/rpc/slot.d.ts +26 -1
- package/dist/rpc/slot.d.ts.map +1 -1
- package/dist/rpc/slot.js +1 -0
- package/dist/rpc/slot.js.map +1 -1
- package/dist/runs/evidence-summary.d.ts +60 -4
- package/dist/runs/evidence-summary.d.ts.map +1 -1
- package/dist/runs/evidence-summary.js +148 -12
- package/dist/runs/evidence-summary.js.map +1 -1
- package/dist/runs/family-readiness.d.ts +4 -3
- package/dist/runs/family-readiness.d.ts.map +1 -1
- package/dist/runs/family-readiness.js.map +1 -1
- package/dist/runs/linked-tickets.d.ts +1 -1
- package/dist/runs/linked-tickets.d.ts.map +1 -1
- package/dist/runs/list-row.d.ts +57 -0
- package/dist/runs/list-row.d.ts.map +1 -0
- package/dist/runs/list-row.js +2 -0
- package/dist/runs/list-row.js.map +1 -0
- package/dist/runs/list-trim.d.ts +36 -4
- package/dist/runs/list-trim.d.ts.map +1 -1
- package/dist/runs/list-trim.js +327 -9
- package/dist/runs/list-trim.js.map +1 -1
- package/dist/runs/list-version.d.ts +2 -1
- package/dist/runs/list-version.d.ts.map +1 -1
- package/dist/runs/list-version.js.map +1 -1
- package/dist/runs/review-chain.d.ts +34 -2
- package/dist/runs/review-chain.d.ts.map +1 -1
- package/dist/runs/review-chain.js +31 -4
- package/dist/runs/review-chain.js.map +1 -1
- package/dist/runs/review-retries.d.ts +13 -3
- package/dist/runs/review-retries.d.ts.map +1 -1
- package/dist/runs/review-retries.js.map +1 -1
- package/dist/runs/run-family-groups.d.ts +7 -7
- package/dist/runs/run-family-groups.d.ts.map +1 -1
- package/dist/runs/run-family-groups.js.map +1 -1
- package/dist/runs/run-list-filter.d.ts +2 -1
- package/dist/runs/run-list-filter.d.ts.map +1 -1
- package/dist/runs/run-list-filter.js.map +1 -1
- package/dist/runs/run-list-observation.d.ts.map +1 -1
- package/dist/runs/run-list-observation.js.map +1 -1
- package/dist/runs/run-list-view.d.ts +3 -2
- package/dist/runs/run-list-view.d.ts.map +1 -1
- package/dist/runs/run-list-view.js.map +1 -1
- package/dist/slots/tracking-branch.d.ts.map +1 -1
- package/dist/slots/tracking-branch.js +4 -3
- package/dist/slots/tracking-branch.js.map +1 -1
- package/dist/surfaces/view-state.js +1 -1
- package/dist/surfaces/view-state.js.map +1 -1
- package/dist/transport/events.d.ts +42 -12
- package/dist/transport/events.d.ts.map +1 -1
- package/dist/transport/events.js +0 -1
- package/dist/transport/events.js.map +1 -1
- package/dist/transport/observations.d.ts +2 -0
- package/dist/transport/observations.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +12 -1
- package/scripts/literal-replacement.d.mts +2 -0
- package/scripts/literal-replacement.mjs +4 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DEFAULT_PR_REVIEW_OPTIONS, prReviewWorkflow, } from '../contracts/pr-rules.js';
|
|
2
2
|
import { assertPRExecutionProfile, isPRWorkspaceExecutionProfile } from './pr-monitoring.js';
|
|
3
|
-
import { assertPRReviewOptions } from './pr-rule-config.js';
|
|
3
|
+
import { assertPRReviewOptions, assertPRReviewPolicyOptions } from './pr-rule-config.js';
|
|
4
4
|
function record(value, path) {
|
|
5
5
|
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
6
6
|
throw new Error(`${path} must be an object`);
|
|
@@ -22,7 +22,7 @@ export function assertProjectWorkflowDefaults(value) {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
if (policy.review !== undefined) {
|
|
25
|
-
|
|
25
|
+
assertPRReviewPolicyOptions(policy.review);
|
|
26
26
|
if (flow === 'qa' && policy.review.publishReview === true)
|
|
27
27
|
throw new Error('QA cannot publish a static PR review');
|
|
28
28
|
if (policy.review.workflow !== undefined &&
|
|
@@ -53,7 +53,10 @@ export function resolvePRWorkflowDefaults(input) {
|
|
|
53
53
|
const reviewLayer = layers.find(([, policy]) => policy?.review !== undefined);
|
|
54
54
|
const selectedReview = reviewLayer?.[1]?.review;
|
|
55
55
|
if (selectedReview) {
|
|
56
|
-
|
|
56
|
+
if (reviewLayer?.[0] === 'request')
|
|
57
|
+
assertPRReviewOptions(selectedReview);
|
|
58
|
+
else
|
|
59
|
+
assertPRReviewPolicyOptions(selectedReview);
|
|
57
60
|
if (input.workflow &&
|
|
58
61
|
selectedReview.workflow !== undefined &&
|
|
59
62
|
(prReviewWorkflow(selectedReview) === 'qa') !== (workflow === 'qa')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-workflow-defaults.js","sourceRoot":"","sources":["../../src/integrations/pr-workflow-defaults.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,yBAAyB,EAEzB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pr-workflow-defaults.js","sourceRoot":"","sources":["../../src/integrations/pr-workflow-defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const FARM_INSTANCE_CLAIM = ".farmslot-instance";
|
|
2
|
+
export declare function legacyCliBinDirs(userHome?: string): string[];
|
|
2
3
|
export type FarmRole = 'gateway' | 'node';
|
|
3
4
|
export type FarmPathEnv = Readonly<Record<string, string | undefined>>;
|
|
4
5
|
export interface LegacyFarmStorageFacts {
|
|
@@ -55,6 +56,8 @@ export interface GatewayFarmStatePaths extends FarmStatePaths {
|
|
|
55
56
|
backlogRefinementPrompts: string;
|
|
56
57
|
resourceWatchState: string;
|
|
57
58
|
capabilityStore: string;
|
|
59
|
+
/** Copies of pool and project files taken before each configuration save. */
|
|
60
|
+
configBackups: string;
|
|
58
61
|
}
|
|
59
62
|
export interface FarmCodePaths {
|
|
60
63
|
checkout: string;
|
|
@@ -128,6 +131,8 @@ export declare function resolveFarmPaths(options: ResolveFarmPathsOptions & {
|
|
|
128
131
|
role: 'node';
|
|
129
132
|
}): NodeFarmPaths;
|
|
130
133
|
export declare function resolveFarmPaths(options: ResolveFarmPathsOptions): FarmPaths;
|
|
134
|
+
/** This process wrote or moved an instance marker: the next resolution reads it again. */
|
|
135
|
+
export declare function forgetFarmInstanceMarkers(): void;
|
|
131
136
|
export declare function currentFarmPaths(role: 'gateway', env?: FarmPathEnv, checkoutRoot?: string): GatewayFarmPaths;
|
|
132
137
|
export declare function currentFarmPaths(role: 'node', env?: FarmPathEnv, checkoutRoot?: string): NodeFarmPaths;
|
|
133
138
|
/** Older nodes have no report. Keep their shell-expanded legacy paths in one place.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farm-paths.d.ts","sourceRoot":"","sources":["../../src/node/farm-paths.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"farm-paths.d.ts","sourceRoot":"","sources":["../../src/node/farm-paths.ts"],"names":[],"mappings":"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"}
|
package/dist/node/farm-paths.js
CHANGED
|
@@ -5,6 +5,11 @@ import { fileURLToPath } from 'node:url';
|
|
|
5
5
|
import { readLegacyStorageFacts } from './farm-paths-storage.js';
|
|
6
6
|
import { expandHome } from './farmslot-home.js';
|
|
7
7
|
export const FARM_INSTANCE_CLAIM = '.farmslot-instance';
|
|
8
|
+
// Refresh always installs the first directory and updates existing entries in the rest.
|
|
9
|
+
const LEGACY_CLI_BIN_DIRS = ['.local/bin', '.npm-global/bin'];
|
|
10
|
+
export function legacyCliBinDirs(userHome = homedir()) {
|
|
11
|
+
return LEGACY_CLI_BIN_DIRS.map((directory) => path.join(userHome, directory));
|
|
12
|
+
}
|
|
8
13
|
/** Addressable path leaves, including indexed path arrays. Metadata is never a path. */
|
|
9
14
|
export function farmPathEntries(paths) {
|
|
10
15
|
const roots = Object.fromEntries(Object.entries(paths).filter(([key]) => !['layout', 'instance', 'role', 'envOverrides'].includes(key)));
|
|
@@ -167,6 +172,7 @@ export function resolveFarmPaths(options) {
|
|
|
167
172
|
backlogRefinementPrompts: atHome('state', 'backlog', 'refinement-prompts'),
|
|
168
173
|
resourceWatchState: atHome('state', 'cache', 'resource-watch-state.json'),
|
|
169
174
|
capabilityStore: atHome('state', 'runtime-capabilities.json'),
|
|
175
|
+
configBackups: atHome('state', 'config-backups'),
|
|
170
176
|
},
|
|
171
177
|
}
|
|
172
178
|
: { ...shared, role: 'node', state };
|
|
@@ -203,7 +209,7 @@ export function resolveFarmPaths(options) {
|
|
|
203
209
|
: root,
|
|
204
210
|
node: env.FARMSLOT_WORKSPACE ? path.resolve(expandHome(env.FARMSLOT_WORKSPACE)) : root,
|
|
205
211
|
cli: path.join(userHome, '.local', 'share', 'farmslot-cli'),
|
|
206
|
-
bin: path.join(userHome,
|
|
212
|
+
bin: path.join(userHome, LEGACY_CLI_BIN_DIRS[0]),
|
|
207
213
|
support: path.join(homedir(), 'farmslot-node', 'support'),
|
|
208
214
|
},
|
|
209
215
|
backups: path.join(root, '.backups'),
|
|
@@ -273,44 +279,75 @@ export function resolveFarmPaths(options) {
|
|
|
273
279
|
backlogRefinementPrompts: override('FARMSLOT_BACKLOG_REFINEMENT_PROMPT_DIR', path.join(root, '.backlog', 'refinement-prompts'), true),
|
|
274
280
|
resourceWatchState: override('FARMSLOT_RESOURCE_WATCH_STATE_FILE', path.join(root, '.farm-cache', 'resource-watch-state.json'), true),
|
|
275
281
|
capabilityStore: override('FARMSLOT_CAPABILITY_STORE_FILE', path.join(env.FARMSLOT_ROOT?.trim() || process.cwd(), '.runs', `runtime-capabilities-${env.GATEWAY_PORT?.trim() || '7777'}.json`)),
|
|
282
|
+
configBackups: atHome('state', 'config-backups'),
|
|
276
283
|
},
|
|
277
284
|
}
|
|
278
285
|
: { ...shared, role: 'node', state };
|
|
279
286
|
}
|
|
280
|
-
// A process may switch homes during a test or CLI invocation
|
|
281
|
-
//
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
287
|
+
// A process may switch homes or overrides during a test or CLI invocation, so an entry holds only
|
|
288
|
+
// while the marker stamp and every variable resolution read are unchanged. Reading just those
|
|
289
|
+
// names matters: scanning all of process.env crosses into native code per variable, on every call.
|
|
290
|
+
const processPaths = [];
|
|
291
|
+
const PROCESS_PATHS_LIMIT = 32;
|
|
292
|
+
/**
|
|
293
|
+
* Each home's marker stamp, read at most once per interval: gateway paths resolve thousands of
|
|
294
|
+
* times a minute and each read was a `stat`. Only `farmslot paths migrate` and node deploys write
|
|
295
|
+
* the marker; this process forgets the stamp when it writes one (`forgetFarmInstanceMarkers`),
|
|
296
|
+
* and a marker another process writes is seen within one interval. Migration refuses a running
|
|
297
|
+
* gateway, so that interval never decides which layout a live gateway serves.
|
|
298
|
+
*/
|
|
299
|
+
const MARKER_RECHECK_MS = 1_000;
|
|
300
|
+
const markerStamps = new Map();
|
|
301
|
+
function instanceMarker(home) {
|
|
302
|
+
const now = Date.now();
|
|
303
|
+
const known = markerStamps.get(home);
|
|
304
|
+
if (known && now >= known.readAt && now - known.readAt < MARKER_RECHECK_MS)
|
|
305
|
+
return known.stamp;
|
|
306
|
+
let stamp;
|
|
286
307
|
try {
|
|
287
308
|
const info = statSync(path.join(home, 'config', 'instance.json'));
|
|
288
|
-
|
|
309
|
+
stamp = `${info.mtimeMs}:${info.ctimeMs}:${info.size}`;
|
|
289
310
|
}
|
|
290
311
|
catch (error) {
|
|
291
312
|
// A missing marker selects legacy; permission and other filesystem errors must surface.
|
|
292
313
|
if (!(error instanceof Error && 'code' in error && error.code === 'ENOENT'))
|
|
293
314
|
throw error;
|
|
315
|
+
stamp = 'absent';
|
|
294
316
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
317
|
+
if (markerStamps.size >= PROCESS_PATHS_LIMIT && !known)
|
|
318
|
+
markerStamps.clear();
|
|
319
|
+
markerStamps.set(home, { stamp, readAt: now });
|
|
320
|
+
return stamp;
|
|
321
|
+
}
|
|
322
|
+
/** This process wrote or moved an instance marker: the next resolution reads it again. */
|
|
323
|
+
export function forgetFarmInstanceMarkers() {
|
|
324
|
+
markerStamps.clear();
|
|
325
|
+
}
|
|
326
|
+
export function currentFarmPaths(role, env = process.env, checkoutRoot) {
|
|
327
|
+
const home = expandHome(env.FARMSLOT_HOME?.trim() || path.join(homedir(), '.farmslot'));
|
|
328
|
+
const marker = instanceMarker(home);
|
|
329
|
+
const cwd = process.cwd();
|
|
330
|
+
const userHome = homedir();
|
|
331
|
+
const index = processPaths.findIndex((entry) => entry.role === role &&
|
|
332
|
+
entry.checkoutRoot === checkoutRoot &&
|
|
333
|
+
entry.cwd === cwd &&
|
|
334
|
+
entry.homedir === userHome &&
|
|
335
|
+
entry.marker === marker &&
|
|
336
|
+
[...entry.reads].every(([name, value]) => env[name] === value));
|
|
337
|
+
if (index >= 0)
|
|
338
|
+
return processPaths[index].paths;
|
|
339
|
+
const reads = new Map();
|
|
340
|
+
const recording = new Proxy(env, {
|
|
341
|
+
get(target, name, receiver) {
|
|
342
|
+
const value = Reflect.get(target, name, receiver);
|
|
343
|
+
if (typeof name === 'string')
|
|
344
|
+
reads.set(name, value);
|
|
345
|
+
return value;
|
|
346
|
+
},
|
|
347
|
+
});
|
|
348
|
+
const paths = resolveFarmPaths({ role, env: recording, checkoutRoot });
|
|
349
|
+
processPaths.unshift({ role, checkoutRoot, cwd, homedir: userHome, marker, reads, paths });
|
|
350
|
+
processPaths.length = Math.min(processPaths.length, PROCESS_PATHS_LIMIT);
|
|
314
351
|
return paths;
|
|
315
352
|
}
|
|
316
353
|
/** Older nodes have no report. Keep their shell-expanded legacy paths in one place.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farm-paths.js","sourceRoot":"","sources":["../../src/node/farm-paths.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"farm-paths.js","sourceRoot":"","sources":["../../src/node/farm-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,28 @@ export declare function packEntryLinkTarget(entry: PackOwnedEntry & {
|
|
|
8
8
|
content: string;
|
|
9
9
|
}): string;
|
|
10
10
|
export declare function packEntryLinkTarget(entry: PackOwnedEntry): string | undefined;
|
|
11
|
+
/** One `git` invocation's answer, as `spawnSync` reports it: exit status (null if it did not run) and stdout. */
|
|
12
|
+
export interface PackGitResult {
|
|
13
|
+
status: number | null;
|
|
14
|
+
stdout: Buffer;
|
|
15
|
+
}
|
|
16
|
+
/** Runs `git` with these arguments. The gateway passes one that does not block its event loop. */
|
|
17
|
+
export type PackGitRunner = (args: string[]) => Promise<PackGitResult>;
|
|
11
18
|
/** One ownership boundary for pack hashing, admission and gateway sync. */
|
|
12
19
|
export declare function listPackOwnedEntries(root: string): PackOwnedEntry[];
|
|
20
|
+
/**
|
|
21
|
+
* `listPackOwnedEntries` off the caller's event loop: `git` runs through `git`, and the paths are
|
|
22
|
+
* read, the files read and the temporary repository removed with `fs/promises`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function listPackOwnedEntriesAsync(root: string, git: PackGitRunner): Promise<PackOwnedEntry[]>;
|
|
13
25
|
/** Machine identities come from pool configuration, never a built-in operator list. */
|
|
14
26
|
export declare function packMachineNames(poolDir: string): string[];
|
|
15
27
|
/** Pack admission and gateway sync use the same portability policy. */
|
|
16
28
|
export declare function validatePackFilePortability(file: string, content: string, machines?: readonly string[]): string[];
|
|
17
29
|
export declare function validatePackBytesPortability(file: string, bytes: Buffer, machines?: readonly string[]): string[];
|
|
30
|
+
/** The portability policy over a pack's owned entries, as both scans apply it. */
|
|
31
|
+
export declare function validatePackEntries(entries: PackOwnedEntry[], prefix: string, machines: readonly string[]): string[];
|
|
18
32
|
export declare function validatePackPortability(root: string, prefix?: string, machines?: readonly string[]): string[];
|
|
33
|
+
/** `validatePackPortability` with the ownership walk's `git` calls run by `git`. */
|
|
34
|
+
export declare function validatePackPortabilityAsync(root: string, prefix: string, machines: readonly string[], git: PackGitRunner): Promise<string[]>;
|
|
19
35
|
//# sourceMappingURL=pack-portability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-portability.d.ts","sourceRoot":"","sources":["../../src/node/pack-portability.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pack-portability.d.ts","sourceRoot":"","sources":["../../src/node/pack-portability.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,sFAAsF;IACtF,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC;AACzF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAK/E,iHAAiH;AACjH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kGAAkG;AAClG,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAqKvE,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAInE;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,cAAc,EAAE,CAAC,CAK3B;AAqDD,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAW1D;AAED,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,SAAS,MAAM,EAAO,GAC/B,MAAM,EAAE,CAkEV;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,SAAS,MAAM,EAAO,GAC/B,MAAM,EAAE,CAIV;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EAAE,EACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,EAAE,CAOV;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,SAAK,EACX,QAAQ,GAAE,SAAS,MAAM,EAAO,GAC/B,MAAM,EAAE,CAEV;AAED,oFAAoF;AACpF,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import { existsSync, lstatSync, mkdtempSync, readFileSync, readlinkSync, rmSync } from 'node:fs';
|
|
2
|
+
import { existsSync, lstatSync, mkdtempSync, readFileSync, readlinkSync, rmSync, } from 'node:fs';
|
|
3
|
+
import { lstat, readFile, readlink, rm } from 'node:fs/promises';
|
|
3
4
|
import { tmpdir } from 'node:os';
|
|
4
5
|
import path from 'node:path';
|
|
5
6
|
import { validateQaConfig } from '../contracts/qa.js';
|
|
@@ -20,14 +21,138 @@ const namesPattern = (values) => [...new Set(values)].map(quoteRegex).join('|');
|
|
|
20
21
|
export function packEntryLinkTarget(entry) {
|
|
21
22
|
return typeof entry.content === 'string' ? entry.content.slice('symlink:'.length) : undefined;
|
|
22
23
|
}
|
|
24
|
+
function* gitStep(args) {
|
|
25
|
+
const reply = yield { git: args };
|
|
26
|
+
if (Array.isArray(reply) || reply === 'removed')
|
|
27
|
+
throw new Error('The pack walk asked for git and got another answer');
|
|
28
|
+
return reply;
|
|
29
|
+
}
|
|
30
|
+
function* pathsStep(paths) {
|
|
31
|
+
const reply = yield { paths };
|
|
32
|
+
if (!Array.isArray(reply))
|
|
33
|
+
throw new Error('The pack walk asked for paths and got another answer');
|
|
34
|
+
return reply;
|
|
35
|
+
}
|
|
36
|
+
function* removeStep(dir) {
|
|
37
|
+
const reply = yield { remove: dir };
|
|
38
|
+
if (reply !== 'removed')
|
|
39
|
+
throw new Error('The pack walk asked for a removal and got another answer');
|
|
40
|
+
}
|
|
41
|
+
function isMissing(error) {
|
|
42
|
+
return error.code === 'ENOENT';
|
|
43
|
+
}
|
|
44
|
+
function pathKindSync(file) {
|
|
45
|
+
let stat;
|
|
46
|
+
try {
|
|
47
|
+
stat = lstatSync(file);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
if (isMissing(error))
|
|
51
|
+
return 'missing';
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
if (stat.isSymbolicLink())
|
|
55
|
+
return { link: readlinkSync(file) };
|
|
56
|
+
return stat.isDirectory() ? 'directory' : stat.isFile() ? 'file' : 'other';
|
|
57
|
+
}
|
|
58
|
+
async function pathKind(file) {
|
|
59
|
+
let stat;
|
|
60
|
+
try {
|
|
61
|
+
stat = await lstat(file);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (isMissing(error))
|
|
65
|
+
return 'missing';
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
if (stat.isSymbolicLink())
|
|
69
|
+
return { link: await readlink(file) };
|
|
70
|
+
return stat.isDirectory() ? 'directory' : stat.isFile() ? 'file' : 'other';
|
|
71
|
+
}
|
|
72
|
+
/** Concurrent file system calls on one pack in the asynchronous driver. */
|
|
73
|
+
const PACK_IO_CONCURRENCY = 8;
|
|
74
|
+
/**
|
|
75
|
+
* `items.map(map)`, at most PACK_IO_CONCURRENCY at a time, in order. After a failure nothing new
|
|
76
|
+
* starts, the calls in flight finish, and the failure of the earliest item is thrown: the one the
|
|
77
|
+
* synchronous driver, which goes in order, would have met first.
|
|
78
|
+
*/
|
|
79
|
+
async function mapBounded(items, map) {
|
|
80
|
+
const results = [];
|
|
81
|
+
const failures = new Map();
|
|
82
|
+
let next = 0;
|
|
83
|
+
const worker = async () => {
|
|
84
|
+
while (next < items.length && !failures.size) {
|
|
85
|
+
const index = next++;
|
|
86
|
+
try {
|
|
87
|
+
results[index] = await map(items[index]);
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
// Recorded, not dropped: thrown below once the calls in flight have settled.
|
|
91
|
+
failures.set(index, error);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
await Promise.all(Array.from({ length: Math.min(PACK_IO_CONCURRENCY, items.length) }, worker));
|
|
96
|
+
if (failures.size)
|
|
97
|
+
throw failures.get(Math.min(...failures.keys()));
|
|
98
|
+
return results;
|
|
99
|
+
}
|
|
100
|
+
function runPackWalk(walk) {
|
|
101
|
+
let step = walk.next();
|
|
102
|
+
while (!step.done) {
|
|
103
|
+
const request = step.value;
|
|
104
|
+
let reply;
|
|
105
|
+
try {
|
|
106
|
+
if ('git' in request)
|
|
107
|
+
reply = spawnSync('git', request.git);
|
|
108
|
+
else if ('paths' in request)
|
|
109
|
+
reply = request.paths.map(pathKindSync);
|
|
110
|
+
else {
|
|
111
|
+
rmSync(request.remove, { recursive: true, force: true });
|
|
112
|
+
reply = 'removed';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
// Raised inside the walk so its cleanup runs; the walk does not catch it.
|
|
117
|
+
step = walk.throw(error);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
step = walk.next(reply);
|
|
121
|
+
}
|
|
122
|
+
return step.value;
|
|
123
|
+
}
|
|
124
|
+
async function runPackWalkAsync(walk, git) {
|
|
125
|
+
let step = walk.next();
|
|
126
|
+
while (!step.done) {
|
|
127
|
+
const request = step.value;
|
|
128
|
+
let reply;
|
|
129
|
+
try {
|
|
130
|
+
if ('git' in request)
|
|
131
|
+
reply = await git(request.git);
|
|
132
|
+
else if ('paths' in request)
|
|
133
|
+
reply = await mapBounded(request.paths, pathKind);
|
|
134
|
+
else {
|
|
135
|
+
await rm(request.remove, { recursive: true, force: true });
|
|
136
|
+
reply = 'removed';
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
// Raised inside the walk so its cleanup runs; the walk does not catch it.
|
|
141
|
+
step = walk.throw(error);
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
step = walk.next(reply);
|
|
145
|
+
}
|
|
146
|
+
return step.value;
|
|
147
|
+
}
|
|
23
148
|
/** A copied pack still owns its ignore rules, even without its original Git index. */
|
|
24
|
-
function listUnindexedPackFiles(dir, prefix) {
|
|
149
|
+
function* listUnindexedPackFiles(dir, prefix) {
|
|
25
150
|
const gitDir = mkdtempSync(path.join(tmpdir(), 'pack-ignore-'));
|
|
26
151
|
try {
|
|
27
|
-
const initialized =
|
|
152
|
+
const initialized = yield* gitStep(['init', '--bare', '--quiet', gitDir]);
|
|
28
153
|
if (initialized.status !== 0)
|
|
29
154
|
throw new Error('Cannot initialize pack ownership scan');
|
|
30
|
-
const listed =
|
|
155
|
+
const listed = yield* gitStep([
|
|
31
156
|
'--git-dir',
|
|
32
157
|
gitDir,
|
|
33
158
|
'--work-tree',
|
|
@@ -48,16 +173,27 @@ function listUnindexedPackFiles(dir, prefix) {
|
|
|
48
173
|
.filter((name) => prefix !== '' || !RUNTIME_DIRS.has(name.split('/')[0]));
|
|
49
174
|
}
|
|
50
175
|
finally {
|
|
51
|
-
|
|
176
|
+
yield* removeStep(gitDir);
|
|
52
177
|
}
|
|
53
178
|
}
|
|
54
179
|
/** One ownership boundary for pack hashing, admission and gateway sync. */
|
|
55
180
|
export function listPackOwnedEntries(root) {
|
|
181
|
+
return runPackWalk(walkPackOwnedEntries(root)).map((entry) => 'file' in entry ? { rel: entry.rel, content: readFileSync(entry.file) } : entry);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* `listPackOwnedEntries` off the caller's event loop: `git` runs through `git`, and the paths are
|
|
185
|
+
* read, the files read and the temporary repository removed with `fs/promises`.
|
|
186
|
+
*/
|
|
187
|
+
export async function listPackOwnedEntriesAsync(root, git) {
|
|
188
|
+
const owned = await runPackWalkAsync(walkPackOwnedEntries(root), git);
|
|
189
|
+
return mapBounded(owned, async (entry) => 'file' in entry ? { rel: entry.rel, content: await readFile(entry.file) } : entry);
|
|
190
|
+
}
|
|
191
|
+
function* walkPackOwnedEntries(root) {
|
|
56
192
|
const entries = [];
|
|
57
|
-
const walk = (dir, prefix)
|
|
193
|
+
const walk = function* (dir, prefix) {
|
|
58
194
|
// Git scopes this to dir and honors its owning repository. Submodule entries
|
|
59
195
|
// are directories, so the recursive call switches to the submodule's index.
|
|
60
|
-
const git =
|
|
196
|
+
const git = yield* gitStep([
|
|
61
197
|
'-C',
|
|
62
198
|
dir,
|
|
63
199
|
'ls-files',
|
|
@@ -75,38 +211,31 @@ export function listPackOwnedEntries(root) {
|
|
|
75
211
|
else if (git.status === 0 || git.status === 128) {
|
|
76
212
|
// A standalone pack, or an untracked pack ignored by its parent repo,
|
|
77
213
|
// still owns its source files. Its top-level runtime state is not source.
|
|
78
|
-
names = listUnindexedPackFiles(dir, prefix);
|
|
214
|
+
names = yield* listUnindexedPackFiles(dir, prefix);
|
|
79
215
|
}
|
|
80
216
|
else {
|
|
81
217
|
throw new Error('Cannot list pack-owned files for portability validation');
|
|
82
218
|
}
|
|
83
|
-
|
|
84
|
-
|
|
219
|
+
const owned = names
|
|
220
|
+
.sort()
|
|
221
|
+
.filter((name) => !name.split('/').some((part) => part === '.git' || part === 'node_modules'));
|
|
222
|
+
const kinds = yield* pathsStep(owned.map((name) => path.join(dir, name)));
|
|
223
|
+
for (const [index, name] of owned.entries()) {
|
|
224
|
+
const kind = kinds[index];
|
|
225
|
+
// A tracked deletion has no shipped bytes. Dangling links still have a target.
|
|
226
|
+
if (kind === 'missing' || kind === 'other')
|
|
85
227
|
continue;
|
|
86
|
-
const full = path.join(dir, name);
|
|
87
|
-
if (!existsSync(full)) {
|
|
88
|
-
// A tracked deletion has no shipped bytes. Dangling links still have a target.
|
|
89
|
-
try {
|
|
90
|
-
lstatSync(full);
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
if (error.code === 'ENOENT')
|
|
94
|
-
continue;
|
|
95
|
-
throw error;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
228
|
const cleanName = name.replace(/\/+$/, '');
|
|
99
229
|
const rel = prefix ? `${prefix}/${cleanName}` : cleanName;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
entries.push({ rel, content: readFileSync(full) });
|
|
230
|
+
if (typeof kind === 'object')
|
|
231
|
+
entries.push({ rel, content: `symlink:${kind.link}` });
|
|
232
|
+
else if (kind === 'directory')
|
|
233
|
+
yield* walk(path.join(dir, name), rel);
|
|
234
|
+
else
|
|
235
|
+
entries.push({ rel, file: path.join(dir, name) });
|
|
107
236
|
}
|
|
108
237
|
};
|
|
109
|
-
walk(root, '');
|
|
238
|
+
yield* walk(root, '');
|
|
110
239
|
return entries.sort((a, b) => {
|
|
111
240
|
const left = a.rel.replaceAll('/', '\0');
|
|
112
241
|
const right = b.rel.replaceAll('/', '\0');
|
|
@@ -196,12 +325,20 @@ export function validatePackBytesPortability(file, bytes, machines = []) {
|
|
|
196
325
|
? []
|
|
197
326
|
: validatePackFilePortability(file, bytes.toString('utf8'), machines);
|
|
198
327
|
}
|
|
199
|
-
|
|
200
|
-
|
|
328
|
+
/** The portability policy over a pack's owned entries, as both scans apply it. */
|
|
329
|
+
export function validatePackEntries(entries, prefix, machines) {
|
|
330
|
+
return entries.flatMap(({ rel, content }) => {
|
|
201
331
|
const file = prefix ? `${prefix}/${rel}` : rel;
|
|
202
332
|
return typeof content === 'string'
|
|
203
333
|
? validatePackFilePortability(file, packEntryLinkTarget({ rel, content }), machines)
|
|
204
334
|
: validatePackBytesPortability(file, content, machines);
|
|
205
335
|
});
|
|
206
336
|
}
|
|
337
|
+
export function validatePackPortability(root, prefix = '', machines = []) {
|
|
338
|
+
return validatePackEntries(listPackOwnedEntries(root), prefix, machines);
|
|
339
|
+
}
|
|
340
|
+
/** `validatePackPortability` with the ownership walk's `git` calls run by `git`. */
|
|
341
|
+
export async function validatePackPortabilityAsync(root, prefix, machines, git) {
|
|
342
|
+
return validatePackEntries(await listPackOwnedEntriesAsync(root, git), prefix, machines);
|
|
343
|
+
}
|
|
207
344
|
//# sourceMappingURL=pack-portability.js.map
|