@indigoai-us/hq-cloud 6.14.17 → 6.14.19
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/.github/workflows/ci.yml +35 -0
- package/dist/active-company.d.ts +43 -0
- package/dist/active-company.d.ts.map +1 -0
- package/dist/active-company.js +132 -0
- package/dist/active-company.js.map +1 -0
- package/dist/active-company.test.d.ts +2 -0
- package/dist/active-company.test.d.ts.map +1 -0
- package/dist/active-company.test.js +149 -0
- package/dist/active-company.test.js.map +1 -0
- package/dist/bin/sync-runner-company.d.ts +7 -0
- package/dist/bin/sync-runner-company.d.ts.map +1 -1
- package/dist/bin/sync-runner-company.js +21 -1
- package/dist/bin/sync-runner-company.js.map +1 -1
- package/dist/bin/sync-runner-planning.d.ts +27 -1
- package/dist/bin/sync-runner-planning.d.ts.map +1 -1
- package/dist/bin/sync-runner-planning.js +33 -4
- package/dist/bin/sync-runner-planning.js.map +1 -1
- package/dist/bin/sync-runner-planning.test.d.ts +2 -0
- package/dist/bin/sync-runner-planning.test.d.ts.map +1 -0
- package/dist/bin/sync-runner-planning.test.js +115 -0
- package/dist/bin/sync-runner-planning.test.js.map +1 -0
- package/dist/bin/sync-runner-watch-loop.d.ts +10 -2
- package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +201 -25
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner-watch-routes.d.ts +1 -1
- package/dist/bin/sync-runner-watch-routes.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-routes.js +14 -2
- package/dist/bin/sync-runner-watch-routes.js.map +1 -1
- package/dist/bin/sync-runner.d.ts +39 -9
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js +114 -20
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +852 -8
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/rescue-core.js +27 -1
- package/dist/cli/rescue-core.js.map +1 -1
- package/dist/cli/rescue-drop-dir-symlink.test.d.ts +2 -0
- package/dist/cli/rescue-drop-dir-symlink.test.d.ts.map +1 -0
- package/dist/cli/rescue-drop-dir-symlink.test.js +206 -0
- package/dist/cli/rescue-drop-dir-symlink.test.js.map +1 -0
- package/dist/cli/share.d.ts +15 -0
- package/dist/cli/share.d.ts.map +1 -1
- package/dist/cli/share.js +100 -55
- package/dist/cli/share.js.map +1 -1
- package/dist/cli/share.test.js +119 -6
- package/dist/cli/share.test.js.map +1 -1
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +19 -25
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/sync.test.js +121 -0
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/journal.d.ts +3 -1
- package/dist/journal.d.ts.map +1 -1
- package/dist/journal.js +13 -2
- package/dist/journal.js.map +1 -1
- package/dist/journal.test.js +26 -1
- package/dist/journal.test.js.map +1 -1
- package/dist/manifest-reconcile.d.ts +118 -5
- package/dist/manifest-reconcile.d.ts.map +1 -1
- package/dist/manifest-reconcile.js +319 -62
- package/dist/manifest-reconcile.js.map +1 -1
- package/dist/manifest-reconcile.test.js +824 -2
- package/dist/manifest-reconcile.test.js.map +1 -1
- package/dist/personal-vault.d.ts +12 -0
- package/dist/personal-vault.d.ts.map +1 -1
- package/dist/personal-vault.js +20 -0
- package/dist/personal-vault.js.map +1 -1
- package/dist/qmd-reindex.d.ts +88 -11
- package/dist/qmd-reindex.d.ts.map +1 -1
- package/dist/qmd-reindex.js +354 -65
- package/dist/qmd-reindex.js.map +1 -1
- package/dist/qmd-reindex.test.d.ts +4 -0
- package/dist/qmd-reindex.test.d.ts.map +1 -1
- package/dist/qmd-reindex.test.js +285 -3
- package/dist/qmd-reindex.test.js.map +1 -1
- package/dist/s3.d.ts +13 -0
- package/dist/s3.d.ts.map +1 -1
- package/dist/s3.js +34 -1
- package/dist/s3.js.map +1 -1
- package/dist/s3.test.js +60 -1
- package/dist/s3.test.js.map +1 -1
- package/dist/telemetry.d.ts +22 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +79 -0
- package/dist/telemetry.js.map +1 -1
- package/dist/telemetry.test.js +117 -1
- package/dist/telemetry.test.js.map +1 -1
- package/dist/watcher.d.ts +26 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +75 -12
- package/dist/watcher.js.map +1 -1
- package/package.json +1 -1
- package/pnpm-workspace.yaml +1 -1
- package/src/active-company.test.ts +188 -0
- package/src/active-company.ts +168 -0
- package/src/bin/sync-runner-company.ts +29 -1
- package/src/bin/sync-runner-planning.test.ts +131 -0
- package/src/bin/sync-runner-planning.ts +60 -7
- package/src/bin/sync-runner-watch-loop.ts +322 -32
- package/src/bin/sync-runner-watch-routes.ts +14 -1
- package/src/bin/sync-runner.test.ts +1021 -16
- package/src/bin/sync-runner.ts +179 -28
- package/src/cli/rescue-core.ts +26 -1
- package/src/cli/rescue-drop-dir-symlink.test.ts +224 -0
- package/src/cli/share.test.ts +150 -6
- package/src/cli/share.ts +143 -48
- package/src/cli/sync.test.ts +150 -1
- package/src/cli/sync.ts +25 -29
- package/src/journal.test.ts +45 -0
- package/src/journal.ts +18 -1
- package/src/manifest-reconcile.test.ts +1019 -3
- package/src/manifest-reconcile.ts +424 -66
- package/src/personal-vault.ts +23 -0
- package/src/qmd-reindex.test.ts +324 -4
- package/src/qmd-reindex.ts +414 -76
- package/src/s3.test.ts +79 -0
- package/src/s3.ts +48 -1
- package/src/telemetry.test.ts +128 -0
- package/src/telemetry.ts +80 -0
- package/src/watcher.ts +111 -14
- package/test/e2e/watcher-real-chokidar.test.ts +62 -2
- package/test/e2e/watcher-recursive-backend.test.ts +67 -1
- package/test/joiner-manifest-reconcile.integration.test.ts +283 -0
package/.github/workflows/ci.yml
CHANGED
|
@@ -47,3 +47,38 @@ jobs:
|
|
|
47
47
|
- run: pnpm run typecheck
|
|
48
48
|
- name: Cross-tenant isolation E2E (blocking)
|
|
49
49
|
run: pnpm vitest run test/e2e/sync/cross-tenant-isolation.test.ts
|
|
50
|
+
|
|
51
|
+
# ─────────────────────────────────────────────────────────────────────────
|
|
52
|
+
# Integration suite (test/)
|
|
53
|
+
# ─────────────────────────────────────────────────────────────────────────
|
|
54
|
+
# `pnpm test` — and therefore the shared `ci` job, which runs the `coverage`
|
|
55
|
+
# script — is `vitest run src/`. It does NOT cover `test/`. Until this job
|
|
56
|
+
# existed, everything under `test/` ran only on whichever laptop last typed
|
|
57
|
+
# `pnpm test:e2e`, with one exception: cross-tenant-isolation, pinned above.
|
|
58
|
+
#
|
|
59
|
+
# That gap had teeth. `test/joiner-manifest-reconcile.integration.test.ts`
|
|
60
|
+
# is the regression guard for #214 (invited members being told they were
|
|
61
|
+
# solo). It is genuinely load-bearing — neutering the reconciler turns 4 of
|
|
62
|
+
# its 5 cases red — and it had never run in CI. A guard nothing executes is
|
|
63
|
+
# not a guard.
|
|
64
|
+
#
|
|
65
|
+
# The whole suite is ~4s and needs no credentials (share-sync self-skips
|
|
66
|
+
# without its laptop-mini fixture), so there is no reason to cherry-pick
|
|
67
|
+
# files. cross-tenant-isolation runs here too; that duplicate costs ~130ms
|
|
68
|
+
# and keeps this job free of exclusion logic that would silently rot. The
|
|
69
|
+
# blocking gate above stays a separate job on purpose — a watcher flake
|
|
70
|
+
# here must never be mistaken for a P0 tenant-isolation breach.
|
|
71
|
+
integration-tests:
|
|
72
|
+
runs-on: ubuntu-latest
|
|
73
|
+
steps:
|
|
74
|
+
- uses: actions/checkout@v4
|
|
75
|
+
- uses: pnpm/action-setup@v4
|
|
76
|
+
with:
|
|
77
|
+
version: 10
|
|
78
|
+
- uses: actions/setup-node@v4
|
|
79
|
+
with:
|
|
80
|
+
node-version: 22
|
|
81
|
+
cache: pnpm
|
|
82
|
+
- run: pnpm install --frozen-lockfile --config.minimumReleaseAge=1440
|
|
83
|
+
- name: Integration suite (test/)
|
|
84
|
+
run: pnpm run test:e2e
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seed `activeCompany` in `.hq/config.json` for a joiner who has exactly one
|
|
3
|
+
* cloud company.
|
|
4
|
+
*
|
|
5
|
+
* A newly invited member arrives with no local company routing at all. The
|
|
6
|
+
* manifest reconciler restores their `companies/manifest.yaml` entry, but
|
|
7
|
+
* nothing tells HQ which company is *current*, so they stay unrouted even
|
|
8
|
+
* though membership resolved fine. When the answer is unambiguous — one company
|
|
9
|
+
* and no existing choice — recording it is strictly better than leaving the
|
|
10
|
+
* user to guess.
|
|
11
|
+
*
|
|
12
|
+
* Everything here is deliberately conservative. This runs unattended on every
|
|
13
|
+
* sync, against a file the user also edits by hand, so the bar for writing is
|
|
14
|
+
* "the answer cannot be wrong": never overwrite an existing choice, never guess
|
|
15
|
+
* between two companies, and never clobber a file we could not parse.
|
|
16
|
+
*/
|
|
17
|
+
export interface SeedActiveCompanyOptions {
|
|
18
|
+
hqRoot: string;
|
|
19
|
+
/** Slugs of companies that reconciled successfully this run. */
|
|
20
|
+
companySlugs: readonly string[];
|
|
21
|
+
reportDiagnostic?: (diagnostic: {
|
|
22
|
+
event: string;
|
|
23
|
+
message: string;
|
|
24
|
+
err: unknown;
|
|
25
|
+
context: Record<string, unknown>;
|
|
26
|
+
}) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface SeedActiveCompanyResult {
|
|
29
|
+
/** True only when `.hq/config.json` was actually written. */
|
|
30
|
+
written: boolean;
|
|
31
|
+
/** The slug that was seeded, when one was. */
|
|
32
|
+
activeCompany?: string;
|
|
33
|
+
/** Why nothing was written. Absent when `written` is true. */
|
|
34
|
+
skippedReason?: "ambiguous" | "no-companies" | "already-set" | "unreadable-config" | "write-failed";
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Seed `activeCompany` when — and only when — the answer is unambiguous.
|
|
38
|
+
*
|
|
39
|
+
* Never throws: the caller is a sync run whose exit code must not depend on
|
|
40
|
+
* local routing convenience.
|
|
41
|
+
*/
|
|
42
|
+
export declare function seedActiveCompany(options: SeedActiveCompanyOptions): SeedActiveCompanyResult;
|
|
43
|
+
//# sourceMappingURL=active-company.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-company.d.ts","sourceRoot":"","sources":["../src/active-company.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE;QAC9B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,OAAO,CAAC;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,uBAAuB;IACtC,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,aAAa,CAAC,EACV,WAAW,GACX,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,cAAc,CAAC;CACpB;AAwCD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CA0EzB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seed `activeCompany` in `.hq/config.json` for a joiner who has exactly one
|
|
3
|
+
* cloud company.
|
|
4
|
+
*
|
|
5
|
+
* A newly invited member arrives with no local company routing at all. The
|
|
6
|
+
* manifest reconciler restores their `companies/manifest.yaml` entry, but
|
|
7
|
+
* nothing tells HQ which company is *current*, so they stay unrouted even
|
|
8
|
+
* though membership resolved fine. When the answer is unambiguous — one company
|
|
9
|
+
* and no existing choice — recording it is strictly better than leaving the
|
|
10
|
+
* user to guess.
|
|
11
|
+
*
|
|
12
|
+
* Everything here is deliberately conservative. This runs unattended on every
|
|
13
|
+
* sync, against a file the user also edits by hand, so the bar for writing is
|
|
14
|
+
* "the answer cannot be wrong": never overwrite an existing choice, never guess
|
|
15
|
+
* between two companies, and never clobber a file we could not parse.
|
|
16
|
+
*/
|
|
17
|
+
import { randomUUID } from "node:crypto";
|
|
18
|
+
import * as fs from "node:fs";
|
|
19
|
+
import * as path from "node:path";
|
|
20
|
+
function isPlainObject(value) {
|
|
21
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
22
|
+
return false;
|
|
23
|
+
const proto = Object.getPrototypeOf(value);
|
|
24
|
+
return proto === Object.prototype || proto === null;
|
|
25
|
+
}
|
|
26
|
+
function isNonEmptyString(value) {
|
|
27
|
+
return typeof value === "string" && value.length > 0;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Write `config` to `configPath` via temp-file + rename, so a reader never
|
|
31
|
+
* observes a half-written config and a crash cannot truncate the original.
|
|
32
|
+
*/
|
|
33
|
+
function writeConfigAtomically(configPath, config) {
|
|
34
|
+
const dir = path.dirname(configPath);
|
|
35
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
36
|
+
const temporaryPath = path.join(dir, `.config-${process.pid}-${randomUUID()}.json`);
|
|
37
|
+
try {
|
|
38
|
+
fs.writeFileSync(temporaryPath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
|
|
39
|
+
fs.renameSync(temporaryPath, configPath);
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
// The rename consumed the temp file on the success path; this only fires
|
|
43
|
+
// when writing or renaming threw, and must not mask the original error.
|
|
44
|
+
try {
|
|
45
|
+
fs.rmSync(temporaryPath, { force: true });
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Best effort — a stray temp file is not worth failing a sync over.
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Seed `activeCompany` when — and only when — the answer is unambiguous.
|
|
54
|
+
*
|
|
55
|
+
* Never throws: the caller is a sync run whose exit code must not depend on
|
|
56
|
+
* local routing convenience.
|
|
57
|
+
*/
|
|
58
|
+
export function seedActiveCompany(options) {
|
|
59
|
+
const slugs = Array.from(new Set(options.companySlugs.filter(isNonEmptyString)));
|
|
60
|
+
if (slugs.length === 0)
|
|
61
|
+
return { written: false, skippedReason: "no-companies" };
|
|
62
|
+
// Two or more companies is a genuine choice and belongs to the user. Picking
|
|
63
|
+
// one would route them somewhere arbitrary and look like a bug.
|
|
64
|
+
if (slugs.length > 1)
|
|
65
|
+
return { written: false, skippedReason: "ambiguous" };
|
|
66
|
+
const activeCompany = slugs[0];
|
|
67
|
+
const configPath = path.join(options.hqRoot, ".hq", "config.json");
|
|
68
|
+
let config = {};
|
|
69
|
+
let raw;
|
|
70
|
+
try {
|
|
71
|
+
raw = fs.readFileSync(configPath, "utf8");
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
if (err.code !== "ENOENT") {
|
|
75
|
+
// An unreadable config is user state we cannot reason about. Leave it.
|
|
76
|
+
options.reportDiagnostic?.({
|
|
77
|
+
event: "runner.active_company.config_unreadable",
|
|
78
|
+
message: "could not read .hq/config.json; activeCompany not seeded",
|
|
79
|
+
err,
|
|
80
|
+
context: { configPath },
|
|
81
|
+
});
|
|
82
|
+
return { written: false, skippedReason: "unreadable-config" };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (raw !== undefined) {
|
|
86
|
+
let parsed;
|
|
87
|
+
try {
|
|
88
|
+
parsed = JSON.parse(raw);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
// Malformed JSON is almost always a half-finished hand edit. Overwriting
|
|
92
|
+
// it would destroy whatever the user was in the middle of doing.
|
|
93
|
+
options.reportDiagnostic?.({
|
|
94
|
+
event: "runner.active_company.config_malformed",
|
|
95
|
+
message: ".hq/config.json is not valid JSON; left untouched",
|
|
96
|
+
err,
|
|
97
|
+
context: { configPath },
|
|
98
|
+
});
|
|
99
|
+
return { written: false, skippedReason: "unreadable-config" };
|
|
100
|
+
}
|
|
101
|
+
if (!isPlainObject(parsed)) {
|
|
102
|
+
options.reportDiagnostic?.({
|
|
103
|
+
event: "runner.active_company.config_malformed",
|
|
104
|
+
message: ".hq/config.json is not a JSON object; left untouched",
|
|
105
|
+
err: undefined,
|
|
106
|
+
context: { configPath },
|
|
107
|
+
});
|
|
108
|
+
return { written: false, skippedReason: "unreadable-config" };
|
|
109
|
+
}
|
|
110
|
+
config = parsed;
|
|
111
|
+
}
|
|
112
|
+
// `companySlug` counts as already-set: sync-core resolves it as the active
|
|
113
|
+
// company when `activeCompany` is absent, so writing `activeCompany` here
|
|
114
|
+
// would silently re-route a user who already had an effective answer.
|
|
115
|
+
if (isNonEmptyString(config.activeCompany) || isNonEmptyString(config.companySlug)) {
|
|
116
|
+
return { written: false, skippedReason: "already-set" };
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
writeConfigAtomically(configPath, { ...config, activeCompany });
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
options.reportDiagnostic?.({
|
|
123
|
+
event: "runner.active_company.write_failed",
|
|
124
|
+
message: "failed to seed activeCompany in .hq/config.json",
|
|
125
|
+
err,
|
|
126
|
+
context: { configPath, activeCompany },
|
|
127
|
+
});
|
|
128
|
+
return { written: false, skippedReason: "write-failed" };
|
|
129
|
+
}
|
|
130
|
+
return { written: true, activeCompany };
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=active-company.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-company.js","sourceRoot":"","sources":["../src/active-company.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-company.test.d.ts","sourceRoot":"","sources":["../src/active-company.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
2
|
+
import * as fs from "node:fs";
|
|
3
|
+
import * as os from "node:os";
|
|
4
|
+
import * as path from "node:path";
|
|
5
|
+
import { seedActiveCompany } from "./active-company.js";
|
|
6
|
+
let hqRoot;
|
|
7
|
+
afterEach(() => {
|
|
8
|
+
if (hqRoot) {
|
|
9
|
+
fs.rmSync(hqRoot, { recursive: true, force: true });
|
|
10
|
+
hqRoot = undefined;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
function makeHqRoot() {
|
|
14
|
+
return fs.mkdtempSync(path.join(os.tmpdir(), "hq-active-company-"));
|
|
15
|
+
}
|
|
16
|
+
function configPath(root) {
|
|
17
|
+
return path.join(root, ".hq", "config.json");
|
|
18
|
+
}
|
|
19
|
+
function writeConfig(root, contents) {
|
|
20
|
+
const p = configPath(root);
|
|
21
|
+
fs.mkdirSync(path.dirname(p), { recursive: true });
|
|
22
|
+
fs.writeFileSync(p, contents, "utf8");
|
|
23
|
+
return p;
|
|
24
|
+
}
|
|
25
|
+
function readConfig(root) {
|
|
26
|
+
return JSON.parse(fs.readFileSync(configPath(root), "utf8"));
|
|
27
|
+
}
|
|
28
|
+
describe("seedActiveCompany", () => {
|
|
29
|
+
it("seeds the single company when activeCompany is unset", () => {
|
|
30
|
+
hqRoot = makeHqRoot();
|
|
31
|
+
writeConfig(hqRoot, JSON.stringify({ someOtherSetting: true }));
|
|
32
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
|
|
33
|
+
written: true,
|
|
34
|
+
activeCompany: "boring-ecom",
|
|
35
|
+
});
|
|
36
|
+
expect(readConfig(hqRoot)).toEqual({
|
|
37
|
+
someOtherSetting: true,
|
|
38
|
+
activeCompany: "boring-ecom",
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
it("creates a missing config file", () => {
|
|
42
|
+
hqRoot = makeHqRoot();
|
|
43
|
+
expect(fs.existsSync(configPath(hqRoot))).toBe(false);
|
|
44
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
|
|
45
|
+
written: true,
|
|
46
|
+
activeCompany: "boring-ecom",
|
|
47
|
+
});
|
|
48
|
+
expect(readConfig(hqRoot)).toEqual({ activeCompany: "boring-ecom" });
|
|
49
|
+
});
|
|
50
|
+
it("no-ops on zero companies", () => {
|
|
51
|
+
hqRoot = makeHqRoot();
|
|
52
|
+
const before = writeConfig(hqRoot, JSON.stringify({ keep: 1 }));
|
|
53
|
+
const raw = fs.readFileSync(before, "utf8");
|
|
54
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: [] })).toEqual({
|
|
55
|
+
written: false,
|
|
56
|
+
skippedReason: "no-companies",
|
|
57
|
+
});
|
|
58
|
+
expect(fs.readFileSync(before, "utf8")).toBe(raw);
|
|
59
|
+
});
|
|
60
|
+
// Two companies is a real choice. Guessing would route the user somewhere
|
|
61
|
+
// arbitrary, which is indistinguishable from a bug to the person it happens to.
|
|
62
|
+
it("no-ops on two or more companies rather than guessing", () => {
|
|
63
|
+
hqRoot = makeHqRoot();
|
|
64
|
+
const p = writeConfig(hqRoot, JSON.stringify({ keep: 1 }));
|
|
65
|
+
const raw = fs.readFileSync(p, "utf8");
|
|
66
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom", "acme"] })).toEqual({ written: false, skippedReason: "ambiguous" });
|
|
67
|
+
expect(fs.readFileSync(p, "utf8")).toBe(raw);
|
|
68
|
+
});
|
|
69
|
+
it("never overwrites an existing activeCompany", () => {
|
|
70
|
+
hqRoot = makeHqRoot();
|
|
71
|
+
const p = writeConfig(hqRoot, JSON.stringify({ activeCompany: "chosen-by-user" }));
|
|
72
|
+
const raw = fs.readFileSync(p, "utf8");
|
|
73
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
|
|
74
|
+
written: false,
|
|
75
|
+
skippedReason: "already-set",
|
|
76
|
+
});
|
|
77
|
+
expect(fs.readFileSync(p, "utf8")).toBe(raw);
|
|
78
|
+
});
|
|
79
|
+
// Even when the existing value names a company they have since left. Repairing
|
|
80
|
+
// that is a separate, user-visible decision — not something a sync should do
|
|
81
|
+
// silently underneath them.
|
|
82
|
+
it("never overwrites activeCompany even for a company the user has left", () => {
|
|
83
|
+
hqRoot = makeHqRoot();
|
|
84
|
+
writeConfig(hqRoot, JSON.stringify({ activeCompany: "former-employer" }));
|
|
85
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
|
|
86
|
+
written: false,
|
|
87
|
+
skippedReason: "already-set",
|
|
88
|
+
});
|
|
89
|
+
expect(readConfig(hqRoot).activeCompany).toBe("former-employer");
|
|
90
|
+
});
|
|
91
|
+
// sync-core's resolveActiveCompany falls back to `companySlug`, so a config
|
|
92
|
+
// carrying only that already HAS an effective answer. Writing activeCompany
|
|
93
|
+
// would silently re-route the user.
|
|
94
|
+
it("treats a legacy companySlug as already-set", () => {
|
|
95
|
+
hqRoot = makeHqRoot();
|
|
96
|
+
const p = writeConfig(hqRoot, JSON.stringify({ companySlug: "legacy-choice" }));
|
|
97
|
+
const raw = fs.readFileSync(p, "utf8");
|
|
98
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
|
|
99
|
+
written: false,
|
|
100
|
+
skippedReason: "already-set",
|
|
101
|
+
});
|
|
102
|
+
expect(fs.readFileSync(p, "utf8")).toBe(raw);
|
|
103
|
+
});
|
|
104
|
+
it("leaves malformed JSON untouched and reports a diagnostic", () => {
|
|
105
|
+
hqRoot = makeHqRoot();
|
|
106
|
+
const p = writeConfig(hqRoot, '{"activeCompany": "half-edited"');
|
|
107
|
+
const raw = fs.readFileSync(p, "utf8");
|
|
108
|
+
const diagnostics = [];
|
|
109
|
+
expect(seedActiveCompany({
|
|
110
|
+
hqRoot,
|
|
111
|
+
companySlugs: ["boring-ecom"],
|
|
112
|
+
reportDiagnostic: (d) => diagnostics.push(d),
|
|
113
|
+
})).toEqual({ written: false, skippedReason: "unreadable-config" });
|
|
114
|
+
expect(fs.readFileSync(p, "utf8")).toBe(raw);
|
|
115
|
+
expect(diagnostics).toHaveLength(1);
|
|
116
|
+
expect(diagnostics[0].event).toBe("runner.active_company.config_malformed");
|
|
117
|
+
});
|
|
118
|
+
it("leaves a non-object config untouched", () => {
|
|
119
|
+
hqRoot = makeHqRoot();
|
|
120
|
+
const p = writeConfig(hqRoot, "[1, 2, 3]");
|
|
121
|
+
const raw = fs.readFileSync(p, "utf8");
|
|
122
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
|
|
123
|
+
written: false,
|
|
124
|
+
skippedReason: "unreadable-config",
|
|
125
|
+
});
|
|
126
|
+
expect(fs.readFileSync(p, "utf8")).toBe(raw);
|
|
127
|
+
});
|
|
128
|
+
it("preserves unknown keys and leaves no temp files behind", () => {
|
|
129
|
+
hqRoot = makeHqRoot();
|
|
130
|
+
writeConfig(hqRoot, JSON.stringify({ nested: { a: 1 }, list: [1, 2], flag: false }));
|
|
131
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] }).written).toBe(true);
|
|
132
|
+
expect(readConfig(hqRoot)).toEqual({
|
|
133
|
+
nested: { a: 1 },
|
|
134
|
+
list: [1, 2],
|
|
135
|
+
flag: false,
|
|
136
|
+
activeCompany: "boring-ecom",
|
|
137
|
+
});
|
|
138
|
+
const strays = fs
|
|
139
|
+
.readdirSync(path.join(hqRoot, ".hq"))
|
|
140
|
+
.filter((f) => f.startsWith(".config-"));
|
|
141
|
+
expect(strays).toEqual([]);
|
|
142
|
+
});
|
|
143
|
+
it("collapses duplicate slugs — one company named twice is not ambiguous", () => {
|
|
144
|
+
hqRoot = makeHqRoot();
|
|
145
|
+
expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom", "boring-ecom"] })).toEqual({ written: true, activeCompany: "boring-ecom" });
|
|
146
|
+
expect(readConfig(hqRoot).activeCompany).toBe("boring-ecom");
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
//# sourceMappingURL=active-company.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-company.test.js","sourceRoot":"","sources":["../src/active-company.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,12 @@ export interface CompanyFanoutResult {
|
|
|
19
19
|
path: string;
|
|
20
20
|
direction: "pull" | "push";
|
|
21
21
|
}>;
|
|
22
|
+
pushPathResults: Array<{
|
|
23
|
+
relativePath: string;
|
|
24
|
+
status: "accepted" | "refused";
|
|
25
|
+
operation: "delete" | "tombstone";
|
|
26
|
+
reason?: string;
|
|
27
|
+
}>;
|
|
22
28
|
}
|
|
23
29
|
export declare function executeCompanyFanout(options: {
|
|
24
30
|
plan: RunnerTarget[];
|
|
@@ -34,6 +40,7 @@ export declare function executeCompanyFanout(options: {
|
|
|
34
40
|
resolveDeletePolicy: () => DeletePropagationPolicy;
|
|
35
41
|
emit: (event: RunnerEvent) => void;
|
|
36
42
|
scopePaths?: string[];
|
|
43
|
+
deleteScopePaths?: string[];
|
|
37
44
|
telemetryClient?: CloudTelemetryClient | null;
|
|
38
45
|
telemetryClaims?: TelemetryClaims | null;
|
|
39
46
|
telemetrySessionId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner-company.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-company.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAqB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,KAAK,EACV,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,KAAK,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;IACnD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-runner-company.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-company.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAqB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,KAAK,EACV,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,KAAK,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,CAAC,CAAC;IACH,eAAe,EAAE,KAAK,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;QAC/B,SAAS,EAAE,QAAQ,GAAG,WAAW,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;IACnD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAub/B"}
|
|
@@ -13,6 +13,7 @@ export async function executeCompanyFanout(options) {
|
|
|
13
13
|
const allConflicts = [];
|
|
14
14
|
const stateByCompany = new Map();
|
|
15
15
|
let meaningfulOutcomeCount = 0;
|
|
16
|
+
const pushPathResults = [];
|
|
16
17
|
for (const target of options.plan) {
|
|
17
18
|
const companyLabel = target.slug;
|
|
18
19
|
const state = createCompanyState(companyLabel);
|
|
@@ -189,7 +190,20 @@ export async function executeCompanyFanout(options) {
|
|
|
189
190
|
...(pushPrefixSet !== undefined
|
|
190
191
|
? { prefixSet: pushPrefixSet }
|
|
191
192
|
: {}),
|
|
193
|
+
...(options.deleteScopePaths?.length
|
|
194
|
+
? { deleteScopeRoots: options.deleteScopePaths }
|
|
195
|
+
: {}),
|
|
192
196
|
});
|
|
197
|
+
for (const result of pushResult.pathResults ?? []) {
|
|
198
|
+
pushPathResults.push({
|
|
199
|
+
relativePath: target.personalMode === true
|
|
200
|
+
? result.path
|
|
201
|
+
: `companies/${target.slug}/${result.path}`,
|
|
202
|
+
status: result.status,
|
|
203
|
+
operation: result.operation,
|
|
204
|
+
...(result.reason ? { reason: result.reason } : {}),
|
|
205
|
+
});
|
|
206
|
+
}
|
|
193
207
|
}
|
|
194
208
|
if (doPull && !pushResult.aborted) {
|
|
195
209
|
activePhase = "pull";
|
|
@@ -389,7 +403,13 @@ export async function executeCompanyFanout(options) {
|
|
|
389
403
|
}, { claims: options.telemetryClaims });
|
|
390
404
|
}
|
|
391
405
|
}
|
|
392
|
-
return {
|
|
406
|
+
return {
|
|
407
|
+
stateByCompany,
|
|
408
|
+
errors,
|
|
409
|
+
meaningfulOutcomeCount,
|
|
410
|
+
allConflicts,
|
|
411
|
+
pushPathResults,
|
|
412
|
+
};
|
|
393
413
|
}
|
|
394
414
|
function effectivePushPrefixSet(aclPrefixSet, scopePaths) {
|
|
395
415
|
if (scopePaths.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner-company.js","sourceRoot":"","sources":["../../src/bin/sync-runner-company.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-runner-company.js","sourceRoot":"","sources":["../../src/bin/sync-runner-company.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,11 +22,35 @@ export interface RunnerTarget {
|
|
|
22
22
|
slug: string;
|
|
23
23
|
name?: string;
|
|
24
24
|
bucketName?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Entity liveness as observed AT PLAN TIME, copied off the `entity.get`
|
|
27
|
+
* result this plan was built from. Carried so a downstream consumer can make
|
|
28
|
+
* a liveness decision without paying a second round trip.
|
|
29
|
+
*
|
|
30
|
+
* These deliberately do NOT gate SYNC. A suspended company still syncs — that
|
|
31
|
+
* is user-visible behavior and not ours to change here. They exist so the
|
|
32
|
+
* MANIFEST decision (see `manifest-reconcile.ts`) can be as strict as it was
|
|
33
|
+
* when it re-fetched the entity itself. Absent fields mean "unknown", and
|
|
34
|
+
* every consumer of them is required to fail closed.
|
|
35
|
+
*/
|
|
36
|
+
entityType?: string;
|
|
37
|
+
entityStatus?: string;
|
|
25
38
|
personalMode?: boolean;
|
|
26
39
|
journalSlug?: string;
|
|
27
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Why a run cannot proceed to a fanout.
|
|
43
|
+
*
|
|
44
|
+
* - `no-memberships` — the caller resolved fine but belongs to no company.
|
|
45
|
+
* Usually a joiner whose invite is still pending acceptance.
|
|
46
|
+
* - `no-person-entity` — the caller is signed in but has no personal entity to
|
|
47
|
+
* sync into, so even `--personal` has no target.
|
|
48
|
+
*/
|
|
49
|
+
export type SetupNeededReason = "no-memberships" | "no-person-entity";
|
|
28
50
|
export type MembershipResolution = {
|
|
29
51
|
status: "setup-needed";
|
|
52
|
+
reason: SetupNeededReason;
|
|
53
|
+
pendingInviteCount?: number;
|
|
30
54
|
} | {
|
|
31
55
|
status: "memberships";
|
|
32
56
|
memberships: Pick<Membership, "companyUid">[];
|
|
@@ -40,9 +64,10 @@ export declare function resolveMembershipsForRun(options: {
|
|
|
40
64
|
stderr: {
|
|
41
65
|
write: (chunk: string) => boolean | void;
|
|
42
66
|
};
|
|
67
|
+
/** Returns how many invites were still pending after the claim attempt. */
|
|
43
68
|
runClaimDance: (client: VaultClientSurface, claims: IdentityClaims, stderr: {
|
|
44
69
|
write: (chunk: string) => boolean | void;
|
|
45
|
-
}) => Promise<
|
|
70
|
+
}) => Promise<number>;
|
|
46
71
|
listMemberships: (client: VaultClientSurface) => Promise<Pick<Membership, "companyUid">[]>;
|
|
47
72
|
}): Promise<MembershipResolution>;
|
|
48
73
|
export declare function buildFanoutPlan(options: {
|
|
@@ -55,6 +80,7 @@ export declare function buildFanoutPlan(options: {
|
|
|
55
80
|
resolveSkipPersonal: (flag: boolean) => boolean;
|
|
56
81
|
}): Promise<{
|
|
57
82
|
status: "setup-needed";
|
|
83
|
+
reason: SetupNeededReason;
|
|
58
84
|
} | {
|
|
59
85
|
status: "plan";
|
|
60
86
|
plan: RunnerTarget[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner-planning.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-planning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAMlF,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,UAAU,cAAc;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"sync-runner-planning.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-planning.ts"],"names":[],"mappings":"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"}
|