@byline/cli 3.21.0 → 4.1.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 +29 -3
- package/dist/cli.js +5 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +1 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +10 -14
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/setup-checks.d.ts +9 -0
- package/dist/commands/setup-checks.d.ts.map +1 -1
- package/dist/commands/setup-checks.js +43 -18
- package/dist/commands/setup-checks.js.map +1 -1
- package/dist/commands/setup.js +1 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +6 -0
- package/dist/context.js.map +1 -1
- package/dist/lib/dependency-version.d.ts +12 -0
- package/dist/lib/dependency-version.d.ts.map +1 -0
- package/dist/lib/dependency-version.js +101 -0
- package/dist/lib/dependency-version.js.map +1 -0
- package/dist/lib/planned-writes.d.ts +8 -0
- package/dist/lib/planned-writes.d.ts.map +1 -0
- package/dist/lib/planned-writes.js +177 -0
- package/dist/lib/planned-writes.js.map +1 -0
- package/dist/lib/planned-writes.test.d.ts +2 -0
- package/dist/lib/planned-writes.test.d.ts.map +1 -0
- package/dist/lib/planned-writes.test.js +113 -0
- package/dist/lib/planned-writes.test.js.map +1 -0
- package/dist/lib/release-policy.d.ts +12 -0
- package/dist/lib/release-policy.d.ts.map +1 -0
- package/dist/lib/release-policy.js +20 -0
- package/dist/lib/release-policy.js.map +1 -0
- package/dist/lib/release-policy.test.d.ts +2 -0
- package/dist/lib/release-policy.test.d.ts.map +1 -0
- package/dist/lib/release-policy.test.js +36 -0
- package/dist/lib/release-policy.test.js.map +1 -0
- package/dist/lib/route-config.d.ts +40 -0
- package/dist/lib/route-config.d.ts.map +1 -0
- package/dist/lib/route-config.js +322 -0
- package/dist/lib/route-config.js.map +1 -0
- package/dist/lib/static-config.d.ts +20 -0
- package/dist/lib/static-config.d.ts.map +1 -0
- package/dist/lib/static-config.js +444 -0
- package/dist/lib/static-config.js.map +1 -0
- package/dist/lib/static-config.test.d.ts +2 -0
- package/dist/lib/static-config.test.d.ts.map +1 -0
- package/dist/lib/static-config.test.js +105 -0
- package/dist/lib/static-config.test.js.map +1 -0
- package/dist/lib/template-hook-boundary.test.node.d.ts +2 -0
- package/dist/lib/template-hook-boundary.test.node.d.ts.map +1 -0
- package/dist/lib/template-hook-boundary.test.node.js +30 -0
- package/dist/lib/template-hook-boundary.test.node.js.map +1 -0
- package/dist/lib/template-path.d.ts +5 -0
- package/dist/lib/template-path.d.ts.map +1 -0
- package/dist/lib/template-path.js +9 -0
- package/dist/lib/template-path.js.map +1 -0
- package/dist/lib/workspace-root.d.ts +28 -0
- package/dist/lib/workspace-root.d.ts.map +1 -0
- package/dist/lib/workspace-root.js +205 -0
- package/dist/lib/workspace-root.js.map +1 -0
- package/dist/manifest/deps.d.ts +1 -1
- package/dist/manifest/deps.d.ts.map +1 -1
- package/dist/manifest/deps.js +24 -8
- package/dist/manifest/deps.js.map +1 -1
- package/dist/phases/deps.d.ts +14 -1
- package/dist/phases/deps.d.ts.map +1 -1
- package/dist/phases/deps.js +312 -137
- package/dist/phases/deps.js.map +1 -1
- package/dist/phases/deps.test.d.ts +2 -0
- package/dist/phases/deps.test.d.ts.map +1 -0
- package/dist/phases/deps.test.js +343 -0
- package/dist/phases/deps.test.js.map +1 -0
- package/dist/phases/preflight.d.ts.map +1 -1
- package/dist/phases/preflight.js +59 -11
- package/dist/phases/preflight.js.map +1 -1
- package/dist/phases/prompts.d.ts +2 -0
- package/dist/phases/prompts.d.ts.map +1 -1
- package/dist/phases/prompts.js +51 -2
- package/dist/phases/prompts.js.map +1 -1
- package/dist/phases/routes-ui.test.d.ts +2 -0
- package/dist/phases/routes-ui.test.d.ts.map +1 -0
- package/dist/phases/routes-ui.test.js +766 -0
- package/dist/phases/routes-ui.test.js.map +1 -0
- package/dist/phases/routes.d.ts +4 -1
- package/dist/phases/routes.d.ts.map +1 -1
- package/dist/phases/routes.js +610 -122
- package/dist/phases/routes.js.map +1 -1
- package/dist/phases/scaffold-smoke.test.d.ts +2 -0
- package/dist/phases/scaffold-smoke.test.d.ts.map +1 -0
- package/dist/phases/scaffold-smoke.test.js +175 -0
- package/dist/phases/scaffold-smoke.test.js.map +1 -0
- package/dist/phases/scaffold.d.ts +3 -2
- package/dist/phases/scaffold.d.ts.map +1 -1
- package/dist/phases/scaffold.js +268 -91
- package/dist/phases/scaffold.js.map +1 -1
- package/dist/phases/scaffold.test.js +171 -22
- package/dist/phases/scaffold.test.js.map +1 -1
- package/dist/phases/ui.d.ts +4 -1
- package/dist/phases/ui.d.ts.map +1 -1
- package/dist/phases/ui.js +51 -59
- package/dist/phases/ui.js.map +1 -1
- package/dist/phases/wire/index.d.ts.map +1 -1
- package/dist/phases/wire/index.js +10 -6
- package/dist/phases/wire/index.js.map +1 -1
- package/dist/phases/wire/shared.d.ts +4 -1
- package/dist/phases/wire/shared.d.ts.map +1 -1
- package/dist/phases/wire/vite-config.d.ts.map +1 -1
- package/dist/phases/wire/vite-config.js +69 -20
- package/dist/phases/wire/vite-config.js.map +1 -1
- package/dist/phases/wire/vite-config.test.d.ts +2 -0
- package/dist/phases/wire/vite-config.test.d.ts.map +1 -0
- package/dist/phases/wire/vite-config.test.js +97 -0
- package/dist/phases/wire/vite-config.test.js.map +1 -0
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +7 -2
- package/dist/prompts.js.map +1 -1
- package/dist/runner.js +1 -1
- package/dist/runner.js.map +1 -1
- package/dist/templates/byline/collection-types.contract.ts +26 -1
- package/dist/templates/byline/collections/index.ts +1 -1
- package/dist/templates/byline/collections/server-hooks.ts +7 -0
- package/dist/templates/byline/generated/collection-types.ts +14 -6
- package/dist/templates/byline/routes.ts +7 -6
- package/dist/templates/byline/server.config.ts +10 -1
- package/dist/templates/byline-examples/admin.config.ts +7 -12
- package/dist/templates/byline-examples/blocks/photo-block.ts +3 -2
- package/dist/templates/byline-examples/collection-types.contract.ts +26 -1
- package/dist/templates/byline-examples/collections/docs/hooks.ts +23 -13
- package/dist/templates/byline-examples/collections/docs/schema.ts +2 -11
- package/dist/templates/byline-examples/collections/index.ts +1 -1
- package/dist/templates/byline-examples/collections/media/components/media-list-view.tsx +11 -6
- package/dist/templates/byline-examples/collections/media/schema.ts +3 -0
- package/dist/templates/byline-examples/collections/news/schema.ts +4 -3
- package/dist/templates/byline-examples/collections/server-hooks.ts +8 -0
- package/dist/templates/byline-examples/fields/ai-text.ts +1 -1
- package/dist/templates/byline-examples/fields/ai-textarea.ts +1 -1
- package/dist/templates/byline-examples/fields/lexical-richtext-ai.tsx +3 -3
- package/dist/templates/byline-examples/generated/collection-types.ts +138 -130
- package/dist/templates/byline-examples/routes.ts +7 -6
- package/dist/templates/byline-examples/scripts/backfill-version-locales.ts +1 -1
- package/dist/templates/byline-examples/scripts/import-docs.ts +10 -11
- package/dist/templates/byline-examples/scripts/lib/mdast-to-lexical.test.node.ts +93 -233
- package/dist/templates/byline-examples/scripts/lib/mdast-to-lexical.ts +2 -2
- package/dist/templates/byline-examples/scripts/lib/strip-leading-h1.test.node.ts +0 -4
- package/dist/templates/byline-examples/scripts/re-anchor.ts +3 -3
- package/dist/templates/byline-examples/scripts/regenerate-media-operation.ts +112 -0
- package/dist/templates/byline-examples/scripts/regenerate-media.ts +129 -92
- package/dist/templates/byline-examples/server.config.ts +14 -6
- package/dist/templates/host/vite.config.ts +2 -0
- package/dist/templates/routes/_byline/route.lazy.tsx +1 -2
- package/dist/templates/routes/_byline/route.tsx +1 -1
- package/dist/templates/ui-byline/blocks/photo-block/index.tsx +18 -22
- package/dist/templates/ui-byline/blocks/richtext-block/index.tsx +1 -1
- package/dist/templates/ui-byline/components/admonition/index.tsx +11 -8
- package/dist/templates/ui-byline/components/code/code.tsx +6 -4
- package/dist/templates/ui-byline/components/link/lang-link.tsx +4 -8
- package/dist/templates/ui-byline/components/link/link-field.tsx +3 -2
- package/dist/templates/ui-byline/components/link/link-lexical.tsx +9 -8
- package/dist/templates/ui-byline/render-blocks.tsx +38 -34
- package/dist/templates/ui-byline/types/content.ts +25 -0
- package/dist/templates/ui-byline/types/i18n.ts +4 -8
- package/dist/test-helpers.d.ts +5 -0
- package/dist/test-helpers.d.ts.map +1 -0
- package/dist/test-helpers.js +52 -0
- package/dist/test-helpers.js.map +1 -0
- package/dist/types.d.ts +21 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui-template-contract.test.d.ts +2 -0
- package/dist/ui-template-contract.test.d.ts.map +1 -0
- package/dist/ui-template-contract.test.js +150 -0
- package/dist/ui-template-contract.test.js.map +1 -0
- package/dist/workspace-root.test.d.ts +2 -0
- package/dist/workspace-root.test.d.ts.map +1 -0
- package/dist/workspace-root.test.js +311 -0
- package/dist/workspace-root.test.js.map +1 -0
- package/package.json +9 -1
- package/dist/templates/byline/client.server.ts +0 -32
- package/dist/templates/byline-examples/client.server.ts +0 -32
package/README.md
CHANGED
|
@@ -9,14 +9,15 @@ cd <your-tanstack-start-app>
|
|
|
9
9
|
npx @byline/cli init
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
The installer is a step-by-step wizard.
|
|
12
|
+
The installer is a step-by-step wizard. It prints unified diffs for planned file writes. Confirm-mode phases wait before writing; safe auto phases apply directly unless `--dry-run` is set.
|
|
13
13
|
|
|
14
14
|
```sh
|
|
15
|
-
byline init Run the wizard,
|
|
15
|
+
byline init Run the wizard, re-detecting current installation state.
|
|
16
16
|
byline init --only db-init Re-run a single phase.
|
|
17
17
|
byline init --from wire Resume from a specific phase.
|
|
18
18
|
byline init --apply Skip the per-phase confirmation prompt (still prints diffs).
|
|
19
19
|
byline init --dry-run Show every change but write nothing.
|
|
20
|
+
byline init --force --apply -y Re-detect and safely upgrade an older scaffold noninteractively.
|
|
20
21
|
byline doctor Inspect the current app and report what's wired.
|
|
21
22
|
```
|
|
22
23
|
|
|
@@ -24,7 +25,7 @@ See `byline init --help` for the full flag list.
|
|
|
24
25
|
|
|
25
26
|
### Generated collection types
|
|
26
27
|
|
|
27
|
-
`byline init`
|
|
28
|
+
`byline init` creates `byline/generated/collection-types.ts` and adds two application scripts:
|
|
28
29
|
|
|
29
30
|
```sh
|
|
30
31
|
pnpm byline:generate # regenerate after changing collection or block schemas
|
|
@@ -36,6 +37,31 @@ The application script evaluates `byline/collections/index.ts`; it does not load
|
|
|
36
37
|
is its deterministic, standalone TypeScript projection for typed clients and frontend code. Keep
|
|
37
38
|
the artifact committed and run the check in CI.
|
|
38
39
|
|
|
40
|
+
### Upgrading older scaffolds
|
|
41
|
+
|
|
42
|
+
The v3.21 installer checks dependency ranges and required files instead of trusting old completed
|
|
43
|
+
phase flags. Run `byline init --force --apply -y` to apply safe upgrades. Missing files and
|
|
44
|
+
recognized canonical predecessors can be installed, while divergent user-owned scaffold, route,
|
|
45
|
+
Vite, Turbo, and CI configuration is left untouched with an explicit manual instruction.
|
|
46
|
+
|
|
47
|
+
Registry-backed `@byline/*` dependencies must declare a range wholly within major 3, starting at
|
|
48
|
+
3.21.0 or newer. Local `workspace:*`, `workspace:^`, and `workspace:~` links are never replaced;
|
|
49
|
+
their linked package version must resolve locally and satisfy the same range, otherwise installation
|
|
50
|
+
is blocked with a manual compatibility instruction. Resolution uses included workspace package
|
|
51
|
+
manifests, not `node_modules` registry copies. Older, future-major, or unbounded registry ranges are
|
|
52
|
+
planned as upgrades to `^3.21.0`.
|
|
53
|
+
|
|
54
|
+
In a monorepo, run the CLI from the application directory. App files remain under that directory,
|
|
55
|
+
while pnpm settings, Turbo configuration, CI checks, and package-manager lockfile operations use the
|
|
56
|
+
nearest workspace root whose declared package patterns include the application. An app excluded by
|
|
57
|
+
those patterns remains standalone and cannot mutate the outer workspace configuration.
|
|
58
|
+
When the owning workspace declares a package manager through its workspace file, root
|
|
59
|
+
`packageManager`, or lockfile, the installer requires that manager and rejects conflicting `--pm`
|
|
60
|
+
or previously selected choices before planning dependency writes.
|
|
61
|
+
For a package.json-only workspace with no manager metadata, noninteractive runs must pass `--pm`.
|
|
62
|
+
Choosing pnpm creates `pnpm-workspace.yaml` with the existing workspace package patterns and
|
|
63
|
+
required `allowBuilds` entries together; npm, Yarn, and Bun continue using package.json workspaces.
|
|
64
|
+
|
|
39
65
|
### Already-wired apps (post-manual-config)
|
|
40
66
|
|
|
41
67
|
If you wired Byline into your app by hand (collections, `server.config.ts`, env, routes, scaffold files all in place) and just need to provision the database and seed, use `setup` instead of `init`:
|
package/dist/cli.js
CHANGED
|
@@ -3,16 +3,17 @@ import { Command } from 'commander';
|
|
|
3
3
|
import { runDoctor } from './commands/doctor.js';
|
|
4
4
|
import { runInit } from './commands/init.js';
|
|
5
5
|
import { runSetup } from './commands/setup.js';
|
|
6
|
+
import { CLI_PACKAGE_VERSION } from './lib/release-policy.js';
|
|
6
7
|
import { PHASE_IDS } from './phases/index.js';
|
|
7
8
|
const PACKAGE_MANAGERS = ['pnpm', 'npm', 'yarn', 'bun'];
|
|
8
9
|
const program = new Command();
|
|
9
10
|
program
|
|
10
11
|
.name('byline')
|
|
11
12
|
.description('Guided installer for Byline CMS into a TanStack Start application')
|
|
12
|
-
.version(
|
|
13
|
+
.version(CLI_PACKAGE_VERSION);
|
|
13
14
|
program
|
|
14
15
|
.command('init')
|
|
15
|
-
.description('Run the guided installer (
|
|
16
|
+
.description('Run the guided installer (re-detects current installation state)')
|
|
16
17
|
.option('--from <phase>', `start from phase (${PHASE_IDS.join('|')})`)
|
|
17
18
|
.option('--to <phase>', 'stop after phase')
|
|
18
19
|
.option('--only <phase>', 'run a single phase')
|
|
@@ -21,6 +22,7 @@ program
|
|
|
21
22
|
.option('-y, --yes', 'assume yes to non-write prompts')
|
|
22
23
|
.option('--reset', 'destructive: drop existing database in db-init')
|
|
23
24
|
.option('--i-mean-it', 'second confirmation required by --reset')
|
|
25
|
+
.option('--force', 're-run phases even when detection reports them complete')
|
|
24
26
|
.option('--pm <pm>', `force package manager: ${PACKAGE_MANAGERS.join('|')}`)
|
|
25
27
|
.option('-q, --quiet', 'suppress decorative output')
|
|
26
28
|
.option('--no-color', 'disable color output')
|
|
@@ -43,6 +45,7 @@ program
|
|
|
43
45
|
yes: opts.yes,
|
|
44
46
|
reset: opts.reset,
|
|
45
47
|
resetIMeanIt: opts.iMeanIt,
|
|
48
|
+
force: opts.force,
|
|
46
49
|
pm: opts.pm,
|
|
47
50
|
quiet: opts.quiet,
|
|
48
51
|
noColor: opts.color === false,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,gBAAgB,GAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,mEAAmE,CAAC;KAChF,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG7C,MAAM,gBAAgB,GAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,mEAAmE,CAAC;KAChF,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAE/B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kEAAkE,CAAC;KAC/E,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACrE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;KAC9C,MAAM,CAAC,SAAS,EAAE,0DAA0D,CAAC;KAC7E,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC;KAC1D,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC;KACtD,MAAM,CAAC,SAAS,EAAE,gDAAgD,CAAC;KACnE,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,SAAS,EAAE,yDAAyD,CAAC;KAC5E,MAAM,CAAC,WAAW,EAAE,0BAA0B,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;KAC3E,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;KACnD,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACpB,MAAM,IAAI,GAAG,GAA8B,CAAA;IAC3C,IAAI,IAAI,CAAC,IAAI;QAAE,aAAa,CAAC,IAAI,CAAC,IAAc,EAAE,QAAQ,CAAC,CAAA;IAC3D,IAAI,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,IAAI,CAAC,EAAY,EAAE,MAAM,CAAC,CAAA;IACrD,IAAI,IAAI,CAAC,IAAI;QAAE,aAAa,CAAC,IAAI,CAAC,IAAc,EAAE,QAAQ,CAAC,CAAA;IAC3D,IAAI,IAAI,CAAC,EAAE;QAAE,oBAAoB,CAAC,IAAI,CAAC,EAAY,CAAC,CAAA;IACpD,MAAM,OAAO,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC,IAA2B;QACtC,EAAE,EAAE,IAAI,CAAC,EAAyB;QAClC,IAAI,EAAE,IAAI,CAAC,IAA2B;QACtC,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,MAAM,EAAE,IAAI,CAAC,MAA6B;QAC1C,GAAG,EAAE,IAAI,CAAC,GAA0B;QACpC,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,YAAY,EAAE,IAAI,CAAC,OAA8B;QACjD,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,EAAE,EAAE,IAAI,CAAC,EAAgC;QACzC,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CACV,sFAAsF,CACvF;KACA,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;KACtD,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;KACtD,MAAM,CAAC,SAAS,EAAE,0DAA0D,CAAC;KAC7E,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC;KAC1D,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC;KACtD,MAAM,CAAC,SAAS,EAAE,gDAAgD,CAAC;KACnE,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,SAAS,EAAE,iDAAiD,CAAC;KACpE,MAAM,CAAC,WAAW,EAAE,0BAA0B,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;KAC3E,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;KACnD,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACpB,MAAM,IAAI,GAAG,GAA8B,CAAA;IAC3C,IAAI,IAAI,CAAC,EAAE;QAAE,oBAAoB,CAAC,IAAI,CAAC,EAAY,CAAC,CAAA;IACpD,MAAM,QAAQ,CAAC;QACb,0DAA0D;QAC1D,WAAW,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK;QACrC,UAAU,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK;QACnC,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,MAAM,EAAE,IAAI,CAAC,MAA6B;QAC1C,GAAG,EAAE,IAAI,CAAC,GAA0B;QACpC,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,YAAY,EAAE,IAAI,CAAC,OAA8B;QACjD,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,EAAE,EAAE,IAAI,CAAC,EAAgC;QACzC,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mEAAmE,CAAC;KAChF,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,SAAS,EAAE,CAAA;AACnB,CAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;IAClD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA;AAEF,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY;IAChD,IAAI,CAAE,SAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,oBAAoB,KAAK,aAAa,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,CAAE,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,aAAa,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAOA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAOA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAiC/C"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;QACtB,GAAG;QACH,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,EAAE;QACZ,MAAM;QACN,QAAQ;QACR,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK;QACzC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;KAC3B,CAAC,CAAC,CACJ,CAAA;IAED,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACxC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;QACtB,GAAG;QACH,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,KAAK;QACZ,cAAc,EAAE,KAAK;QACrB,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;QAC1B,QAAQ,EAAE,EAAE;QACZ,MAAM;QACN,QAAQ;QACR,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK;QACzC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;KAC3B,CAAC,CAAC,CACJ,CAAA;IAED,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACxC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { runPhase } from '../runner.js';
|
|
1
2
|
import type { PackageManager, PhaseId } from '../types.js';
|
|
2
3
|
export interface InitOptions {
|
|
3
4
|
from?: PhaseId;
|
|
@@ -8,9 +9,11 @@ export interface InitOptions {
|
|
|
8
9
|
yes?: boolean;
|
|
9
10
|
reset?: boolean;
|
|
10
11
|
resetIMeanIt?: boolean;
|
|
12
|
+
force?: boolean;
|
|
11
13
|
pm?: PackageManager;
|
|
12
14
|
quiet?: boolean;
|
|
13
15
|
noColor?: boolean;
|
|
14
16
|
}
|
|
15
17
|
export declare function runInit(opts: InitOptions): Promise<void>;
|
|
18
|
+
export declare function shouldHaltInit(state: Awaited<ReturnType<typeof runPhase>>): boolean;
|
|
16
19
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAGvC,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1D,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE9D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,GAAG,OAAO,CAEnF"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context } from '../context.js';
|
|
2
|
-
import { findPhase, PHASES, phasesBetween
|
|
2
|
+
import { findPhase, PHASES, phasesBetween } from '../phases/index.js';
|
|
3
3
|
import { createPrompter } from '../prompts.js';
|
|
4
4
|
import { runPhase } from '../runner.js';
|
|
5
5
|
import { StateStore } from '../state.js';
|
|
@@ -16,6 +16,7 @@ export async function runInit(opts) {
|
|
|
16
16
|
yes: opts.yes ?? false,
|
|
17
17
|
reset: opts.reset ?? false,
|
|
18
18
|
resetConfirmed: opts.resetIMeanIt ?? false,
|
|
19
|
+
pm: opts.pm ?? state.get().answers.pm,
|
|
19
20
|
cliFlags: { ...opts },
|
|
20
21
|
logger,
|
|
21
22
|
prompter,
|
|
@@ -53,7 +54,7 @@ export async function runInit(opts) {
|
|
|
53
54
|
// this one's output (db answers, env values, scaffolded files, etc.)
|
|
54
55
|
// and would either fail confusingly or silently misbehave. `partial`
|
|
55
56
|
// is a soft warning (wire's manual sub-edits) — keep going on that.
|
|
56
|
-
if (state_
|
|
57
|
+
if (shouldHaltInit(state_)) {
|
|
57
58
|
logger.info(`re-run with: byline init --from ${phase.id}`);
|
|
58
59
|
state.flush();
|
|
59
60
|
prompter.outro('installation halted — fix the issue above and re-run');
|
|
@@ -63,7 +64,10 @@ export async function runInit(opts) {
|
|
|
63
64
|
state.flush();
|
|
64
65
|
prompter.outro('Byline installation complete — see byline doctor for status');
|
|
65
66
|
}
|
|
66
|
-
function
|
|
67
|
+
export function shouldHaltInit(state) {
|
|
68
|
+
return state === 'blocked';
|
|
69
|
+
}
|
|
70
|
+
function pickPhases(opts, _completed) {
|
|
67
71
|
if (opts.only) {
|
|
68
72
|
const p = findPhase(opts.only);
|
|
69
73
|
return p ? [p] : [];
|
|
@@ -72,16 +76,8 @@ function pickPhases(opts, completed) {
|
|
|
72
76
|
return phasesBetween(opts.from, opts.to);
|
|
73
77
|
if (opts.to)
|
|
74
78
|
return phasesBetween(undefined, opts.to);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const next = nextPhaseAfter(lastCompleted);
|
|
79
|
-
return next ? phasesFrom(next) : PHASES;
|
|
80
|
-
}
|
|
81
|
-
function nextPhaseAfter(id) {
|
|
82
|
-
const idx = PHASES.findIndex((p) => p.id === id);
|
|
83
|
-
if (idx === -1 || idx >= PHASES.length - 1)
|
|
84
|
-
return undefined;
|
|
85
|
-
return PHASES[idx + 1]?.id;
|
|
79
|
+
// Always re-detect every phase. Structural detection is cheap and prevents
|
|
80
|
+
// old completion flags from hiding artifacts introduced by a newer CLI.
|
|
81
|
+
return PHASES;
|
|
86
82
|
}
|
|
87
83
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type DependencyCompatibility } from '../lib/dependency-version.js';
|
|
2
|
+
import { type DepSpec } from '../manifest/deps.js';
|
|
1
3
|
import type { Context } from '../context.js';
|
|
2
4
|
export type SetupCheckResult = 'proceed' | 'aborted';
|
|
3
5
|
/**
|
|
@@ -16,4 +18,11 @@ export type SetupCheckResult = 'proceed' | 'aborted';
|
|
|
16
18
|
* "I don't want to type defaults," not "I don't care if my env is broken."
|
|
17
19
|
*/
|
|
18
20
|
export declare function runSetupChecks(ctx: Context): Promise<SetupCheckResult>;
|
|
21
|
+
export declare function findMissingBylineDeps(ctx: Context): DepSpec[] | null;
|
|
22
|
+
export interface BylineDependencyIssue {
|
|
23
|
+
spec: DepSpec;
|
|
24
|
+
declared?: string;
|
|
25
|
+
compatibility?: DependencyCompatibility;
|
|
26
|
+
}
|
|
27
|
+
export declare function findBylineDependencyIssues(ctx: Context): BylineDependencyIssue[] | null;
|
|
19
28
|
//# sourceMappingURL=setup-checks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-checks.d.ts","sourceRoot":"","sources":["../../src/commands/setup-checks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-checks.d.ts","sourceRoot":"","sources":["../../src/commands/setup-checks.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAA;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2D5E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,CAEpE;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,uBAAuB,CAAA;CACxC;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,EAAE,GAAG,IAAI,CAwBvF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { evaluateDependencyCompatibility, } from '../lib/dependency-version.js';
|
|
3
|
+
import { BYLINE_RELEASE_POLICY } from '../lib/release-policy.js';
|
|
2
4
|
import { DEP_SPECS } from '../manifest/deps.js';
|
|
3
5
|
import { ENV_FILE_PATHS, ENV_SPECS } from '../manifest/env.js';
|
|
4
6
|
/**
|
|
@@ -17,17 +19,22 @@ import { ENV_FILE_PATHS, ENV_SPECS } from '../manifest/env.js';
|
|
|
17
19
|
* "I don't want to type defaults," not "I don't care if my env is broken."
|
|
18
20
|
*/
|
|
19
21
|
export async function runSetupChecks(ctx) {
|
|
20
|
-
const
|
|
21
|
-
if (
|
|
22
|
+
const dependencyIssues = findBylineDependencyIssues(ctx);
|
|
23
|
+
if (dependencyIssues === null) {
|
|
22
24
|
ctx.logger.error('package.json not found or unreadable — run `byline init` first');
|
|
23
25
|
return 'aborted';
|
|
24
26
|
}
|
|
25
|
-
if (
|
|
26
|
-
ctx.logger.error('core @byline/* packages are
|
|
27
|
-
for (const
|
|
28
|
-
ctx.logger.raw(` - ${spec.name}@${spec.version}`);
|
|
27
|
+
if (dependencyIssues.length > 0) {
|
|
28
|
+
ctx.logger.error('core @byline/* packages are missing or declare an incompatible range:');
|
|
29
|
+
for (const issue of dependencyIssues) {
|
|
30
|
+
ctx.logger.raw(` - ${issue.spec.name}@${issue.declared ?? issue.spec.version} — ${issue.compatibility?.reason ?? 'not declared'}`);
|
|
31
|
+
}
|
|
32
|
+
if (dependencyIssues.some((issue) => issue.compatibility?.preserveDeclared !== true)) {
|
|
33
|
+
ctx.logger.info(`install registry-backed packages with: ${installHint(ctx, dependencyIssues)}`);
|
|
34
|
+
}
|
|
35
|
+
if (dependencyIssues.some((issue) => issue.compatibility?.preserveDeclared === true)) {
|
|
36
|
+
ctx.logger.info(`workspace links were preserved; update or link the local @byline package to a supported ${BYLINE_RELEASE_POLICY.displayFloor} version`);
|
|
29
37
|
}
|
|
30
|
-
ctx.logger.info(`install them with: ${installHint(ctx)}`);
|
|
31
38
|
ctx.logger.info('or run the full wizard: byline init');
|
|
32
39
|
return 'aborted';
|
|
33
40
|
}
|
|
@@ -56,7 +63,10 @@ export async function runSetupChecks(ctx) {
|
|
|
56
63
|
}
|
|
57
64
|
return 'proceed';
|
|
58
65
|
}
|
|
59
|
-
function findMissingBylineDeps(ctx) {
|
|
66
|
+
export function findMissingBylineDeps(ctx) {
|
|
67
|
+
return findBylineDependencyIssues(ctx)?.map((issue) => issue.spec) ?? null;
|
|
68
|
+
}
|
|
69
|
+
export function findBylineDependencyIssues(ctx) {
|
|
60
70
|
const pkgPath = ctx.resolve('package.json');
|
|
61
71
|
if (!existsSync(pkgPath))
|
|
62
72
|
return null;
|
|
@@ -67,11 +77,22 @@ function findMissingBylineDeps(ctx) {
|
|
|
67
77
|
catch {
|
|
68
78
|
return null;
|
|
69
79
|
}
|
|
70
|
-
const declared =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
const declared = { ...(pkg.devDependencies ?? {}), ...(pkg.dependencies ?? {}) };
|
|
81
|
+
const issues = [];
|
|
82
|
+
for (const spec of DEP_SPECS) {
|
|
83
|
+
if (spec.group !== 'byline')
|
|
84
|
+
continue;
|
|
85
|
+
const declaredVersion = declared[spec.name];
|
|
86
|
+
if (declaredVersion === undefined) {
|
|
87
|
+
issues.push({ spec });
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
const compatibility = evaluateDependencyCompatibility(ctx, spec, declaredVersion);
|
|
91
|
+
if (compatibility.status !== 'compatible') {
|
|
92
|
+
issues.push({ spec, declared: declaredVersion, compatibility });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return issues;
|
|
75
96
|
}
|
|
76
97
|
function findMissingEnvKeys(ctx) {
|
|
77
98
|
// Read each file independently and check each spec against the file it
|
|
@@ -110,16 +131,20 @@ function parseEnvKeys(contents) {
|
|
|
110
131
|
}
|
|
111
132
|
return keys;
|
|
112
133
|
}
|
|
113
|
-
function installHint(ctx) {
|
|
134
|
+
function installHint(ctx, issues) {
|
|
135
|
+
const packages = issues
|
|
136
|
+
.filter((issue) => issue.compatibility?.preserveDeclared !== true)
|
|
137
|
+
.map((issue) => `${issue.spec.name}@${issue.spec.version}`)
|
|
138
|
+
.join(' ');
|
|
114
139
|
switch (ctx.pm) {
|
|
115
140
|
case 'pnpm':
|
|
116
|
-
return
|
|
141
|
+
return `pnpm add ${packages}`;
|
|
117
142
|
case 'yarn':
|
|
118
|
-
return
|
|
143
|
+
return `yarn add ${packages}`;
|
|
119
144
|
case 'bun':
|
|
120
|
-
return
|
|
145
|
+
return `bun add ${packages}`;
|
|
121
146
|
case 'npm':
|
|
122
|
-
return
|
|
147
|
+
return `npm install ${packages}`;
|
|
123
148
|
}
|
|
124
149
|
}
|
|
125
150
|
//# sourceMappingURL=setup-checks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-checks.js","sourceRoot":"","sources":["../../src/commands/setup-checks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,EAAE,SAAS,EAAgB,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,SAAS,EAA6B,MAAM,oBAAoB,CAAA;AAKzF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAY;IAC/C,MAAM,
|
|
1
|
+
{"version":3,"file":"setup-checks.js","sourceRoot":"","sources":["../../src/commands/setup-checks.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAiBlD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAkB;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACzE,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;IAEjC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;QACtB,GAAG;QACH,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK;QACtB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;QAC1B,cAAc,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;QAC1C,EAAE,EAAE,IAAI,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export interface Secrets {
|
|
|
21
21
|
}
|
|
22
22
|
export declare class Context {
|
|
23
23
|
readonly cwd: string;
|
|
24
|
+
readonly workspaceRoot: string;
|
|
24
25
|
readonly apply: boolean;
|
|
25
26
|
readonly dryRun: boolean;
|
|
26
27
|
readonly yes: boolean;
|
|
@@ -34,6 +35,7 @@ export declare class Context {
|
|
|
34
35
|
readonly secrets: Secrets;
|
|
35
36
|
constructor(opts: ContextOptions);
|
|
36
37
|
resolve(...parts: string[]): string;
|
|
38
|
+
resolveWorkspace(...parts: string[]): string;
|
|
37
39
|
templatesDir(): string;
|
|
38
40
|
}
|
|
39
41
|
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,OAAO,CAAA;IACvB,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;IACtD,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,OAAO;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,EAAE,EAAE,cAAc,CAAA;IAClB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAK;IAE9B,YAAY,IAAI,EAAE,cAAc,EAa/B;IAED,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAElC;IAED,gBAAgB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAE3C;IAED,YAAY,IAAI,MAAM,CAGrB;CACF"}
|
package/dist/context.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { dirname, resolve } from 'node:path';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { findWorkspaceRoot } from './lib/workspace-root.js';
|
|
3
4
|
export class Context {
|
|
4
5
|
cwd;
|
|
6
|
+
workspaceRoot;
|
|
5
7
|
apply;
|
|
6
8
|
dryRun;
|
|
7
9
|
yes;
|
|
@@ -15,6 +17,7 @@ export class Context {
|
|
|
15
17
|
secrets = {};
|
|
16
18
|
constructor(opts) {
|
|
17
19
|
this.cwd = opts.cwd;
|
|
20
|
+
this.workspaceRoot = findWorkspaceRoot(opts.cwd);
|
|
18
21
|
this.apply = opts.apply;
|
|
19
22
|
this.dryRun = opts.dryRun;
|
|
20
23
|
this.yes = opts.yes;
|
|
@@ -29,6 +32,9 @@ export class Context {
|
|
|
29
32
|
resolve(...parts) {
|
|
30
33
|
return resolve(this.cwd, ...parts);
|
|
31
34
|
}
|
|
35
|
+
resolveWorkspace(...parts) {
|
|
36
|
+
return resolve(this.workspaceRoot, ...parts);
|
|
37
|
+
}
|
|
32
38
|
templatesDir() {
|
|
33
39
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
34
40
|
return resolve(here, './templates');
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAyB3D,MAAM,OAAO,OAAO;IACT,GAAG,CAAQ;IACX,aAAa,CAAQ;IACrB,KAAK,CAAS;IACd,MAAM,CAAS;IACf,GAAG,CAAS;IACZ,KAAK,CAAS;IACd,cAAc,CAAS;IAChC,EAAE,CAAgB;IACT,QAAQ,CAA8C;IACtD,MAAM,CAAQ;IACd,QAAQ,CAAU;IAClB,KAAK,CAAY;IACjB,OAAO,GAAY,EAAE,CAAA;IAE9B,YAAY,IAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACnB,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,KAAe;QACxB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,gBAAgB,CAAC,GAAG,KAAe;QACjC,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,OAAO,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Context } from '../context.js';
|
|
2
|
+
import type { DepSpec } from '../manifest/deps.js';
|
|
3
|
+
export interface DependencyCompatibility {
|
|
4
|
+
status: 'compatible' | 'incompatible' | 'unknown';
|
|
5
|
+
preserveDeclared: boolean;
|
|
6
|
+
reason: string;
|
|
7
|
+
actualVersion?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function evaluateDependencyCompatibility(ctx: Context, spec: DepSpec, declared: string): DependencyCompatibility;
|
|
10
|
+
export declare function checkDependencyVersion(spec: DepSpec, declared: string, actualVersion?: string): DependencyCompatibility;
|
|
11
|
+
export declare function isDependencyVersionCompatible(spec: DepSpec, declared: string): boolean;
|
|
12
|
+
//# sourceMappingURL=dependency-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-version.d.ts","sourceRoot":"","sources":["../../src/lib/dependency-version.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS,CAAA;IACjD,gBAAgB,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GACf,uBAAuB,CAMzB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,uBAAuB,CA+CzB;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtF"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { satisfies, subset, valid, validRange } from 'semver';
|
|
4
|
+
import { BYLINE_RELEASE_POLICY } from './release-policy.js';
|
|
5
|
+
import { resolveWorkspaceOwnership, workspacePackageDirectories } from './workspace-root.js';
|
|
6
|
+
const BARE_WORKSPACE_RANGES = new Set(['workspace:*', 'workspace:^', 'workspace:~']);
|
|
7
|
+
const resolvedVersions = new WeakMap();
|
|
8
|
+
export function evaluateDependencyCompatibility(ctx, spec, declared) {
|
|
9
|
+
const trimmed = declared.trim();
|
|
10
|
+
const actualVersion = BARE_WORKSPACE_RANGES.has(trimmed)
|
|
11
|
+
? resolvePackageVersion(ctx, spec.name)
|
|
12
|
+
: undefined;
|
|
13
|
+
return checkDependencyVersion(spec, declared, actualVersion);
|
|
14
|
+
}
|
|
15
|
+
export function checkDependencyVersion(spec, declared, actualVersion) {
|
|
16
|
+
if (spec.group !== 'byline') {
|
|
17
|
+
return { status: 'compatible', preserveDeclared: false, reason: 'not a Byline package' };
|
|
18
|
+
}
|
|
19
|
+
const trimmed = declared.trim();
|
|
20
|
+
if (BARE_WORKSPACE_RANGES.has(trimmed)) {
|
|
21
|
+
if (!actualVersion) {
|
|
22
|
+
return {
|
|
23
|
+
status: 'unknown',
|
|
24
|
+
preserveDeclared: true,
|
|
25
|
+
reason: `${trimmed} target version could not be resolved locally`,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (!valid(actualVersion) || !satisfies(actualVersion, BYLINE_RELEASE_POLICY.supportedRange)) {
|
|
29
|
+
return {
|
|
30
|
+
status: 'incompatible',
|
|
31
|
+
preserveDeclared: true,
|
|
32
|
+
actualVersion,
|
|
33
|
+
reason: `${trimmed} resolves to unsupported ${actualVersion}`,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
status: 'compatible',
|
|
38
|
+
preserveDeclared: true,
|
|
39
|
+
actualVersion,
|
|
40
|
+
reason: `${trimmed} resolves to ${actualVersion}`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const range = normalizeStaticRange(spec, trimmed);
|
|
44
|
+
if (!range) {
|
|
45
|
+
return { status: 'incompatible', preserveDeclared: false, reason: 'invalid version range' };
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const compatible = validRange(range) !== null && subset(range, BYLINE_RELEASE_POLICY.supportedRange);
|
|
49
|
+
return compatible
|
|
50
|
+
? { status: 'compatible', preserveDeclared: trimmed.startsWith('workspace:'), reason: range }
|
|
51
|
+
: {
|
|
52
|
+
status: 'incompatible',
|
|
53
|
+
preserveDeclared: trimmed.startsWith('workspace:'),
|
|
54
|
+
reason: `${range} is not wholly within ${BYLINE_RELEASE_POLICY.supportedRange}`,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return { status: 'incompatible', preserveDeclared: false, reason: 'invalid version range' };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export function isDependencyVersionCompatible(spec, declared) {
|
|
62
|
+
return checkDependencyVersion(spec, declared).status === 'compatible';
|
|
63
|
+
}
|
|
64
|
+
function normalizeStaticRange(spec, declared) {
|
|
65
|
+
if (declared.startsWith('workspace:'))
|
|
66
|
+
return declared.slice('workspace:'.length);
|
|
67
|
+
const npmAlias = declared.match(/^npm:(@byline\/[a-z0-9-]+)@(.+)$/);
|
|
68
|
+
if (npmAlias)
|
|
69
|
+
return npmAlias[1] === spec.name ? (npmAlias[2] ?? null) : null;
|
|
70
|
+
return declared || null;
|
|
71
|
+
}
|
|
72
|
+
function resolvePackageVersion(ctx, packageName) {
|
|
73
|
+
const cached = resolvedVersions.get(ctx);
|
|
74
|
+
if (cached?.has(packageName))
|
|
75
|
+
return cached.get(packageName);
|
|
76
|
+
let version;
|
|
77
|
+
const ownership = resolveWorkspaceOwnership(ctx.cwd);
|
|
78
|
+
const matches = [];
|
|
79
|
+
for (const directory of workspacePackageDirectories(ownership)) {
|
|
80
|
+
const candidate = readNamedPackageVersion(join(directory, 'package.json'), packageName);
|
|
81
|
+
if (candidate)
|
|
82
|
+
matches.push(candidate);
|
|
83
|
+
}
|
|
84
|
+
if (matches.length === 1)
|
|
85
|
+
version = matches[0];
|
|
86
|
+
const next = cached ?? new Map();
|
|
87
|
+
next.set(packageName, version);
|
|
88
|
+
if (!cached)
|
|
89
|
+
resolvedVersions.set(ctx, next);
|
|
90
|
+
return version;
|
|
91
|
+
}
|
|
92
|
+
function readNamedPackageVersion(path, packageName) {
|
|
93
|
+
try {
|
|
94
|
+
const pkg = JSON.parse(readFileSync(path, 'utf8'));
|
|
95
|
+
return pkg.name === packageName && typeof pkg.version === 'string' ? pkg.version : undefined;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=dependency-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-version.js","sourceRoot":"","sources":["../../src/lib/dependency-version.ts"],"names":[],"mappings":"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"}
|