@beignet/cli 0.0.52 → 0.0.53
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/CHANGELOG.md +26 -0
- package/README.md +131 -1
- package/dist/analysis/layers.d.ts +2 -0
- package/dist/analysis/layers.d.ts.map +1 -1
- package/dist/analysis/layers.js +5 -0
- package/dist/analysis/layers.js.map +1 -1
- package/dist/analysis/port-wiring.d.ts +4 -2
- package/dist/analysis/port-wiring.d.ts.map +1 -1
- package/dist/analysis/port-wiring.js +39 -10
- package/dist/analysis/port-wiring.js.map +1 -1
- package/dist/analysis/source-index.d.ts +2 -1
- package/dist/analysis/source-index.d.ts.map +1 -1
- package/dist/analysis/source-index.js +34 -5
- package/dist/analysis/source-index.js.map +1 -1
- package/dist/analysis/workspace-routes.d.ts +8 -0
- package/dist/analysis/workspace-routes.d.ts.map +1 -0
- package/dist/analysis/workspace-routes.js +291 -0
- package/dist/analysis/workspace-routes.js.map +1 -0
- package/dist/analysis/workspace.d.ts +24 -3
- package/dist/analysis/workspace.d.ts.map +1 -1
- package/dist/analysis/workspace.js +166 -21
- package/dist/analysis/workspace.js.map +1 -1
- package/dist/app-map-changes.d.ts.map +1 -1
- package/dist/app-map-changes.js +19 -7
- package/dist/app-map-changes.js.map +1 -1
- package/dist/app-map.d.ts.map +1 -1
- package/dist/app-map.js +58 -55
- package/dist/app-map.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts.map +1 -1
- package/dist/inspect.js +89 -21
- package/dist/inspect.js.map +1 -1
- package/dist/lint.d.ts.map +1 -1
- package/dist/lint.js +106 -38
- package/dist/lint.js.map +1 -1
- package/dist/make/shared.js +1 -1
- package/dist/make.js +18 -1
- package/dist/make.js.map +1 -1
- package/dist/provider-add.js +2 -2
- package/dist/provider-add.js.map +1 -1
- package/dist/provider-audit.d.ts.map +1 -1
- package/dist/provider-audit.js +22 -6
- package/dist/provider-audit.js.map +1 -1
- package/dist/templates/shared.js +3 -3
- package/package.json +3 -2
- package/skills/app-structure/SKILL.md +42 -0
- package/src/analysis/layers.ts +9 -0
- package/src/analysis/port-wiring.ts +66 -10
- package/src/analysis/source-index.ts +56 -4
- package/src/analysis/workspace-routes.ts +385 -0
- package/src/analysis/workspace.ts +281 -34
- package/src/app-map-changes.ts +31 -5
- package/src/app-map.ts +75 -75
- package/src/config.ts +33 -0
- package/src/index.ts +25 -0
- package/src/inspect.ts +123 -16
- package/src/lint.ts +146 -43
- package/src/make/shared.ts +1 -1
- package/src/make.ts +31 -1
- package/src/provider-add.ts +2 -2
- package/src/provider-audit.ts +30 -10
- package/src/templates/shared.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @beignet/cli
|
|
2
2
|
|
|
3
|
+
## 0.0.53
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6ef881c: Reject incompatible default route-binder inputs at compile time and classify
|
|
8
|
+
type-erased runtime mismatches as framework-owned validation errors. Generated
|
|
9
|
+
resource cursors now remain optional at the request boundary and normalize to
|
|
10
|
+
nullable repository pagination state inside the use case.
|
|
11
|
+
- 71f1de1: Generate StoragePort imports from the public ports subpath for S3 and Vercel Blob setup, including apps that already declare local storage.
|
|
12
|
+
- e1a559d: Add authenticated string encryption through EncryptionPort and createEncryption, with optional context binding, decryption through previous keys, and non-sensitive failure errors. Add beignet encryption key for key generation, server import checks, and guidance for rotation and recovery.
|
|
13
|
+
- ce6a5f6: Require patched Next.js and Nodemailer releases, and use them in generated apps and SMTP provider setup.
|
|
14
|
+
- faf58ad: Clarify form adapter installation and migration, document TanStack Form UI
|
|
15
|
+
generator restrictions, and correct React Form reference examples.
|
|
16
|
+
- edebbea: Add `@beignet/react-form`, a TanStack Form adapter that installs a contract body schema as a Standard Schema validator, types the `onServer` error slot, and maps client errors with `serverErrorMap`. `beignet lint` keeps the form packages out of domain and use-case code, `beignet doctor` expects `client/forms.ts` for either form adapter, and `beignet make feature --with ui` refuses to add React Hook Form components to an app that depends on `@beignet/react-form`.
|
|
17
|
+
- 4df0522: Add typed `cacheEntries` and `updateCachedQueries` helpers with partial parameter matching, and declarative, awaited mutation invalidation. Preserve native query metadata and snapshot success defaults for each executing mutation. Prevent recursive execution of composed mutation defaults. Append an `infinite` segment to generated infinite-query keys so manually seeded and hydrated infinite data stays separate from standard responses; discard persisted infinite caches from the old key format when upgrading. Reserve the `beignet` key prefix for contract data. Require TanStack React Query 5.102 or newer and align generated dependency ranges.
|
|
18
|
+
- 8f98e8b: Add opt-in workspace source analysis for shared application and infrastructure packages. Follow package exports in architecture lint, route inspection, port wiring, and app maps while keeping generators and repairs app-local.
|
|
19
|
+
|
|
20
|
+
Preserve per-file Next.js handlers, trace route registration from the exported server, reject imports into omitted source packages, and follow wiring aliases when inferring application ports.
|
|
21
|
+
|
|
22
|
+
Resolve package import aliases, import-then-export barrels, and contract aliases by source declaration so repeated export names and loader-local variables do not produce incorrect route matches.
|
|
23
|
+
|
|
24
|
+
- Updated dependencies [6ef881c]
|
|
25
|
+
- Updated dependencies [e1a559d]
|
|
26
|
+
- Updated dependencies [edebbea]
|
|
27
|
+
- @beignet/core@0.0.53
|
|
28
|
+
|
|
3
29
|
## 0.0.52
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ add. Passing any selection flag (`--api`, `--db`, `--providers`, or
|
|
|
49
49
|
non-interactive defaults (the full-stack SQLite starter with `bun`) even on a
|
|
50
50
|
terminal. Non-interactive runs in scripts and CI behave exactly as before.
|
|
51
51
|
|
|
52
|
-
By default the CLI creates
|
|
52
|
+
By default the CLI creates an app using Next.js 16.3.3 or newer within v16, with:
|
|
53
53
|
|
|
54
54
|
- Contract-first todos API routes
|
|
55
55
|
- Better Auth routes and Beignet auth provider wiring
|
|
@@ -506,6 +506,110 @@ export default defineConfig({
|
|
|
506
506
|
This affects CLI provider auditing only. It does not skip `createEnv(...)` or
|
|
507
507
|
provider runtime configuration validation.
|
|
508
508
|
|
|
509
|
+
## Workspace source packages
|
|
510
|
+
|
|
511
|
+
A web app and a worker can share Beignet application code and infrastructure
|
|
512
|
+
through ordinary workspace packages. Each runtime owns startup and shutdown;
|
|
513
|
+
shared packages export contracts, use cases, port types, and adapter factories.
|
|
514
|
+
Sharing an adapter implementation does not share an in-memory instance across
|
|
515
|
+
processes. Use the same persistent database or service when runtimes need shared
|
|
516
|
+
state.
|
|
517
|
+
|
|
518
|
+
Opt into source analysis from the app's `beignet.config.ts`:
|
|
519
|
+
|
|
520
|
+
```ts
|
|
521
|
+
import { defineConfig } from "@beignet/cli/config";
|
|
522
|
+
|
|
523
|
+
export default defineConfig({
|
|
524
|
+
framework: "web",
|
|
525
|
+
workspace: {
|
|
526
|
+
packages: ["../../packages/application", "../../packages/infra"],
|
|
527
|
+
},
|
|
528
|
+
});
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
List every source package to inspect, including transitive dependencies. Paths
|
|
532
|
+
are relative to the app and may point to sibling packages. Each package needs a
|
|
533
|
+
unique `package.json` name and must be reachable through declared dependencies
|
|
534
|
+
from the app. Package roots cannot overlap. Beignet does not discover or inspect
|
|
535
|
+
all of `node_modules`; install workspace dependencies using your package manager.
|
|
536
|
+
Turborepo can schedule the package scripts but is not required by Beignet.
|
|
537
|
+
|
|
538
|
+
Each package uses its own `beignet.config.*` paths and `tsconfig.json` (or
|
|
539
|
+
`jsconfig.json`). An application package can keep the usual `features/`, `ports/`,
|
|
540
|
+
and `lib/` layout. An infra package containing adapters under `src/` can declare:
|
|
541
|
+
|
|
542
|
+
```ts
|
|
543
|
+
// packages/infra/beignet.config.ts
|
|
544
|
+
import { defineConfig } from "@beignet/cli/config";
|
|
545
|
+
|
|
546
|
+
export default defineConfig({
|
|
547
|
+
paths: { portWiring: "src/port-wiring.ts" },
|
|
548
|
+
});
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
This identifies `src/` as the package's infrastructure layer. A package that
|
|
552
|
+
only exports adapter factories does not need a port-wiring file. The consuming
|
|
553
|
+
app can compose those factories in its own `infra/port-wiring.ts`.
|
|
554
|
+
|
|
555
|
+
Expose source entrypoints through package exports, for example:
|
|
556
|
+
|
|
557
|
+
```json
|
|
558
|
+
{
|
|
559
|
+
"name": "@example/infra",
|
|
560
|
+
"private": true,
|
|
561
|
+
"type": "module",
|
|
562
|
+
"exports": { "./notes": "./src/notes.ts" },
|
|
563
|
+
"dependencies": { "@example/application": "workspace:*" }
|
|
564
|
+
}
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
The normal TypeScript resolver handles exports, subpaths, conditions, package
|
|
568
|
+
imports, and configured aliases. Configure the consuming build and runtime to
|
|
569
|
+
resolve the same source. Beignet does not rewrite imports or redirect built
|
|
570
|
+
exports to guessed source files. Missing exports and entries that resolve only
|
|
571
|
+
to excluded build output produce `BEIGNET_WORKSPACE_IMPORT` diagnostics.
|
|
572
|
+
|
|
573
|
+
`beignet lint` follows imports and reexports across included packages and applies
|
|
574
|
+
each owner's architecture rules. Moving an adapter to a package does not make
|
|
575
|
+
it accessible to use cases or browser code. Cross-package imports require a
|
|
576
|
+
dependency declaration in the importing package, including type-only imports.
|
|
577
|
+
Relative imports, TypeScript aliases, and `package.json#imports` aliases that
|
|
578
|
+
resolve outside the configured source roots also produce a workspace diagnostic;
|
|
579
|
+
include the owning source package in `workspace.packages`. Aliases to installed
|
|
580
|
+
external dependencies remain external imports.
|
|
581
|
+
|
|
582
|
+
App-owned provider checks recognize reexported `AppPorts` declarations and
|
|
583
|
+
provider metadata in hoisted `node_modules` installations. Inferred declarations
|
|
584
|
+
such as `AppPorts = typeof initialPorts` follow the underlying wiring declaration
|
|
585
|
+
through reexport aliases. Barrels may import a symbol and then export it, including
|
|
586
|
+
type-only exports of shared port interfaces.
|
|
587
|
+
|
|
588
|
+
`beignet routes` and `doctor` inspect shared contracts and explicit
|
|
589
|
+
`defineRoutes(...)` / `defineRouteGroup(...)` composition from the selected
|
|
590
|
+
server. Inspection follows the exported `server` or the server returned by an
|
|
591
|
+
exported `getServer = createNextServerLoader(...)`. Unrelated server factories
|
|
592
|
+
do not register routes, and verified per-file Next.js handlers remain valid
|
|
593
|
+
without central registration. Contract matching follows imports and local aliases
|
|
594
|
+
to the declaration, so shared export names and loader-local variables remain
|
|
595
|
+
distinct. Computed or ambiguous workspace route registration produces
|
|
596
|
+
`BEIGNET_WORKSPACE_ROUTES_UNRESOLVED`. `map` and `explain` include shared source
|
|
597
|
+
and qualify shared feature names, for example `@example/application:notes`.
|
|
598
|
+
Evidence paths remain relative to the selected app and can contain `../`.
|
|
599
|
+
`map --changed` includes changes to configured source packages.
|
|
600
|
+
|
|
601
|
+
Keep lifecycle provider registration, environment configuration, database
|
|
602
|
+
commands, and operational workflow registries app-owned. Provider and
|
|
603
|
+
operational doctor checks still use those app conventions; this source analysis
|
|
604
|
+
does not make arbitrary imported runtime factories statically verifiable.
|
|
605
|
+
Worker-only packages can use `lint` to check their dependencies; the HTTP-focused
|
|
606
|
+
`routes` and `doctor` commands run against the web app.
|
|
607
|
+
|
|
608
|
+
Generators and doctor repairs remain scoped to the selected app. `paths.*`
|
|
609
|
+
values must still stay inside that app; `workspace.packages` grants read-only
|
|
610
|
+
analysis, not permission to generate or repair files in another package. The
|
|
611
|
+
standard single-app examples remain the default architecture.
|
|
612
|
+
|
|
509
613
|
## Generate a contract
|
|
510
614
|
|
|
511
615
|
Use `make contract` when you want to start with the HTTP contract only:
|
|
@@ -582,6 +686,12 @@ invalidates the generated list query. If the app does not have one yet, the
|
|
|
582
686
|
generator also creates the canonical `client/forms.ts` adapter and installs the
|
|
583
687
|
React Hook Form dependencies.
|
|
584
688
|
|
|
689
|
+
The addon targets React Hook Form. In an app that depends on
|
|
690
|
+
`@beignet/react-form`, both `--with ui` and `--recipe full-slice` stop with
|
|
691
|
+
guidance. Generate the feature without those options, then write its component
|
|
692
|
+
using the [TanStack Form guide](https://beignetjs.com/react-form). You can still
|
|
693
|
+
select other addons with `--with`.
|
|
694
|
+
|
|
585
695
|
Use the named full-slice recipe when you want a richer reference slice:
|
|
586
696
|
|
|
587
697
|
```bash
|
|
@@ -951,6 +1061,21 @@ Run `make event <feature.event>` first, then generate listeners for that event.
|
|
|
951
1061
|
repeated runs skip identical files and avoid duplicate wiring. If a generated
|
|
952
1062
|
file exists with different content, the command stops unless you pass `--force`.
|
|
953
1063
|
|
|
1064
|
+
## Generate an encryption key
|
|
1065
|
+
|
|
1066
|
+
```bash
|
|
1067
|
+
beignet encryption key
|
|
1068
|
+
beignet encryption key --json
|
|
1069
|
+
```
|
|
1070
|
+
|
|
1071
|
+
Prints a new `base64:`-prefixed 256-bit key for
|
|
1072
|
+
`createEncryption(...)` from `@beignet/core/encryption`. JSON output contains
|
|
1073
|
+
`schemaVersion: 1` and `key`. The command works outside an app and does not
|
|
1074
|
+
read or update environment files. Put the key into your server secret store;
|
|
1075
|
+
keep command output out of shared logs and never replace a key without retaining
|
|
1076
|
+
the keys needed to read existing data. See [Encryption](https://beignetjs.com/encryption)
|
|
1077
|
+
for wiring, rolling rotation, and backup recovery.
|
|
1078
|
+
|
|
954
1079
|
## Database lifecycle
|
|
955
1080
|
|
|
956
1081
|
Use `beignet db` from an app root to run database workflow scripts through one
|
|
@@ -1410,6 +1535,11 @@ Supported presets are `flags-openfeature`, `jobs-bullmq`, `jobs-inngest`,
|
|
|
1410
1535
|
the exact file changes. The same presets can be selected at create time with
|
|
1411
1536
|
`--providers`.
|
|
1412
1537
|
|
|
1538
|
+
The storage presets declare `StoragePort` from `@beignet/core/ports` and reuse
|
|
1539
|
+
that declaration if your app already has local storage. Before switching storage
|
|
1540
|
+
providers, remove the previous provider entry, import, and unused provider
|
|
1541
|
+
package; keep the app's `storage` port and deferred binding.
|
|
1542
|
+
|
|
1413
1543
|
Use `beignet provider audit` when you want a report-only inventory of the
|
|
1414
1544
|
provider packages installed in an app. The human audit prints provider
|
|
1415
1545
|
metadata validity, registration status, required env, required tables, and
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type ResolvedBeignetConfig } from "../config.js";
|
|
2
|
+
import { type AnalysisWorkspace } from "./workspace.js";
|
|
3
|
+
export declare function classifyWorkspaceSourcePath(file: string, workspace: AnalysisWorkspace): SourceLayer;
|
|
2
4
|
export type SourceLayer = "app" | "app-context" | "agent-capability" | "client" | "component" | "contract" | "domain" | "feature-helper" | "feature-port" | "infra" | "lib" | "policy" | "port" | "route" | "schema" | "seed" | "server" | "test" | "use-case" | "workflow" | "unknown";
|
|
3
5
|
export declare function classifySourcePath(filePath: string, config: ResolvedBeignetConfig): SourceLayer;
|
|
4
6
|
export declare function canonicalFeatureLayerPath(filePath: string, config: ResolvedBeignetConfig): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/analysis/layers.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/analysis/layers.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,KAAK,iBAAiB,EAAiB,MAAM,gBAAgB,CAAC;AAEvE,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,iBAAiB,GAC3B,WAAW,CAGb;AAED,MAAM,MAAM,WAAW,GACnB,KAAK,GACL,aAAa,GACb,kBAAkB,GAClB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,QAAQ,GACR,gBAAgB,GAChB,cAAc,GACd,OAAO,GACP,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,UAAU,GACV,UAAU,GACV,SAAS,CAAC;AA6Cd,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,GAC5B,WAAW,CAuEb;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,qBAAqB,GAC5B,MAAM,GAAG,SAAS,CAmCpB"}
|
package/dist/analysis/layers.js
CHANGED
|
@@ -2,6 +2,11 @@ import path from "node:path";
|
|
|
2
2
|
import { clientDirPath, directoryPath, normalizePath, } from "../config.js";
|
|
3
3
|
import { isAppTestFile } from "../test-discovery.js";
|
|
4
4
|
import { stripSourceFileExtension } from "./source-files.js";
|
|
5
|
+
import { projectSource } from "./workspace.js";
|
|
6
|
+
export function classifyWorkspaceSourcePath(file, workspace) {
|
|
7
|
+
const source = projectSource(workspace, file);
|
|
8
|
+
return classifySourcePath(source.file, source.project.config);
|
|
9
|
+
}
|
|
5
10
|
const canonicalFeatureDirectories = {
|
|
6
11
|
client: "client",
|
|
7
12
|
components: "component",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/analysis/layers.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,GAEd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/analysis/layers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
import type { ResolvedBeignetConfig } from "../config.js";
|
|
3
|
-
import type
|
|
3
|
+
import { type SourceIndex } from "./source-index.js";
|
|
4
|
+
import { type AnalysisWorkspace } from "./workspace.js";
|
|
4
5
|
type PortAnalysisWorkspace = Pick<AnalysisWorkspace, "config" | "fileSet" | "readSourceFile">;
|
|
5
6
|
export type PortWiringAnalysis = {
|
|
6
7
|
portsFileExists: boolean;
|
|
7
8
|
portWiringFileExists: boolean;
|
|
8
9
|
properties: Map<string, ts.PropertySignature>;
|
|
10
|
+
propertyFiles: Map<string, string>;
|
|
9
11
|
declared: Set<string>;
|
|
10
12
|
bound: Set<string>;
|
|
11
13
|
deferred: Set<string>;
|
|
@@ -13,7 +15,7 @@ export type PortWiringAnalysis = {
|
|
|
13
15
|
declarationIndeterminate: boolean;
|
|
14
16
|
indeterminate: boolean;
|
|
15
17
|
};
|
|
16
|
-
export declare function analyzePortWiring(workspace: PortAnalysisWorkspace): Promise<PortWiringAnalysis>;
|
|
18
|
+
export declare function analyzePortWiring(workspace: PortAnalysisWorkspace, sourceIndex?: SourceIndex): Promise<PortWiringAnalysis>;
|
|
17
19
|
export declare function analyzePortWiringFiles(options: {
|
|
18
20
|
targetDir: string;
|
|
19
21
|
files: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-wiring.d.ts","sourceRoot":"","sources":["../../src/analysis/port-wiring.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"port-wiring.d.ts","sourceRoot":"","sources":["../../src/analysis/port-wiring.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,gBAAgB,CAAC;AAExB,KAAK,qBAAqB,GAAG,IAAI,CAC/B,iBAAiB,EACjB,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CACxC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC9C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,0BAA0B,EAAE,OAAO,CAAC;IACpC,wBAAwB,EAAE,OAAO,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,qBAAqB,EAChC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAgJ7B;AAiGD,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,qBAAqB,CAAC;CAC/B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyB9B"}
|
|
@@ -2,11 +2,14 @@ import { readFile } from "node:fs/promises";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import ts from "typescript";
|
|
4
4
|
import { sourceFileScriptKind } from "./source-files.js";
|
|
5
|
-
|
|
5
|
+
import { createSourceIndex, } from "./source-index.js";
|
|
6
|
+
import { createAnalysisWorkspace, } from "./workspace.js";
|
|
7
|
+
export async function analyzePortWiring(workspace, sourceIndex) {
|
|
6
8
|
const result = {
|
|
7
9
|
portsFileExists: workspace.fileSet.has(workspace.config.paths.ports),
|
|
8
10
|
portWiringFileExists: workspace.fileSet.has(workspace.config.paths.portWiring),
|
|
9
11
|
properties: new Map(),
|
|
12
|
+
propertyFiles: new Map(),
|
|
10
13
|
declared: new Set(),
|
|
11
14
|
bound: new Set(),
|
|
12
15
|
deferred: new Set(),
|
|
@@ -15,18 +18,25 @@ export async function analyzePortWiring(workspace) {
|
|
|
15
18
|
indeterminate: false,
|
|
16
19
|
};
|
|
17
20
|
let inferredAppPortsName;
|
|
21
|
+
let inferredAppPortsReference;
|
|
18
22
|
if (result.portsFileExists) {
|
|
19
|
-
const
|
|
23
|
+
const reference = await sourceIndex?.resolveExport(workspace.config.paths.ports, "AppPorts");
|
|
24
|
+
const portsFile = reference?.file ?? workspace.config.paths.ports;
|
|
25
|
+
const portsName = reference?.exportName ?? "AppPorts";
|
|
26
|
+
const sourceFile = await workspace.readSourceFile(portsFile);
|
|
20
27
|
const declarations = collectTypeDeclarations(sourceFile);
|
|
21
|
-
inferredAppPortsName = inferredTypeQueryName(
|
|
28
|
+
inferredAppPortsName = inferredTypeQueryName(portsName, declarations);
|
|
29
|
+
if (inferredAppPortsName)
|
|
30
|
+
inferredAppPortsReference = await sourceIndex?.resolveName(portsFile, inferredAppPortsName);
|
|
22
31
|
const collection = inferredAppPortsName
|
|
23
32
|
? { properties: [], indeterminate: false }
|
|
24
|
-
: collectNamedTypeProperties(
|
|
33
|
+
: collectNamedTypeProperties(portsName, declarations, !sourceIndex);
|
|
25
34
|
result.declarationIndeterminate = collection.indeterminate;
|
|
26
35
|
for (const property of collection.properties) {
|
|
27
36
|
const name = propertyName(property.name);
|
|
28
37
|
if (name && !result.properties.has(name)) {
|
|
29
38
|
result.properties.set(name, property);
|
|
39
|
+
result.propertyFiles.set(name, portsFile);
|
|
30
40
|
result.declared.add(name);
|
|
31
41
|
}
|
|
32
42
|
}
|
|
@@ -36,10 +46,16 @@ export async function analyzePortWiring(workspace) {
|
|
|
36
46
|
result.declarationIndeterminate = true;
|
|
37
47
|
return result;
|
|
38
48
|
}
|
|
39
|
-
const
|
|
49
|
+
const wiringReference = await sourceIndex?.resolveExport(workspace.config.paths.portWiring, "initialPorts");
|
|
50
|
+
const sourceFile = await workspace.readSourceFile(wiringReference?.file ?? workspace.config.paths.portWiring);
|
|
40
51
|
const values = collectVariableInitializers(sourceFile);
|
|
41
|
-
const definitions = portDefinitionCalls(sourceFile
|
|
42
|
-
|
|
52
|
+
const definitions = portDefinitionCalls(sourceFile, wiringReference?.declaration &&
|
|
53
|
+
ts.isVariableDeclaration(wiringReference.declaration) &&
|
|
54
|
+
ts.isIdentifier(wiringReference.declaration.name)
|
|
55
|
+
? wiringReference.declaration.name.text
|
|
56
|
+
: wiringReference?.exportName);
|
|
57
|
+
if (definitions.indeterminate ||
|
|
58
|
+
(sourceIndex && definitions.calls.length === 0))
|
|
43
59
|
result.indeterminate = true;
|
|
44
60
|
for (const call of definitions.calls) {
|
|
45
61
|
const objectArgument = call.arguments
|
|
@@ -93,7 +109,11 @@ export async function analyzePortWiring(workspace) {
|
|
|
93
109
|
}
|
|
94
110
|
if (inferredAppPortsName) {
|
|
95
111
|
if (!definitions.indeterminate &&
|
|
96
|
-
|
|
112
|
+
(sourceIndex
|
|
113
|
+
? Boolean(inferredAppPortsReference?.declaration &&
|
|
114
|
+
inferredAppPortsReference.declaration ===
|
|
115
|
+
wiringReference?.declaration)
|
|
116
|
+
: definitions.name === inferredAppPortsName)) {
|
|
97
117
|
result.appPortsInferredFromWiring = true;
|
|
98
118
|
for (const name of result.bound)
|
|
99
119
|
result.declared.add(name);
|
|
@@ -106,7 +126,7 @@ export async function analyzePortWiring(workspace) {
|
|
|
106
126
|
}
|
|
107
127
|
return result;
|
|
108
128
|
}
|
|
109
|
-
function portDefinitionCalls(sourceFile) {
|
|
129
|
+
function portDefinitionCalls(sourceFile, preferredName) {
|
|
110
130
|
const exportedNames = locallyExportedNames(sourceFile);
|
|
111
131
|
const candidates = [];
|
|
112
132
|
for (const statement of sourceFile.statements) {
|
|
@@ -129,7 +149,10 @@ function portDefinitionCalls(sourceFile) {
|
|
|
129
149
|
});
|
|
130
150
|
}
|
|
131
151
|
}
|
|
132
|
-
const canonical = candidates.filter((candidate) => candidate.name === "initialPorts" &&
|
|
152
|
+
const canonical = candidates.filter((candidate) => candidate.name === (preferredName ?? "initialPorts") &&
|
|
153
|
+
candidate.exported);
|
|
154
|
+
if (preferredName && canonical.length === 0)
|
|
155
|
+
return { calls: [], indeterminate: true };
|
|
133
156
|
const exported = candidates.filter((candidate) => candidate.exported);
|
|
134
157
|
const selected = canonical.length > 0
|
|
135
158
|
? canonical
|
|
@@ -175,6 +198,12 @@ function definePortsCalls(node) {
|
|
|
175
198
|
return calls;
|
|
176
199
|
}
|
|
177
200
|
export async function analyzePortWiringFiles(options) {
|
|
201
|
+
if (options.config.workspace.packages.length > 0) {
|
|
202
|
+
const workspace = await createAnalysisWorkspace(options.targetDir, {
|
|
203
|
+
config: options.config,
|
|
204
|
+
});
|
|
205
|
+
return analyzePortWiring(workspace, createSourceIndex(workspace));
|
|
206
|
+
}
|
|
178
207
|
const sourceFiles = new Map();
|
|
179
208
|
return analyzePortWiring({
|
|
180
209
|
config: options.config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-wiring.js","sourceRoot":"","sources":["../../src/analysis/port-wiring.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"port-wiring.js","sourceRoot":"","sources":["../../src/analysis/port-wiring.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,8 @@ export type ModuleReference = LocalImportReference & {
|
|
|
25
25
|
};
|
|
26
26
|
export type SourceIndex = {
|
|
27
27
|
resolveName(file: string, name: string): Promise<ResolvedSourceReference | undefined>;
|
|
28
|
-
resolveExpression(file: string, expression: ts.Expression): Promise<ResolvedSourceReference | undefined>;
|
|
28
|
+
resolveExpression(file: string, expression: ts.Expression, locals?: ReadonlyMap<string, ts.Declaration>): Promise<ResolvedSourceReference | undefined>;
|
|
29
|
+
resolveValue(file: string, expression: ts.Expression, locals?: ReadonlyMap<string, ts.Declaration>): Promise<ResolvedSourceReference | undefined>;
|
|
29
30
|
resolveExport(file: string, exportName: string): Promise<ResolvedSourceReference | undefined>;
|
|
30
31
|
sourceLocation(file: string, node: ts.Node, exportName?: string): Promise<AnalysisSourceLocation>;
|
|
31
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-index.d.ts","sourceRoot":"","sources":["../../src/analysis/source-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG;IACnD,MAAM,EAAE,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,CAAC;IAC7E,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAeF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC;IAChD,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,EAAE,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"source-index.d.ts","sourceRoot":"","sources":["../../src/analysis/source-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,8 +60,6 @@ export function createSourceIndex(workspace) {
|
|
|
60
60
|
if (statement.exportClause &&
|
|
61
61
|
ts.isNamedExports(statement.exportClause)) {
|
|
62
62
|
for (const element of statement.exportClause.elements) {
|
|
63
|
-
if (statement.isTypeOnly || element.isTypeOnly)
|
|
64
|
-
continue;
|
|
65
63
|
index.localExports.set(element.name.text, element.propertyName?.text ?? element.name.text);
|
|
66
64
|
}
|
|
67
65
|
}
|
|
@@ -124,6 +122,9 @@ export function createSourceIndex(workspace) {
|
|
|
124
122
|
if (localDeclaration) {
|
|
125
123
|
return { file, exportName, declaration: localDeclaration };
|
|
126
124
|
}
|
|
125
|
+
const imported = localName ? index.imports.get(localName) : undefined;
|
|
126
|
+
if (imported?.kind === "named")
|
|
127
|
+
return resolveExport(imported.file, imported.exportName, visited);
|
|
127
128
|
const reexport = index.reexports.get(exportName);
|
|
128
129
|
if (reexport) {
|
|
129
130
|
return ((await resolveExport(reexport.file, reexport.exportName, visited)) ?? {
|
|
@@ -138,7 +139,7 @@ export function createSourceIndex(workspace) {
|
|
|
138
139
|
}
|
|
139
140
|
return undefined;
|
|
140
141
|
};
|
|
141
|
-
|
|
142
|
+
const sourceIndex = {
|
|
142
143
|
async resolveName(file, name) {
|
|
143
144
|
const index = await readIndex(file);
|
|
144
145
|
const local = index.locals.get(name);
|
|
@@ -153,11 +154,11 @@ export function createSourceIndex(workspace) {
|
|
|
153
154
|
exportName: binding.exportName,
|
|
154
155
|
});
|
|
155
156
|
},
|
|
156
|
-
async resolveExpression(file, rawExpression) {
|
|
157
|
+
async resolveExpression(file, rawExpression, locals) {
|
|
157
158
|
const expression = unwrapExpression(rawExpression);
|
|
158
159
|
const index = await readIndex(file);
|
|
159
160
|
if (ts.isIdentifier(expression)) {
|
|
160
|
-
const local = index.
|
|
161
|
+
const local = locals?.get(expression.text) ?? index.locals.get(expression.text);
|
|
161
162
|
if (local) {
|
|
162
163
|
return { file, exportName: expression.text, declaration: local };
|
|
163
164
|
}
|
|
@@ -171,6 +172,9 @@ export function createSourceIndex(workspace) {
|
|
|
171
172
|
}
|
|
172
173
|
if (ts.isPropertyAccessExpression(expression) &&
|
|
173
174
|
ts.isIdentifier(expression.expression)) {
|
|
175
|
+
if (locals?.has(expression.expression.text) ||
|
|
176
|
+
index.locals.has(expression.expression.text))
|
|
177
|
+
return undefined;
|
|
174
178
|
const binding = index.imports.get(expression.expression.text);
|
|
175
179
|
if (binding?.kind !== "namespace")
|
|
176
180
|
return undefined;
|
|
@@ -181,6 +185,30 @@ export function createSourceIndex(workspace) {
|
|
|
181
185
|
}
|
|
182
186
|
return undefined;
|
|
183
187
|
},
|
|
188
|
+
async resolveValue(file, expression, locals) {
|
|
189
|
+
const visited = new Set();
|
|
190
|
+
async function follow(file, rawExpression, locals) {
|
|
191
|
+
const expression = unwrapExpression(rawExpression);
|
|
192
|
+
const reference = await sourceIndex.resolveExpression(file, expression, locals);
|
|
193
|
+
const declaration = reference?.declaration;
|
|
194
|
+
if (!reference || !declaration || visited.has(declaration))
|
|
195
|
+
return undefined;
|
|
196
|
+
visited.add(declaration);
|
|
197
|
+
if (!ts.isVariableDeclaration(declaration) || !declaration.initializer)
|
|
198
|
+
return reference;
|
|
199
|
+
if (!ts.isVariableDeclarationList(declaration.parent) ||
|
|
200
|
+
!(declaration.parent.flags & ts.NodeFlags.Const))
|
|
201
|
+
return undefined;
|
|
202
|
+
const initializer = unwrapExpression(declaration.initializer);
|
|
203
|
+
if (!ts.isIdentifier(initializer) &&
|
|
204
|
+
!ts.isPropertyAccessExpression(initializer))
|
|
205
|
+
return reference;
|
|
206
|
+
const local = ts.isIdentifier(expression) &&
|
|
207
|
+
locals?.get(expression.text) === declaration;
|
|
208
|
+
return follow(reference.file, initializer, local ? locals : undefined);
|
|
209
|
+
}
|
|
210
|
+
return follow(file, expression, locals);
|
|
211
|
+
},
|
|
184
212
|
resolveExport(file, exportName) {
|
|
185
213
|
return resolveExport(file, exportName);
|
|
186
214
|
},
|
|
@@ -195,6 +223,7 @@ export function createSourceIndex(workspace) {
|
|
|
195
223
|
};
|
|
196
224
|
},
|
|
197
225
|
};
|
|
226
|
+
return sourceIndex;
|
|
198
227
|
}
|
|
199
228
|
export function exportedVariableDeclarations(sourceFile) {
|
|
200
229
|
const declarations = [];
|