@forgecart/cli 2.202610131229.0 → 2.202610131722.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/dist/src/authorization/cli-authorization-flow.d.ts +9 -5
- package/dist/src/authorization/cli-authorization-flow.js +22 -13
- package/dist/src/authorization/cli-authorization-flow.js.map +1 -1
- package/dist/src/authorization/cli-authorization.client.d.ts +7 -1
- package/dist/src/authorization/cli-authorization.client.js +31 -5
- package/dist/src/authorization/cli-authorization.client.js.map +1 -1
- package/dist/src/authorization/type/cli-authorization.types.d.ts +15 -2
- package/dist/src/sync/sync-repository.d.ts +47 -12
- package/dist/src/sync/sync-repository.js +112 -29
- package/dist/src/sync/sync-repository.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,8 +12,9 @@ import { type CliCredentials } from './type/cli-authorization.types.js';
|
|
|
12
12
|
* the request named until the authorization settles or the wait ends: at the
|
|
13
13
|
* window's close, or at `timeoutSec` when that comes first. The wait is quiet
|
|
14
14
|
* (no countdown, no interval, no attempt count), so an approval on the third
|
|
15
|
-
* poll reads exactly as one on the first.
|
|
16
|
-
*
|
|
15
|
+
* poll reads exactly as one on the first. An approval is reported with the
|
|
16
|
+
* store it names, `✓ Authorized · <store name> · channel <code>` (launch#62
|
|
17
|
+
* N2). The device code is the poll's secret and is never printed.
|
|
17
18
|
*/
|
|
18
19
|
export declare class CliAuthorizationFlow {
|
|
19
20
|
private readonly client;
|
|
@@ -24,8 +25,9 @@ export declare class CliAuthorizationFlow {
|
|
|
24
25
|
*/
|
|
25
26
|
constructor(client: CliAuthorizationClient, timeoutSec: number | undefined);
|
|
26
27
|
/**
|
|
27
|
-
* Authorize this machine
|
|
28
|
-
* delivers. A denial, an expiry or an elapsed wait ends
|
|
28
|
+
* Authorize this machine, name the store the approval names, and answer the
|
|
29
|
+
* four credentials it delivers. A denial, an expiry or an elapsed wait ends
|
|
30
|
+
* the run on exit 3.
|
|
29
31
|
*
|
|
30
32
|
* @param report why the run authorizes, printed first.
|
|
31
33
|
* @param channelToken the channel token the project's sources name: the store `/authorize` preselects.
|
|
@@ -33,8 +35,10 @@ export declare class CliAuthorizationFlow {
|
|
|
33
35
|
authorize(report: readonly string[], channelToken: string | undefined): Promise<CliCredentials>;
|
|
34
36
|
/** Poll until the authorization settles or the deadline passes. */
|
|
35
37
|
private awaitApproval;
|
|
36
|
-
/** The
|
|
38
|
+
/** The grant an APPROVED answer delivers; null while PENDING. DENIED and EXPIRED end the run. */
|
|
37
39
|
private settle;
|
|
40
|
+
/** The approval, naming the store: `✓ Authorized · <store name> · channel <code>` — a nameless store by its code alone. */
|
|
41
|
+
private authorizedLine;
|
|
38
42
|
/** The window's close — or `--timeout` from now, when that comes first. */
|
|
39
43
|
private deadlineOf;
|
|
40
44
|
/** What the run prints once the authorization is open, for a terminal or for a log. */
|
|
@@ -17,8 +17,9 @@ import { CliAuthorizationState, } from './type/cli-authorization.types.js';
|
|
|
17
17
|
* the request named until the authorization settles or the wait ends: at the
|
|
18
18
|
* window's close, or at `timeoutSec` when that comes first. The wait is quiet
|
|
19
19
|
* (no countdown, no interval, no attempt count), so an approval on the third
|
|
20
|
-
* poll reads exactly as one on the first.
|
|
21
|
-
*
|
|
20
|
+
* poll reads exactly as one on the first. An approval is reported with the
|
|
21
|
+
* store it names, `✓ Authorized · <store name> · channel <code>` (launch#62
|
|
22
|
+
* N2). The device code is the poll's secret and is never printed.
|
|
22
23
|
*/
|
|
23
24
|
export class CliAuthorizationFlow {
|
|
24
25
|
client;
|
|
@@ -32,8 +33,9 @@ export class CliAuthorizationFlow {
|
|
|
32
33
|
this.timeoutSec = timeoutSec;
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
|
-
* Authorize this machine
|
|
36
|
-
* delivers. A denial, an expiry or an elapsed wait ends
|
|
36
|
+
* Authorize this machine, name the store the approval names, and answer the
|
|
37
|
+
* four credentials it delivers. A denial, an expiry or an elapsed wait ends
|
|
38
|
+
* the run on exit 3.
|
|
37
39
|
*
|
|
38
40
|
* @param report why the run authorizes, printed first.
|
|
39
41
|
* @param channelToken the channel token the project's sources name: the store `/authorize` preselects.
|
|
@@ -51,10 +53,10 @@ export class CliAuthorizationFlow {
|
|
|
51
53
|
print(line);
|
|
52
54
|
if (interactive)
|
|
53
55
|
this.openBrowser(authorization.verificationUrl);
|
|
54
|
-
const
|
|
56
|
+
const grant = await this.awaitApproval(authorization);
|
|
55
57
|
print('');
|
|
56
|
-
print(
|
|
57
|
-
return credentials;
|
|
58
|
+
print(` ${this.authorizedLine(grant.store)}`);
|
|
59
|
+
return grant.credentials;
|
|
58
60
|
}
|
|
59
61
|
/** Poll until the authorization settles or the deadline passes. */
|
|
60
62
|
async awaitApproval(authorization) {
|
|
@@ -65,12 +67,12 @@ export class CliAuthorizationFlow {
|
|
|
65
67
|
if (remainingMs <= 0)
|
|
66
68
|
throw new CliUnauthorizedRefusal(deadline.reason);
|
|
67
69
|
await sleep(Math.min(intervalMs, remainingMs));
|
|
68
|
-
const
|
|
69
|
-
if (
|
|
70
|
-
return
|
|
70
|
+
const grant = this.settle(await this.client.status(authorization.deviceCode));
|
|
71
|
+
if (grant !== null)
|
|
72
|
+
return grant;
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
|
-
/** The
|
|
75
|
+
/** The grant an APPROVED answer delivers; null while PENDING. DENIED and EXPIRED end the run. */
|
|
74
76
|
settle(status) {
|
|
75
77
|
if (status.state === CliAuthorizationState.DENIED) {
|
|
76
78
|
throw new CliUnauthorizedRefusal(CliUnauthorizedReason.DENIED);
|
|
@@ -80,10 +82,17 @@ export class CliAuthorizationFlow {
|
|
|
80
82
|
}
|
|
81
83
|
if (status.state === CliAuthorizationState.PENDING)
|
|
82
84
|
return null;
|
|
83
|
-
if (status.
|
|
85
|
+
if (status.grant === null) {
|
|
84
86
|
throw new Error('The admin API answered APPROVED without the credentials an approval delivers.');
|
|
85
87
|
}
|
|
86
|
-
return status.
|
|
88
|
+
return status.grant;
|
|
89
|
+
}
|
|
90
|
+
/** The approval, naming the store: `✓ Authorized · <store name> · channel <code>` — a nameless store by its code alone. */
|
|
91
|
+
authorizedLine(store) {
|
|
92
|
+
const channel = `channel ${store.channelCode}`;
|
|
93
|
+
if (store.storeName === null)
|
|
94
|
+
return `✓ Authorized · ${channel}`;
|
|
95
|
+
return `✓ Authorized · ${store.storeName} · ${channel}`;
|
|
87
96
|
}
|
|
88
97
|
/** The window's close — or `--timeout` from now, when that comes first. */
|
|
89
98
|
deadlineOf(authorization) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-authorization-flow.js","sourceRoot":"","sources":["../../../src/authorization/cli-authorization-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"cli-authorization-flow.js","sourceRoot":"","sources":["../../../src/authorization/cli-authorization-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,15 @@ export declare class CliAuthorizationClient {
|
|
|
25
25
|
private assertNoErrors;
|
|
26
26
|
/** The `ErrorCode` a GraphQL error carries in its extensions. */
|
|
27
27
|
private errorCode;
|
|
28
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* The grant an answer carries — the credentials and the approved store's
|
|
30
|
+
* channel code and store name; null on every answer but APPROVED.
|
|
31
|
+
*/
|
|
32
|
+
private readGrant;
|
|
29
33
|
private readCredentials;
|
|
30
34
|
private readString;
|
|
35
|
+
/** A string the answer may leave null — absent, null and empty all read as null. */
|
|
36
|
+
private readOptionalString;
|
|
31
37
|
private isState;
|
|
32
38
|
private unreadable;
|
|
33
39
|
private notGraphQlMessage;
|
|
@@ -11,7 +11,10 @@ const REQUEST_DOCUMENT = `mutation CliAuthorizationRequest($input: CliAuthorizat
|
|
|
11
11
|
pollIntervalSec
|
|
12
12
|
}
|
|
13
13
|
}`;
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* The SDK's `CliAuthorizationStatus` operation, verbatim — the poll, keyed on
|
|
16
|
+
* the device code: the credentials and the approved store ride its APPROVED answer.
|
|
17
|
+
*/
|
|
15
18
|
const STATUS_DOCUMENT = `mutation CliAuthorizationStatus($deviceCode: String!) {
|
|
16
19
|
cliAuthorizationStatus(deviceCode: $deviceCode) {
|
|
17
20
|
state
|
|
@@ -21,6 +24,8 @@ const STATUS_DOCUMENT = `mutation CliAuthorizationStatus($deviceCode: String!) {
|
|
|
21
24
|
shopApiUrl
|
|
22
25
|
adminApiUrl
|
|
23
26
|
}
|
|
27
|
+
channelCode
|
|
28
|
+
storeName
|
|
24
29
|
}
|
|
25
30
|
}`;
|
|
26
31
|
/**
|
|
@@ -72,7 +77,7 @@ export class CliAuthorizationClient {
|
|
|
72
77
|
const state = result.state;
|
|
73
78
|
if (!this.isState(state))
|
|
74
79
|
throw this.unreadable('cliAuthorizationStatus');
|
|
75
|
-
return { state,
|
|
80
|
+
return { state, grant: this.readGrant(result) };
|
|
76
81
|
}
|
|
77
82
|
/** POST one operation and answer its root field's object. */
|
|
78
83
|
async send(document, variables, field) {
|
|
@@ -130,10 +135,23 @@ export class CliAuthorizationClient {
|
|
|
130
135
|
const code = error.extensions.code;
|
|
131
136
|
return typeof code === 'string' ? code : undefined;
|
|
132
137
|
}
|
|
133
|
-
/**
|
|
134
|
-
|
|
135
|
-
|
|
138
|
+
/**
|
|
139
|
+
* The grant an answer carries — the credentials and the approved store's
|
|
140
|
+
* channel code and store name; null on every answer but APPROVED.
|
|
141
|
+
*/
|
|
142
|
+
readGrant(result) {
|
|
143
|
+
const credentials = result.credentials;
|
|
144
|
+
if (credentials === null || credentials === undefined)
|
|
136
145
|
return null;
|
|
146
|
+
return {
|
|
147
|
+
credentials: this.readCredentials(credentials),
|
|
148
|
+
store: {
|
|
149
|
+
channelCode: this.readString(result, 'channelCode', 'cliAuthorizationStatus'),
|
|
150
|
+
storeName: this.readOptionalString(result.storeName, 'cliAuthorizationStatus'),
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
readCredentials(value) {
|
|
137
155
|
if (!isJsonObject(value))
|
|
138
156
|
throw this.unreadable('cliAuthorizationStatus');
|
|
139
157
|
return {
|
|
@@ -149,6 +167,14 @@ export class CliAuthorizationClient {
|
|
|
149
167
|
throw this.unreadable(field);
|
|
150
168
|
return value;
|
|
151
169
|
}
|
|
170
|
+
/** A string the answer may leave null — absent, null and empty all read as null. */
|
|
171
|
+
readOptionalString(value, field) {
|
|
172
|
+
if (value === null || value === undefined || value === '')
|
|
173
|
+
return null;
|
|
174
|
+
if (typeof value !== 'string')
|
|
175
|
+
throw this.unreadable(field);
|
|
176
|
+
return value;
|
|
177
|
+
}
|
|
152
178
|
isState(value) {
|
|
153
179
|
return Object.values(CliAuthorizationState).includes(value);
|
|
154
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-authorization.client.js","sourceRoot":"","sources":["../../../src/authorization/cli-authorization.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"cli-authorization.client.js","sourceRoot":"","sources":["../../../src/authorization/cli-authorization.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -94,8 +94,21 @@ export interface CliAuthorizationRequestResult {
|
|
|
94
94
|
/** The cadence the poll keeps. */
|
|
95
95
|
pollIntervalSec: number;
|
|
96
96
|
}
|
|
97
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* The store an approval names (launch#62 N2): its channel code, and its store
|
|
99
|
+
* name (`ChannelSettings.shopName`) — null when the store carries none.
|
|
100
|
+
*/
|
|
101
|
+
export interface CliAuthorizedStore {
|
|
102
|
+
channelCode: string;
|
|
103
|
+
storeName: string | null;
|
|
104
|
+
}
|
|
105
|
+
/** What an approval delivers: the four credentials, and the store they are the credentials of. */
|
|
106
|
+
export interface CliAuthorizationGrant {
|
|
107
|
+
credentials: CliCredentials;
|
|
108
|
+
store: CliAuthorizedStore;
|
|
109
|
+
}
|
|
110
|
+
/** One status poll's answer: the grant rides the APPROVED answer, exactly once. */
|
|
98
111
|
export interface CliAuthorizationStatusResult {
|
|
99
112
|
state: CliAuthorizationState;
|
|
100
|
-
|
|
113
|
+
grant: CliAuthorizationGrant | null;
|
|
101
114
|
}
|
|
@@ -30,7 +30,12 @@ export declare class SyncRepository {
|
|
|
30
30
|
* without the repository's own environment.
|
|
31
31
|
*/
|
|
32
32
|
prepare(): Promise<void>;
|
|
33
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* The laptop's tree as it stands — every path that travels — written into
|
|
35
|
+
* the private index. A path that never travels leaves the index even where
|
|
36
|
+
* the storefront's own `.gitignore` re-includes it, so the private index
|
|
37
|
+
* never tracks one.
|
|
38
|
+
*/
|
|
34
39
|
snapshot(): Promise<string>;
|
|
35
40
|
/** Whether the private repository holds `sha` as a commit. */
|
|
36
41
|
hasCommit(sha: string): Promise<boolean>;
|
|
@@ -45,7 +50,11 @@ export declare class SyncRepository {
|
|
|
45
50
|
fetchBundle(bytes: Buffer): Promise<string>;
|
|
46
51
|
/** Keep `sha` — the recorded base — reachable whatever the serving branch does next. */
|
|
47
52
|
keepBase(sha: string): Promise<void>;
|
|
48
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* The tree of `commit` that travels: its own, without the platform's
|
|
55
|
+
* `.forgecart/` and without every path the runtime owns — which neither a
|
|
56
|
+
* pull writes onto the laptop nor a plan lists as changed.
|
|
57
|
+
*/
|
|
49
58
|
travellingTree(commit: string): Promise<string>;
|
|
50
59
|
/** The paths `to` changes against `from`, path by path. */
|
|
51
60
|
changes(from: string, to: string): Promise<SyncTreeChange[]>;
|
|
@@ -59,11 +68,15 @@ export declare class SyncRepository {
|
|
|
59
68
|
materialize(from: string, to: string): Promise<SyncMaterialized>;
|
|
60
69
|
/**
|
|
61
70
|
* The ONE commit a push sends: the laptop's tree on the serving tip `serving`,
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
71
|
+
* where every path that never travels — the platform's `.forgecart/` and
|
|
72
|
+
* every path the runtime owns, at any depth — is exactly serving's entry, its
|
|
73
|
+
* blob and its mode, or absent where serving holds none, whatever the laptop
|
|
74
|
+
* holds there: the workspace refuses a push that changes one. Serving's entry
|
|
75
|
+
* wins a path the laptop's tree claims for a file of its own. It is dated as
|
|
76
|
+
* the serving tip it is cut on, so the same tree cut on the same tip is the
|
|
77
|
+
* same commit on every run: a run that re-sends a push an earlier run broke
|
|
78
|
+
* off sends the very bundle the workspace holds parts of. The pod mints the
|
|
79
|
+
* landed commit itself.
|
|
67
80
|
*/
|
|
68
81
|
pushCommit(localTree: string, serving: string): Promise<string>;
|
|
69
82
|
/**
|
|
@@ -73,11 +86,31 @@ export declare class SyncRepository {
|
|
|
73
86
|
* byte, on every run.
|
|
74
87
|
*/
|
|
75
88
|
pushBundle(commit: string, serving: string): Promise<Buffer>;
|
|
76
|
-
/**
|
|
77
|
-
private
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
/** Every file of `tree`, at any depth, in `ls-tree -r -z` form — the form `update-index --index-info` reads back. */
|
|
90
|
+
private fileEntries;
|
|
91
|
+
/**
|
|
92
|
+
* The tree holding exactly `entries` — files in `ls-tree -r -z` form —
|
|
93
|
+
* written through an index of its own. A later entry replaces an earlier one
|
|
94
|
+
* its path conflicts with: a file where the other holds a directory.
|
|
95
|
+
*/
|
|
96
|
+
private treeOf;
|
|
97
|
+
/** An `ls-tree` entry's path: everything after its tab. */
|
|
98
|
+
private entryPath;
|
|
99
|
+
/** Whether `path` travels: it lies outside the platform's top-level `.forgecart/`, and the runtime does not own it. */
|
|
100
|
+
private travels;
|
|
101
|
+
/**
|
|
102
|
+
* Whether the runtime owns the path of `segments` — the pod's own rule
|
|
103
|
+
* (`BoardGitService.isRuntimeOwnedPath`) over {@link RUNTIME_OWNED_PATTERNS}:
|
|
104
|
+
* a `name/` pattern names a directory segment at any depth, any other
|
|
105
|
+
* pattern a basename at any depth, `*` matching within it.
|
|
106
|
+
*/
|
|
107
|
+
private isRuntimeOwned;
|
|
108
|
+
/** Whether one path segment matches a basename `pattern` holding at most one `*` (any run of characters). */
|
|
109
|
+
private matchesBasenamePattern;
|
|
110
|
+
/** The NUL-separated records of a `-z` run's output. */
|
|
111
|
+
private nulRecords;
|
|
112
|
+
/** `records` as a `-z` run reads them on its standard input: each one NUL-terminated. */
|
|
113
|
+
private nulTerminated;
|
|
81
114
|
/** A `diff-tree -z` record's status letter — the last word of its metadata. */
|
|
82
115
|
private changeKind;
|
|
83
116
|
/** Write `paths` of `tree` onto the laptop, replacing what stands there — through an index of its own. */
|
|
@@ -89,6 +122,8 @@ export declare class SyncRepository {
|
|
|
89
122
|
private exists;
|
|
90
123
|
/** A fresh bundle path in the private state directory, alive for one transfer. */
|
|
91
124
|
private spoolPath;
|
|
125
|
+
/** A fresh index file in the private repository, alive for one operation — never the private index. */
|
|
126
|
+
private scratchIndexFile;
|
|
92
127
|
private excludeFile;
|
|
93
128
|
/** A one-line answer — an object id — without its newline. */
|
|
94
129
|
private line;
|
|
@@ -25,13 +25,16 @@ const PUSH_MESSAGE = 'forgecart sync';
|
|
|
25
25
|
/** The top-level entry of the serving tree that never travels: the platform's `.forgecart/`. */
|
|
26
26
|
const PLATFORM_DIR = '.forgecart';
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* `
|
|
31
|
-
* every `.env
|
|
28
|
+
* The board's runtime ignore authority, pattern for pattern — the pod's
|
|
29
|
+
* `info/exclude` (`INFO_EXCLUDE_PATTERNS` in the workspace-manager's
|
|
30
|
+
* `board-git.service.ts`): installed and generated trees, the platform's
|
|
31
|
+
* islands, every `.env`, and the machine state the pod's processes write under
|
|
32
|
+
* their HOME. Every pattern is one of the pod's two forms, both matching at ANY
|
|
33
|
+
* depth: a `name/` directory pattern, or a basename pattern holding at most one
|
|
34
|
+
* `*`. The workspace refuses a push that changes any path they own, deletions
|
|
35
|
+
* included, so none of them ever travels.
|
|
32
36
|
*/
|
|
33
|
-
const
|
|
34
|
-
`/${PLATFORM_DIR}/`,
|
|
37
|
+
const RUNTIME_OWNED_PATTERNS = [
|
|
35
38
|
'.forge/',
|
|
36
39
|
'node_modules/',
|
|
37
40
|
'.next/',
|
|
@@ -45,6 +48,8 @@ const EXCLUDE_PATTERNS = [
|
|
|
45
48
|
'.config/',
|
|
46
49
|
'.worktrees/',
|
|
47
50
|
];
|
|
51
|
+
/** What a snapshot leaves out: the laptop's own `.forgecart/`, and every path the runtime owns. */
|
|
52
|
+
const EXCLUDE_PATTERNS = [`/${PLATFORM_DIR}/`, ...RUNTIME_OWNED_PATTERNS];
|
|
48
53
|
/** The private state directory's own ignore file: a merchant's repository never tracks any of it. */
|
|
49
54
|
const STATE_DIR_GITIGNORE = '*\n';
|
|
50
55
|
/** The status letters `git diff-tree` names a change with, as the change kinds sync reads. */
|
|
@@ -109,9 +114,21 @@ export class SyncRepository {
|
|
|
109
114
|
await mkdir(join(this.gitDir, 'info'), { recursive: true });
|
|
110
115
|
await writeFile(this.excludeFile(), `${EXCLUDE_PATTERNS.join('\n')}\n`, 'utf8');
|
|
111
116
|
}
|
|
112
|
-
/**
|
|
117
|
+
/**
|
|
118
|
+
* The laptop's tree as it stands — every path that travels — written into
|
|
119
|
+
* the private index. A path that never travels leaves the index even where
|
|
120
|
+
* the storefront's own `.gitignore` re-includes it, so the private index
|
|
121
|
+
* never tracks one.
|
|
122
|
+
*/
|
|
113
123
|
async snapshot() {
|
|
114
124
|
await this.git(['add', '--all', '--', '.']);
|
|
125
|
+
const tracked = this.nulRecords(await this.git(['ls-files', '-z']));
|
|
126
|
+
const nonTravelling = tracked.filter((path) => !this.travels(path));
|
|
127
|
+
if (nonTravelling.length > 0) {
|
|
128
|
+
await this.git(['update-index', '--force-remove', '-z', '--stdin'], {
|
|
129
|
+
input: this.nulTerminated(nonTravelling),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
115
132
|
return this.line(await this.git(['write-tree']));
|
|
116
133
|
}
|
|
117
134
|
/** Whether the private repository holds `sha` as a commit. */
|
|
@@ -152,10 +169,14 @@ export class SyncRepository {
|
|
|
152
169
|
async keepBase(sha) {
|
|
153
170
|
await this.git(['update-ref', BASE_REF, sha]);
|
|
154
171
|
}
|
|
155
|
-
/**
|
|
172
|
+
/**
|
|
173
|
+
* The tree of `commit` that travels: its own, without the platform's
|
|
174
|
+
* `.forgecart/` and without every path the runtime owns — which neither a
|
|
175
|
+
* pull writes onto the laptop nor a plan lists as changed.
|
|
176
|
+
*/
|
|
156
177
|
async travellingTree(commit) {
|
|
157
|
-
const
|
|
158
|
-
return this.
|
|
178
|
+
const files = await this.fileEntries(`${commit}^{tree}`);
|
|
179
|
+
return this.treeOf(files.filter((entry) => this.travels(this.entryPath(entry))));
|
|
159
180
|
}
|
|
160
181
|
/** The paths `to` changes against `from`, path by path. */
|
|
161
182
|
async changes(from, to) {
|
|
@@ -187,16 +208,23 @@ export class SyncRepository {
|
|
|
187
208
|
}
|
|
188
209
|
/**
|
|
189
210
|
* The ONE commit a push sends: the laptop's tree on the serving tip `serving`,
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
211
|
+
* where every path that never travels — the platform's `.forgecart/` and
|
|
212
|
+
* every path the runtime owns, at any depth — is exactly serving's entry, its
|
|
213
|
+
* blob and its mode, or absent where serving holds none, whatever the laptop
|
|
214
|
+
* holds there: the workspace refuses a push that changes one. Serving's entry
|
|
215
|
+
* wins a path the laptop's tree claims for a file of its own. It is dated as
|
|
216
|
+
* the serving tip it is cut on, so the same tree cut on the same tip is the
|
|
217
|
+
* same commit on every run: a run that re-sends a push an earlier run broke
|
|
218
|
+
* off sends the very bundle the workspace holds parts of. The pod mints the
|
|
219
|
+
* landed commit itself.
|
|
195
220
|
*/
|
|
196
221
|
async pushCommit(localTree, serving) {
|
|
197
|
-
const local = await this.
|
|
198
|
-
const
|
|
199
|
-
const tree = await this.
|
|
222
|
+
const local = await this.fileEntries(localTree);
|
|
223
|
+
const held = await this.fileEntries(`${serving}^{tree}`);
|
|
224
|
+
const tree = await this.treeOf([
|
|
225
|
+
...local.filter((entry) => this.travels(this.entryPath(entry))),
|
|
226
|
+
...held.filter((entry) => !this.travels(this.entryPath(entry))),
|
|
227
|
+
]);
|
|
200
228
|
const servingDate = await this.git(['log', '-1', '--format=%cd', '--date=raw', serving]);
|
|
201
229
|
const date = `@${this.line(servingDate)}`;
|
|
202
230
|
const run = await this.git(['commit-tree', tree, '-p', serving, '-m', PUSH_MESSAGE], {
|
|
@@ -229,19 +257,70 @@ export class SyncRepository {
|
|
|
229
257
|
await rm(bundlePath, { force: true });
|
|
230
258
|
}
|
|
231
259
|
}
|
|
232
|
-
/**
|
|
233
|
-
async
|
|
234
|
-
|
|
235
|
-
return run.stdout.split('\0').filter((entry) => entry !== '');
|
|
260
|
+
/** Every file of `tree`, at any depth, in `ls-tree -r -z` form — the form `update-index --index-info` reads back. */
|
|
261
|
+
async fileEntries(tree) {
|
|
262
|
+
return this.nulRecords(await this.git(['ls-tree', '-r', '-z', tree]));
|
|
236
263
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
264
|
+
/**
|
|
265
|
+
* The tree holding exactly `entries` — files in `ls-tree -r -z` form —
|
|
266
|
+
* written through an index of its own. A later entry replaces an earlier one
|
|
267
|
+
* its path conflicts with: a file where the other holds a directory.
|
|
268
|
+
*/
|
|
269
|
+
async treeOf(entries) {
|
|
270
|
+
const indexFile = this.scratchIndexFile('tree');
|
|
271
|
+
try {
|
|
272
|
+
await this.git(['update-index', '-z', '--index-info'], {
|
|
273
|
+
indexFile,
|
|
274
|
+
input: this.nulTerminated(entries),
|
|
275
|
+
});
|
|
276
|
+
return this.line(await this.git(['write-tree'], { indexFile }));
|
|
277
|
+
}
|
|
278
|
+
finally {
|
|
279
|
+
await rm(indexFile, { force: true });
|
|
280
|
+
}
|
|
240
281
|
}
|
|
241
|
-
/** An `ls-tree` entry's
|
|
242
|
-
|
|
282
|
+
/** An `ls-tree` entry's path: everything after its tab. */
|
|
283
|
+
entryPath(entry) {
|
|
243
284
|
return entry.slice(entry.indexOf('\t') + 1);
|
|
244
285
|
}
|
|
286
|
+
/** Whether `path` travels: it lies outside the platform's top-level `.forgecart/`, and the runtime does not own it. */
|
|
287
|
+
travels(path) {
|
|
288
|
+
const segments = path.split('/');
|
|
289
|
+
return segments[0] !== PLATFORM_DIR && !this.isRuntimeOwned(segments);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Whether the runtime owns the path of `segments` — the pod's own rule
|
|
293
|
+
* (`BoardGitService.isRuntimeOwnedPath`) over {@link RUNTIME_OWNED_PATTERNS}:
|
|
294
|
+
* a `name/` pattern names a directory segment at any depth, any other
|
|
295
|
+
* pattern a basename at any depth, `*` matching within it.
|
|
296
|
+
*/
|
|
297
|
+
isRuntimeOwned(segments) {
|
|
298
|
+
const directories = segments.slice(0, -1);
|
|
299
|
+
return RUNTIME_OWNED_PATTERNS.some((pattern) => {
|
|
300
|
+
if (pattern.endsWith('/'))
|
|
301
|
+
return directories.includes(pattern.slice(0, -1));
|
|
302
|
+
return segments.some((segment) => this.matchesBasenamePattern(segment, pattern));
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
/** Whether one path segment matches a basename `pattern` holding at most one `*` (any run of characters). */
|
|
306
|
+
matchesBasenamePattern(segment, pattern) {
|
|
307
|
+
const star = pattern.indexOf('*');
|
|
308
|
+
if (star === -1)
|
|
309
|
+
return segment === pattern;
|
|
310
|
+
const head = pattern.slice(0, star);
|
|
311
|
+
const tail = pattern.slice(star + 1);
|
|
312
|
+
return (segment.length >= head.length + tail.length &&
|
|
313
|
+
segment.startsWith(head) &&
|
|
314
|
+
segment.endsWith(tail));
|
|
315
|
+
}
|
|
316
|
+
/** The NUL-separated records of a `-z` run's output. */
|
|
317
|
+
nulRecords(run) {
|
|
318
|
+
return run.stdout.split('\0').filter((record) => record !== '');
|
|
319
|
+
}
|
|
320
|
+
/** `records` as a `-z` run reads them on its standard input: each one NUL-terminated. */
|
|
321
|
+
nulTerminated(records) {
|
|
322
|
+
return records.map((record) => `${record}\0`).join('');
|
|
323
|
+
}
|
|
245
324
|
/** A `diff-tree -z` record's status letter — the last word of its metadata. */
|
|
246
325
|
changeKind(metadata) {
|
|
247
326
|
const status = metadata.slice(metadata.lastIndexOf(' ') + 1);
|
|
@@ -255,12 +334,12 @@ export class SyncRepository {
|
|
|
255
334
|
async checkOut(tree, paths) {
|
|
256
335
|
if (paths.length === 0)
|
|
257
336
|
return;
|
|
258
|
-
const indexFile =
|
|
337
|
+
const indexFile = this.scratchIndexFile('checkout');
|
|
259
338
|
try {
|
|
260
339
|
await this.git(['read-tree', tree], { indexFile });
|
|
261
340
|
await this.git(['checkout-index', '--force', '-z', '--stdin'], {
|
|
262
341
|
indexFile,
|
|
263
|
-
input:
|
|
342
|
+
input: this.nulTerminated(paths),
|
|
264
343
|
});
|
|
265
344
|
}
|
|
266
345
|
finally {
|
|
@@ -302,6 +381,10 @@ export class SyncRepository {
|
|
|
302
381
|
spoolPath(purpose) {
|
|
303
382
|
return join(this.stateDir, `${purpose}-${randomUUID()}.bundle`);
|
|
304
383
|
}
|
|
384
|
+
/** A fresh index file in the private repository, alive for one operation — never the private index. */
|
|
385
|
+
scratchIndexFile(purpose) {
|
|
386
|
+
return join(this.gitDir, `${purpose}-${randomUUID()}.index`);
|
|
387
|
+
}
|
|
305
388
|
excludeFile() {
|
|
306
389
|
return join(this.gitDir, 'info', 'exclude');
|
|
307
390
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-repository.js","sourceRoot":"","sources":["../../../src/sync/sync-repository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-repository.js","sourceRoot":"","sources":["../../../src/sync/sync-repository.ts"],"names":[],"mappings":"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"}
|