@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/README.md
CHANGED
|
@@ -446,24 +446,37 @@ e3-cloud files deploy ./repo dev src/files.ts
|
|
|
446
446
|
# to read with and --latest keeps only each folder's n greatest keys
|
|
447
447
|
e3-cloud files bind ./repo dev upload s3://partner-drop/orders/ --profile partner --latest 30
|
|
448
448
|
|
|
449
|
-
# Bring in what changed: only files whose ETag or size changed are read, only
|
|
450
|
-
# files changed are written; --dry-run lists what it would take, --
|
|
449
|
+
# Bring in what changed: only files whose ETag or size changed are read, only targets whose
|
|
450
|
+
# files changed are written; --dry-run lists what it would take, --target syncs only those
|
|
451
|
+
# (an input's name, record:<name>, mutation:<record>.<name> split at its last dot), --reset seeds a record again
|
|
451
452
|
e3-cloud files sync ./repo dev
|
|
452
|
-
e3-cloud files sync ./repo dev --
|
|
453
|
-
|
|
454
|
-
|
|
453
|
+
e3-cloud files sync ./repo dev --target orders --dry-run
|
|
454
|
+
e3-cloud files sync ./repo dev --target mutation:price_book.load_prices
|
|
455
|
+
|
|
456
|
+
# Put files from disk into a source and take them in: each file matched to the mapping that
|
|
457
|
+
# takes it (a file by its name, the newest of a folder under its prefix, a directory to a
|
|
458
|
+
# folder mapping; --as names one), checked against its type and limit, put with your e3 login
|
|
459
|
+
# alone where the source is the deployment's own bucket (--profile elsewhere), then synced
|
|
460
|
+
e3-cloud files push https://e3.example.com/repos/acme dev ./data/prices.beast2 ./data/orders/
|
|
461
|
+
e3-cloud files push ./repo dev ./data/prices.beast2 --as prices --dry-run
|
|
462
|
+
|
|
463
|
+
# Each mapping, its type, the file it holds and the commit it made (or pending), where each
|
|
464
|
+
# source is bound, and the last sync
|
|
455
465
|
e3-cloud files status ./repo dev
|
|
456
466
|
|
|
457
467
|
# A sync doesn't run the dataflow
|
|
458
468
|
e3 dataflow run ./repo dev
|
|
459
469
|
```
|
|
460
470
|
|
|
461
|
-
A sync is safe to repeat and to stop: each
|
|
471
|
+
A sync is safe to repeat and to stop: each target is remembered once it is
|
|
462
472
|
written. A file over 1 GiB less 64 KiB (or 64 MiB less 64 KiB in a folder),
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
473
|
+
a typed file of another type or no beast2 (refused by its header), or one
|
|
474
|
+
the sync can't read (archived, changed while it read it), is refused and
|
|
475
|
+
named, and the sync exits 1; so does a push with a file refused or failed. A
|
|
476
|
+
changed declaration, a source bound elsewhere, or a package deploy that reset
|
|
477
|
+
an input has that input taken again whole. A local repository keeps all this
|
|
478
|
+
in `<repo>/.e3-cloud/files/<workspace>.json` (version 2; a file the earlier
|
|
479
|
+
release wrote is read and written again at it).
|
|
467
480
|
|
|
468
481
|
## License
|
|
469
482
|
|
package/dist/src/cli.js
CHANGED
|
@@ -421,7 +421,7 @@ app
|
|
|
421
421
|
// e3-cloud files <subcommand>
|
|
422
422
|
const files = program
|
|
423
423
|
.command('files')
|
|
424
|
-
.description('Files: inputs a solution fills from files in a bucket, declared in its code with @elaraai/e3-cloud-files and synced when asked');
|
|
424
|
+
.description('Files: inputs a solution fills from files in a bucket, and records seeded or fed from them, declared in its code with @elaraai/e3-cloud-files and synced when asked');
|
|
425
425
|
const filesRepo = ['<repo>', 'A local repository\'s path (e.g., ./repo), or a repository URL (e.g., https://server/repos/my-repo)'];
|
|
426
426
|
files
|
|
427
427
|
.command('deploy')
|
|
@@ -448,12 +448,24 @@ files
|
|
|
448
448
|
.description('Bring in what changed in each source\'s files: a local repository reads them with your own credentials, and they land only in it; a deployed one, the platform with its own read-only access')
|
|
449
449
|
.argument(...filesRepo)
|
|
450
450
|
.argument('<workspace>', 'Workspace name')
|
|
451
|
-
.option('--
|
|
451
|
+
.option('--target <target...>', 'Only these targets: an input\'s name, record:<name> or mutation:<record>.<name>')
|
|
452
|
+
.option('--reset <record...>', 'Take these records\' files as their state again ($seed), whatever has mutated them since their seed')
|
|
452
453
|
.option('--dry-run', 'List what a sync would take, and take nothing')
|
|
453
454
|
.action(filesCommand.sync);
|
|
455
|
+
files
|
|
456
|
+
.command('push')
|
|
457
|
+
.description('Put files from disk into a source and take them in: each file matched to the mapping that takes it by its name (or --as), put with no credentials of your own where the source is the deployment\'s own bucket, then one sync of what was put')
|
|
458
|
+
.argument(...filesRepo)
|
|
459
|
+
.argument('<workspace>', 'Workspace name')
|
|
460
|
+
.argument('<path...>', 'Files, or directories of files for a folder mapping')
|
|
461
|
+
.option('--as <target>', 'The target every file is for: an input\'s name, record:<name> or mutation:<record>.<name>')
|
|
462
|
+
.option('--reset <record...>', 'Take these records\' files as their state again ($seed), whatever has mutated them since their seed')
|
|
463
|
+
.option('--dry-run', 'Plan, and put nothing')
|
|
464
|
+
.option('--profile <profile>', 'The profile to put with, for a bucket the platform does not write (one of ~/.aws/config\'s)')
|
|
465
|
+
.action(filesCommand.push);
|
|
454
466
|
files
|
|
455
467
|
.command('status')
|
|
456
|
-
.description('Show a workspace\'s Files:
|
|
468
|
+
.description('Show a workspace\'s Files: each mapping, its type and what it holds (a pending record among them), where each source is bound, and the last sync')
|
|
457
469
|
.argument(...filesRepo)
|
|
458
470
|
.argument('<workspace>', 'Workspace name')
|
|
459
471
|
.action(filesCommand.status);
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,gFAAgF;AAChF,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAwB,CAAC;AAEhG,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,yBAAyB,CAAC;KACtC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,2BAA2B;AAC3B,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,6BAA6B;AAC7B,MAAM,IAAI,GAAG,OAAO;KACjB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0BAA0B,CAAC,CAAC;AAE3C,IAAI;KACD,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,sFAAsF,CAAC;KACnG,QAAQ,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAC5D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAE/B,IAAI;KACD,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,0FAA0F,CAAC;KACvG,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;KACrC,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;KACpD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAE/B,IAAI;KACD,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;KACrC,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;KACpD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAG9B,IAAI;KACD,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,uEAAuE,CAAC;KACpF,QAAQ,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAC5D,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAEnC,IAAI;KACD,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;KACrC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;KACpC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAEhC,IAAI;KACD,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wCAAwC,CAAC;KACrD,QAAQ,CAAC,OAAO,EAAE,qDAAqD,CAAC;KACxE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI;KACD,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,gGAAgG,CAAC;KAC7G,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;KACzC,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE,MAAM,CAAC;KAChD,MAAM,CAAC,iBAAiB,EAAE,yEAAyE,aAAa,eAAe,CAAC;KAChI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAE3B,IAAI;KACD,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;KACzC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAE9B,6BAA6B;AAC7B,MAAM,IAAI,GAAG,OAAO;KACjB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yEAAyE,CAAC,CAAC;AAE1F,IAAI;KACD,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2EAA2E,CAAC;KACxF,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI;KACD,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uCAAuC,CAAC;KACpD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACtC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI;KACD,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,iEAAiE,CAAC;KAC9E,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACtC,cAAc,CAAC,wCAAwC,EAAE,qFAAqF,EAAE,CAAC,KAAa,EAAE,WAAqB,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;KACjN,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAE3B,IAAI;KACD,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,sDAAsD,CAAC;KACnE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACtC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAE9B,iCAAiC;AACjC,MAAM,QAAQ,GAAG,OAAO;KACrB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,8BAA8B,CAAC,CAAC;AAE/C,QAAQ;KACL,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,uCAAuC,CAAC;KACpD,QAAQ,CAAC,OAAO,EAAE,oEAAoE,CAAC;KACvF,MAAM,CAAC,qBAAqB,EAAE,mDAAmD,CAAC;KAClF,MAAM,CAAC,uBAAuB,EAAE,0EAA0E,CAAC;KAC3G,MAAM,CAAC,yBAAyB,EAAE,0CAA0C,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;KAC5D,MAAM,CAAC,kBAAkB,EAAE,6CAA6C,EAAE,MAAM,CAAC;KACjF,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAE/B,QAAQ;KACL,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,mCAAmC,CAAC;KAChD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAE/B,QAAQ;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAElC,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,OAAO,EAAE,qDAAqD,CAAC;KACxE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAEhC,gCAAgC;AAChC,MAAM,OAAO,GAAG,OAAO;KACpB,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iCAAiC,CAAC,CAAC;AAElD,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,OAAO,EAAE,oEAAoE,CAAC;KACvF,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC/D,cAAc,CAAC,eAAe,EAAE,yDAAyD,CAAC;KAC1F,MAAM,CAAC,SAAS,EAAE,wCAAwC,CAAC;KAC3D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC/B,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAE/B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC/D,MAAM,CAAC,SAAS,EAAE,wCAAwC,CAAC;KAC3D,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEjC,gCAAgC;AAChC,MAAM,OAAO,GAAG,OAAO;KACpB,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAE7C,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,OAAO,EAAE,oEAAoE,CAAC;KACvF,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC/D,cAAc,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;KACrE,MAAM,CAAC,SAAS,EAAE,wCAAwC,CAAC;KAC3D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC/B,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAE/B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC/D,MAAM,CAAC,SAAS,EAAE,wCAAwC,CAAC;KAC3D,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEjC,iCAAiC;AACjC,MAAM,QAAQ,GAAG,OAAO;KACrB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,6BAA6B,CAAC,CAAC;AAE9C,QAAQ;KACL,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,mCAAmC,CAAC;KAChD,QAAQ,CAAC,OAAO,EAAE,oEAAoE,CAAC;KACvF,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;KACvE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAE/B,QAAQ;KACL,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,mCAAmC,CAAC;KAChD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;KACrD,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;KACpD,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAE/B,QAAQ;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sCAAsC,CAAC;KACnD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAElC,MAAM,OAAO,GAAG,OAAO;KACpB,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,+FAA+F,CAAC,CAAC;AAEhH,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,gFAAgF,CAAC;KAC7F,QAAQ,CAAC,OAAO,EAAE,+CAA+C,CAAC;KAClE,QAAQ,CAAC,QAAQ,EAAE,yDAAyD,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,6DAA6D,CAAC;KACxF,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4CAA4C,CAAC;KACzD,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAE/B,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,iBAAiB,CAAC;KAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KAC3C,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AAG7B,gCAAgC;AAChC,MAAM,OAAO,GAAG,OAAO;KACpB,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,2GAA2G,CAAC,CAAC;AAE5H,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+DAA+D,CAAC;KAC5E,QAAQ,CAAC,OAAO,EAAE,+CAA+C,CAAC;KAClE,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAE/B,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,+EAA+E,CAAC;KAC5F,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,MAAM,CAAC,aAAa,EAAE,iCAAiC,CAAC;KACxD,MAAM,CAAC,mBAAmB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mHAAmH,CAAC;KAChI,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,qDAAqD,CAAC;KACpF,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAE/B,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,2GAA2G,CAAC;KACxH,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,QAAQ,CAAC,UAAU,EAAE,mCAAmC,CAAC;KACzD,MAAM,CAAC,sBAAsB,EAAE,wDAAwD,CAAC;KACxF,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEnC,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2FAA2F,CAAC;KACxG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;KACtD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEjC,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,uCAAuC,CAAC;KACpD,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,4GAA4G,CAAC;KACzH,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,sBAAsB,EAAE,sDAAsD,CAAC;KACtF,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,2FAA2F,CAAC;KACxG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;KACnC,cAAc,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;KACzD,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,iBAAiB,CAAC;KAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;KACnC,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEnC,iCAAiC;AACjC,MAAM,QAAQ,GAAG,OAAO;KACrB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,0GAA0G,CAAC,CAAC;AAE3H,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8GAA8G,CAAC;KAC3H,QAAQ,CAAC,OAAO,EAAE,oEAAoE,CAAC;KACvF,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,CAAC;KACrD,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC;KAC3D,MAAM,CAAC,mBAAmB,EAAE,sDAAsD,CAAC;KACnF,MAAM,CAAC,QAAQ,EAAE,6BAA6B,CAAC;KAC/C,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAEhC,QAAQ;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6HAA6H,CAAC;KAC1I,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC;KAC5D,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;KACrE,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;KAC9D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAEhC,QAAQ;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC;KAC5D,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAEjC,QAAQ;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uCAAuC,CAAC;KACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC;KAC5D,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAElC,QAAQ;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sFAAsF,CAAC;KACnG,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAElC,QAAQ;KACL,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,uEAAuE,CAAC;KACpF,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;KAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAEnC,4BAA4B;AAC5B,MAAM,GAAG,GAAG,OAAO;KAChB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+FAA+F,CAAC,CAAC;AAEhH,GAAG;KACA,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qFAAqF,CAAC;KAClG,QAAQ,CAAC,UAAU,EAAE,8EAA8E,CAAC;KACpG,MAAM,CAAC,qBAAqB,EAAE,oDAAoD,CAAC;KACnF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAE5B,GAAG;KACA,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yJAAyJ,CAAC;KACtK,QAAQ,CAAC,OAAO,EAAE,qDAAqD,CAAC;KACxE,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,cAAc,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CAAC,2BAA2B,EAAE,yDAAyD,CAAC;KAC9F,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;KACzD,MAAM,CAAC,0BAA0B,EAAE,2FAA2F,CAAC;KAC/H,MAAM,CAAC,SAAS,EAAE,8GAA8G,CAAC;KACjI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAE7B,GAAG;KACA,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0FAA0F,CAAC;KACvG,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;KACpE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAE3B,GAAG;KACA,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,kGAAkG,CAAC;KAC/G,QAAQ,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAC5D,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAE9B,GAAG;KACA,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAE/B,GAAG;KACA,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,MAAM,CAAC,SAAS,EAAE,iHAAiH,CAAC;KACpI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAE7B,8BAA8B;AAC9B,MAAM,KAAK,GAAG,OAAO;KAClB,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gIAAgI,CAAC,CAAC;AAEjJ,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,qGAAqG,CAAU,CAAC;AAE7I,KAAK;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,8GAA8G,CAAC;KAC3H,QAAQ,CAAC,GAAG,SAAS,CAAC;KACtB,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,6FAA6F,CAAC;KACnH,MAAM,CAAC,WAAW,EAAE,4CAA4C,CAAC;KACjE,MAAM,CAAC,SAAS,EAAE,uJAAuJ,CAAC;KAC1K,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAE/B,KAAK;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kKAAkK,CAAC;KAC/K,QAAQ,CAAC,GAAG,SAAS,CAAC;KACtB,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC;KAC5D,QAAQ,CAAC,OAAO,EAAE,0CAA0C,CAAC;KAC7D,MAAM,CAAC,mBAAmB,EAAE,6EAA6E,CAAC;KAC1G,MAAM,CAAC,qBAAqB,EAAE,wFAAwF,CAAC;KACvH,MAAM,CAAC,cAAc,EAAE,uEAAuE,CAAC;KAC/F,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAE7B,KAAK;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8LAA8L,CAAC;KAC3M,QAAQ,CAAC,GAAG,SAAS,CAAC;KACtB,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KAChD,MAAM,CAAC,WAAW,EAAE,+CAA+C,CAAC;KACpE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAE7B,KAAK;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4FAA4F,CAAC;KACzG,QAAQ,CAAC,GAAG,SAAS,CAAC;KACtB,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAE/B,gCAAgC;AAChC,MAAM,OAAO,GAAG,OAAO;KACpB,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,oJAAoJ,CAAC,CAAC;AAErK,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,yGAAyG,CAAC;KACtH,QAAQ,CAAC,OAAO,EAAE,qDAAqD,CAAC;KACxE,QAAQ,CAAC,QAAQ,EAAE,iDAAiD,CAAC;KACrE,QAAQ,CAAC,QAAQ,EAAE,qCAAqC,CAAC;KACzD,MAAM,CAAC,SAAS,EAAE,6FAA6F,CAAC;KAChH,MAAM,CAAC,WAAW,EAAE,kEAAkE,CAAC;KACvF,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;KACrD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8EAA8E,CAAC;KAC3F,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,QAAQ,EAAE,mCAAmC,CAAC;KACvD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAE/B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gEAAgE,CAAC;KAC7E,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAE/B,wCAAwC;AACxC,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,qQAAqQ,CAAC;KAClR,QAAQ,CAAC,OAAO,EAAE,qDAAqD,CAAC;KACxE,QAAQ,CAAC,QAAQ,EAAE,wCAAwC,CAAC;KAC5D,QAAQ,CAAC,MAAM,EAAE,8CAA8C,CAAC;KAChE,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,oIAAoI,CAAC;KACjK,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;KACrE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,8IAA8I,CAAC;KAC3J,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,QAAQ,CAAC,cAAc,EAAE,0GAA0G,CAAC;KACpI,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;KACrD,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEnC,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iNAAiN,CAAC;KAC9N,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,aAAa,EAAE,4CAA4C,CAAC;KACnE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
-
import { type FilesBinding, type FilesShape, type FilesStatus, type FilesSyncReport } from '@elaraai/e3-cloud-types';
|
|
5
|
+
import { type FilesBinding, type FilesShape, type FilesStatus, type FilesSyncReport, type FilesTarget } from '@elaraai/e3-cloud-types';
|
|
6
6
|
/** A count of bytes, as people read it. */
|
|
7
7
|
export declare function bytesWords(bytes: bigint): string;
|
|
8
8
|
/** What a shape selects, as `status` lists it. */
|
|
9
9
|
export declare function shapeWords(shape: FilesShape): string;
|
|
10
|
+
/** The type a mapping fills its target with, as `status` lists it: the type it names, `Blob`, or a folder's or listing's. */
|
|
11
|
+
export declare function typeWords(shape: FilesShape): string;
|
|
12
|
+
/** A mapping's target, as `status` names it: `orders`, `customers (record)`, `prices.load_prices (mutation)`. */
|
|
13
|
+
export declare function targetWords(target: FilesTarget): string;
|
|
10
14
|
/** A binding, as people read it. */
|
|
11
15
|
export declare function bindingWords(binding: FilesBinding): string;
|
|
12
16
|
/**
|
|
13
|
-
* A sync's report, as the CLI prints it: a line per
|
|
17
|
+
* A sync's report, as the CLI prints it: a line per mapping, then every file
|
|
14
18
|
* it did not take.
|
|
15
19
|
*
|
|
16
20
|
* @param report - The report
|
|
@@ -18,12 +22,20 @@ export declare function bindingWords(binding: FilesBinding): string;
|
|
|
18
22
|
*/
|
|
19
23
|
export declare function syncReportText(report: FilesSyncReport): string;
|
|
20
24
|
/**
|
|
21
|
-
* A workspace's Files, as `status` prints them
|
|
25
|
+
* A workspace's Files, as `status` prints them: a table of each mapping, its
|
|
26
|
+
* shape, its type, what it holds and the commit it made (or `pending`), then
|
|
27
|
+
* the sources and the last sync.
|
|
22
28
|
*
|
|
23
29
|
* @param status - The status
|
|
24
30
|
* @returns Its lines
|
|
25
31
|
*/
|
|
26
32
|
export declare function statusText(status: FilesStatus): string;
|
|
33
|
+
/** What `sync` is asked, from its options. */
|
|
34
|
+
interface SyncOptions {
|
|
35
|
+
target?: string[];
|
|
36
|
+
reset?: string[];
|
|
37
|
+
dryRun?: boolean;
|
|
38
|
+
}
|
|
27
39
|
export declare const filesCommand: {
|
|
28
40
|
/** e3-cloud files deploy <repo> <workspace> <source> [--dry-run] [--force] */
|
|
29
41
|
deploy(repo: string, workspace: string, source: string, options: {
|
|
@@ -36,12 +48,17 @@ export declare const filesCommand: {
|
|
|
36
48
|
profile?: string;
|
|
37
49
|
latest?: string;
|
|
38
50
|
}): Promise<void>;
|
|
39
|
-
/** e3-cloud files sync <repo> <workspace> [--
|
|
40
|
-
sync(repo: string, workspace: string, options:
|
|
41
|
-
|
|
51
|
+
/** e3-cloud files sync <repo> <workspace> [--target <target...>] [--reset <record...>] [--dry-run] */
|
|
52
|
+
sync(repo: string, workspace: string, options: SyncOptions): Promise<void>;
|
|
53
|
+
/** e3-cloud files push <repo> <workspace> <path...> [--as <target>] [--reset <record...>] [--dry-run] [--profile <p>] */
|
|
54
|
+
push(repo: string, workspace: string, paths: string[], options: {
|
|
55
|
+
as?: string;
|
|
56
|
+
reset?: string[];
|
|
42
57
|
dryRun?: boolean;
|
|
58
|
+
profile?: string;
|
|
43
59
|
}): Promise<void>;
|
|
44
60
|
/** e3-cloud files status <repo> <workspace> */
|
|
45
61
|
status(repo: string, workspace: string): Promise<void>;
|
|
46
62
|
};
|
|
63
|
+
export {};
|
|
47
64
|
//# sourceMappingURL=files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/commands/files.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/commands/files.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH,OAAO,EAEL,KAAK,YAAY,EAAkF,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAC7K,MAAM,yBAAyB,CAAC;AA+BjC,2CAA2C;AAC3C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWhD;AAOD,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIpD;AAED,6HAA6H;AAC7H,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAUnD;AAOD,iHAAiH;AACjH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAMvD;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAO1D;AAuBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAO9D;AAcD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA+BtD;AAqFD,8CAA8C;AAC9C,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAsCD,eAAO,MAAM,YAAY;IACvB,8EAA8E;iBAC3D,MAAM,aAAa,MAAM,UAAU,MAAM,WAAW;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB5H,0GAA0G;eACzF,MAAM,aAAa,MAAM,UAAU,MAAM,OAAO,MAAM,WAAW;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxJ,sGAAsG;eACrF,MAAM,aAAa,MAAM,WAAW,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhF,yHAAyH;eACxG,MAAM,aAAa,MAAM,SAAS,MAAM,EAAE,WAAW;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD3J,+CAA+C;iBAC5B,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU7D,CAAC"}
|
|
@@ -3,17 +3,19 @@
|
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Files commands — deploy, bind, sync, status.
|
|
6
|
+
* Files commands — deploy, bind, sync, push, status.
|
|
7
7
|
*
|
|
8
8
|
* A solution declares in its code which of its inputs come from files in a
|
|
9
|
-
* bucket
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* and the
|
|
9
|
+
* bucket, and which records are seeded or fed from them
|
|
10
|
+
* (`@elaraai/e3-cloud-files`). `deploy` checks the declarations against the
|
|
11
|
+
* package a workspace runs and keeps them; `bind` says where a source's
|
|
12
|
+
* files are for that workspace; `sync` brings in what changed; `push` puts
|
|
13
|
+
* files from disk into a source and syncs their targets; `status` shows all
|
|
14
|
+
* of it and what each mapping holds. Every command takes a local
|
|
15
|
+
* repository's path or a repository's URL: a path syncs on this machine with
|
|
16
|
+
* your own cloud credentials, and the files land only in that repository; a
|
|
17
|
+
* URL asks the platform, which reads each binding with its own read-only
|
|
18
|
+
* role, in rounds, and the CLI follows the sync to its end.
|
|
17
19
|
*
|
|
18
20
|
* A deployed workspace with a staging is protected: its declarations come by
|
|
19
21
|
* a release from its staging (`e3-cloud release`), with its package and
|
|
@@ -22,8 +24,8 @@
|
|
|
22
24
|
* declarations reading them.
|
|
23
25
|
*/
|
|
24
26
|
import { none, some } from '@elaraai/east';
|
|
25
|
-
import { filesProblemText, } from '@elaraai/e3-cloud-types';
|
|
26
|
-
import { bindFilesSource, deployFiles, filesSyncWait, getFiles, startFilesSync } from '@elaraai/e3-cloud-client';
|
|
27
|
+
import { filesProblemText, filesRefusalText, filesTargetText, filesTypeWords, parseFilesTarget, } from '@elaraai/e3-cloud-types';
|
|
28
|
+
import { bindFilesSource, completeFilesPush, deployFiles, filesSyncWait, getFiles, planFilesPush, startFilesSync } from '@elaraai/e3-cloud-client';
|
|
27
29
|
import { getValidToken } from '../credentials.js';
|
|
28
30
|
import { exitError, formatError, parseRepoUrl } from '../utils.js';
|
|
29
31
|
/**
|
|
@@ -33,6 +35,7 @@ import { exitError, formatError, parseRepoUrl } from '../utils.js';
|
|
|
33
35
|
*/
|
|
34
36
|
const local = () => import('../files-local.js');
|
|
35
37
|
const declarations = async (source) => (await import('../files-source.js')).filesFromSource(source);
|
|
38
|
+
const push = () => import('../files-push.js');
|
|
36
39
|
/** Whether a repository argument is a URL, rather than a local repository's path. */
|
|
37
40
|
function isUrl(repo) {
|
|
38
41
|
return repo.startsWith('https://') || repo.startsWith('http://');
|
|
@@ -62,6 +65,10 @@ export function bytesWords(bytes) {
|
|
|
62
65
|
}
|
|
63
66
|
return `${value < 10 ? value.toFixed(1) : Math.round(value)} ${units[unit]}`;
|
|
64
67
|
}
|
|
68
|
+
/** A count of rows, grouped. */
|
|
69
|
+
function rowsWords(rows) {
|
|
70
|
+
return `${rows.toLocaleString('en-US')} ${rows === 1n ? 'row' : 'rows'}`;
|
|
71
|
+
}
|
|
65
72
|
/** What a shape selects, as `status` lists it. */
|
|
66
73
|
export function shapeWords(shape) {
|
|
67
74
|
if (shape.type === 'file')
|
|
@@ -69,6 +76,30 @@ export function shapeWords(shape) {
|
|
|
69
76
|
const include = shape.value.include.type === 'some' ? ` ${shape.value.include.value}` : '';
|
|
70
77
|
return `${shape.type} ${shape.value.prefix === '' ? '(everything)' : shape.value.prefix}${include}`;
|
|
71
78
|
}
|
|
79
|
+
/** The type a mapping fills its target with, as `status` lists it: the type it names, `Blob`, or a folder's or listing's. */
|
|
80
|
+
export function typeWords(shape) {
|
|
81
|
+
switch (shape.type) {
|
|
82
|
+
case 'file':
|
|
83
|
+
case 'latest':
|
|
84
|
+
return shape.value.type.type === 'some' ? elided(filesTypeWords(shape.value.type.value)) : 'Blob';
|
|
85
|
+
case 'folder':
|
|
86
|
+
return 'Dict<String, Blob>';
|
|
87
|
+
case 'listing':
|
|
88
|
+
return 'listing';
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** Text cut at 60 characters, as the tables show a type. */
|
|
92
|
+
function elided(text) {
|
|
93
|
+
return text.length <= 60 ? text : `${text.slice(0, 59)}…`;
|
|
94
|
+
}
|
|
95
|
+
/** A mapping's target, as `status` names it: `orders`, `customers (record)`, `prices.load_prices (mutation)`. */
|
|
96
|
+
export function targetWords(target) {
|
|
97
|
+
switch (target.type) {
|
|
98
|
+
case 'input': return target.value;
|
|
99
|
+
case 'record': return `${target.value} (record)`;
|
|
100
|
+
case 'mutation': return `${target.value.record}.${target.value.mutation} (mutation)`;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
72
103
|
/** A binding, as people read it. */
|
|
73
104
|
export function bindingWords(binding) {
|
|
74
105
|
const extras = [
|
|
@@ -78,7 +109,11 @@ export function bindingWords(binding) {
|
|
|
78
109
|
].filter((extra) => extra !== null);
|
|
79
110
|
return extras.length === 0 ? binding.url : `${binding.url} (${extras.join(', ')})`;
|
|
80
111
|
}
|
|
81
|
-
/**
|
|
112
|
+
/** A commit's hash, short. */
|
|
113
|
+
function shortHash(hash) {
|
|
114
|
+
return hash.length > 12 ? hash.slice(0, 12) : hash;
|
|
115
|
+
}
|
|
116
|
+
/** What a sync did, or would do, to one mapping. */
|
|
82
117
|
function mappingWords(report) {
|
|
83
118
|
const counts = [
|
|
84
119
|
report.added > 0n ? `${report.added} new` : null,
|
|
@@ -87,25 +122,42 @@ function mappingWords(report) {
|
|
|
87
122
|
].filter((count) => count !== null);
|
|
88
123
|
const what = counts.length === 0 ? (report.unchanged > 0n ? 'unchanged' : 'no files') : counts.join(', ');
|
|
89
124
|
const bytes = report.bytes > 0n ? `, ${bytesWords(report.bytes)}` : '';
|
|
90
|
-
|
|
125
|
+
const taken = report.taken.type === 'some' ? (report.taken.value.rows.type === 'some' ? `, taken in: ${rowsWords(report.taken.value.rows.value)}` : ', taken in') : '';
|
|
126
|
+
const commit = report.commit.type === 'some' ? `, committed ${shortHash(report.commit.value)}` : '';
|
|
127
|
+
const kept = report.kept.type === 'some' ? `, kept: ${report.kept.value}` : '';
|
|
128
|
+
const waiting = report.waiting.type === 'some' ? `, waiting: ${report.waiting.value}` : '';
|
|
129
|
+
return `${what}${bytes}${taken}${commit}${kept}${waiting}${report.updated ? '' : ' · not written'}`;
|
|
91
130
|
}
|
|
92
131
|
/**
|
|
93
|
-
* A sync's report, as the CLI prints it: a line per
|
|
132
|
+
* A sync's report, as the CLI prints it: a line per mapping, then every file
|
|
94
133
|
* it did not take.
|
|
95
134
|
*
|
|
96
135
|
* @param report - The report
|
|
97
136
|
* @returns Its lines
|
|
98
137
|
*/
|
|
99
138
|
export function syncReportText(report) {
|
|
100
|
-
const
|
|
101
|
-
const
|
|
102
|
-
const
|
|
139
|
+
const names = report.mappings.map((m) => targetWords(m.target));
|
|
140
|
+
const width = Math.max(...names.map((n) => n.length), 5);
|
|
141
|
+
const lines = report.mappings.map((m, i) => ` ${names[i].padEnd(width)} ${mappingWords(m)}`);
|
|
142
|
+
const refused = report.mappings.flatMap((m, i) => m.refused.map((r) => ` ${names[i]}: ${r.key} ${filesRefusalText(r.reason)}`));
|
|
103
143
|
if (refused.length > 0)
|
|
104
144
|
lines.push('Not taken:', ...refused);
|
|
105
145
|
return lines.join('\n');
|
|
106
146
|
}
|
|
147
|
+
/** A table's rows, each column padded to its widest. */
|
|
148
|
+
function table(header, rows) {
|
|
149
|
+
const widths = header.map((h, i) => Math.max(h.length, ...rows.map((r) => (r[i] ?? '').length)));
|
|
150
|
+
const line = (cells) => cells.map((cell, i) => (i === cells.length - 1 ? cell : cell.padEnd(widths[i]))).join(' ').trimEnd();
|
|
151
|
+
return [line(header), ...rows.map(line)];
|
|
152
|
+
}
|
|
153
|
+
/** A moment, as the tables show it. */
|
|
154
|
+
function when(date) {
|
|
155
|
+
return date.toISOString().replace('T', ' ').slice(0, 16);
|
|
156
|
+
}
|
|
107
157
|
/**
|
|
108
|
-
* A workspace's Files, as `status` prints them
|
|
158
|
+
* A workspace's Files, as `status` prints them: a table of each mapping, its
|
|
159
|
+
* shape, its type, what it holds and the commit it made (or `pending`), then
|
|
160
|
+
* the sources and the last sync.
|
|
109
161
|
*
|
|
110
162
|
* @param status - The status
|
|
111
163
|
* @returns Its lines
|
|
@@ -115,10 +167,16 @@ export function statusText(status) {
|
|
|
115
167
|
return 'No Files declarations are deployed here (e3-cloud files deploy)';
|
|
116
168
|
const { sources, mappings } = status.manifest.value;
|
|
117
169
|
const bound = new Map(status.bindings.map((b) => [b.source, b]));
|
|
118
|
-
const
|
|
119
|
-
const lines = [`Declarations: ${mappings.length} ${mappings.length === 1 ? '
|
|
120
|
-
|
|
121
|
-
|
|
170
|
+
const held = new Map(status.mappings.map((m) => [filesTargetText(m.target), m]));
|
|
171
|
+
const lines = [`Declarations: ${mappings.length} ${mappings.length === 1 ? 'mapping' : 'mappings'} from ${sources.length} ${sources.length === 1 ? 'source' : 'sources'}`];
|
|
172
|
+
const rows = mappings.map((m) => {
|
|
173
|
+
const state = held.get(filesTargetText(m.target));
|
|
174
|
+
const holds = state?.holds.type === 'some' ? state.holds.value : null;
|
|
175
|
+
const holdsWords = holds === null ? '—' : [holds.key, bytesWords(holds.size), ...(holds.modified.type === 'some' ? [when(holds.modified.value)] : [])].join(' ');
|
|
176
|
+
const commit = state?.pending === true ? 'pending' : holds?.commit.type === 'some' ? shortHash(holds.commit.value) : m.target.type === 'input' ? '' : '—';
|
|
177
|
+
return [targetWords(m.target), `${m.source}: ${shapeWords(m.shape)}`, typeWords(m.shape), holdsWords, commit];
|
|
178
|
+
});
|
|
179
|
+
lines.push(...table(['Mapping', 'Shape', 'Type', 'Holds', 'Commit'], rows).map((line) => ` ${line}`));
|
|
122
180
|
lines.push('Sources:');
|
|
123
181
|
for (const source of sources) {
|
|
124
182
|
const binding = bound.get(source);
|
|
@@ -134,7 +192,7 @@ export function statusText(status) {
|
|
|
134
192
|
else {
|
|
135
193
|
const last = status.lastSync.value;
|
|
136
194
|
const updated = last.mappings.filter((m) => m.updated).length;
|
|
137
|
-
lines.push(`Last sync: ${last.finished
|
|
195
|
+
lines.push(`Last sync: ${when(last.finished)} UTC, ${updated} of ${last.mappings.length} ${last.mappings.length === 1 ? 'mapping' : 'mappings'} written`);
|
|
138
196
|
lines.push(syncReportText(last));
|
|
139
197
|
}
|
|
140
198
|
return lines.join('\n');
|
|
@@ -149,6 +207,19 @@ function positive(option, value) {
|
|
|
149
207
|
exitError(`${option} takes a whole number of at least 1, not '${value}'`);
|
|
150
208
|
return BigInt(value);
|
|
151
209
|
}
|
|
210
|
+
/** Targets from `--target`: a bare name is an input's; `record:` and `mutation:` name the rest. */
|
|
211
|
+
function targetsOf(texts) {
|
|
212
|
+
if (texts === undefined)
|
|
213
|
+
return undefined;
|
|
214
|
+
return texts.map((text) => {
|
|
215
|
+
const target = parseFilesTarget(text);
|
|
216
|
+
if (target === null)
|
|
217
|
+
exitError(`--target takes an input's name, record:<name> or mutation:<record>.<name>, not '${text}'`);
|
|
218
|
+
return target;
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/** Targets, as a message names them. */
|
|
222
|
+
const targetsWords = (targets) => targets.map(filesTargetText).join(', ');
|
|
152
223
|
/** The sync's lines, and the next command when anything changed: local and remote alike. */
|
|
153
224
|
function printSync(report, repo, workspace, what) {
|
|
154
225
|
console.log(what);
|
|
@@ -158,6 +229,10 @@ function printSync(report, repo, workspace, what) {
|
|
|
158
229
|
if (report.mappings.some((m) => m.refused.length > 0))
|
|
159
230
|
process.exitCode = 1;
|
|
160
231
|
}
|
|
232
|
+
/** The targets declarations fill, as a deploy's line names them. */
|
|
233
|
+
function declaredWords(mappings) {
|
|
234
|
+
return mappings.map((m) => targetWords(m.target)).join(', ');
|
|
235
|
+
}
|
|
161
236
|
/** e3-cloud files deploy, given a repository's URL. */
|
|
162
237
|
async function deployRemote(repo, workspace, source, options) {
|
|
163
238
|
try {
|
|
@@ -165,16 +240,16 @@ async function deployRemote(repo, workspace, source, options) {
|
|
|
165
240
|
const manifest = await declarations(source);
|
|
166
241
|
const response = await deployFiles(baseUrl, name, workspace, manifest, { token }, { dryRun: options.dryRun === true, force: options.force === true });
|
|
167
242
|
const pkg = `${response.value.package.name}@${response.value.package.version}`;
|
|
168
|
-
const
|
|
243
|
+
const declared = declaredWords(manifest.mappings);
|
|
169
244
|
if (response.type === 'refused')
|
|
170
245
|
exitError(`The declarations don't fit ${pkg}, which ${workspace} runs:\n${problemsText(response.value.problems)}`);
|
|
171
246
|
if (response.type === 'checked') {
|
|
172
|
-
console.log(`The declarations fit ${pkg}, which ${workspace} runs: a deploy would keep them (${
|
|
247
|
+
console.log(`The declarations fit ${pkg}, which ${workspace} runs: a deploy would keep them (${declared})`);
|
|
173
248
|
return;
|
|
174
249
|
}
|
|
175
|
-
console.log(`Deployed the declarations to ${workspace}, which runs ${pkg}: ${
|
|
250
|
+
console.log(`Deployed the declarations to ${workspace}, which runs ${pkg}: ${declared}`);
|
|
176
251
|
if (response.value.retaken.length > 0)
|
|
177
|
-
console.log(` The next sync takes ${response.value.retaken
|
|
252
|
+
console.log(` The next sync takes ${targetsWords(response.value.retaken)} again whole: ${response.value.retaken.length === 1 ? 'its declaration' : 'their declarations'} changed`);
|
|
178
253
|
const files = await getFiles(baseUrl, name, workspace, { token });
|
|
179
254
|
for (const s of manifest.sources.filter((src) => !files.status.bindings.some((b) => b.source === src))) {
|
|
180
255
|
const where = files.granted[0] === undefined ? 's3://<bucket>/<prefix>/' : `s3://${files.granted[0].bucket}/${files.granted[0].prefixes[0] ?? ''}<folder>/`;
|
|
@@ -196,7 +271,7 @@ async function bindRemote(repo, workspace, binding) {
|
|
|
196
271
|
}
|
|
197
272
|
console.log(`${binding.source} is bound to ${bindingWords(binding)} for ${workspace}`);
|
|
198
273
|
if (response.value.retaken.length > 0)
|
|
199
|
-
console.log(` The next sync takes ${response.value.retaken
|
|
274
|
+
console.log(` The next sync takes ${targetsWords(response.value.retaken)} again whole: the source moved`);
|
|
200
275
|
// Bound before any declaration reads it: a release may bring them
|
|
201
276
|
const declared = (await getFiles(baseUrl, name, workspace, { token })).status.manifest;
|
|
202
277
|
if (declared.type === 'none' || !declared.value.mappings.some((m) => m.source === binding.source)) {
|
|
@@ -212,7 +287,8 @@ async function syncRemote(repo, workspace, options) {
|
|
|
212
287
|
try {
|
|
213
288
|
const { baseUrl, name, token } = await remote(repo);
|
|
214
289
|
const dryRun = options.dryRun === true;
|
|
215
|
-
const
|
|
290
|
+
const targets = targetsOf(options.target);
|
|
291
|
+
const start = await startFilesSync(baseUrl, name, workspace, { dryRun, ...(targets !== undefined && { targets }), ...(options.reset !== undefined && { reset: options.reset }) }, { token });
|
|
216
292
|
if (start.type === 'running')
|
|
217
293
|
console.log(`A sync of ${workspace} is under way (${start.value}): following it rather than start another`);
|
|
218
294
|
else
|
|
@@ -262,15 +338,16 @@ export const filesCommand = {
|
|
|
262
338
|
const pkg = `${result.package.name}@${result.package.version}`;
|
|
263
339
|
if (result.problems.length > 0)
|
|
264
340
|
exitError(`The declarations don't fit ${pkg}, which ${workspace} runs:\n${problemsText(result.problems)}`);
|
|
265
|
-
const
|
|
341
|
+
const declared = declaredWords(manifest.mappings);
|
|
266
342
|
if (options.dryRun === true) {
|
|
267
|
-
console.log(`The declarations fit ${pkg}, which ${workspace} runs: a deploy would keep them (${
|
|
343
|
+
console.log(`The declarations fit ${pkg}, which ${workspace} runs: a deploy would keep them (${declared})`);
|
|
268
344
|
return;
|
|
269
345
|
}
|
|
270
|
-
console.log(`Deployed the declarations to ${workspace}, which runs ${pkg}: ${
|
|
346
|
+
console.log(`Deployed the declarations to ${workspace}, which runs ${pkg}: ${declared}`);
|
|
271
347
|
if (result.retaken.length > 0)
|
|
272
|
-
console.log(` The next sync takes ${result.retaken
|
|
273
|
-
const
|
|
348
|
+
console.log(` The next sync takes ${targetsWords(result.retaken)} again whole: ${result.retaken.length === 1 ? 'its declaration' : 'their declarations'} changed`);
|
|
349
|
+
const status = await statusLocal(path, workspace);
|
|
350
|
+
const unbound = manifest.sources.filter((s) => !status.bindings.some((b) => b.source === s));
|
|
274
351
|
for (const s of unbound)
|
|
275
352
|
console.log(` Bind ${s} next: e3-cloud files bind ${repo} ${workspace} ${s} s3://<bucket>/<prefix>/`);
|
|
276
353
|
}
|
|
@@ -297,13 +374,13 @@ export const filesCommand = {
|
|
|
297
374
|
exitError(`${source} can't be bound there:\n${problemsText(result.problems)}`);
|
|
298
375
|
console.log(`${source} is bound to ${bindingWords(binding)} for ${workspace}`);
|
|
299
376
|
if (result.retaken.length > 0)
|
|
300
|
-
console.log(` The next sync takes ${result.retaken
|
|
377
|
+
console.log(` The next sync takes ${targetsWords(result.retaken)} again whole: the source moved`);
|
|
301
378
|
}
|
|
302
379
|
catch (err) {
|
|
303
380
|
exitError(formatError(err));
|
|
304
381
|
}
|
|
305
382
|
},
|
|
306
|
-
/** e3-cloud files sync <repo> <workspace> [--
|
|
383
|
+
/** e3-cloud files sync <repo> <workspace> [--target <target...>] [--reset <record...>] [--dry-run] */
|
|
307
384
|
async sync(repo, workspace, options) {
|
|
308
385
|
if (isUrl(repo))
|
|
309
386
|
return syncRemote(repo, workspace, options);
|
|
@@ -311,7 +388,8 @@ export const filesCommand = {
|
|
|
311
388
|
const { openLocalRepository, syncLocal } = await local();
|
|
312
389
|
const path = await openLocalRepository(repo);
|
|
313
390
|
const dryRun = options.dryRun === true;
|
|
314
|
-
const
|
|
391
|
+
const targets = targetsOf(options.target);
|
|
392
|
+
const report = await syncLocal(path, workspace, { ...(targets !== undefined && { targets }), ...(options.reset !== undefined && { reset: options.reset }), dryRun });
|
|
315
393
|
const seconds = ((report.finished.getTime() - report.started.getTime()) / 1000).toFixed(1);
|
|
316
394
|
printSync(report, repo, workspace, dryRun ? `A sync of ${workspace} would take:` : `Synced ${workspace} in ${seconds} s:`);
|
|
317
395
|
}
|
|
@@ -322,6 +400,63 @@ export const filesCommand = {
|
|
|
322
400
|
exitError(formatError(err));
|
|
323
401
|
}
|
|
324
402
|
},
|
|
403
|
+
/** e3-cloud files push <repo> <workspace> <path...> [--as <target>] [--reset <record...>] [--dry-run] [--profile <p>] */
|
|
404
|
+
async push(repo, workspace, paths, options) {
|
|
405
|
+
const dryRun = options.dryRun === true;
|
|
406
|
+
try {
|
|
407
|
+
const { offeredFiles, pushText, syncWords, uploadPlanned } = await push();
|
|
408
|
+
const files = await offeredFiles(paths);
|
|
409
|
+
if (files.length === 0)
|
|
410
|
+
exitError('Nothing to push: the paths hold no files');
|
|
411
|
+
let report = null;
|
|
412
|
+
let plan;
|
|
413
|
+
let rows;
|
|
414
|
+
let targets;
|
|
415
|
+
if (isUrl(repo)) {
|
|
416
|
+
const { baseUrl, name, token } = await remote(repo);
|
|
417
|
+
plan = await planFilesPush(baseUrl, name, workspace, { files: files.map((f) => f.offered), as: options.as === undefined ? none : some(options.as) }, { token });
|
|
418
|
+
({ rows, targets } = await uploadPlanned(plan, files, {
|
|
419
|
+
complete: async (key, uploadId, parts) => { await completeFilesPush(baseUrl, name, workspace, { key, uploadId, parts: [...parts] }, { token: await getValidToken(baseUrl) }); },
|
|
420
|
+
...(options.profile !== undefined && { profile: options.profile }),
|
|
421
|
+
}, dryRun));
|
|
422
|
+
if (!dryRun && targets.length > 0) {
|
|
423
|
+
// A sync under way may not take what was put: followed to its end, then the push's own started
|
|
424
|
+
let job;
|
|
425
|
+
for (;;) {
|
|
426
|
+
const start = await startFilesSync(baseUrl, name, workspace, { targets, ...(options.reset !== undefined && { reset: options.reset }) }, { token: await getValidToken(baseUrl) });
|
|
427
|
+
job = await filesSyncWait(baseUrl, name, workspace, start.value, { token }, { refresh: async () => ({ token: await getValidToken(baseUrl) }) });
|
|
428
|
+
if (start.type === 'started')
|
|
429
|
+
break;
|
|
430
|
+
console.log(`A sync of ${workspace} was under way (${start.value}): followed to its end, now syncing what was put`);
|
|
431
|
+
}
|
|
432
|
+
if (job.state.type === 'failed')
|
|
433
|
+
exitError(`${pushText(plan, rows, null)}\nThe sync failed: ${job.state.value}`);
|
|
434
|
+
report = job.report.type === 'some' ? job.report.value : null;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
const { openLocalRepository, planLocal, syncLocal } = await local();
|
|
439
|
+
const path = await openLocalRepository(repo);
|
|
440
|
+
plan = await planLocal(path, workspace, files, options.as === undefined ? {} : { as: options.as });
|
|
441
|
+
({ rows, targets } = await uploadPlanned(plan, files, {
|
|
442
|
+
complete: () => Promise.reject(new Error('a local push creates no multipart upload to complete')),
|
|
443
|
+
...(options.profile !== undefined && { profile: options.profile }),
|
|
444
|
+
}, dryRun));
|
|
445
|
+
if (!dryRun && targets.length > 0)
|
|
446
|
+
report = await syncLocal(path, workspace, { targets, ...(options.reset !== undefined && { reset: options.reset }) });
|
|
447
|
+
}
|
|
448
|
+
for (const row of rows)
|
|
449
|
+
if (row.target !== null && row.put === 'put')
|
|
450
|
+
row.sync = syncWords(report, row.target);
|
|
451
|
+
const changed = report !== null && report.mappings.some((m) => m.updated);
|
|
452
|
+
console.log(pushText(plan, rows, changed ? `e3 dataflow run ${repo} ${workspace}` : null));
|
|
453
|
+
if (rows.some((row) => row.put.startsWith('refused') || row.put.startsWith('failed') || row.sync.startsWith('refused')))
|
|
454
|
+
process.exitCode = 1;
|
|
455
|
+
}
|
|
456
|
+
catch (err) {
|
|
457
|
+
exitError(formatError(err));
|
|
458
|
+
}
|
|
459
|
+
},
|
|
325
460
|
/** e3-cloud files status <repo> <workspace> */
|
|
326
461
|
async status(repo, workspace) {
|
|
327
462
|
if (isUrl(repo))
|
|
@@ -329,7 +464,7 @@ export const filesCommand = {
|
|
|
329
464
|
try {
|
|
330
465
|
const { openLocalRepository, statusLocal } = await local();
|
|
331
466
|
const path = await openLocalRepository(repo);
|
|
332
|
-
console.log(statusText(statusLocal(path, workspace)));
|
|
467
|
+
console.log(statusText(await statusLocal(path, workspace)));
|
|
333
468
|
}
|
|
334
469
|
catch (err) {
|
|
335
470
|
exitError(formatError(err));
|