@flytedesk/app-kit 0.3.0 → 0.4.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 +6 -3
- package/dist/bigquery/client.d.ts +18 -0
- package/dist/bigquery/client.js +37 -0
- package/dist/bigquery/client.js.map +1 -0
- package/dist/bigquery/errors.d.ts +26 -0
- package/dist/bigquery/errors.js +80 -0
- package/dist/bigquery/errors.js.map +1 -0
- package/dist/bigquery/extract.d.ts +15 -0
- package/dist/bigquery/extract.js +88 -0
- package/dist/bigquery/extract.js.map +1 -0
- package/dist/bigquery/index.d.ts +47 -0
- package/dist/bigquery/index.js +46 -0
- package/dist/bigquery/index.js.map +1 -0
- package/dist/bigquery/labels.d.ts +16 -0
- package/dist/bigquery/labels.js +26 -0
- package/dist/bigquery/labels.js.map +1 -0
- package/dist/bigquery/query.d.ts +16 -0
- package/dist/bigquery/query.js +86 -0
- package/dist/bigquery/query.js.map +1 -0
- package/dist/bigquery/types.d.ts +155 -0
- package/dist/bigquery/types.js +15 -0
- package/dist/bigquery/types.js.map +1 -0
- package/dist/chat/callback-secret.d.ts +21 -0
- package/dist/chat/callback-secret.js +33 -0
- package/dist/chat/callback-secret.js.map +1 -0
- package/dist/chat/env.d.ts +27 -0
- package/dist/chat/env.js +44 -0
- package/dist/chat/env.js.map +1 -0
- package/dist/chat/index.d.ts +72 -0
- package/dist/chat/index.js +70 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/launcher.d.ts +43 -0
- package/dist/chat/launcher.js +103 -0
- package/dist/chat/launcher.js.map +1 -0
- package/dist/chat/mcp-protocol.d.ts +96 -0
- package/dist/chat/mcp-protocol.js +200 -0
- package/dist/chat/mcp-protocol.js.map +1 -0
- package/dist/chat/mcp-server.d.ts +17 -0
- package/dist/chat/mcp-server.js +71 -0
- package/dist/chat/mcp-server.js.map +1 -0
- package/dist/chat/types.d.ts +91 -0
- package/dist/chat/types.js +5 -0
- package/dist/chat/types.js.map +1 -0
- package/dist/cli/flags-sync.js +2 -5
- package/dist/cli/flags-sync.js.map +1 -1
- package/dist/cli/profile-sync.js +2 -5
- package/dist/cli/profile-sync.js.map +1 -1
- package/dist/cli/sync-engine.d.ts +32 -0
- package/dist/cli/sync-engine.js +190 -23
- package/dist/cli/sync-engine.js.map +1 -1
- package/dist/cli/trace-sync.js +2 -5
- package/dist/cli/trace-sync.js.map +1 -1
- package/package.json +10 -1
- package/scripts/pending-release-count.mjs +37 -0
- package/scripts/release.sh +126 -0
- package/scripts/release.test.ts +205 -0
package/dist/cli/sync-engine.js
CHANGED
|
@@ -53,9 +53,53 @@
|
|
|
53
53
|
*/
|
|
54
54
|
import { createHash } from "node:crypto";
|
|
55
55
|
import spawn from "cross-spawn";
|
|
56
|
-
import { copyFileSync, cpSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
56
|
+
import { copyFileSync, cpSync, existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync, } from "node:fs";
|
|
57
57
|
import path from "node:path";
|
|
58
58
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
59
|
+
/**
|
|
60
|
+
* Whether the module at `moduleUrl` (pass `import.meta.url`) is the one Node was
|
|
61
|
+
* invoked to run directly — the ESM successor to `require.main === module`, shared
|
|
62
|
+
* by every bin wrapper (trace-sync.ts/profile-sync.ts/flags-sync.ts) so there's one
|
|
63
|
+
* fix point instead of three copies of the same check.
|
|
64
|
+
*
|
|
65
|
+
* A raw `import.meta.url === pathToFileURL(process.argv[1]).href` string comparison
|
|
66
|
+
* (the previous check) is NOT reliable: a package manager's bin shim can leave
|
|
67
|
+
* `argv[1]` pointing at a *symlink* while Node resolves the ESM module id through
|
|
68
|
+
* that symlink to the real target path for `import.meta.url` — so the two name the
|
|
69
|
+
* same file but compare unequal. This is not hypothetical: pnpm's
|
|
70
|
+
* `node_modules/<pkg>` is exactly such a symlink into its content-addressable
|
|
71
|
+
* store, and it reproduces on Windows for every real invocation path (`pnpm exec
|
|
72
|
+
* flags-sync init`, an npm-script `"flags-sync init"` run via `pnpm run`, etc.) —
|
|
73
|
+
* confirmed by instrumenting a real 0.3.0 install: `argv[1]` resolved to
|
|
74
|
+
* `...\node_modules\@flytedesk\app-kit\dist\cli\flags-sync.js` (the symlinked
|
|
75
|
+
* path) while `import.meta.url` resolved to
|
|
76
|
+
* `...\node_modules\.pnpm\@flytedesk+app-kit@0.3.0_.../node_modules\@flytedesk\app-kit\dist\cli\flags-sync.js`
|
|
77
|
+
* (the real store path). The mismatch meant `main()` was never called at all —
|
|
78
|
+
* every CLI entrypoint silently no-op'd: exit code 0, no output, nothing written.
|
|
79
|
+
*
|
|
80
|
+
* `realpathSync.native` (the real OS `realpath` syscall, not Node's pure-JS
|
|
81
|
+
* fallback — verified directly: the JS fallback leaves an on-disk casing mismatch
|
|
82
|
+
* unresolved, e.g. `RealFile.js` vs `realfile.js` compare unequal even though NTFS
|
|
83
|
+
* treats them as the same file, while `.native` correctly normalizes both to the
|
|
84
|
+
* same canonical path) resolves both sides to the same canonical filesystem path
|
|
85
|
+
* first — following symlinks AND normalizing casing — so the comparison is correct
|
|
86
|
+
* regardless of symlinks, path-separator style, or casing differences between how
|
|
87
|
+
* a shell/bin-shim sets `argv[1]` and how Node constructs `import.meta.url` for
|
|
88
|
+
* the same file.
|
|
89
|
+
*/
|
|
90
|
+
export function isRunningAsMain(moduleUrl) {
|
|
91
|
+
if (process.argv[1] === undefined)
|
|
92
|
+
return false;
|
|
93
|
+
try {
|
|
94
|
+
return (realpathSync.native(fileURLToPath(moduleUrl)) ===
|
|
95
|
+
realpathSync.native(process.argv[1]));
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Either path doesn't exist / isn't resolvable (e.g. a REPL or a bundler that
|
|
99
|
+
// gives import.meta.url a non-file URL) — definitely not "run directly" then.
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
59
103
|
export class SyncCliError extends Error {
|
|
60
104
|
}
|
|
61
105
|
function readJson(filePath) {
|
|
@@ -257,6 +301,101 @@ class SyncEngine {
|
|
|
257
301
|
: lines.slice(firstModelLine).join("\n");
|
|
258
302
|
return body.trim();
|
|
259
303
|
}
|
|
304
|
+
static DATASOURCE_SCHEMAS_RE = /datasource\s+\w+\s*\{[^}]*\bschemas\s*=\s*\[([^\]]*)\]/;
|
|
305
|
+
/**
|
|
306
|
+
* The Postgres schema name(s) declared on the consumer's own `datasource` block
|
|
307
|
+
* (`schemas = [...]`) in a flat schema.prisma's full text. Prisma's multiSchema
|
|
308
|
+
* feature requires `@@schema(...)` on every single model once this array is
|
|
309
|
+
* non-empty (P1012 otherwise) — see resolveFragmentBody, which uses this to
|
|
310
|
+
* decide whether merged-in fragment models need one. Returns `[]` when the
|
|
311
|
+
* datasource has no `schemas` setting at all (a non-multiSchema consumer).
|
|
312
|
+
*/
|
|
313
|
+
readConsumerSchemaNames(schemaContent) {
|
|
314
|
+
const match = schemaContent.match(SyncEngine.DATASOURCE_SCHEMAS_RE);
|
|
315
|
+
if (!match)
|
|
316
|
+
return [];
|
|
317
|
+
return match[1]
|
|
318
|
+
.split(",")
|
|
319
|
+
.map((entry) => entry.trim())
|
|
320
|
+
.filter((entry) => entry.length > 0)
|
|
321
|
+
.map((entry) => entry.replace(/^["']|["']$/g, ""));
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Inserts `@@schema("<name>")` as the last block attribute of every top-level
|
|
325
|
+
* `model { ... }` in `body`, immediately before its closing brace — the same
|
|
326
|
+
* position a hand-written model in a multiSchema consumer's own schema.prisma
|
|
327
|
+
* uses (see FLAT_SCHEMA_FIXTURE in sync-engine.test.ts).
|
|
328
|
+
*
|
|
329
|
+
* Relies on this package's own fragment files' formatting convention (verified
|
|
330
|
+
* against every prisma/fragments/*.prisma file): `model Foo {` always starts at
|
|
331
|
+
* column 0, and its matching `}` is always alone on its own line at column 0 —
|
|
332
|
+
* the same convention extractFragmentBody's firstModelLine scan already depends
|
|
333
|
+
* on. This is deliberately not a general-purpose Prisma parser (it would, for
|
|
334
|
+
* instance, mis-handle a `{`/`}` inside a string default like flags.prisma's
|
|
335
|
+
* `@default("{}")` if it tried to brace-count) — it only ever needs to run
|
|
336
|
+
* against this package's own fragment files, never a consumer's.
|
|
337
|
+
*/
|
|
338
|
+
injectSchemaAttribute(body, schemaName) {
|
|
339
|
+
const lines = body.split(/\r?\n/);
|
|
340
|
+
const out = [];
|
|
341
|
+
let inModel = false;
|
|
342
|
+
for (const line of lines) {
|
|
343
|
+
if (!inModel && /^model\s+\w+\s*\{$/.test(line)) {
|
|
344
|
+
inModel = true;
|
|
345
|
+
out.push(line);
|
|
346
|
+
continue;
|
|
347
|
+
}
|
|
348
|
+
if (inModel && line === "}") {
|
|
349
|
+
out.push(` @@schema(${JSON.stringify(schemaName)})`);
|
|
350
|
+
out.push(line);
|
|
351
|
+
inModel = false;
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
354
|
+
out.push(line);
|
|
355
|
+
}
|
|
356
|
+
return out.join("\n");
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Resolves this fragment's exact body text as it should be merged into a
|
|
360
|
+
* consumer's flat schema.prisma: extractFragmentBody's output, with
|
|
361
|
+
* `@@schema(...)` injected into every model when the consumer's datasource
|
|
362
|
+
* declares `schemas = [...]` (multiSchema) — fixing the bug where a merged
|
|
363
|
+
* fragment had no `@@schema` at all and broke `prisma validate` (P1012:
|
|
364
|
+
* "This model is missing an @@schema attribute") for every multiSchema consumer,
|
|
365
|
+
* which is both real consumers (flytedesk-id, media-planner).
|
|
366
|
+
*
|
|
367
|
+
* `schemaNameOverride` is the CLI's `--schema-name` flag. When the consumer
|
|
368
|
+
* declares exactly one schema name, that name is used automatically and the
|
|
369
|
+
* override (if given) is only validated, not required. When more than one is
|
|
370
|
+
* declared, this engine has no way to guess which one a given fragment's models
|
|
371
|
+
* belong to — guessing silently is exactly the class of bug this fixes — so
|
|
372
|
+
* `--schema-name` becomes required and this fails loudly (via `fail()`,
|
|
373
|
+
* surfaced to the consumer with the exact flag to pass) rather than picking one.
|
|
374
|
+
*/
|
|
375
|
+
resolveFragmentBody(schemaFileContent, schemaNameOverride) {
|
|
376
|
+
const rawBody = this.extractFragmentBody(readFileSync(this.fragmentSrcPath, "utf8"));
|
|
377
|
+
const declaredSchemas = this.readConsumerSchemaNames(schemaFileContent);
|
|
378
|
+
if (declaredSchemas.length === 0) {
|
|
379
|
+
return rawBody;
|
|
380
|
+
}
|
|
381
|
+
let schemaName;
|
|
382
|
+
if (declaredSchemas.length === 1) {
|
|
383
|
+
schemaName = schemaNameOverride ?? declaredSchemas[0];
|
|
384
|
+
}
|
|
385
|
+
else if (schemaNameOverride) {
|
|
386
|
+
schemaName = schemaNameOverride;
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
this.fail(`the consumer's datasource declares multiple schemas (${declaredSchemas.join(", ")}) via ` +
|
|
390
|
+
`\`schemas = [...]\`. ${this.fragment.binName} can't guess which one this fragment's model(s) ` +
|
|
391
|
+
`belong to — pass --schema-name=<name> to disambiguate, e.g. ` +
|
|
392
|
+
`"${this.fragment.binName} init --schema-name=${declaredSchemas[0]}".`);
|
|
393
|
+
}
|
|
394
|
+
if (!declaredSchemas.includes(schemaName)) {
|
|
395
|
+
this.fail(`--schema-name=${schemaName} is not one of the consumer's declared schemas (${declaredSchemas.join(", ")}).`);
|
|
396
|
+
}
|
|
397
|
+
return this.injectSchemaAttribute(rawBody, schemaName);
|
|
398
|
+
}
|
|
260
399
|
markerStart() {
|
|
261
400
|
return `// --- @flytedesk/app-kit:${this.fragment.name} start (managed by ${this.fragment.binName} — do not hand-edit this region) ---`;
|
|
262
401
|
}
|
|
@@ -292,12 +431,12 @@ class SyncEngine {
|
|
|
292
431
|
* else in the file (the consumer's own models, datasource/generator blocks,
|
|
293
432
|
* `schemas = [...]`, other fragments' regions) is left byte-for-byte untouched.
|
|
294
433
|
*/
|
|
295
|
-
mergeIntoFlatSchema(schemaFilePath) {
|
|
434
|
+
mergeIntoFlatSchema(schemaFilePath, schemaNameOverride) {
|
|
296
435
|
if (!existsSync(schemaFilePath)) {
|
|
297
436
|
this.fail(`schema file not found at ${schemaFilePath} (expected a flat single-file prisma/schema.prisma)`);
|
|
298
437
|
}
|
|
299
438
|
const original = readFileSync(schemaFilePath, "utf8");
|
|
300
|
-
const body = this.
|
|
439
|
+
const body = this.resolveFragmentBody(original, schemaNameOverride);
|
|
301
440
|
const existingRegion = this.extractInstalledRegion(original);
|
|
302
441
|
if (existingRegion === body) {
|
|
303
442
|
return;
|
|
@@ -314,7 +453,7 @@ class SyncEngine {
|
|
|
314
453
|
}
|
|
315
454
|
/** Installs the fragment for either layout — the one call site cmdInit/cmdApply
|
|
316
455
|
* both use, so they can never disagree about which path a given layout takes. */
|
|
317
|
-
installFragment(layout) {
|
|
456
|
+
installFragment(layout, schemaNameOverride) {
|
|
318
457
|
const bin = this.fragment.binName;
|
|
319
458
|
if (layout.kind === "folder") {
|
|
320
459
|
console.log(`${bin}: copying ${this.fragment.name}.prisma into ${layout.folder}`);
|
|
@@ -322,33 +461,40 @@ class SyncEngine {
|
|
|
322
461
|
}
|
|
323
462
|
else {
|
|
324
463
|
console.log(`${bin}: merging ${this.fragment.name} model(s) into ${layout.file} (managed region)`);
|
|
325
|
-
this.mergeIntoFlatSchema(layout.file);
|
|
464
|
+
this.mergeIntoFlatSchema(layout.file, schemaNameOverride);
|
|
326
465
|
}
|
|
327
466
|
}
|
|
328
467
|
/**
|
|
329
468
|
* What gets recorded as `fragmentChecksum` in the lock file, and what cmdStatus
|
|
330
|
-
* recomputes from the consumer's tree to detect hand-edits
|
|
331
|
-
*
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
*
|
|
469
|
+
* recomputes from the consumer's tree to detect hand-edits. Must be called AFTER
|
|
470
|
+
* installFragment has already written to the consumer's tree (both call sites,
|
|
471
|
+
* cmdInit/cmdApply, satisfy this).
|
|
472
|
+
*
|
|
473
|
+
* For the flat-file/merge case this reads the marker region back out of the file
|
|
474
|
+
* that was just written, rather than re-deriving it from the fragment source —
|
|
475
|
+
* that keeps this in lockstep with whatever mergeIntoFlatSchema actually wrote
|
|
476
|
+
* (including any `@@schema(...)` injected by resolveFragmentBody) without
|
|
477
|
+
* duplicating that resolution logic a second time here.
|
|
336
478
|
*/
|
|
337
479
|
computeFragmentChecksum(layout) {
|
|
338
480
|
if (layout.kind === "folder") {
|
|
339
481
|
return sha256File(this.fragmentSrcPath);
|
|
340
482
|
}
|
|
341
|
-
|
|
483
|
+
const installed = this.extractInstalledRegion(readFileSync(layout.file, "utf8"));
|
|
484
|
+
if (installed === null) {
|
|
485
|
+
this.fail(`internal error: no managed region found in ${layout.file} immediately after installing it`);
|
|
486
|
+
}
|
|
487
|
+
return sha256(installed);
|
|
342
488
|
}
|
|
343
489
|
// -------------------------------------------------------------------------
|
|
344
490
|
// Subcommands
|
|
345
491
|
// -------------------------------------------------------------------------
|
|
346
|
-
async cmdInit(consumerRoot) {
|
|
492
|
+
async cmdInit(consumerRoot, schemaNameOverride) {
|
|
347
493
|
const bin = this.fragment.binName;
|
|
348
494
|
const schemaPath = await this.loadConsumerSchemaPath(consumerRoot);
|
|
349
495
|
const layout = this.classifySchemaLayout(schemaPath);
|
|
350
496
|
const migrationsDestDir = path.join(layout.prismaRoot, "migrations");
|
|
351
|
-
this.installFragment(layout);
|
|
497
|
+
this.installFragment(layout, schemaNameOverride);
|
|
352
498
|
console.log(`${bin}: running "npx prisma validate" against ${consumerRoot}`);
|
|
353
499
|
this.runPrisma(["validate"], consumerRoot);
|
|
354
500
|
const manifest = this.readManifest();
|
|
@@ -412,13 +558,13 @@ class SyncEngine {
|
|
|
412
558
|
}
|
|
413
559
|
console.log(`${this.fragment.binName} diff is read-only. Run "${this.fragment.binName} apply" to apply these.`);
|
|
414
560
|
}
|
|
415
|
-
async cmdApply(consumerRoot) {
|
|
561
|
+
async cmdApply(consumerRoot, schemaNameOverride) {
|
|
416
562
|
const bin = this.fragment.binName;
|
|
417
563
|
const report = this.computePending(consumerRoot);
|
|
418
564
|
const schemaPath = await this.loadConsumerSchemaPath(consumerRoot);
|
|
419
565
|
const layout = this.classifySchemaLayout(schemaPath);
|
|
420
566
|
const migrationsDestDir = path.join(layout.prismaRoot, "migrations");
|
|
421
|
-
this.installFragment(layout);
|
|
567
|
+
this.installFragment(layout, schemaNameOverride);
|
|
422
568
|
const lock = this.readLockFile(consumerRoot);
|
|
423
569
|
if (!lock) {
|
|
424
570
|
this.fail(`no ${this.lockFileName} found at ${consumerRoot}. Run "${bin} init" first.`);
|
|
@@ -508,6 +654,30 @@ const SUBCOMMANDS = ["init", "diff", "apply", "status"];
|
|
|
508
654
|
function isSubcommand(value) {
|
|
509
655
|
return SUBCOMMANDS.includes(value);
|
|
510
656
|
}
|
|
657
|
+
/**
|
|
658
|
+
* Parses `--schema-name=<name>` / `--schema-name <name>` out of a subcommand's
|
|
659
|
+
* trailing args — the flag `resolveFragmentBody` requires when a consumer's flat
|
|
660
|
+
* schema.prisma declares more than one entry in `schemas = [...]` and this engine
|
|
661
|
+
* can't guess which one a fragment's models belong to. Only `init`/`apply` use the
|
|
662
|
+
* result (they're the only subcommands that install the fragment); `diff`/`status`
|
|
663
|
+
* ignore it since they never write anything.
|
|
664
|
+
*/
|
|
665
|
+
function parseSchemaNameFlag(rest) {
|
|
666
|
+
for (let i = 0; i < rest.length; i++) {
|
|
667
|
+
const arg = rest[i];
|
|
668
|
+
if (arg === "--schema-name") {
|
|
669
|
+
const value = rest[i + 1];
|
|
670
|
+
if (value === undefined) {
|
|
671
|
+
throw new SyncCliError("--schema-name requires a value, e.g. --schema-name=my_schema");
|
|
672
|
+
}
|
|
673
|
+
return value;
|
|
674
|
+
}
|
|
675
|
+
if (arg.startsWith("--schema-name=")) {
|
|
676
|
+
return arg.slice("--schema-name=".length);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
return undefined;
|
|
680
|
+
}
|
|
511
681
|
/**
|
|
512
682
|
* Runs one CLI invocation for the given fragment. Called by each bin wrapper
|
|
513
683
|
* (src/cli/trace-sync.ts, src/cli/profile-sync.ts) with `process.argv.slice(2)`.
|
|
@@ -515,25 +685,22 @@ function isSubcommand(value) {
|
|
|
515
685
|
export async function runSyncCli(argv, fragment) {
|
|
516
686
|
const [subcommand, ...rest] = argv;
|
|
517
687
|
if (!isSubcommand(subcommand)) {
|
|
518
|
-
console.error(`usage: ${fragment.binName} <${SUBCOMMANDS.join("|")}
|
|
688
|
+
console.error(`usage: ${fragment.binName} <${SUBCOMMANDS.join("|")}> [--schema-name=<name>]`);
|
|
519
689
|
process.exitCode = 1;
|
|
520
690
|
return;
|
|
521
691
|
}
|
|
522
|
-
|
|
523
|
-
// the directory it's invoked from, which is how `npx <bin> ...` / an npm script in
|
|
524
|
-
// the consumer's own package.json will run it.
|
|
525
|
-
void rest;
|
|
692
|
+
const schemaNameOverride = parseSchemaNameFlag(rest);
|
|
526
693
|
const consumerRoot = process.cwd();
|
|
527
694
|
const engine = new SyncEngine(fragment);
|
|
528
695
|
switch (subcommand) {
|
|
529
696
|
case "init":
|
|
530
|
-
await engine.cmdInit(consumerRoot);
|
|
697
|
+
await engine.cmdInit(consumerRoot, schemaNameOverride);
|
|
531
698
|
break;
|
|
532
699
|
case "diff":
|
|
533
700
|
engine.cmdDiff(consumerRoot);
|
|
534
701
|
break;
|
|
535
702
|
case "apply":
|
|
536
|
-
await engine.cmdApply(consumerRoot);
|
|
703
|
+
await engine.cmdApply(consumerRoot, schemaNameOverride);
|
|
537
704
|
break;
|
|
538
705
|
case "status":
|
|
539
706
|
await engine.cmdStatus(consumerRoot);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/cli/sync-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/cli/sync-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,MAAM,EACN,UAAU,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,CAAC;QACH,OAAO,CACL,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAC7C,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;QAC9E,8EAA8E;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAgBD,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AA0B1C,SAAS,QAAQ,CAAI,QAAgB;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAM,CAAC;AACzD,CAAC;AAED,SAAS,MAAM,CAAC,OAAwB;IACtC,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB;IAClC,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAYD,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAE9E,MAAM,UAAU;IAQe;IAPZ,WAAW,CAAS;IACpB,eAAe,CAAS;IACxB,gBAAgB,CAAS;IACzB,gBAAgB,CAAS;IACzB,eAAe,CAAS;IACxB,YAAY,CAAS;IAEtC,YAA6B,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;QACjD,uEAAuE;QACvE,8CAA8C;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EACJ,IAAI,CACL,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAC9B,IAAI,CAAC,WAAW,EAChB,QAAQ,EACR,WAAW,EACX,GAAG,QAAQ,CAAC,IAAI,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAC/B,IAAI,CAAC,WAAW,EAChB,QAAQ,EACR,WAAW,EACX,GAAG,QAAQ,CAAC,IAAI,YAAY,CAC7B,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,YAAY,GAAG,YAAY,QAAQ,CAAC,IAAI,YAAY,CAAC;IAC5D,CAAC;IAEO,IAAI,CAAC,OAAe;QAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEO,gBAAgB;QACtB,OAAO,QAAQ,CAAe,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IAED;yFACqF;IAC7E,YAAY;QAClB,OAAO,QAAQ,CAA2B,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CACpE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjD,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,YAAoB;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAEO,YAAY,CAAC,YAAoB;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,QAAQ,CAAW,CAAC,CAAC,CAAC;IAC/B,CAAC;IAEO,aAAa,CAAC,YAAoB,EAAE,IAAc;QACxD,aAAa,CACX,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAC/B,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACpC,MAAM,CACP,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAEpE,MAAM,CAAU,0BAA0B,GAAG;QACnD,kBAAkB;QAClB,mBAAmB;QACnB,kBAAkB;QAClB,mBAAmB;KACpB,CAAC;IAEM,sBAAsB,CAAC,YAAoB;QACjD,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,0BAA0B,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,IAAI,CACP,qDAAqD,YAAY,IAAI;YACnE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,iFAAiF,CAC5G,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,sBAAsB,CAAC,YAAoB;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CACP,kBAAkB,UAAU,KAAM,GAAa,CAAC,OAAO,IAAI;gBACzD,iFAAiF;gBACjF,yCAAyC,IAAI,CAAC,QAAQ,CAAC,OAAO,4BAA4B,CAC7F,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAI,GAA6B,CAAC,OAAO,IAAI,GAAG,CAAC;QAC7D,MAAM,MAAM,GAAI,MAA2C,EAAE,MAAM,CAAC;QAEpE,IAAI,UAA8B,CAAC;QACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,IACL,MAAM;YACN,OAAO,MAAM,KAAK,QAAQ;YAC1B,OAAQ,MAA6B,CAAC,IAAI,KAAK,QAAQ,EACvD,CAAC;YACD,UAAU,GAAI,MAA2B,CAAC,IAAI,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CACP,qCAAqC,UAAU,qBAAqB;gBAClE,gFAAgF,CACnF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACK,oBAAoB,CAAC,UAAkB;QAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;aACrC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED;;sDAEkD;IAC1C,iBAAiB,CAAC,YAAoB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,QAAQ;YAC7C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC5B,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC;IAED,4EAA4E;IAC5E,gDAAgD;IAChD,4EAA4E;IAEpE,SAAS,CAAC,IAAc,EAAE,GAAW;QAC3C,6EAA6E;QAC7E,+EAA+E;QAC/E,+EAA+E;QAC/E,gFAAgF;QAChF,+DAA+D;QAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;YACpD,GAAG;YACH,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CACP,6BAA6B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACxE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CACP,eAAe,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,MAAM,EAAE,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,eAAe;IACf,4EAA4E;IAEpE,YAAY,CAAC,YAAoB;QACvC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,YAAY,CACV,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,CACxD,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,WAAmB,EAAE,iBAAyB;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC1D,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,yCAAyC;IACzC,4EAA4E;IAE5E;;;;;;;;;;OAUG;IACK,mBAAmB,CAAC,cAAsB;QAChD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9C,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,MAAM,IAAI,GACR,cAAc,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAEO,MAAM,CAAU,qBAAqB,GAC3C,wDAAwD,CAAC;IAE3D;;;;;;;OAOG;IACK,uBAAuB,CAAC,aAAqB;QACnD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,qBAAqB,CAAC,IAAY,EAAE,UAAkB;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,GAAG,IAAI,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACf,SAAS;YACX,CAAC;YACD,IAAI,OAAO,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC5B,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO,GAAG,KAAK,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,mBAAmB,CACzB,iBAAyB,EACzB,kBAAsC;QAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CACtC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAC3C,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;QACxE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,UAAkB,CAAC;QACvB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,UAAU,GAAG,kBAAkB,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,kBAAkB,EAAE,CAAC;YAC9B,UAAU,GAAG,kBAAkB,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CACP,wDAAwD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACxF,wBAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO,kDAAkD;gBAC/F,8DAA8D;gBAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,uBAAuB,eAAe,CAAC,CAAC,CAAC,IAAI,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CACP,iBAAiB,UAAU,mDAAmD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC7G,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAEO,WAAW;QACjB,OAAO,6BAA6B,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,IAAI,CAAC,QAAQ,CAAC,OAAO,sCAAsC,CAAC;IAC1I,CAAC;IAEO,SAAS;QACf,OAAO,6BAA6B,IAAI,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC;IACnE,CAAC;IAED;;;;;;;;;;OAUG;IACK,sBAAsB,CAAC,aAAqB;QAClD,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,qBAAqB,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CACzF,CAAC;QACF,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,mBAAmB,CACzB,cAAsB,EACtB,kBAAsC;QAEtC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CACP,4BAA4B,cAAc,qDAAqD,CAChG,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAEpE,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,OAAe,CAAC;QACpB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,mBAAmB,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CACvF,CAAC;YACF,OAAO,GAAG,QAAQ,CAAC,OAAO,CACxB,EAAE,EACF,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,EAAE,CACtD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;QACvG,CAAC;QACD,aAAa,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;sFACkF;IAC1E,eAAe,CACrB,MAAoB,EACpB,kBAAsC;QAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAClC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CACT,GAAG,GAAG,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,MAAM,CAAC,MAAM,EAAE,CACrE,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,GAAG,GAAG,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,kBAAkB,MAAM,CAAC,IAAI,mBAAmB,CACtF,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,uBAAuB,CAAC,MAAoB;QAClD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAC3C,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAClC,CAAC;QACF,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CACP,8CAA8C,MAAM,CAAC,IAAI,kCAAkC,CAC5F,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAErE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CACT,GAAG,GAAG,2CAA2C,YAAY,EAAE,CAChE,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CACT,GAAG,GAAG,uBAAuB,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAClE,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAEhD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,iBAAiB,EACjB,KAAK,CAAC,EAAE,EACR,eAAe,CAChB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,cAAc,KAAK,CAAC,EAAE,8BAA8B,CAAC,CAAC;YACxE,IAAI,CAAC,SAAS;YACZ,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,qEAAqE;YACrE,8EAA8E;YAC9E,iDAAiD;YACjD,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAC7C,YAAY,CACb,CAAC;YACF,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACtD,iBAAiB;YACjB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAEO,cAAc,CAAC,YAAoB;QAMzC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CACP,MAAM,IAAI,CAAC,YAAY,aAAa,YAAY,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,eAAe,CAC/F,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAClC,CAAC;QAEF,OAAO;YACL,sBAAsB,EAAE,IAAI,CAAC,eAAe;YAC5C,wBAAwB,EAAE,IAAI,CAAC,eAAe;YAC9C,sBAAsB,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe;YACrE,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,YAAoB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CACT,qBAAqB,MAAM,CAAC,wBAAwB,OAAO,MAAM,CAAC,sBAAsB,YAAY,CACrG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,qBAAqB,MAAM,CAAC,sBAAsB,eAAe,CAClE,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,iBAAiB,CAAC,MAAM,WAAW,CAAC,CAAC;QACvE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,EAAE,4BAA4B,KAAK,CAAC,2BAA2B,GAAG,CAChF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,CACT,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,4BAA4B,IAAI,CAAC,QAAQ,CAAC,OAAO,yBAAyB,CACnG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,YAAoB,EACpB,kBAAsC;QAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAErE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAEjD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CACP,MAAM,IAAI,CAAC,YAAY,aAAa,YAAY,UAAU,GAAG,eAAe,CAC7E,CAAC;QACJ,CAAC;QACD,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEtD,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CACT,GAAG,GAAG,uBAAuB,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAClE,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAEhD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,iBAAiB,EACjB,KAAK,CAAC,EAAE,EACR,eAAe,CAChB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,cAAc,KAAK,CAAC,EAAE,8BAA8B,CAAC,CAAC;YACxE,IAAI,CAAC,SAAS;YACZ,6EAA6E;YAC7E,4EAA4E;YAC5E,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAC7C,YAAY,CACb,CAAC;YACF,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACtD,iBAAiB;YACjB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,WAAW,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CACT,MAAM,IAAI,CAAC,YAAY,aAAa,YAAY,gCAAgC,IAAI,CAAC,QAAQ,CAAC,OAAO,SAAS,CAC/G,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CACT,kCAAkC,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,CAC5E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;QACtE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAErD,IAAI,iBAAyB,CAAC;YAC9B,IAAI,QAAgB,CAAC;YACrB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,MAAM,CAAC,MAAM,EACb,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,SAAS,CAC/B,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CACT,6CAA6C,kBAAkB,EAAE,CAClE,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,iBAAiB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;gBACnD,QAAQ,GAAG,kBAAkB,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CACT,4CAA4C,MAAM,CAAC,IAAI,iBAAiB,CACzE,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAClC,CAAC;gBACF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CACT,uEAAuE,MAAM,CAAC,IAAI,EAAE,CACrF,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBACnC,QAAQ,GAAG,GAAG,MAAM,CAAC,IAAI,mBAAmB,CAAC;YAC/C,CAAC;YAED,IAAI,iBAAiB,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,sDAAsD,QAAQ,wBAAwB;oBACpF,wCAAwC,CAC3C,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACT,oDAAqD,GAAa,CAAC,OAAO,GAAG,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;;AAGH,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAGjE,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAmB,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,IAAc;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,YAAY,CACpB,8DAA8D,CAC/D,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAc,EACd,QAAsB;IAEtB,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CACX,UAAU,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAC/E,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IAExC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;YACvD,MAAM;QACR,KAAK,MAAM;YACT,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACrC,MAAM;IACV,CAAC;AACH,CAAC"}
|
package/dist/cli/trace-sync.js
CHANGED
|
@@ -8,14 +8,11 @@
|
|
|
8
8
|
* fragment name and the "trace-sync" bin name; profile-sync.ts is the same wrapper
|
|
9
9
|
* for the profile fragment.
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
12
|
-
import { runSyncCli, SyncCliError } from "./sync-engine.js";
|
|
11
|
+
import { isRunningAsMain, runSyncCli, SyncCliError } from "./sync-engine.js";
|
|
13
12
|
export async function main(argv) {
|
|
14
13
|
return runSyncCli(argv, { name: "trace", binName: "trace-sync" });
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
import.meta.url === pathToFileURL(process.argv[1]).href;
|
|
18
|
-
if (isMainModule) {
|
|
15
|
+
if (isRunningAsMain(import.meta.url)) {
|
|
19
16
|
main(process.argv.slice(2)).catch((err) => {
|
|
20
17
|
if (!(err instanceof SyncCliError)) {
|
|
21
18
|
console.error(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-sync.js","sourceRoot":"","sources":["../../src/cli/trace-sync.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"trace-sync.js","sourceRoot":"","sources":["../../src/cli/trace-sync.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACjD,IAAI,CAAC,CAAC,GAAG,YAAY,YAAY,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flytedesk/app-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Shared platform kit for flytedesk apps: flytedesk-id auth (BFF/OIDC client) and a Postgres-native trace/audit layer.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -41,6 +41,10 @@
|
|
|
41
41
|
"types": "./dist/trace/index.d.ts",
|
|
42
42
|
"import": "./dist/trace/index.js"
|
|
43
43
|
},
|
|
44
|
+
"./bigquery": {
|
|
45
|
+
"types": "./dist/bigquery/index.d.ts",
|
|
46
|
+
"import": "./dist/bigquery/index.js"
|
|
47
|
+
},
|
|
44
48
|
"./rate-limit": {
|
|
45
49
|
"types": "./dist/rate-limit/index.d.ts",
|
|
46
50
|
"import": "./dist/rate-limit/index.js"
|
|
@@ -52,6 +56,10 @@
|
|
|
52
56
|
"./flags": {
|
|
53
57
|
"types": "./dist/flags/index.d.ts",
|
|
54
58
|
"import": "./dist/flags/index.js"
|
|
59
|
+
},
|
|
60
|
+
"./chat": {
|
|
61
|
+
"types": "./dist/chat/index.d.ts",
|
|
62
|
+
"import": "./dist/chat/index.js"
|
|
55
63
|
}
|
|
56
64
|
},
|
|
57
65
|
"scripts": {
|
|
@@ -64,6 +72,7 @@
|
|
|
64
72
|
"lint": "eslint .",
|
|
65
73
|
"format": "prettier --check .",
|
|
66
74
|
"check:exports": "publint && attw --pack . --profile esm-only",
|
|
75
|
+
"check": "npm run lint && npm run typecheck && npm run build && npm test && npm run test:integration && npm run check:exports",
|
|
67
76
|
"changeset": "changeset",
|
|
68
77
|
"version-packages": "changeset version",
|
|
69
78
|
"release": "npm run build && npm run check:exports && changeset publish"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Prints how many package releases the changesets committed in the current
|
|
3
|
+
// directory would produce. scripts/release.sh uses it to decide between
|
|
4
|
+
// "version + publish" and "no-op".
|
|
5
|
+
//
|
|
6
|
+
// It counts every changeset on disk. It deliberately does NOT pass
|
|
7
|
+
// `--since=origin/main`: a release runs from a clone of main, where the
|
|
8
|
+
// pending changesets are already on origin/main, so `--since` always
|
|
9
|
+
// reports zero. That is exactly how the first real release run failed
|
|
10
|
+
// (AK-13, 2026-09-24).
|
|
11
|
+
import { spawnSync } from "node:child_process";
|
|
12
|
+
import { mkdtempSync, readFileSync, rmSync } from "node:fs";
|
|
13
|
+
import { createRequire } from "node:module";
|
|
14
|
+
import { tmpdir } from "node:os";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
|
|
17
|
+
const require = createRequire(import.meta.url);
|
|
18
|
+
const changesetBin = require.resolve("@changesets/cli/bin.js");
|
|
19
|
+
|
|
20
|
+
const outDir = mkdtempSync(join(tmpdir(), "changeset-status-"));
|
|
21
|
+
const outFile = join(outDir, "status.json");
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const result = spawnSync(
|
|
25
|
+
process.execPath,
|
|
26
|
+
[changesetBin, "status", `--output=${outFile}`],
|
|
27
|
+
{ cwd: process.cwd(), encoding: "utf8" },
|
|
28
|
+
);
|
|
29
|
+
if (result.status !== 0) {
|
|
30
|
+
process.stderr.write(result.stderr || result.stdout);
|
|
31
|
+
process.exit(result.status ?? 1);
|
|
32
|
+
}
|
|
33
|
+
const status = JSON.parse(readFileSync(outFile, "utf8"));
|
|
34
|
+
process.stdout.write(String(status.releases.length));
|
|
35
|
+
} finally {
|
|
36
|
+
rmSync(outDir, { recursive: true, force: true });
|
|
37
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# app-kit release script.
|
|
4
|
+
#
|
|
5
|
+
# GitHub Actions no longer starts jobs for the Flytedesk org (billing
|
|
6
|
+
# refusal), so this script replaces .github/workflows/ci.yml + release.yml.
|
|
7
|
+
# It runs the exact gates CI used to run, then versions/publishes/tags
|
|
8
|
+
# exactly like the old two-stage changesets/action flow did — but from a
|
|
9
|
+
# human-triggered local run in a dedicated deploy clone, instead of GitHub.
|
|
10
|
+
#
|
|
11
|
+
# Usage:
|
|
12
|
+
# bash scripts/release.sh [<commit-or-ref>]
|
|
13
|
+
#
|
|
14
|
+
# <commit-or-ref> defaults to origin/main's tip. It must be reachable from
|
|
15
|
+
# origin/main (i.e. already merged) — this script never releases unmerged
|
|
16
|
+
# work.
|
|
17
|
+
#
|
|
18
|
+
# Run this ONLY from the sanctioned deploy clone at
|
|
19
|
+
# C:/Users/newms/deploy/app-kit (see .danxbot/config/workflow.md
|
|
20
|
+
# "Publishing" for one-time setup). It refuses to run anywhere else.
|
|
21
|
+
set -euo pipefail
|
|
22
|
+
|
|
23
|
+
log() { printf '[release] %s\n' "$1"; }
|
|
24
|
+
die() { printf '[release] ERROR: %s\n' "$1" >&2; exit 1; }
|
|
25
|
+
|
|
26
|
+
# --- Guard 1: this must be the sanctioned deploy clone ---------------------
|
|
27
|
+
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)" \
|
|
28
|
+
|| die "not inside a git repository"
|
|
29
|
+
|
|
30
|
+
MARKER="$REPO_ROOT/.deploy-clone-marker"
|
|
31
|
+
[[ -f "$MARKER" ]] \
|
|
32
|
+
|| die "missing $MARKER — this is not the sanctioned deploy clone. \
|
|
33
|
+
Release runs only happen from a dedicated clone at C:/Users/newms/deploy/app-kit; \
|
|
34
|
+
see .danxbot/config/workflow.md 'Publishing' for one-time setup."
|
|
35
|
+
|
|
36
|
+
cd "$REPO_ROOT"
|
|
37
|
+
|
|
38
|
+
# --- Guard 2: refuse a dirty tree ------------------------------------------
|
|
39
|
+
if [[ -n "$(git status --porcelain)" ]]; then
|
|
40
|
+
die "working tree is dirty — refusing to release from an unclean clone. \
|
|
41
|
+
Run 'git status' in $REPO_ROOT and clean it up first."
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
# --- Guard 3: take the lock -------------------------------------------------
|
|
45
|
+
LOCKFILE="$REPO_ROOT/.release.lock"
|
|
46
|
+
if ! ( set -o noclobber; printf '%s\n' "$$" > "$LOCKFILE" ) 2>/dev/null; then
|
|
47
|
+
die "lock file $LOCKFILE already exists — another release run is in \
|
|
48
|
+
progress (or a previous run crashed without cleaning up; if you're sure \
|
|
49
|
+
none is running, delete the lock file and retry)."
|
|
50
|
+
fi
|
|
51
|
+
trap 'rm -f "$LOCKFILE"' EXIT
|
|
52
|
+
|
|
53
|
+
# --- Fetch + resolve the target commit --------------------------------------
|
|
54
|
+
log "fetching origin..."
|
|
55
|
+
git fetch origin
|
|
56
|
+
|
|
57
|
+
TARGET_REF="${1:-origin/main}"
|
|
58
|
+
TARGET_SHA="$(git rev-parse "$TARGET_REF")" \
|
|
59
|
+
|| die "could not resolve '$TARGET_REF' to a commit"
|
|
60
|
+
|
|
61
|
+
git merge-base --is-ancestor "$TARGET_SHA" origin/main \
|
|
62
|
+
|| die "$TARGET_REF ($TARGET_SHA) is not reachable from origin/main — \
|
|
63
|
+
refusing to release unmerged work."
|
|
64
|
+
|
|
65
|
+
log "target commit: $TARGET_SHA"
|
|
66
|
+
|
|
67
|
+
# Move local main onto the target commit so a version-bump commit (if any)
|
|
68
|
+
# lands on top of it and can be pushed straight to origin/main.
|
|
69
|
+
git checkout -B main "$TARGET_SHA"
|
|
70
|
+
|
|
71
|
+
# --- Install + gates ---------------------------------------------------------
|
|
72
|
+
log "npm ci..."
|
|
73
|
+
npm ci
|
|
74
|
+
|
|
75
|
+
log "running gates (npm run check: lint, typecheck, build, test, test:integration, check:exports)..."
|
|
76
|
+
npm run check
|
|
77
|
+
|
|
78
|
+
log "gates passed."
|
|
79
|
+
|
|
80
|
+
# --- Version / publish ------------------------------------------------------
|
|
81
|
+
PENDING_COUNT="$(node scripts/pending-release-count.mjs)"
|
|
82
|
+
|
|
83
|
+
CURRENT_VERSION="$(node -p "require('./package.json').version")"
|
|
84
|
+
|
|
85
|
+
if [[ "$PENDING_COUNT" -eq 0 ]]; then
|
|
86
|
+
PUBLISHED_VERSION="$(npm view @flytedesk/app-kit version)"
|
|
87
|
+
if [[ "$PUBLISHED_VERSION" == "$CURRENT_VERSION" ]]; then
|
|
88
|
+
log "no changesets pending and $CURRENT_VERSION is already on npm — no-op."
|
|
89
|
+
printf 'RESULT: sha=%s version=%s status=no-op\n' "$TARGET_SHA" "$CURRENT_VERSION"
|
|
90
|
+
exit 0
|
|
91
|
+
else
|
|
92
|
+
die "no changesets pending, but package.json ($CURRENT_VERSION) does not \
|
|
93
|
+
match the published npm version ($PUBLISHED_VERSION) — refusing to guess \
|
|
94
|
+
what to do; this needs a human to reconcile versions."
|
|
95
|
+
fi
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
log "$PENDING_COUNT changeset(s) pending — versioning..."
|
|
99
|
+
# @changesets/changelog-github looks up each changeset's commit and author on
|
|
100
|
+
# GitHub, so `changeset version` needs a token. Take it from gh-as for this one
|
|
101
|
+
# command only: it is never written to disk or exported to later steps.
|
|
102
|
+
CHANGELOG_TOKEN="$(gh-as auth token)" \
|
|
103
|
+
|| die "could not get a GitHub token from gh-as for the changelog step."
|
|
104
|
+
[[ -n "$CHANGELOG_TOKEN" ]] \
|
|
105
|
+
|| die "gh-as returned an empty GitHub token for the changelog step."
|
|
106
|
+
GITHUB_TOKEN="$CHANGELOG_TOKEN" npx changeset version
|
|
107
|
+
unset CHANGELOG_TOKEN
|
|
108
|
+
|
|
109
|
+
NEW_VERSION="$(node -p "require('./package.json').version")"
|
|
110
|
+
[[ "$NEW_VERSION" != "$CURRENT_VERSION" ]] \
|
|
111
|
+
|| die "changeset version did not bump the version — aborting before publish."
|
|
112
|
+
|
|
113
|
+
log "bumped to $NEW_VERSION. Committing..."
|
|
114
|
+
git add -A
|
|
115
|
+
git commit -m "chore(release): v$NEW_VERSION"
|
|
116
|
+
|
|
117
|
+
log "pushing version-bump commit to origin/main (fails on non-fast-forward)..."
|
|
118
|
+
git push origin main
|
|
119
|
+
|
|
120
|
+
log "publishing to npm (account flytedan, token from ~/.npmrc)..."
|
|
121
|
+
npx changeset publish
|
|
122
|
+
|
|
123
|
+
log "pushing tag v$NEW_VERSION..."
|
|
124
|
+
git push origin "v$NEW_VERSION"
|
|
125
|
+
|
|
126
|
+
printf 'RESULT: sha=%s version=%s status=published\n' "$(git rev-parse HEAD)" "$NEW_VERSION"
|