@udondan/avanti 0.22.0 → 0.23.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/README.md +168 -12
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +21 -12
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/lock.d.ts.map +1 -1
- package/dist/commands/lock.js +8 -4
- package/dist/commands/lock.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +38 -16
- package/dist/commands/pull.js.map +1 -1
- package/dist/condition.js +2 -2
- package/dist/condition.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +41 -5
- package/dist/config.js.map +1 -1
- package/dist/diff.d.ts +0 -4
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +0 -51
- package/dist/diff.js.map +1 -1
- package/dist/paths.d.ts +7 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +141 -0
- package/dist/paths.js.map +1 -0
- package/dist/sources/index.js +2 -2
- package/dist/sources/index.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/variables.d.ts +5 -0
- package/dist/variables.d.ts.map +1 -1
- package/dist/variables.js +186 -1
- package/dist/variables.js.map +1 -1
- package/dist/writer.d.ts +1 -0
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js +42 -1
- package/dist/writer.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -35,6 +35,7 @@ atomic rollbacks, and diff-before-apply safety.
|
|
|
35
35
|
- [Insert Mode](#insert-mode)
|
|
36
36
|
- [Conditions](#conditions)
|
|
37
37
|
- [Scaffold Pattern](#scaffold-pattern)
|
|
38
|
+
- [Backup](#backup)
|
|
38
39
|
- [Variables](#variables)
|
|
39
40
|
- [$self — Self-managing Config](#self--self-managing-config)
|
|
40
41
|
- [Authentication](#authentication)
|
|
@@ -386,6 +387,23 @@ files:
|
|
|
386
387
|
|
|
387
388
|
End the target path with `/` to write a directory source as a mirror; omit the trailing slash to merge all files from the directory into a single output file (YAML/JSON auto-detected by extension, or forced with `yaml:`/`json:`).
|
|
388
389
|
|
|
390
|
+
**Brace expansion** — use `{a,b,c}` in the target key to declare multiple entries from a single block. The config is equivalent to repeating the block for each alternative:
|
|
391
|
+
|
|
392
|
+
```yaml
|
|
393
|
+
files:
|
|
394
|
+
config/{dev,staging,prod}.yml:
|
|
395
|
+
src:
|
|
396
|
+
github:
|
|
397
|
+
repo: my-org/configs
|
|
398
|
+
file: $filename
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
This is identical to three separate entries for `config/dev.yml`, `config/staging.yml`, and `config/prod.yml`. Per-entry variables like `$filename`, `$basename`, and `$dirname` are derived from each expanded path, so they can be used directly in source fields (as above). Multiple brace groups in a single key are expanded as a cross-product: `{a,b}/{x,y}` produces four entries.
|
|
402
|
+
|
|
403
|
+
A brace group is only expanded when it contains **at least one comma** (e.g. `{foo,bar}`). A group without a comma — such as `{foo}` — is left as a literal brace sequence and is not expanded. This matches standard shell behavior and means filenames that happen to contain `{` or `}` (e.g. route patterns like `{id}`) require no escaping. YAML quoting is still required when the key itself starts with `{` — see the note below. A single key may produce at most 100 expanded entries; exceeding this limit throws a parse error.
|
|
404
|
+
|
|
405
|
+
> **YAML quoting:** YAML treats `{` at the start of a plain key as a flow mapping. If the brace group is the first character of a key, quote it: `'{dev,prod}.yml':` or `"{dev,prod}.yml":`. Keys where the brace group appears after a path prefix (e.g. `config/{dev,prod}.yml`) do not need quoting.
|
|
406
|
+
|
|
389
407
|
| Field | Required | Description |
|
|
390
408
|
| ---------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
391
409
|
| `src` | Yes | Source (see below). May be a single source or a **list** of sources to concatenate. |
|
|
@@ -904,13 +922,13 @@ When both are present, both must pass. Each condition object may also include `n
|
|
|
904
922
|
|
|
905
923
|
#### Condition fields
|
|
906
924
|
|
|
907
|
-
| Field | Type | Description
|
|
908
|
-
| --------------- | -------------- |
|
|
909
|
-
| `os` | string or list | Platform must match. Values: `linux`, `mac`, `windows`. List = any matches.
|
|
910
|
-
| `exists` | string | Path (file or directory) must exist. Variables are resolved.
|
|
911
|
-
| `exec` | string | Shell command must exit with code `0`.
|
|
912
|
-
| `target_exists` | `true`
|
|
913
|
-
| `not` | boolean | `true` — invert the result of all checks in this condition object.
|
|
925
|
+
| Field | Type | Description |
|
|
926
|
+
| --------------- | -------------- | ---------------------------------------------------------------------------------- |
|
|
927
|
+
| `os` | string or list | Platform must match. Values: `linux`, `mac`, `windows`. List = any matches. |
|
|
928
|
+
| `exists` | string | Path (file or directory) must exist. Variables are resolved. |
|
|
929
|
+
| `exec` | string | Shell command must exit with code `0`. |
|
|
930
|
+
| `target_exists` | boolean | `true` — pass only if target exists. `false` — pass only if target does not exist. |
|
|
931
|
+
| `not` | boolean | `true` — invert the result of all checks in this condition object. |
|
|
914
932
|
|
|
915
933
|
#### Examples
|
|
916
934
|
|
|
@@ -989,8 +1007,7 @@ files:
|
|
|
989
1007
|
# Team Configuration
|
|
990
1008
|
Edit this file to customize your team settings.
|
|
991
1009
|
if:
|
|
992
|
-
target_exists:
|
|
993
|
-
not: true
|
|
1010
|
+
target_exists: false
|
|
994
1011
|
|
|
995
1012
|
# Always rebuilt. On first run it picks up the default template above.
|
|
996
1013
|
# After the user edits team.md, it picks up their version.
|
|
@@ -1005,12 +1022,86 @@ files:
|
|
|
1005
1022
|
|
|
1006
1023
|
On **first run**: `team.md` does not exist, so the `raw:` entry creates it. `handbook.md` sources from `team.md` and picks up the default template content — even though `team.md` has not been written to disk yet.
|
|
1007
1024
|
|
|
1008
|
-
On **subsequent runs**: `team.md` already exists, so the `target_exists:
|
|
1025
|
+
On **subsequent runs**: `team.md` already exists, so the `target_exists: false` condition skips it. `handbook.md` reads `team.md` from disk and picks up any changes the user made.
|
|
1009
1026
|
|
|
1010
1027
|
**Automatic ordering** — avanti resolves dependencies between entries and processes them in the correct order automatically. You can define entries in any order in the config; if entry B sources from entry A's target path, A is always processed before B.
|
|
1011
1028
|
|
|
1012
1029
|
**Cycle detection** — if two entries form a cycle (A sources from B and B sources from A), avanti exits with an error listing the cycle before writing any files.
|
|
1013
1030
|
|
|
1031
|
+
### Backup
|
|
1032
|
+
|
|
1033
|
+
> **Note:** avanti already maintains an internal pull history under `~/.config/avanti/` and you can restore any file with `avanti revert`. The `backup:` field is for additional, fine-grained control — for example, keeping a copy on an external drive, in a dedicated folder, or with a custom naming scheme.
|
|
1034
|
+
|
|
1035
|
+
Add `backup:` to a file entry to copy the current file to a backup location before overwriting it:
|
|
1036
|
+
|
|
1037
|
+
```yaml
|
|
1038
|
+
files:
|
|
1039
|
+
config.yaml:
|
|
1040
|
+
src: github:org/repo/config.yaml
|
|
1041
|
+
backup: $dirname/$filename.bkp
|
|
1042
|
+
```
|
|
1043
|
+
|
|
1044
|
+
Backup only happens when the target is a regular file (not a symlink or directory). If the backup path already exists it is overwritten — use the [counter pattern](#counter-pattern) or `$datetime` when you want to keep every backup.
|
|
1045
|
+
|
|
1046
|
+
#### Path variables
|
|
1047
|
+
|
|
1048
|
+
All [system-injected variables](#system-injected-variables) — per-file path variables (`$path`, `$filename`, `$basename`, `$ext`, `$dirname`, `$basedir`) and pull-time variables (`$date`, `$datetime`) — are available in `backup:` patterns.
|
|
1049
|
+
|
|
1050
|
+
#### Counter pattern
|
|
1051
|
+
|
|
1052
|
+
Use `%d+` in the backup path to auto-increment to the lowest unused slot. The number of `d` characters sets the zero-padding width and maximum slot:
|
|
1053
|
+
|
|
1054
|
+
| Token | Slots |
|
|
1055
|
+
| ------ | ----------- |
|
|
1056
|
+
| `%d` | `1`–`9` |
|
|
1057
|
+
| `%dd` | `01`–`99` |
|
|
1058
|
+
| `%ddd` | `001`–`999` |
|
|
1059
|
+
|
|
1060
|
+
Only one counter token per backup path is allowed. If all slots are taken, avanti exits with an error.
|
|
1061
|
+
|
|
1062
|
+
```yaml
|
|
1063
|
+
files:
|
|
1064
|
+
config.yaml:
|
|
1065
|
+
src: github:org/repo/config.yaml
|
|
1066
|
+
backup: $dirname/$basename.%dd.$ext # config.01.yaml → config.02.yaml → …
|
|
1067
|
+
```
|
|
1068
|
+
|
|
1069
|
+
#### Security: backup_roots
|
|
1070
|
+
|
|
1071
|
+
By default, backup paths are restricted to the working directory — the same constraint applied to target paths. To back up outside the working directory, declare the allowed roots at the top level:
|
|
1072
|
+
|
|
1073
|
+
```yaml
|
|
1074
|
+
backup_roots:
|
|
1075
|
+
- ~/backups
|
|
1076
|
+
- /mnt/nas/backups
|
|
1077
|
+
|
|
1078
|
+
files:
|
|
1079
|
+
config.yaml:
|
|
1080
|
+
src: github:org/repo/config.yaml
|
|
1081
|
+
backup: ~/backups/$filename
|
|
1082
|
+
```
|
|
1083
|
+
|
|
1084
|
+
Each entry in `backup_roots` supports `~/` expansion. Paths not covered by the working directory or a declared root are rejected with an error before any file is written.
|
|
1085
|
+
|
|
1086
|
+
#### Backup examples
|
|
1087
|
+
|
|
1088
|
+
```yaml
|
|
1089
|
+
# Same directory, .bkp extension appended
|
|
1090
|
+
backup: $dirname/$filename.bkp # /project/config.yaml.bkp
|
|
1091
|
+
|
|
1092
|
+
# Separate backup folder within the working directory
|
|
1093
|
+
backup: backups/$filename # <workingDir>/backups/config.yaml
|
|
1094
|
+
|
|
1095
|
+
# Timestamped — one file per pull
|
|
1096
|
+
backup: $dirname/$filename.$datetime # config.yaml.2026-05-20-14-30-00
|
|
1097
|
+
|
|
1098
|
+
# Auto-increment — keeps up to 99 rotating backups
|
|
1099
|
+
backup: $dirname/$basename.%dd.$ext # config.01.yaml, config.02.yaml, …
|
|
1100
|
+
|
|
1101
|
+
# Separate directory outside the working directory (requires backup_roots)
|
|
1102
|
+
backup: ~/backups/$filename
|
|
1103
|
+
```
|
|
1104
|
+
|
|
1014
1105
|
### Variables
|
|
1015
1106
|
|
|
1016
1107
|
Define reusable values at the top level under `variables:`:
|
|
@@ -1150,6 +1241,72 @@ files:
|
|
|
1150
1241
|
|
|
1151
1242
|
When the config is specified as a remote spec (e.g. `--config github:org/repo:.avanti.yml`), `$self` expands to that spec string. In an `exists:` condition this will always evaluate to false since the remote spec is not a local path.
|
|
1152
1243
|
|
|
1244
|
+
#### System-injected variables
|
|
1245
|
+
|
|
1246
|
+
In addition to `$self` and `$latest`, avanti injects several variables automatically at the start of every run. These names are reserved and cannot be used in `variables:`.
|
|
1247
|
+
|
|
1248
|
+
**Per-file path variables** — avanti derives the following variables from each file entry's resolved target path. They can be used in source URLs, `ref:`, conditions, `replace:`, `post:`, template rendering, and `backup:` patterns.
|
|
1249
|
+
|
|
1250
|
+
Example with working directory `/home/user/project` and map key `configs/app.yaml`:
|
|
1251
|
+
|
|
1252
|
+
| Variable | Value |
|
|
1253
|
+
| ----------- | ------------------------------------- |
|
|
1254
|
+
| `$path` | `/home/user/project/configs/app.yaml` |
|
|
1255
|
+
| `$filename` | `app.yaml` |
|
|
1256
|
+
| `$basename` | `app` |
|
|
1257
|
+
| `$ext` | `yaml` (no leading dot) |
|
|
1258
|
+
| `$dirname` | `/home/user/project/configs` |
|
|
1259
|
+
| `$basedir` | `configs` |
|
|
1260
|
+
|
|
1261
|
+
> **Availability in source URLs and conditions:** per-file path variables are only resolved before the fetch when the map key is a fixed (non-directory) path. They are always available in processors (`replace:`, `post:`, template rendering) and `backup:`.
|
|
1262
|
+
|
|
1263
|
+
```yaml
|
|
1264
|
+
variables:
|
|
1265
|
+
env: production
|
|
1266
|
+
|
|
1267
|
+
files:
|
|
1268
|
+
# $filename in source URL — fetches each file by its own target name
|
|
1269
|
+
configs/nginx.conf:
|
|
1270
|
+
src: github:org/config-store/$env/$filename # → …/production/nginx.conf
|
|
1271
|
+
|
|
1272
|
+
# $basename strips the extension — useful when the remote has no extension
|
|
1273
|
+
services/auth.yaml:
|
|
1274
|
+
src: https://config-api.example.com/v1/$basename # → …/v1/auth
|
|
1275
|
+
|
|
1276
|
+
# $path in a condition — only overwrite if the local file already exists
|
|
1277
|
+
generated/report.json:
|
|
1278
|
+
src:
|
|
1279
|
+
exec: generate-report.sh
|
|
1280
|
+
if:
|
|
1281
|
+
exists: $path
|
|
1282
|
+
|
|
1283
|
+
# $dirname in a processor — log which directory was updated
|
|
1284
|
+
app/config.yaml:
|
|
1285
|
+
src: github:org/repo/app/config.yaml
|
|
1286
|
+
post: echo updated $dirname >> pull.log
|
|
1287
|
+
```
|
|
1288
|
+
|
|
1289
|
+
**Pull-time variables** — injected once at the start of every run and available everywhere (source URLs, conditions, `replace:`, `post:`, template rendering, `backup:`):
|
|
1290
|
+
|
|
1291
|
+
| Variable | Value | Example |
|
|
1292
|
+
| ----------- | --------------------------------------- | --------------------- |
|
|
1293
|
+
| `$date` | Current date `YYYY-MM-DD` | `2026-05-20` |
|
|
1294
|
+
| `$datetime` | Current date+time `YYYY-MM-DD-HH-mm-ss` | `2026-05-20-14-30-00` |
|
|
1295
|
+
|
|
1296
|
+
```yaml
|
|
1297
|
+
files:
|
|
1298
|
+
# Fetch today's report by date
|
|
1299
|
+
reports/daily.json:
|
|
1300
|
+
src: https://reports.example.com/$date/summary.json
|
|
1301
|
+
|
|
1302
|
+
# Stamp the pull time into fetched content
|
|
1303
|
+
version.txt:
|
|
1304
|
+
src: github:org/repo/version.txt
|
|
1305
|
+
replace:
|
|
1306
|
+
- from: GENERATED_AT
|
|
1307
|
+
to: $datetime
|
|
1308
|
+
```
|
|
1309
|
+
|
|
1153
1310
|
### $self — Self-managing Config
|
|
1154
1311
|
|
|
1155
1312
|
The special `$self` key in the `files:` map tells avanti to manage its own config file. When `$self` is present, avanti fetches the listed sources and uses the result as the active config for the rest of the run — all in a single invocation.
|
|
@@ -1594,8 +1751,7 @@ files:
|
|
|
1594
1751
|
"semi": false
|
|
1595
1752
|
}
|
|
1596
1753
|
if:
|
|
1597
|
-
target_exists:
|
|
1598
|
-
not: true
|
|
1754
|
+
target_exists: false
|
|
1599
1755
|
|
|
1600
1756
|
# Always rebuilt. Sources org defaults from GitHub, then merges in local overrides.
|
|
1601
1757
|
./.prettierrc.json:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyMpC,wBAAgB,WAAW,IAAI,OAAO,CAwJrC"}
|
package/dist/commands/diff.js
CHANGED
|
@@ -45,10 +45,12 @@ const post_1 = require("../processors/post");
|
|
|
45
45
|
const insert_1 = require("../processors/insert");
|
|
46
46
|
const binary_1 = require("../binary");
|
|
47
47
|
const diff_1 = require("../diff");
|
|
48
|
+
const paths_1 = require("../paths");
|
|
48
49
|
const history_1 = require("../history");
|
|
49
50
|
const variables_remote_1 = require("../variables-remote");
|
|
50
51
|
const condition_1 = require("../condition");
|
|
51
|
-
|
|
52
|
+
const variables_1 = require("../variables");
|
|
53
|
+
async function runDiffLoop(config, workingDir, dateVars, cache, configPath, history) {
|
|
52
54
|
let vars;
|
|
53
55
|
try {
|
|
54
56
|
vars = await (0, variables_remote_1.resolveVariableSpec)(config.variables ?? {}, workingDir, cache);
|
|
@@ -60,6 +62,7 @@ async function runDiffLoop(config, workingDir, cache, configPath, history) {
|
|
|
60
62
|
if (configPath !== undefined) {
|
|
61
63
|
vars['self'] = configPath;
|
|
62
64
|
}
|
|
65
|
+
Object.assign(vars, dateVars);
|
|
63
66
|
const allDiffs = [];
|
|
64
67
|
const pendingWrites = new Map();
|
|
65
68
|
let hasError = false;
|
|
@@ -70,7 +73,7 @@ async function runDiffLoop(config, workingDir, cache, configPath, history) {
|
|
|
70
73
|
try {
|
|
71
74
|
hasSelf = (0, condition_1.evaluateConditions)(selfEntry['if'], selfEntry.ifAny, () => configPath !== undefined
|
|
72
75
|
? configPath
|
|
73
|
-
: (0,
|
|
76
|
+
: (0, paths_1.resolveTargetPath)(selfEntry, '', workingDir, vars), workingDir, vars);
|
|
74
77
|
}
|
|
75
78
|
catch (err) {
|
|
76
79
|
console.error(`Error processing ${config_1.SELF_KEY}: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -94,10 +97,11 @@ async function runDiffLoop(config, workingDir, cache, configPath, history) {
|
|
|
94
97
|
if (hasSelf !== isSelf)
|
|
95
98
|
continue;
|
|
96
99
|
try {
|
|
100
|
+
const preVars = (0, paths_1.buildEntryPreVars)(entry, isSelf, workingDir, vars);
|
|
97
101
|
if (!isSelf &&
|
|
98
|
-
!(0, condition_1.evaluateConditions)(entry['if'], entry.ifAny, () => (0,
|
|
102
|
+
!(0, condition_1.evaluateConditions)(entry['if'], entry.ifAny, () => (0, paths_1.resolveTargetPath)(entry, '', workingDir, vars), workingDir, preVars))
|
|
99
103
|
continue;
|
|
100
|
-
const result = await (0, sources_1.fetchSource)(entry, workingDir,
|
|
104
|
+
const result = await (0, sources_1.fetchSource)(entry, workingDir, preVars, cache, isSelf && configPath !== undefined ? () => configPath : undefined, pendingWrites);
|
|
101
105
|
for (const rec of result.sourceRecords) {
|
|
102
106
|
if (!rec.matched) {
|
|
103
107
|
console.error(`⚠ SHA mismatch for ${rec.sourceLabel}\n` +
|
|
@@ -112,19 +116,24 @@ async function runDiffLoop(config, workingDir, cache, configPath, history) {
|
|
|
112
116
|
? (await Promise.resolve().then(() => __importStar(require('../processors/template')))).applyTemplate
|
|
113
117
|
: undefined;
|
|
114
118
|
for (const [relPath, rawContent] of result.files) {
|
|
119
|
+
const targetPath = isSelf
|
|
120
|
+
? undefined
|
|
121
|
+
: (0, paths_1.resolveTargetPath)(entry, relPath, workingDir, vars);
|
|
122
|
+
const entryVars = targetPath !== undefined
|
|
123
|
+
? Object.assign(Object.create(null), vars, (0, variables_1.buildFileVars)(targetPath))
|
|
124
|
+
: vars;
|
|
115
125
|
let content = rawContent;
|
|
116
126
|
if (!(0, binary_1.isBinary)(content)) {
|
|
117
127
|
const rawText = content.toString('utf8');
|
|
118
128
|
let text = rawText;
|
|
119
129
|
if (applyTemplate !== undefined) {
|
|
120
|
-
text = await applyTemplate(text, entry.template,
|
|
130
|
+
text = await applyTemplate(text, entry.template, entryVars, relPath || undefined);
|
|
121
131
|
}
|
|
122
132
|
if (entry.replace?.length)
|
|
123
|
-
text = (0, replace_1.applyReplace)(text, entry.replace,
|
|
133
|
+
text = (0, replace_1.applyReplace)(text, entry.replace, entryVars);
|
|
124
134
|
if (entry.post)
|
|
125
|
-
text = (0, post_1.applyPost)(text, entry.post,
|
|
135
|
+
text = (0, post_1.applyPost)(text, entry.post, entryVars);
|
|
126
136
|
if (entry.strategy === 'insert' && !isSelf) {
|
|
127
|
-
const targetPath = (0, diff_1.resolveTargetPath)(entry, relPath, workingDir, vars);
|
|
128
137
|
const lastInserted = history?.getInsertedFragment(targetPath) ?? null;
|
|
129
138
|
if (lastInserted !== null &&
|
|
130
139
|
rawText === lastInserted.raw &&
|
|
@@ -140,7 +149,6 @@ async function runDiffLoop(config, workingDir, cache, configPath, history) {
|
|
|
140
149
|
selfContent = content.toString('utf8');
|
|
141
150
|
continue;
|
|
142
151
|
}
|
|
143
|
-
const targetPath = (0, diff_1.resolveTargetPath)(entry, relPath, workingDir, vars);
|
|
144
152
|
allDiffs.push((0, diff_1.computeDiff)(targetPath, content));
|
|
145
153
|
pendingWrites.set(targetPath, content);
|
|
146
154
|
}
|
|
@@ -176,8 +184,9 @@ function diffCommand() {
|
|
|
176
184
|
process.exit(2);
|
|
177
185
|
}
|
|
178
186
|
const fetchCache = new Map();
|
|
187
|
+
const dateVars = (0, variables_1.buildDateVars)();
|
|
179
188
|
const history = new history_1.HistoryManager((0, config_1.normalizeConfigKey)(configPath), workingDir);
|
|
180
|
-
const firstPass = await runDiffLoop(config, workingDir, fetchCache, configPath, history);
|
|
189
|
+
const firstPass = await runDiffLoop(config, workingDir, dateVars, fetchCache, configPath, history);
|
|
181
190
|
let { allDiffs, hasError } = firstPass;
|
|
182
191
|
if (hasError)
|
|
183
192
|
process.exit(2);
|
|
@@ -200,7 +209,7 @@ function diffCommand() {
|
|
|
200
209
|
break;
|
|
201
210
|
}
|
|
202
211
|
console.log('$self config resolved; re-evaluating with merged config...');
|
|
203
|
-
const next = await runDiffLoop(currentConfig, workingDir, fetchCache, configPath, history);
|
|
212
|
+
const next = await runDiffLoop(currentConfig, workingDir, dateVars, fetchCache, configPath, history);
|
|
204
213
|
if (next.hasError) {
|
|
205
214
|
hasError = true;
|
|
206
215
|
break;
|
|
@@ -221,7 +230,7 @@ function diffCommand() {
|
|
|
221
230
|
filesWithoutSelf[k] = v;
|
|
222
231
|
}
|
|
223
232
|
if (Object.keys(filesWithoutSelf).length > 0) {
|
|
224
|
-
const second = await runDiffLoop({ ...stableConfig, files: filesWithoutSelf }, workingDir, fetchCache, configPath, history);
|
|
233
|
+
const second = await runDiffLoop({ ...stableConfig, files: filesWithoutSelf }, workingDir, dateVars, fetchCache, configPath, history);
|
|
225
234
|
allDiffs = second.allDiffs;
|
|
226
235
|
hasError = second.hasError;
|
|
227
236
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyMA,kCAwJC;AAjWD,yCAAoC;AACpC,uCAAyB;AACzB,2CAA6B;AAC7B,sCAQmB;AACnB,wCAAqD;AACrD,kDAAqD;AACrD,mDAAqD;AACrD,6CAA+C;AAC/C,iDAAuD;AACvD,sCAAqC;AACrC,kCAAqE;AAErE,oCAAgE;AAEhE,wCAA4C;AAC5C,0DAA0D;AAC1D,4CAAkD;AAClD,4CAA4D;AAQ5D,KAAK,UAAU,WAAW,CACxB,MAAoB,EACpB,UAAkB,EAClB,QAAmB,EACnB,KAAkB,EAClB,UAAmB,EACnB,OAAwB;IAExB,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAA,sCAAmB,EAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,WAA+B,CAAC;IAEpC,IAAI,OAAO,GAAG,iBAAQ,IAAI,MAAM,CAAC,KAAK,CAAC;IACvC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAQ,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,GAAG,IAAA,8BAAkB,EAC1B,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,KAAK,EACf,GAAG,EAAE,CACH,UAAU,KAAK,SAAS;gBACtB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,IAAA,yBAAiB,EAAC,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EACxD,UAAU,EACV,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CACX,oBAAoB,iBAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACpF,CAAC;YACF,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CACxD,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,iBAAQ,CACxB,CAAC;IACF,IAAI,aAAoC,CAAC;IACzC,IAAI,CAAC;QACH,aAAa,GAAG,IAAA,iCAAkB,EAAC,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,MAAM,gBAAgB,GAA0B,OAAO;QACrD,CAAC,CAAC,CAAC,CAAC,iBAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAQ,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC;QACxD,CAAC,CAAC,aAAa,CAAC;IAElB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,KAAK,iBAAQ,CAAC;QAChC,IAAI,OAAO,KAAK,MAAM;YAAE,SAAS;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACnE,IACE,CAAC,MAAM;gBACP,CAAC,IAAA,8BAAkB,EACjB,KAAK,CAAC,IAAI,CAAC,EACX,KAAK,CAAC,KAAK,EACX,GAAG,EAAE,CAAC,IAAA,yBAAiB,EAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,EACpD,UAAU,EACV,OAAO,CACR;gBAED,SAAS;YACX,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAW,EAC9B,KAAK,EACL,UAAU,EACV,OAAO,EACP,KAAK,EACL,MAAM,IAAI,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACjE,aAAa,CACd,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,CACX,uBAAuB,GAAG,CAAC,WAAW,IAAI;wBACxC,gBAAgB,GAAG,CAAC,WAAW,IAAI;wBACnC,gBAAgB,GAAG,CAAC,WAAW,EAAE,CACpC,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CACb,+CAA+C,MAAM,CAAC,KAAK,CAAC,IAAI,oEAAoE,CACrI,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GACjB,KAAK,CAAC,QAAQ,KAAK,SAAS;gBAC1B,CAAC,CAAC,CAAC,wDAAa,wBAAwB,GAAC,CAAC,CAAC,aAAa;gBACxD,CAAC,CAAC,SAAS,CAAC;YAChB,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjD,MAAM,UAAU,GAAG,MAAM;oBACvB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAA,yBAAiB,EAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBACxD,MAAM,SAAS,GACb,UAAU,KAAK,SAAS;oBACtB,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAgB,EAClC,IAAI,EACJ,IAAA,yBAAa,EAAC,UAAU,CAAC,CAC1B;oBACH,CAAC,CAAC,IAAI,CAAC;gBAEX,IAAI,OAAO,GAAG,UAAU,CAAC;gBACzB,IAAI,CAAC,IAAA,iBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACzC,IAAI,IAAI,GAAG,OAAO,CAAC;oBACnB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;wBAChC,IAAI,GAAG,MAAM,aAAa,CACxB,IAAI,EACJ,KAAK,CAAC,QAAS,EACf,SAAS,EACT,OAAO,IAAI,SAAS,CACrB,CAAC;oBACJ,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM;wBACvB,IAAI,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACtD,IAAI,KAAK,CAAC,IAAI;wBAAE,IAAI,GAAG,IAAA,gBAAS,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC9D,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC3C,MAAM,YAAY,GAChB,OAAO,EAAE,mBAAmB,CAAC,UAAW,CAAC,IAAI,IAAI,CAAC;wBACpD,IACE,YAAY,KAAK,IAAI;4BACrB,OAAO,KAAK,YAAY,CAAC,GAAG;4BAC5B,IAAI,KAAK,YAAY,CAAC,SAAS;4BAC/B,EAAE,CAAC,UAAU,CAAC,UAAW,CAAC,EAC1B,CAAC;4BACD,SAAS,CAAC,4EAA4E;wBACxF,CAAC;wBACD,IAAI,GAAG,IAAA,wBAAe,EACpB,KAAK,EACL,IAAI,EACJ,YAAY,EAAE,SAAS,IAAI,IAAI,EAC/B,UAAW,CACZ,CAAC;oBACJ,CAAC;oBACD,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACtC,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACvC,SAAS;gBACX,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,IAAA,kBAAW,EAAC,UAAW,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjD,aAAa,CAAC,GAAG,CAAC,UAAW,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CACX,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACrG,CAAC;YACF,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,IAAI,mBAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CACV,0FAA0F,CAC3F;SACA,QAAQ,CACP,UAAU,EACV,uDAAuD,CACxD;SACA,MAAM,CACL,KAAK,EAAE,MAA0B,EAAE,QAAiB,EAAE,GAAY,EAAE,EAAE;QACpE,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAClC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAA4B,CAChD,CAAC;QACF,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,UAE5B,CAAC;QACd,MAAM,UAAU,GAAG,aAAa;YAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,IAAA,iBAAQ,EAClB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAyB,EAC5C,OAAO,CACR,CAAC;QAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,kBAAkB,CAChB,MAAM,EACN,IAAA,2BAAkB,EAAC,UAAU,CAAC,EAC9B,UAAU,CACX,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAA,mBAAU,EAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAe,IAAI,GAAG,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAA,yBAAa,GAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,wBAAc,CAChC,IAAA,2BAAkB,EAAC,UAAU,CAAC,EAC9B,UAAU,CACX,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,MAAM,EACN,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,OAAO,CACR,CAAC;QACF,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;QAEvC,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,eAAmC,CAAC;YACxC,IAAI,kBAAkB,GAAG,SAAS,CAAC,WAAW,CAAC;YAC/C,IAAI,YAAsC,CAAC;YAE3C,OAAO,YAAY,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,aAA2B,CAAC;gBAChC,IAAI,CAAC;oBACH,aAAa,GAAG,IAAA,2BAAkB,EAAC,kBAAkB,CAAC,CAAC;gBACzD,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,OAAO,CAAC,KAAK,CACX,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,IACE,CAAC,CAAC,iBAAQ,IAAI,aAAa,CAAC,KAAK,CAAC;oBAClC,kBAAkB,KAAK,eAAe,EACtC,CAAC;oBACD,YAAY,GAAG,aAAa,CAAC;oBAC7B,MAAM;gBACR,CAAC;gBAED,OAAO,CAAC,GAAG,CACT,4DAA4D,CAC7D,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,aAAa,EACb,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,OAAO,CACR,CAAC;gBAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,CAAC;gBAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACnC,YAAY,GAAG,aAAa,CAAC;oBAC7B,MAAM;gBACR,CAAC;gBAED,eAAe,GAAG,kBAAkB,CAAC;gBACrC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;YACxC,CAAC;YAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,mEAAmE;gBACnE,mEAAmE;gBACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CACpC,IAAI,CACwB,CAAC;gBAC/B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,KAAK,iBAAQ;wBAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAC5C,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,OAAO,CACR,CAAC;oBACF,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAC3B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,IAAA,2BAAkB,EAAC,UAAU,CAAC,EAAE,CAAC;oBACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CACnC,CAAC;oBACF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;oBACxD,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;wBACvB,QAAQ,CAAC,IAAI,CAAC,IAAA,kBAAW,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAA,kBAAW,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAA,iBAAU,EAAC,QAAQ,CAAC,CAAC;QAErB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CACF,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAc,EACd,UAAkB,EAClB,UAAkB;IAElB,MAAM,OAAO,GAAG,IAAI,wBAAc,CAChC,IAAA,2BAAkB,EAAC,UAAU,CAAC,EAC9B,UAAU,CACX,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAC1D,CAAC;IACF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,IAAI,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;QACnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,iBAAiB,KAAK,IAAI;YAAE,SAAS;QACzC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAW,EAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,oFAAoF;IACpF,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YAAE,SAAS;QACnD,sEAAsE;QACtE,KAAK,CAAC,IAAI,CAAC,IAAA,wBAAiB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,IAAA,iBAAU,EAAC,KAAK,CAAC,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,WAAW,IAAI,OAAO,CAiHrC"}
|
package/dist/commands/lock.js
CHANGED
|
@@ -39,9 +39,10 @@ const path = __importStar(require("path"));
|
|
|
39
39
|
const config_1 = require("../config");
|
|
40
40
|
const condition_1 = require("../condition");
|
|
41
41
|
const sources_1 = require("../sources");
|
|
42
|
-
const
|
|
42
|
+
const paths_1 = require("../paths");
|
|
43
43
|
const config_writeback_1 = require("../config-writeback");
|
|
44
44
|
const variables_remote_1 = require("../variables-remote");
|
|
45
|
+
const variables_1 = require("../variables");
|
|
45
46
|
function lockCommand() {
|
|
46
47
|
return new commander_1.Command('lock')
|
|
47
48
|
.description('Compute and pin SHA values for all remote sources in the config')
|
|
@@ -76,16 +77,19 @@ function lockCommand() {
|
|
|
76
77
|
if (configPath !== undefined) {
|
|
77
78
|
vars['self'] = configPath;
|
|
78
79
|
}
|
|
80
|
+
Object.assign(vars, (0, variables_1.buildDateVars)());
|
|
79
81
|
const toPin = new Map(); // label → sha
|
|
80
82
|
let hasError = false;
|
|
81
83
|
let remoteSourceCount = 0;
|
|
82
84
|
for (const [key, entry] of Object.entries(config.files)) {
|
|
83
85
|
try {
|
|
84
|
-
|
|
86
|
+
const isSelf = key === config_1.SELF_KEY;
|
|
87
|
+
const preVars = (0, paths_1.buildEntryPreVars)(entry, isSelf, workingDir, vars);
|
|
88
|
+
if (!(0, condition_1.evaluateConditions)(entry['if'], entry.ifAny, () => isSelf
|
|
85
89
|
? configPath
|
|
86
|
-
: (0,
|
|
90
|
+
: (0, paths_1.resolveTargetPath)(entry, '', workingDir, vars), workingDir, preVars))
|
|
87
91
|
continue;
|
|
88
|
-
const result = await (0, sources_1.fetchSource)(entry, workingDir,
|
|
92
|
+
const result = await (0, sources_1.fetchSource)(entry, workingDir, preVars, undefined, isSelf ? () => configPath : undefined);
|
|
89
93
|
remoteSourceCount += result.sourceRecords.length;
|
|
90
94
|
for (const rec of result.sourceRecords) {
|
|
91
95
|
if (!opts.force && rec.expectedSha !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0VpC,wBAAgB,WAAW,IAAI,OAAO,CA2brC"}
|
package/dist/commands/pull.js
CHANGED
|
@@ -47,11 +47,13 @@ const insert_1 = require("../processors/insert");
|
|
|
47
47
|
const binary_1 = require("../binary");
|
|
48
48
|
const diff_1 = require("../diff");
|
|
49
49
|
const writer_1 = require("../writer");
|
|
50
|
+
const paths_1 = require("../paths");
|
|
50
51
|
const history_1 = require("../history");
|
|
51
52
|
const prompt_1 = require("../prompt");
|
|
52
53
|
const config_writeback_1 = require("../config-writeback");
|
|
53
54
|
const variables_remote_1 = require("../variables-remote");
|
|
54
|
-
|
|
55
|
+
const variables_1 = require("../variables");
|
|
56
|
+
async function runFetchLoop(config, workingDir, dateVars, cache, configPath, history) {
|
|
55
57
|
let vars;
|
|
56
58
|
try {
|
|
57
59
|
vars = await (0, variables_remote_1.resolveVariableSpec)(config.variables ?? {}, workingDir, cache);
|
|
@@ -72,6 +74,7 @@ async function runFetchLoop(config, workingDir, cache, configPath, history) {
|
|
|
72
74
|
if (configPath !== undefined) {
|
|
73
75
|
vars['self'] = configPath;
|
|
74
76
|
}
|
|
77
|
+
Object.assign(vars, dateVars);
|
|
75
78
|
const writeTargets = [];
|
|
76
79
|
const allDiffs = [];
|
|
77
80
|
const shaErrors = [];
|
|
@@ -91,7 +94,7 @@ async function runFetchLoop(config, workingDir, cache, configPath, history) {
|
|
|
91
94
|
try {
|
|
92
95
|
hasSelf = (0, condition_1.evaluateConditions)(selfEntry['if'], selfEntry.ifAny, () => configPath !== undefined
|
|
93
96
|
? configPath
|
|
94
|
-
: (0,
|
|
97
|
+
: (0, paths_1.resolveTargetPath)(selfEntry, '', workingDir, vars), workingDir, vars);
|
|
95
98
|
}
|
|
96
99
|
catch (err) {
|
|
97
100
|
console.error(`Error processing ${config_1.SELF_KEY}: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -140,10 +143,11 @@ async function runFetchLoop(config, workingDir, cache, configPath, history) {
|
|
|
140
143
|
if (hasSelf !== isSelf)
|
|
141
144
|
continue;
|
|
142
145
|
try {
|
|
146
|
+
const preVars = (0, paths_1.buildEntryPreVars)(entry, isSelf, workingDir, vars);
|
|
143
147
|
if (!isSelf &&
|
|
144
|
-
!(0, condition_1.evaluateConditions)(entry['if'], entry.ifAny, () => (0,
|
|
148
|
+
!(0, condition_1.evaluateConditions)(entry['if'], entry.ifAny, () => (0, paths_1.resolveTargetPath)(entry, '', workingDir, vars), workingDir, preVars)) {
|
|
145
149
|
try {
|
|
146
|
-
skippedPaths.add((0,
|
|
150
|
+
skippedPaths.add((0, paths_1.resolveTargetPath)(entry, '', workingDir, vars));
|
|
147
151
|
}
|
|
148
152
|
catch {
|
|
149
153
|
console.warn(`Warning: skipped entry has an unresolvable target path — stale cleanup disabled for this run.`);
|
|
@@ -151,10 +155,10 @@ async function runFetchLoop(config, workingDir, cache, configPath, history) {
|
|
|
151
155
|
}
|
|
152
156
|
continue;
|
|
153
157
|
}
|
|
154
|
-
const result = await (0, sources_1.fetchSource)(entry, workingDir,
|
|
158
|
+
const result = await (0, sources_1.fetchSource)(entry, workingDir, preVars, cache, isSelf && configPath !== undefined ? () => configPath : undefined, pendingWrites);
|
|
155
159
|
if (result.allSkipped && !isSelf) {
|
|
156
160
|
try {
|
|
157
|
-
skippedPaths.add((0,
|
|
161
|
+
skippedPaths.add((0, paths_1.resolveTargetPath)(entry, '', workingDir, vars));
|
|
158
162
|
}
|
|
159
163
|
catch {
|
|
160
164
|
console.warn(`Warning: skipped entry has an unresolvable target path — stale cleanup disabled for this run.`);
|
|
@@ -179,20 +183,29 @@ async function runFetchLoop(config, workingDir, cache, configPath, history) {
|
|
|
179
183
|
? (await Promise.resolve().then(() => __importStar(require('../processors/template')))).applyTemplate
|
|
180
184
|
: undefined;
|
|
181
185
|
for (const [relPath, rawContent] of result.files) {
|
|
186
|
+
// Compute the target path early so per-file vars ($path, $filename,
|
|
187
|
+
// $basename, $ext, $dirname, $basedir) are available in processors.
|
|
188
|
+
// For $self the path resolution would fail (config path is absolute),
|
|
189
|
+
// so we skip it and fall back to the base vars.
|
|
190
|
+
const targetPath = isSelf
|
|
191
|
+
? undefined
|
|
192
|
+
: (0, paths_1.resolveTargetPath)(entry, relPath, workingDir, vars);
|
|
193
|
+
const entryVars = targetPath !== undefined
|
|
194
|
+
? Object.assign(Object.create(null), vars, (0, variables_1.buildFileVars)(targetPath))
|
|
195
|
+
: vars;
|
|
182
196
|
let content = rawContent;
|
|
183
197
|
if (!(0, binary_1.isBinary)(content)) {
|
|
184
198
|
// Processors only operate on text; binary files are passed through unchanged.
|
|
185
199
|
const rawText = content.toString('utf8');
|
|
186
200
|
let text = rawText;
|
|
187
201
|
if (applyTemplate !== undefined) {
|
|
188
|
-
text = await applyTemplate(text, entry.template,
|
|
202
|
+
text = await applyTemplate(text, entry.template, entryVars, relPath || undefined);
|
|
189
203
|
}
|
|
190
204
|
if (entry.replace?.length)
|
|
191
|
-
text = (0, replace_1.applyReplace)(text, entry.replace,
|
|
205
|
+
text = (0, replace_1.applyReplace)(text, entry.replace, entryVars);
|
|
192
206
|
if (entry.post)
|
|
193
|
-
text = (0, post_1.applyPost)(text, entry.post,
|
|
207
|
+
text = (0, post_1.applyPost)(text, entry.post, entryVars);
|
|
194
208
|
if (entry.strategy === 'insert' && !isSelf) {
|
|
195
|
-
const targetPath = (0, diff_1.resolveTargetPath)(entry, relPath, workingDir, vars);
|
|
196
209
|
const lastInserted = history?.getInsertedFragment(targetPath) ?? null;
|
|
197
210
|
if (lastInserted !== null &&
|
|
198
211
|
rawText === lastInserted.raw &&
|
|
@@ -217,9 +230,17 @@ async function runFetchLoop(config, workingDir, cache, configPath, history) {
|
|
|
217
230
|
selfSourceRecords = result.sourceRecords;
|
|
218
231
|
continue;
|
|
219
232
|
}
|
|
220
|
-
const
|
|
221
|
-
allDiffs.push(
|
|
222
|
-
|
|
233
|
+
const diff = (0, diff_1.computeDiff)(targetPath, content);
|
|
234
|
+
allDiffs.push(diff);
|
|
235
|
+
const backupPath = entry.backup && diff.hasChanges && !diff.isNew
|
|
236
|
+
? (0, variables_1.resolveBackupPath)(entry.backup, targetPath, workingDir, vars, config.backup_roots ?? [])
|
|
237
|
+
: undefined;
|
|
238
|
+
writeTargets.push({
|
|
239
|
+
targetPath: targetPath,
|
|
240
|
+
content,
|
|
241
|
+
mode: entry.mode,
|
|
242
|
+
backupPath,
|
|
243
|
+
});
|
|
223
244
|
pendingWrites.set(targetPath, content);
|
|
224
245
|
if (result.sourceRecords.length > 0) {
|
|
225
246
|
sourceRecordsByTarget.set(targetPath, result.sourceRecords);
|
|
@@ -277,7 +298,8 @@ function pullCommand() {
|
|
|
277
298
|
const historyAvailable = history.ensureStorageDir();
|
|
278
299
|
const pullId = historyAvailable ? history.openPullSession() : null;
|
|
279
300
|
const fetchCache = new Map();
|
|
280
|
-
const
|
|
301
|
+
const dateVars = (0, variables_1.buildDateVars)();
|
|
302
|
+
const firstPass = await runFetchLoop(config, workingDir, dateVars, fetchCache, configPath, history);
|
|
281
303
|
let { writeTargets, allDiffs, sourceRecordsByTarget } = firstPass;
|
|
282
304
|
let insertedFragments = firstPass.insertedFragments;
|
|
283
305
|
let skippedPaths = firstPass.skippedPaths;
|
|
@@ -317,7 +339,7 @@ function pullCommand() {
|
|
|
317
339
|
break;
|
|
318
340
|
}
|
|
319
341
|
console.log('$self config resolved; re-evaluating with merged config...');
|
|
320
|
-
const next = await runFetchLoop(currentConfig, workingDir, fetchCache, configPath, history);
|
|
342
|
+
const next = await runFetchLoop(currentConfig, workingDir, dateVars, fetchCache, configPath, history);
|
|
321
343
|
if (next.hasError) {
|
|
322
344
|
console.error('Aborting due to errors in $self re-evaluated config.');
|
|
323
345
|
process.exit(2);
|
|
@@ -351,7 +373,7 @@ function pullCommand() {
|
|
|
351
373
|
filesWithoutSelf[k] = v;
|
|
352
374
|
}
|
|
353
375
|
if (Object.keys(filesWithoutSelf).length > 0) {
|
|
354
|
-
const second = await runFetchLoop({ ...stableConfig, files: filesWithoutSelf }, workingDir, fetchCache, configPath, history);
|
|
376
|
+
const second = await runFetchLoop({ ...stableConfig, files: filesWithoutSelf }, workingDir, dateVars, fetchCache, configPath, history);
|
|
355
377
|
if (second.hasError) {
|
|
356
378
|
console.error('Aborting due to errors.');
|
|
357
379
|
process.exit(2);
|