@elaraai/e3-cloud-cli 1.0.93 → 1.0.97
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 +23 -10
- package/dist/src/cli.js +15 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/files.d.ts +23 -6
- package/dist/src/commands/files.d.ts.map +1 -1
- package/dist/src/commands/files.js +173 -38
- package/dist/src/commands/files.js.map +1 -1
- package/dist/src/commands/release.d.ts.map +1 -1
- package/dist/src/commands/release.js +33 -15
- package/dist/src/commands/release.js.map +1 -1
- package/dist/src/files-local.d.ts +336 -30
- package/dist/src/files-local.d.ts.map +1 -1
- package/dist/src/files-local.js +187 -52
- package/dist/src/files-local.js.map +1 -1
- package/dist/src/files-push.d.ts +100 -0
- package/dist/src/files-push.d.ts.map +1 -0
- package/dist/src/files-push.js +387 -0
- package/dist/src/files-push.js.map +1 -0
- package/package.json +9 -9
package/dist/src/files-local.js
CHANGED
|
@@ -8,41 +8,62 @@
|
|
|
8
8
|
*
|
|
9
9
|
* What a repository keeps of one workspace's Files is a file in the
|
|
10
10
|
* repository, `<repo>/.e3-cloud/files/<workspace>.json`: the declarations
|
|
11
|
-
* deployed to the workspace, where each source is bound, what each
|
|
11
|
+
* deployed to the workspace, where each source is bound, what each target
|
|
12
12
|
* took last, and the last sync's report. It belongs to the repository, never
|
|
13
13
|
* to the project, so removing the repository removes it, with the bytes the
|
|
14
|
-
* syncs took in.
|
|
14
|
+
* syncs took in. A state file written before typed files (version 1: mappings by
|
|
15
|
+
* input, no hashes) is read through `@elaraai/e3-cloud-files/compat` and
|
|
16
|
+
* written at version 2 on its next write.
|
|
15
17
|
*
|
|
16
18
|
* A sync reads each source with the developer's own cloud credentials (the
|
|
17
19
|
* binding's profile, else the SDK's usual chain) and writes the inputs
|
|
18
|
-
* through e3's own dataset writes,
|
|
19
|
-
*
|
|
20
|
+
* through e3's own dataset writes, a typed file through e3's door for a
|
|
21
|
+
* file (streamed to the repository's own scratch first), and a fed mutation
|
|
22
|
+
* through e3's own `recordMutate` on a local runner, so the repository holds
|
|
23
|
+
* what a deployed workspace's sync would.
|
|
20
24
|
*/
|
|
21
25
|
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
26
|
+
import { userInfo } from 'node:os';
|
|
22
27
|
import { dirname, join, resolve } from 'node:path';
|
|
23
28
|
import { S3Client } from '@aws-sdk/client-s3';
|
|
24
|
-
import { ArrayType, DictType, OptionType, StringType, StructType, decodeJSONFor, encodeJSONFor, equalFor, none, some, } from '@elaraai/east';
|
|
25
|
-
import { LocalStorage, repoGet, repositoryOpen, workspaceGetPackage } from '@elaraai/e3-core';
|
|
29
|
+
import { ArrayType, DictType, IntegerType, OptionType, StringType, StructType, decodeJSONFor, encodeJSONFor, equalFor, none, some, variant, } from '@elaraai/east';
|
|
30
|
+
import { LocalStorage, LocalTaskRunner, repoGet, repositoryOpen, workspaceGetDatasetHash, workspaceGetPackage } from '@elaraai/e3-core';
|
|
26
31
|
import { nameProblem } from '@elaraai/e3-types';
|
|
27
|
-
import { FilesBindingType, FilesLedgerType, FilesManifestType, FilesMappingType, FilesSyncReportType, } from '@elaraai/e3-cloud-types';
|
|
28
|
-
import { checkBindings, checkFiles, parseBucketUrl,
|
|
29
|
-
import {
|
|
32
|
+
import { FilesBindingType, FilesLedgerType, FilesManifestType, FilesMappingType, FilesSyncReportType, filesTargetText, } from '@elaraai/e3-cloud-types';
|
|
33
|
+
import { checkBindings, checkFiles, parseBucketUrl, readPackageSurface } from '@elaraai/e3-cloud-files/check';
|
|
34
|
+
import { FilesLedgerTypeV1, FilesManifestTypeV1, FilesSyncReportTypeV1, liftFilesLedgerV1, liftFilesManifestV1, liftFilesSyncReportV1, } from '@elaraai/e3-cloud-files/compat';
|
|
35
|
+
import { FilesSyncError, FilesUnreadableError, NO_LEDGER, ledgerKeyOf, ledgerStateOf, ledgerValueOf, planPush, syncFiles } from '@elaraai/e3-cloud-files/sync';
|
|
36
|
+
import { globMatcher } from '@elaraai/e3-cloud-files/check';
|
|
30
37
|
import { storageWriter } from '@elaraai/e3-cloud-files/storage';
|
|
31
38
|
import { s3FilesReader } from '@elaraai/e3-cloud-files/s3';
|
|
39
|
+
/** The version of the state file this CLI writes. */
|
|
40
|
+
export const LOCAL_FILES_VERSION = 2n;
|
|
32
41
|
/** What a local repository keeps of one workspace's Files. */
|
|
33
42
|
export const LocalFilesStateType = StructType({
|
|
43
|
+
/** The state file's version: {@link LOCAL_FILES_VERSION} */
|
|
44
|
+
version: IntegerType,
|
|
34
45
|
/** The declarations deployed to the workspace */
|
|
35
46
|
manifest: OptionType(FilesManifestType),
|
|
36
47
|
/** Where each source is bound */
|
|
37
48
|
bindings: ArrayType(FilesBindingType),
|
|
38
|
-
/** What each
|
|
49
|
+
/** What each target took last, by its ledger key */
|
|
39
50
|
ledgers: DictType(StringType, FilesLedgerType),
|
|
40
51
|
/** The last sync's report; a dry run's is never kept */
|
|
41
52
|
lastSync: OptionType(FilesSyncReportType),
|
|
42
53
|
});
|
|
54
|
+
/** The state file as the first version wrote it: no version, mappings by input. */
|
|
55
|
+
const LocalFilesStateTypeV1 = StructType({
|
|
56
|
+
manifest: OptionType(FilesManifestTypeV1),
|
|
57
|
+
bindings: ArrayType(FilesBindingType),
|
|
58
|
+
ledgers: DictType(StringType, FilesLedgerTypeV1),
|
|
59
|
+
lastSync: OptionType(FilesSyncReportTypeV1),
|
|
60
|
+
});
|
|
43
61
|
const encodeState = encodeJSONFor(LocalFilesStateType);
|
|
44
62
|
const decodeState = decodeJSONFor(LocalFilesStateType);
|
|
63
|
+
const decodeStateV1 = decodeJSONFor(LocalFilesStateTypeV1);
|
|
45
64
|
const sameMapping = equalFor(FilesMappingType);
|
|
65
|
+
/** A workspace's Files before its first deploy: nothing. */
|
|
66
|
+
const NO_STATE = { version: LOCAL_FILES_VERSION, manifest: none, bindings: [], ledgers: new Map(), lastSync: none };
|
|
46
67
|
/**
|
|
47
68
|
* Opens a local repository, as e3's CLI does: refused when this e3 cannot
|
|
48
69
|
* read it, upgraded in place when an older release wrote it.
|
|
@@ -67,13 +88,35 @@ export function statePath(repoPath, ws) {
|
|
|
67
88
|
throw new Error(`'${ws}' is no workspace's name: ${reason}`);
|
|
68
89
|
return join(repoPath, '.e3-cloud', 'files', `${ws}.json`);
|
|
69
90
|
}
|
|
70
|
-
/**
|
|
91
|
+
/** Where a sync streams a typed file to before e3 takes it in: the repository's own scratch. */
|
|
92
|
+
function scratchDir(repoPath) {
|
|
93
|
+
return join(repoPath, '.e3-cloud', 'scratch');
|
|
94
|
+
}
|
|
95
|
+
/** The state file's version, from its text: none for the first version's. */
|
|
96
|
+
function versionOf(text) {
|
|
97
|
+
const parsed = JSON.parse(text);
|
|
98
|
+
if (typeof parsed !== 'object' || parsed === null || !('version' in parsed))
|
|
99
|
+
return 1;
|
|
100
|
+
const version = parsed.version;
|
|
101
|
+
return typeof version === 'number' ? version : typeof version === 'string' ? Number(version) : 1;
|
|
102
|
+
}
|
|
103
|
+
/** What a repository keeps of a workspace's Files: nothing yet, before its first deploy; a first-version file lifted. */
|
|
71
104
|
export function readState(repoPath, ws) {
|
|
72
105
|
const path = statePath(repoPath, ws);
|
|
73
106
|
if (!existsSync(path))
|
|
74
|
-
return
|
|
107
|
+
return NO_STATE;
|
|
75
108
|
try {
|
|
76
|
-
|
|
109
|
+
const bytes = readFileSync(path);
|
|
110
|
+
if (versionOf(new TextDecoder().decode(bytes)) >= 2)
|
|
111
|
+
return decodeState(bytes);
|
|
112
|
+
const v1 = decodeStateV1(bytes);
|
|
113
|
+
return {
|
|
114
|
+
version: LOCAL_FILES_VERSION,
|
|
115
|
+
manifest: v1.manifest.type === 'some' ? some(liftFilesManifestV1(v1.manifest.value)) : none,
|
|
116
|
+
bindings: v1.bindings,
|
|
117
|
+
ledgers: new Map([...v1.ledgers].map(([input, ledger]) => [input, liftFilesLedgerV1(ledger)])),
|
|
118
|
+
lastSync: v1.lastSync.type === 'some' ? some(liftFilesSyncReportV1(v1.lastSync.value)) : none,
|
|
119
|
+
};
|
|
77
120
|
}
|
|
78
121
|
catch (err) {
|
|
79
122
|
throw new Error(`${path} cannot be read (${err instanceof Error ? err.message : String(err)}): remove it, then deploy the declarations and bind the sources again`);
|
|
@@ -84,20 +127,20 @@ export function writeState(repoPath, ws, state) {
|
|
|
84
127
|
const path = statePath(repoPath, ws);
|
|
85
128
|
mkdirSync(dirname(path), { recursive: true });
|
|
86
129
|
const partial = `${path}.${process.pid}.partial`;
|
|
87
|
-
writeFileSync(partial, encodeState(state));
|
|
130
|
+
writeFileSync(partial, encodeState({ ...state, version: LOCAL_FILES_VERSION }));
|
|
88
131
|
renameSync(partial, path);
|
|
89
132
|
}
|
|
90
|
-
/** The ledger over the repository's file: each write keeps what
|
|
133
|
+
/** The ledger over the repository's file: each write keeps what a target took the moment it is written. */
|
|
91
134
|
export function stateLedger(repoPath, ws) {
|
|
92
135
|
return {
|
|
93
|
-
read(
|
|
94
|
-
const ledger = readState(repoPath, ws).ledgers.get(
|
|
136
|
+
read(key) {
|
|
137
|
+
const ledger = readState(repoPath, ws).ledgers.get(key);
|
|
95
138
|
return Promise.resolve(ledger === undefined ? NO_LEDGER : ledgerStateOf(ledger));
|
|
96
139
|
},
|
|
97
|
-
write(
|
|
140
|
+
write(key, taken) {
|
|
98
141
|
const state = readState(repoPath, ws);
|
|
99
142
|
const ledgers = new Map(state.ledgers);
|
|
100
|
-
ledgers.set(
|
|
143
|
+
ledgers.set(key, ledgerValueOf(taken));
|
|
101
144
|
writeState(repoPath, ws, { ...state, ledgers });
|
|
102
145
|
return Promise.resolve();
|
|
103
146
|
},
|
|
@@ -111,12 +154,15 @@ export function stateLedger(repoPath, ws) {
|
|
|
111
154
|
function naming(reader, binding) {
|
|
112
155
|
const where = `source ${binding.source} (${binding.url}${binding.profile.type === 'some' ? `, profile ${binding.profile.value}` : ''})`;
|
|
113
156
|
const fail = (err) => {
|
|
157
|
+
// A file's own refusal is the sync's to report and go on past: named as it is
|
|
158
|
+
if (err instanceof FilesUnreadableError)
|
|
159
|
+
throw err;
|
|
114
160
|
throw new Error(`${where}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
115
161
|
};
|
|
116
162
|
return {
|
|
117
|
-
async *list(prefix) {
|
|
163
|
+
async *list(prefix, options) {
|
|
118
164
|
try {
|
|
119
|
-
for await (const object of reader.list(prefix))
|
|
165
|
+
for await (const object of reader.list(prefix, options))
|
|
120
166
|
yield object;
|
|
121
167
|
}
|
|
122
168
|
catch (err) {
|
|
@@ -124,7 +170,9 @@ function naming(reader, binding) {
|
|
|
124
170
|
}
|
|
125
171
|
},
|
|
126
172
|
stat: (key) => reader.stat(key).catch(fail),
|
|
127
|
-
read: (
|
|
173
|
+
read: (object) => reader.read(object).catch(fail),
|
|
174
|
+
readRange: (object, start, end) => reader.readRange(object, start, end).catch(fail),
|
|
175
|
+
open: (object, options) => reader.open(object, options).catch(fail),
|
|
128
176
|
};
|
|
129
177
|
}
|
|
130
178
|
/**
|
|
@@ -150,47 +198,54 @@ export function s3Readers() {
|
|
|
150
198
|
return naming(s3FilesReader(client, location), binding);
|
|
151
199
|
};
|
|
152
200
|
}
|
|
153
|
-
/** The package a workspace runs, and its inputs. */
|
|
154
|
-
async function
|
|
201
|
+
/** The package a workspace runs, and its inputs, records and mutations. */
|
|
202
|
+
async function packageSurface(storage, repoPath, ws) {
|
|
155
203
|
const pkg = await workspaceGetPackage(storage, repoPath, ws);
|
|
156
|
-
const
|
|
157
|
-
return { pkg: { name: pkg.name, version: pkg.version },
|
|
204
|
+
const surface = await readPackageSurface((hash) => storage.objects.read(repoPath, hash), pkg.hash);
|
|
205
|
+
return { pkg: { name: pkg.name, version: pkg.version }, surface };
|
|
206
|
+
}
|
|
207
|
+
/** Each mapping, by its target's text. */
|
|
208
|
+
function byTarget(manifest) {
|
|
209
|
+
return new Map((manifest?.mappings ?? []).map((m) => [filesTargetText(m.target), m]));
|
|
158
210
|
}
|
|
159
211
|
/**
|
|
160
212
|
* Deploys declarations to a workspace, checked against the package it runs.
|
|
161
|
-
*
|
|
213
|
+
* A target whose declaration changed is taken again whole by the next sync.
|
|
162
214
|
*
|
|
163
215
|
* @param repoPath - The repository ({@link openLocalRepository})
|
|
164
216
|
* @param ws - The workspace
|
|
165
217
|
* @param manifest - The declarations
|
|
166
218
|
* @param options - `dryRun`: check them, and keep nothing
|
|
167
|
-
* @returns The package, every problem, and the
|
|
219
|
+
* @returns The package, every problem, and the targets taken again
|
|
168
220
|
*/
|
|
169
221
|
export async function deployLocal(repoPath, ws, manifest, options = {}) {
|
|
170
222
|
const storage = new LocalStorage();
|
|
171
|
-
const { pkg,
|
|
172
|
-
const problems = checkFiles(manifest,
|
|
223
|
+
const { pkg, surface } = await packageSurface(storage, repoPath, ws);
|
|
224
|
+
const problems = checkFiles(manifest, surface);
|
|
173
225
|
const state = readState(repoPath, ws);
|
|
174
|
-
const
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
226
|
+
const before = state.manifest.type === 'some' ? state.manifest.value : null;
|
|
227
|
+
const now = byTarget(manifest);
|
|
228
|
+
// A target declared before whose declaration changed or went is forgotten
|
|
229
|
+
const changed = (before?.mappings ?? []).filter((was) => {
|
|
230
|
+
const declared = now.get(filesTargetText(was.target));
|
|
231
|
+
return declared === undefined || !sameMapping(was, declared);
|
|
179
232
|
});
|
|
233
|
+
const forget = changed.map((m) => ledgerKeyOf(m.target));
|
|
234
|
+
const retaken = changed.filter((m) => now.has(filesTargetText(m.target))).map((m) => m.target);
|
|
180
235
|
if (problems.length === 0 && options.dryRun !== true) {
|
|
181
|
-
const ledgers = new Map([...state.ledgers].filter(([
|
|
236
|
+
const ledgers = new Map([...state.ledgers].filter(([key]) => !forget.includes(key)));
|
|
182
237
|
writeState(repoPath, ws, { ...state, manifest: some(manifest), ledgers });
|
|
183
238
|
}
|
|
184
|
-
return { package: pkg, problems, retaken
|
|
239
|
+
return { package: pkg, problems, retaken };
|
|
185
240
|
}
|
|
186
241
|
/**
|
|
187
242
|
* Binds a source to where its files are, for a workspace. A binding moved to
|
|
188
|
-
* another URL has its
|
|
243
|
+
* another URL has its targets taken again whole by the next sync.
|
|
189
244
|
*
|
|
190
245
|
* @param repoPath - The repository
|
|
191
246
|
* @param ws - The workspace
|
|
192
247
|
* @param binding - The binding
|
|
193
|
-
* @returns Every problem, and the
|
|
248
|
+
* @returns Every problem, and the targets taken again
|
|
194
249
|
* @throws {Error} When the workspace has no declarations deployed
|
|
195
250
|
*/
|
|
196
251
|
export function bindLocal(repoPath, ws, binding) {
|
|
@@ -202,21 +257,31 @@ export function bindLocal(repoPath, ws, binding) {
|
|
|
202
257
|
return { problems, retaken: [] };
|
|
203
258
|
const previous = state.bindings.find((b) => b.source === binding.source);
|
|
204
259
|
const retaken = previous !== undefined && previous.url !== binding.url
|
|
205
|
-
? state.manifest.value.mappings.filter((m) => m.source === binding.source && state.ledgers.has(m.
|
|
260
|
+
? state.manifest.value.mappings.filter((m) => m.source === binding.source && state.ledgers.has(ledgerKeyOf(m.target))).map((m) => m.target)
|
|
206
261
|
: [];
|
|
207
|
-
const
|
|
262
|
+
const forget = retaken.map(ledgerKeyOf);
|
|
263
|
+
const ledgers = new Map([...state.ledgers].filter(([key]) => !forget.includes(key)));
|
|
208
264
|
const bindings = previous === undefined ? [...state.bindings, binding] : state.bindings.map((b) => (b.source === binding.source ? binding : b));
|
|
209
265
|
writeState(repoPath, ws, { ...state, bindings, ledgers });
|
|
210
266
|
return { problems: [], retaken };
|
|
211
267
|
}
|
|
268
|
+
/** Who a local sync's commits record as their actor. */
|
|
269
|
+
function actor() {
|
|
270
|
+
try {
|
|
271
|
+
return `cli:${userInfo().username}`;
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
return 'cli';
|
|
275
|
+
}
|
|
276
|
+
}
|
|
212
277
|
/**
|
|
213
|
-
* Syncs a workspace's
|
|
278
|
+
* Syncs a workspace's targets with their sources' files. The declarations are
|
|
214
279
|
* checked again first, against the package the workspace runs now.
|
|
215
280
|
*
|
|
216
281
|
* @param repoPath - The repository
|
|
217
282
|
* @param ws - The workspace
|
|
218
|
-
* @param options - Which
|
|
219
|
-
* @returns What it did, per
|
|
283
|
+
* @param options - Which targets, whether a dry run, the reader and the runner
|
|
284
|
+
* @returns What it did, per target
|
|
220
285
|
* @throws {FilesSyncError} When the declarations no longer fit the package, or
|
|
221
286
|
* a source is not bound, before anything is read
|
|
222
287
|
* @throws {Error} When the workspace has no declarations deployed
|
|
@@ -227,32 +292,102 @@ export async function syncLocal(repoPath, ws, options = {}) {
|
|
|
227
292
|
if (state.manifest.type === 'none')
|
|
228
293
|
throw new Error(`${ws} has no Files declarations: deploy them first (e3-cloud files deploy)`);
|
|
229
294
|
const manifest = state.manifest.value;
|
|
230
|
-
const {
|
|
231
|
-
const problems = checkFiles(manifest,
|
|
295
|
+
const { surface } = await packageSurface(storage, repoPath, ws);
|
|
296
|
+
const problems = checkFiles(manifest, surface);
|
|
232
297
|
if (problems.length > 0)
|
|
233
298
|
throw new FilesSyncError(problems);
|
|
234
299
|
const report = await syncFiles({
|
|
235
300
|
manifest,
|
|
236
301
|
bindings: state.bindings,
|
|
237
302
|
reader: options.reader ?? s3Readers(),
|
|
238
|
-
writer: storageWriter(storage, repoPath, ws),
|
|
303
|
+
writer: storageWriter(storage, repoPath, ws, { runner: options.runner ?? new LocalTaskRunner(repoPath), scratchDir: scratchDir(repoPath), actor: actor() }),
|
|
239
304
|
ledger: stateLedger(repoPath, ws),
|
|
240
305
|
dryRun: options.dryRun,
|
|
241
|
-
|
|
306
|
+
...(options.targets !== undefined && { targets: options.targets }),
|
|
307
|
+
...(options.reset !== undefined && { reset: options.reset }),
|
|
242
308
|
});
|
|
243
309
|
if (options.dryRun !== true)
|
|
244
310
|
writeState(repoPath, ws, { ...readState(repoPath, ws), lastSync: some(report) });
|
|
245
311
|
return report;
|
|
246
312
|
}
|
|
247
313
|
/**
|
|
248
|
-
* A workspace's Files: its declarations, its bindings
|
|
314
|
+
* A workspace's Files: its declarations, its bindings, its last sync, and
|
|
315
|
+
* what each mapping holds (a pending record among them).
|
|
249
316
|
*
|
|
250
317
|
* @param repoPath - The repository
|
|
251
318
|
* @param ws - The workspace
|
|
252
319
|
* @returns Its status
|
|
253
320
|
*/
|
|
254
|
-
export function statusLocal(repoPath, ws) {
|
|
255
|
-
const { manifest, bindings, lastSync } = readState(repoPath, ws);
|
|
256
|
-
|
|
321
|
+
export async function statusLocal(repoPath, ws) {
|
|
322
|
+
const { manifest, bindings, lastSync, ledgers } = readState(repoPath, ws);
|
|
323
|
+
const storage = new LocalStorage();
|
|
324
|
+
const mappings = [];
|
|
325
|
+
for (const mapping of manifest.type === 'some' ? manifest.value.mappings : []) {
|
|
326
|
+
const { target, shape } = mapping;
|
|
327
|
+
const ledger = ledgers.get(ledgerKeyOf(target));
|
|
328
|
+
const one = shape.type === 'file' || shape.type === 'latest';
|
|
329
|
+
const held = one && ledger !== undefined ? [...ledger.entries].at(0) : undefined;
|
|
330
|
+
const pending = target.type === 'record'
|
|
331
|
+
? (await workspaceGetDatasetHash(storage, repoPath, ws, [variant('field', 'records'), variant('field', target.value)])).hash === null
|
|
332
|
+
: false;
|
|
333
|
+
mappings.push({
|
|
334
|
+
target,
|
|
335
|
+
holds: held === undefined ? none : some({ key: held[0], size: held[1].size, modified: held[1].modified, sha256: held[1].sha256, commit: ledger?.commit ?? none }),
|
|
336
|
+
pending,
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
return { manifest, bindings, lastSync, mappings };
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Plans a push on a local repository: the same plan a deployed workspace's
|
|
343
|
+
* route makes, over the repository's declarations, bindings and ledgers,
|
|
344
|
+
* a `latest` prefix listed and a key read through the developer's own
|
|
345
|
+
* credentials; every put is the client's own (`external`).
|
|
346
|
+
*
|
|
347
|
+
* @param repoPath - The repository
|
|
348
|
+
* @param ws - The workspace
|
|
349
|
+
* @param files - The files offered
|
|
350
|
+
* @param options - The target named, and the reader
|
|
351
|
+
* @returns The plan, as the route answers one
|
|
352
|
+
* @throws {Error} When the workspace has no declarations deployed
|
|
353
|
+
*/
|
|
354
|
+
export async function planLocal(repoPath, ws, files, options = {}) {
|
|
355
|
+
const state = readState(repoPath, ws);
|
|
356
|
+
if (state.manifest.type === 'none')
|
|
357
|
+
throw new Error(`${ws} has no Files declarations: deploy them first (e3-cloud files deploy)`);
|
|
358
|
+
const readerOf = options.reader ?? s3Readers();
|
|
359
|
+
const planned = await planPush({
|
|
360
|
+
manifest: state.manifest.value,
|
|
361
|
+
bindings: state.bindings,
|
|
362
|
+
files: files.map((f) => f.offered),
|
|
363
|
+
as: options.as ?? null,
|
|
364
|
+
ledger: (target) => stateLedger(repoPath, ws).read(ledgerKeyOf(target)),
|
|
365
|
+
listGreatest: async (binding, prefix, include) => {
|
|
366
|
+
const matches = globMatcher(include);
|
|
367
|
+
let greatest = null;
|
|
368
|
+
for await (const object of readerOf(binding).list(prefix)) {
|
|
369
|
+
const path = object.key.slice(prefix.length);
|
|
370
|
+
if (path === '' || object.key.endsWith('/') || !matches(path))
|
|
371
|
+
continue;
|
|
372
|
+
if (greatest === null || object.key > greatest.key)
|
|
373
|
+
greatest = object;
|
|
374
|
+
}
|
|
375
|
+
return greatest;
|
|
376
|
+
},
|
|
377
|
+
stat: (binding, key) => readerOf(binding).stat(key),
|
|
378
|
+
});
|
|
379
|
+
const bindings = [];
|
|
380
|
+
return {
|
|
381
|
+
bindings,
|
|
382
|
+
files: planned.map(({ file, outcome }) => {
|
|
383
|
+
if (outcome.kind === 'refused')
|
|
384
|
+
return { name: file.name, directory: file.directory, outcome: variant('refused', outcome.refusal) };
|
|
385
|
+
if (outcome.kind === 'unchanged')
|
|
386
|
+
return { name: file.name, directory: file.directory, outcome: variant('unchanged', { target: outcome.target, source: outcome.source, key: outcome.key }) };
|
|
387
|
+
if (!bindings.some((b) => b.source === outcome.binding.source))
|
|
388
|
+
bindings.push(outcome.binding);
|
|
389
|
+
return { name: file.name, directory: file.directory, outcome: variant('put', { target: outcome.target, source: outcome.source, key: outcome.key, upload: variant('external', null) }) };
|
|
390
|
+
}),
|
|
391
|
+
};
|
|
257
392
|
}
|
|
258
393
|
//# sourceMappingURL=files-local.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files-local.js","sourceRoot":"","sources":["../../src/files-local.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"files-local.js","sourceRoot":"","sources":["../../src/files-local.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { S3Client } from '@aws-sdk/client-s3';
|
|
6
|
+
import { type EastTypeValue } from '@elaraai/east';
|
|
7
|
+
import { type FilesBinding, type FilesPushFile, type FilesPushPlan, type FilesSyncReport, type FilesTarget } from '@elaraai/e3-cloud-types';
|
|
8
|
+
/** A file on disk offered to a push: where it is, and what the plan is told of it. */
|
|
9
|
+
export interface OfferedFile {
|
|
10
|
+
/** Its path on disk */
|
|
11
|
+
readonly path: string;
|
|
12
|
+
readonly offered: FilesPushFile;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The root type a file's beast2 header declares, through reads of its head
|
|
16
|
+
* (the sync's own probe: 64 KiB, then wider only for a wide type section);
|
|
17
|
+
* null for a file that is no beast2.
|
|
18
|
+
*
|
|
19
|
+
* @param path - The file
|
|
20
|
+
* @param size - Its size
|
|
21
|
+
* @returns Its root type, or null
|
|
22
|
+
*/
|
|
23
|
+
export declare function fileBeast2Type(path: string, size: number): Promise<EastTypeValue | null>;
|
|
24
|
+
/**
|
|
25
|
+
* The files a push offers, from the paths given: each file by its own name,
|
|
26
|
+
* each directory's files by their relative paths, with the directory's name.
|
|
27
|
+
*
|
|
28
|
+
* @param paths - Files and directories
|
|
29
|
+
* @returns Each file, with what the plan is told of it
|
|
30
|
+
* @throws {Error} When a path is neither a file nor a directory
|
|
31
|
+
*/
|
|
32
|
+
export declare function offeredFiles(paths: readonly string[]): Promise<OfferedFile[]>;
|
|
33
|
+
/**
|
|
34
|
+
* A client of the developer's own credentials for a bucket: the profile
|
|
35
|
+
* given, the binding's, or the ambient chain.
|
|
36
|
+
*
|
|
37
|
+
* @param binding - The binding
|
|
38
|
+
* @param profile - The profile given, over the binding's
|
|
39
|
+
* @returns The client
|
|
40
|
+
*/
|
|
41
|
+
export declare function ownClient(binding: FilesBinding, profile: string | undefined): S3Client;
|
|
42
|
+
/**
|
|
43
|
+
* A put with the developer's own credentials: one PUT up to the part size,
|
|
44
|
+
* else a multipart upload in parts, the file read by range.
|
|
45
|
+
*
|
|
46
|
+
* @param client - The client
|
|
47
|
+
* @param bucket - The bucket
|
|
48
|
+
* @param key - The object's key
|
|
49
|
+
* @param path - The file
|
|
50
|
+
* @param size - Its size
|
|
51
|
+
*/
|
|
52
|
+
export declare function putExternal(client: S3Client, bucket: string, key: string, path: string, size: number): Promise<void>;
|
|
53
|
+
/** What a push did with one file, as its row says. */
|
|
54
|
+
export interface PushRow {
|
|
55
|
+
readonly file: OfferedFile;
|
|
56
|
+
/** The target it went to, and its kind, when it matched */
|
|
57
|
+
readonly target: FilesTarget | null;
|
|
58
|
+
readonly kind: string;
|
|
59
|
+
/** `put`, `unchanged`, `refused: …` or `failed: …` */
|
|
60
|
+
readonly put: string;
|
|
61
|
+
/** What the sync did, once it ran */
|
|
62
|
+
sync: string;
|
|
63
|
+
}
|
|
64
|
+
/** How a put is uploaded, given the plan and, for an external put, the developer's credentials. */
|
|
65
|
+
export interface PushUploads {
|
|
66
|
+
/** Completes a multipart upload the plan created */
|
|
67
|
+
readonly complete: (key: string, uploadId: string, parts: readonly {
|
|
68
|
+
number: bigint;
|
|
69
|
+
etag: string;
|
|
70
|
+
}[]) => Promise<void>;
|
|
71
|
+
/** The profile an external put uses, over the binding's */
|
|
72
|
+
readonly profile?: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Uploads each planned put, four parts in flight, and answers a row per
|
|
76
|
+
* file: put, unchanged, refused or failed.
|
|
77
|
+
*
|
|
78
|
+
* @param plan - The plan
|
|
79
|
+
* @param files - The files offered, in the plan's order
|
|
80
|
+
* @param uploads - The completion, and the profile for external puts
|
|
81
|
+
* @param dryRun - Put nothing
|
|
82
|
+
* @returns A row per file, and the targets put
|
|
83
|
+
*/
|
|
84
|
+
export declare function uploadPlanned(plan: FilesPushPlan, files: readonly OfferedFile[], uploads: PushUploads, dryRun: boolean): Promise<{
|
|
85
|
+
rows: PushRow[];
|
|
86
|
+
targets: FilesTarget[];
|
|
87
|
+
}>;
|
|
88
|
+
/** What a sync did to a row's target, in words. */
|
|
89
|
+
export declare function syncWords(report: FilesSyncReport | null, target: FilesTarget): string;
|
|
90
|
+
/**
|
|
91
|
+
* A push's rows, as the CLI prints them: the sources' bucket lines, a row
|
|
92
|
+
* per file, and the dataflow hint when anything was taken.
|
|
93
|
+
*
|
|
94
|
+
* @param plan - The plan
|
|
95
|
+
* @param rows - The rows
|
|
96
|
+
* @param next - The dataflow run hint's command, when anything changed; null for none
|
|
97
|
+
* @returns The lines
|
|
98
|
+
*/
|
|
99
|
+
export declare function pushText(plan: FilesPushPlan, rows: readonly PushRow[], next: string | null): string;
|
|
100
|
+
//# sourceMappingURL=files-push.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files-push.d.ts","sourceRoot":"","sources":["../../src/files-push.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH,OAAO,EACwG,QAAQ,EACtH,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAEL,KAAK,YAAY,EAA2B,KAAK,aAAa,EAAE,KAAK,aAAa,EAAwB,KAAK,eAAe,EAAE,KAAK,WAAW,EACjJ,MAAM,yBAAyB,CAAC;AAOjC,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkB9F;AAwBD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBnF;AA8CD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAItF;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD1H;AAED,sDAAsD;AACtD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mGAAmG;AACnG,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxH,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAWD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CA+BnL;AA8BD,mDAAmD;AACnD,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAUrF;AAeD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAenG"}
|