@jigx/sdk-tools 1.2.0-next.2 → 1.2.0-next.4
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 +35 -44
- package/dist/cli.js +83 -0
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/migrator/converters/app-index.d.ts +53 -0
- package/dist/migrator/converters/app-index.d.ts.map +1 -0
- package/dist/migrator/converters/app-index.js +206 -0
- package/dist/migrator/converters/app-index.js.map +1 -0
- package/dist/migrator/converters/assets.d.ts +7 -0
- package/dist/migrator/converters/assets.d.ts.map +1 -0
- package/dist/migrator/converters/assets.js +58 -0
- package/dist/migrator/converters/assets.js.map +1 -0
- package/dist/migrator/converters/components.d.ts +4 -0
- package/dist/migrator/converters/components.d.ts.map +1 -0
- package/dist/migrator/converters/components.js +7 -0
- package/dist/migrator/converters/components.js.map +1 -0
- package/dist/migrator/converters/databases.d.ts +9 -0
- package/dist/migrator/converters/databases.d.ts.map +1 -0
- package/dist/migrator/converters/databases.js +45 -0
- package/dist/migrator/converters/databases.js.map +1 -0
- package/dist/migrator/converters/datasources.d.ts +46 -0
- package/dist/migrator/converters/datasources.d.ts.map +1 -0
- package/dist/migrator/converters/datasources.js +445 -0
- package/dist/migrator/converters/datasources.js.map +1 -0
- package/dist/migrator/converters/functions.d.ts +13 -0
- package/dist/migrator/converters/functions.d.ts.map +1 -0
- package/dist/migrator/converters/functions.js +444 -0
- package/dist/migrator/converters/functions.js.map +1 -0
- package/dist/migrator/converters/index.d.ts +11 -0
- package/dist/migrator/converters/index.d.ts.map +1 -0
- package/dist/migrator/converters/index.js +9 -0
- package/dist/migrator/converters/index.js.map +1 -0
- package/dist/migrator/converters/scripts.d.ts +10 -0
- package/dist/migrator/converters/scripts.d.ts.map +1 -0
- package/dist/migrator/converters/scripts.js +28 -0
- package/dist/migrator/converters/scripts.js.map +1 -0
- package/dist/migrator/converters/translations.d.ts +5 -0
- package/dist/migrator/converters/translations.d.ts.map +1 -0
- package/dist/migrator/converters/translations.js +25 -0
- package/dist/migrator/converters/translations.js.map +1 -0
- package/dist/migrator/converters/types.d.ts +35 -0
- package/dist/migrator/converters/types.d.ts.map +1 -0
- package/dist/migrator/converters/types.js +2 -0
- package/dist/migrator/converters/types.js.map +1 -0
- package/dist/migrator/errors.d.ts +5 -0
- package/dist/migrator/errors.d.ts.map +1 -0
- package/dist/migrator/errors.js +8 -0
- package/dist/migrator/errors.js.map +1 -0
- package/dist/migrator/index.d.ts +6 -0
- package/dist/migrator/index.d.ts.map +1 -0
- package/dist/migrator/index.js +4 -0
- package/dist/migrator/index.js.map +1 -0
- package/dist/migrator/migrate.d.ts +75 -0
- package/dist/migrator/migrate.d.ts.map +1 -0
- package/dist/migrator/migrate.js +439 -0
- package/dist/migrator/migrate.js.map +1 -0
- package/dist/migrator/module-writer.d.ts +26 -0
- package/dist/migrator/module-writer.d.ts.map +1 -0
- package/dist/migrator/module-writer.js +26 -0
- package/dist/migrator/module-writer.js.map +1 -0
- package/dist/migrator/nodes/action-definition.d.ts +11 -0
- package/dist/migrator/nodes/action-definition.d.ts.map +1 -0
- package/dist/migrator/nodes/action-definition.js +75 -0
- package/dist/migrator/nodes/action-definition.js.map +1 -0
- package/dist/migrator/nodes/app-events.d.ts +29 -0
- package/dist/migrator/nodes/app-events.d.ts.map +1 -0
- package/dist/migrator/nodes/app-events.js +40 -0
- package/dist/migrator/nodes/app-events.js.map +1 -0
- package/dist/migrator/nodes/attach.d.ts +61 -0
- package/dist/migrator/nodes/attach.d.ts.map +1 -0
- package/dist/migrator/nodes/attach.js +174 -0
- package/dist/migrator/nodes/attach.js.map +1 -0
- package/dist/migrator/nodes/builder-access.d.ts +16 -0
- package/dist/migrator/nodes/builder-access.d.ts.map +1 -0
- package/dist/migrator/nodes/builder-access.js +81 -0
- package/dist/migrator/nodes/builder-access.js.map +1 -0
- package/dist/migrator/nodes/codegen.d.ts +33 -0
- package/dist/migrator/nodes/codegen.d.ts.map +1 -0
- package/dist/migrator/nodes/codegen.js +77 -0
- package/dist/migrator/nodes/codegen.js.map +1 -0
- package/dist/migrator/nodes/index.d.ts +6 -0
- package/dist/migrator/nodes/index.d.ts.map +1 -0
- package/dist/migrator/nodes/index.js +6 -0
- package/dist/migrator/nodes/index.js.map +1 -0
- package/dist/migrator/nodes/node-shape.d.ts +39 -0
- package/dist/migrator/nodes/node-shape.d.ts.map +1 -0
- package/dist/migrator/nodes/node-shape.js +65 -0
- package/dist/migrator/nodes/node-shape.js.map +1 -0
- package/dist/migrator/nodes/probe.d.ts +66 -0
- package/dist/migrator/nodes/probe.d.ts.map +1 -0
- package/dist/migrator/nodes/probe.js +46 -0
- package/dist/migrator/nodes/probe.js.map +1 -0
- package/dist/migrator/nodes/rules/action-list.d.ts +4 -0
- package/dist/migrator/nodes/rules/action-list.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/action-list.js +14 -0
- package/dist/migrator/nodes/rules/action-list.js.map +1 -0
- package/dist/migrator/nodes/rules/action-slots.d.ts +13 -0
- package/dist/migrator/nodes/rules/action-slots.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/action-slots.js +34 -0
- package/dist/migrator/nodes/rules/action-slots.js.map +1 -0
- package/dist/migrator/nodes/rules/custom-component.d.ts +7 -0
- package/dist/migrator/nodes/rules/custom-component.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/custom-component.js +8 -0
- package/dist/migrator/nodes/rules/custom-component.js.map +1 -0
- package/dist/migrator/nodes/rules/dropdown.d.ts +4 -0
- package/dist/migrator/nodes/rules/dropdown.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/dropdown.js +3 -0
- package/dist/migrator/nodes/rules/dropdown.js.map +1 -0
- package/dist/migrator/nodes/rules/execute-entity.d.ts +7 -0
- package/dist/migrator/nodes/rules/execute-entity.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/execute-entity.js +40 -0
- package/dist/migrator/nodes/rules/execute-entity.js.map +1 -0
- package/dist/migrator/nodes/rules/field-row.d.ts +4 -0
- package/dist/migrator/nodes/rules/field-row.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/field-row.js +3 -0
- package/dist/migrator/nodes/rules/field-row.js.map +1 -0
- package/dist/migrator/nodes/rules/index.d.ts +16 -0
- package/dist/migrator/nodes/rules/index.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/index.js +42 -0
- package/dist/migrator/nodes/rules/index.js.map +1 -0
- package/dist/migrator/nodes/rules/list-item.d.ts +7 -0
- package/dist/migrator/nodes/rules/list-item.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/list-item.js +40 -0
- package/dist/migrator/nodes/rules/list-item.js.map +1 -0
- package/dist/migrator/nodes/rules/list.d.ts +4 -0
- package/dist/migrator/nodes/rules/list.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/list.js +7 -0
- package/dist/migrator/nodes/rules/list.js.map +1 -0
- package/dist/migrator/nodes/rules/method-names.d.ts +10 -0
- package/dist/migrator/nodes/rules/method-names.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/method-names.js +33 -0
- package/dist/migrator/nodes/rules/method-names.js.map +1 -0
- package/dist/migrator/nodes/rules/screen-slots.d.ts +10 -0
- package/dist/migrator/nodes/rules/screen-slots.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/screen-slots.js +9 -0
- package/dist/migrator/nodes/rules/screen-slots.js.map +1 -0
- package/dist/migrator/nodes/rules/set-jig-state.d.ts +4 -0
- package/dist/migrator/nodes/rules/set-jig-state.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/set-jig-state.js +9 -0
- package/dist/migrator/nodes/rules/set-jig-state.js.map +1 -0
- package/dist/migrator/nodes/rules/state-key.d.ts +7 -0
- package/dist/migrator/nodes/rules/state-key.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/state-key.js +16 -0
- package/dist/migrator/nodes/rules/state-key.js.map +1 -0
- package/dist/migrator/nodes/rules/summary.d.ts +7 -0
- package/dist/migrator/nodes/rules/summary.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/summary.js +16 -0
- package/dist/migrator/nodes/rules/summary.js.map +1 -0
- package/dist/migrator/nodes/rules/sync-entities.d.ts +7 -0
- package/dist/migrator/nodes/rules/sync-entities.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/sync-entities.js +17 -0
- package/dist/migrator/nodes/rules/sync-entities.js.map +1 -0
- package/dist/migrator/nodes/rules/types.d.ts +35 -0
- package/dist/migrator/nodes/rules/types.d.ts.map +1 -0
- package/dist/migrator/nodes/rules/types.js +7 -0
- package/dist/migrator/nodes/rules/types.js.map +1 -0
- package/dist/migrator/nodes/screen.d.ts +13 -0
- package/dist/migrator/nodes/screen.d.ts.map +1 -0
- package/dist/migrator/nodes/screen.js +403 -0
- package/dist/migrator/nodes/screen.js.map +1 -0
- package/dist/migrator/normalize.d.ts +42 -0
- package/dist/migrator/normalize.d.ts.map +1 -0
- package/dist/migrator/normalize.js +167 -0
- package/dist/migrator/normalize.js.map +1 -0
- package/dist/migrator/project-writer.d.ts +34 -0
- package/dist/migrator/project-writer.d.ts.map +1 -0
- package/dist/migrator/project-writer.js +65 -0
- package/dist/migrator/project-writer.js.map +1 -0
- package/dist/migrator/prune.d.ts +58 -0
- package/dist/migrator/prune.d.ts.map +1 -0
- package/dist/migrator/prune.js +171 -0
- package/dist/migrator/prune.js.map +1 -0
- package/dist/migrator/read-solution.d.ts +38 -0
- package/dist/migrator/read-solution.d.ts.map +1 -0
- package/dist/migrator/read-solution.js +144 -0
- package/dist/migrator/read-solution.js.map +1 -0
- package/dist/migrator/report.d.ts +76 -0
- package/dist/migrator/report.d.ts.map +1 -0
- package/dist/migrator/report.js +53 -0
- package/dist/migrator/report.js.map +1 -0
- package/dist/migrator/ts-printer.d.ts +19 -0
- package/dist/migrator/ts-printer.d.ts.map +1 -0
- package/dist/migrator/ts-printer.js +70 -0
- package/dist/migrator/ts-printer.js.map +1 -0
- package/dist/migrator/verify-entity.d.ts +21 -0
- package/dist/migrator/verify-entity.d.ts.map +1 -0
- package/dist/migrator/verify-entity.js +22 -0
- package/dist/migrator/verify-entity.js.map +1 -0
- package/dist/scaffolder/index.d.ts +1 -0
- package/dist/scaffolder/index.d.ts.map +1 -1
- package/dist/scaffolder/index.js +1 -0
- package/dist/scaffolder/index.js.map +1 -1
- package/dist/scaffolder/templates.d.ts +11 -2
- package/dist/scaffolder/templates.d.ts.map +1 -1
- package/dist/scaffolder/templates.js +7 -3
- package/dist/scaffolder/templates.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,69 +1,60 @@
|
|
|
1
1
|
# @jigx/sdk-tools
|
|
2
2
|
|
|
3
|
-
CLI for solution
|
|
3
|
+
`jigx` CLI for solution designers to scaffold, build, and deploy Jigx Applications (backed by `@jigx/core-sdk` builders).
|
|
4
4
|
|
|
5
5
|
## Requirements
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Node.js >=22. `jigx create` runs `npm install` in the new project; swap to yarn/pnpm afterwards if preferred.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Onboarding
|
|
9
|
+
## Quick start
|
|
12
10
|
|
|
13
11
|
```bash
|
|
14
|
-
npm i -g @jigx/sdk-tools@next #
|
|
15
|
-
jigx create #
|
|
12
|
+
npm i -g @jigx/sdk-tools@next # once per machine
|
|
13
|
+
jigx create # scaffolds <cwd>/<applicationName>
|
|
16
14
|
cd <applicationName>
|
|
17
|
-
jigx deploy #
|
|
15
|
+
jigx deploy # first run: login + init inline, then deploy to prod
|
|
18
16
|
```
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
1. Detects no cached **RefreshToken** and runs `jigx login` inline (Cognito email + password). Stores the refresh token at `~/.jigx/refresh-tokens.json`.
|
|
23
|
-
2. Detects no **OrganizationBinding** in `<projectRoot>/jigx.json` and runs `jigx init` inline (Organization picker). Writes the binding to `jigx.json`.
|
|
24
|
-
3. Builds, then deploys content to the prod environment.
|
|
25
|
-
|
|
26
|
-
Subsequent deploys reuse both artifacts and skip straight to build + deploy. Pass `--env dev` to target staging, `--env clf-dev` for the Cloudflare dev stamp, or `--env clf-prod` for the Cloudflare prod stamp.
|
|
27
|
-
|
|
28
|
-
## Commands
|
|
29
|
-
|
|
30
|
-
| Command | What it does |
|
|
31
|
-
| --- | --- |
|
|
32
|
-
| `jigx create` | Prompts for Title → Name → Type, scaffolds a new Application project, runs `npm install`. |
|
|
33
|
-
| `jigx build` | Compiles `src/app.ts` into `build/output.json` plus the canonical Builder folder layout under `build/app/` for inspection. |
|
|
34
|
-
| `jigx login` | Signs in to Cognito (interactive email + password) and caches a refresh token in `~/.jigx/refresh-tokens.json`. |
|
|
35
|
-
| `jigx init` | Picks an Organization for the current environment and writes the binding to `<projectRoot>/jigx.json`. |
|
|
36
|
-
| `jigx deploy` | Builds, then deploys content. Defaults to prod. Pass `--env dev` for staging, `--env clf-dev` for the Cloudflare dev stamp, or `--env clf-prod` for the Cloudflare prod stamp. Auto-runs `jigx login` and `jigx init` if needed (TTY only). |
|
|
37
|
-
| `jigx whoami` | Prints the live User identity and the project's Organization binding for the chosen environment. |
|
|
38
|
-
| `jigx logout` | Clears cached refresh tokens for one env or all envs. |
|
|
18
|
+
Commands: `create`, `build`, `login`, `init`, `deploy`, `whoami`, `logout`, `migrate`. Run `jigx --help` for options.
|
|
39
19
|
|
|
40
|
-
|
|
20
|
+
`--env dev` (staging), `--env clf-dev`, `--env clf-prod` target other environments; default is prod. `jigx init --org <id>` skips the Organization picker.
|
|
41
21
|
|
|
42
|
-
|
|
22
|
+
## Auth
|
|
43
23
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
24
|
+
- `jigx login`: Cognito email + password; refresh token cached at `~/.jigx/refresh-tokens.json` (keyed per env).
|
|
25
|
+
- `jigx init`: writes the Organization binding to `<projectRoot>/jigx.json` (per env, safe to commit).
|
|
26
|
+
- `jigx deploy` runs login/init inline when missing (TTY only). Non-TTY (CI) fails with the command to run.
|
|
47
27
|
|
|
48
|
-
|
|
28
|
+
Limitations: no CI/non-interactive auth (pre-populate `~/.jigx/refresh-tokens.json` from an interactive login), no SSO. Rationale: [ADR-0002](../../docs/adr/0002-sdk-tools-cognito-only-auth.md).
|
|
49
29
|
|
|
50
|
-
##
|
|
30
|
+
## Migrating a YAML solution
|
|
51
31
|
|
|
52
|
-
|
|
53
|
-
|
|
32
|
+
```bash
|
|
33
|
+
jigx migrate ./my-solution --out ./my-app # writes the typed project + migration-report.json
|
|
34
|
+
cd my-app && npm install && jigx build
|
|
35
|
+
jigx migrate ../my-solution --check-build . # exits 1 when the build differs from the solution
|
|
36
|
+
```
|
|
54
37
|
|
|
55
|
-
|
|
38
|
+
`jigx migrate` reads a **Legacy solution** (`index.jigx` plus the kind folders `databases/`, `functions/`, `datasources/`, `actions/`, `components/`, `jigs/`, `translations/`, `assets/`, and `scripts/expressions/*.js`) and writes one TypeScript module per entity under `src/`, registered from `src/app.ts`. Module paths keep the legacy folders (`jigs/Orders/order-list.jigx` → `src/jigs/Orders/order-list.ts`). Expression scripts are copied verbatim.
|
|
56
39
|
|
|
57
|
-
|
|
40
|
+
Every node is written as a typed core-sdk call, and every migrated entity is verified in-process: the replayed calls must build to exactly the legacy YAML. A node, index key, or entity with no exact typed expression is a **Core SDK gap**. It is left out of the project, with a `// TODO(migrate): <gapId> - <reason>` comment where it was. There is no untyped fallback.
|
|
58
41
|
|
|
59
|
-
|
|
42
|
+
`migration-report.json` holds:
|
|
60
43
|
|
|
61
|
-
|
|
44
|
+
| Field | Meaning |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `coreSdkVersion` | Exact `@jigx/core-sdk` version the migration was verified against. The generated `package.json` pins it. |
|
|
47
|
+
| `entities` | `total`, `migrated`, `skipped` (entities that are one whole gap). |
|
|
48
|
+
| `nodes` | `total`, `typed`, `skipped`. A skipped node counts with all its descendant nodes. |
|
|
49
|
+
| `gaps` | One record per skipped node: `gapId`, `nodeType`, `reason`, `skippedNodes`, `location` (`relPath` of the legacy file and the `path` inside it, `[]` for the whole entity). Sorted by `relPath`, then `path`, then `gapId`. |
|
|
50
|
+
| `ignored` | Solution files that are not migrated (non-`.jigx` files in kind folders, non-script files under `scripts/`, unknown root files). |
|
|
62
51
|
|
|
63
|
-
|
|
52
|
+
A `gapId` is `<nodeType>:<reason>`, for example `component.view:no-factory-children`, `index:key-onAppActivated`, or `jigs:composition-differs`. The CLI prints the top 10 gap ids by skipped node count. Fix the gaps with the most skipped nodes first.
|
|
64
53
|
|
|
65
|
-
|
|
54
|
+
`jigx build` output is flat: `build/app/jigs/order-list.jigx`, not `build/app/jigs/Orders/order-list.jigx`. Compare built files with the legacy files by id, not by path. The project is one-time output: edit it by hand from here on. Re-running `jigx migrate` on an existing dir needs `--force` and replaces its `src/`.
|
|
66
55
|
|
|
67
|
-
|
|
56
|
+
## Troubleshooting
|
|
68
57
|
|
|
69
|
-
|
|
58
|
+
- `jigx: command not found`: install globally (above).
|
|
59
|
+
- `Not authenticated. Run jigx login.`: refresh token missing/expired/revoked; run `jigx login` (with the same `--env`).
|
|
60
|
+
- `No Organization configured for env "<env>".`: run `jigx init` (with the same `--env`).
|
package/dist/cli.js
CHANGED
|
@@ -29,6 +29,7 @@ Commands:
|
|
|
29
29
|
deploy Build and deploy the Application content; deploys to prod (default), dev, clf-dev, or clf-prod
|
|
30
30
|
whoami Print the live User identity and the project's Organization binding (per env)
|
|
31
31
|
logout Clear cached refresh tokens for one env or all envs
|
|
32
|
+
migrate Migrate a legacy YAML solution into a typed SDK project
|
|
32
33
|
|
|
33
34
|
Options:
|
|
34
35
|
-v, --version Print the @jigx/sdk-tools package version
|
|
@@ -36,6 +37,9 @@ Options:
|
|
|
36
37
|
--env <target> Target environment: prod (default) | dev | clf-dev | clf-prod
|
|
37
38
|
--org <id> Organization id (skip the picker on jigx init)
|
|
38
39
|
--all jigx logout: clear all envs from ~/.jigx/refresh-tokens.json
|
|
40
|
+
--out <dir> jigx migrate: project dir to write (default: ./<index name>)
|
|
41
|
+
--force jigx migrate: overwrite an existing out dir
|
|
42
|
+
--check-build <dir> jigx migrate: compare a built migrated project with the solution (writes nothing)
|
|
39
43
|
`;
|
|
40
44
|
async function runBuild() {
|
|
41
45
|
const result = await build({ projectRoot: process.cwd() });
|
|
@@ -80,7 +84,23 @@ const KNOWN_FLAGS_BY_COMMAND = {
|
|
|
80
84
|
login: ['--env'],
|
|
81
85
|
whoami: ['--env'],
|
|
82
86
|
logout: ['--env', '--all'],
|
|
87
|
+
migrate: ['--out', '--force', '--check-build'],
|
|
83
88
|
};
|
|
89
|
+
/** Flags that take a value; their value is never a positional argument. */
|
|
90
|
+
const VALUE_FLAGS = ['--env', '--org', '--out', '--check-build'];
|
|
91
|
+
function positionalArgs(args) {
|
|
92
|
+
const positional = [];
|
|
93
|
+
for (let index = 0; index < args.length; index++) {
|
|
94
|
+
const arg = args[index] ?? '';
|
|
95
|
+
if (VALUE_FLAGS.includes(arg)) {
|
|
96
|
+
index++;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if (!arg.startsWith('--'))
|
|
100
|
+
positional.push(arg);
|
|
101
|
+
}
|
|
102
|
+
return positional;
|
|
103
|
+
}
|
|
84
104
|
function rejectUnknownFlags(command, args) {
|
|
85
105
|
const known = KNOWN_FLAGS_BY_COMMAND[command];
|
|
86
106
|
if (!known)
|
|
@@ -130,6 +150,66 @@ async function runLogout(args) {
|
|
|
130
150
|
const result = await logout({ environment, all });
|
|
131
151
|
console.log(result.formatted);
|
|
132
152
|
}
|
|
153
|
+
/** Gaps listed in the `jigx migrate` summary, largest first. */
|
|
154
|
+
const MIGRATE_SUMMARY_GAPS = 10;
|
|
155
|
+
const MIGRATE_USAGE = 'Usage: jigx migrate <solution-dir> [--out <dir>] [--force] | jigx migrate <solution-dir> --check-build <project-dir>';
|
|
156
|
+
async function runMigrate(args) {
|
|
157
|
+
const [solutionDir] = positionalArgs(args);
|
|
158
|
+
if (!solutionDir)
|
|
159
|
+
throw new CliFlagError(`Missing solution dir. ${MIGRATE_USAGE}`);
|
|
160
|
+
const outDir = parseFlagValue(args, '--out');
|
|
161
|
+
const force = args.includes('--force');
|
|
162
|
+
const checkBuildDir = parseFlagValue(args, '--check-build');
|
|
163
|
+
if (checkBuildDir !== undefined && (outDir !== undefined || force)) {
|
|
164
|
+
throw new CliFlagError(`--check-build writes nothing; drop --out and --force. ${MIGRATE_USAGE}`);
|
|
165
|
+
}
|
|
166
|
+
// Loaded lazily: the migrator pulls in @jigx/core-sdk (and its native better-sqlite3),
|
|
167
|
+
// which no other command needs.
|
|
168
|
+
const { checkBuild, migrate, MigrateError, summarizeGaps } = await import('./migrator/index.js');
|
|
169
|
+
try {
|
|
170
|
+
if (checkBuildDir !== undefined) {
|
|
171
|
+
const { checked, mismatches } = await checkBuild({
|
|
172
|
+
solutionDir,
|
|
173
|
+
projectDir: checkBuildDir,
|
|
174
|
+
cwd: process.cwd(),
|
|
175
|
+
});
|
|
176
|
+
if (mismatches.length === 0) {
|
|
177
|
+
console.log(`Build matches the pruned legacy solution (${checked} entities).`);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
console.error(`Build differs from the pruned legacy solution in ${mismatches.length}/${checked} entities:`);
|
|
181
|
+
for (const { kind, id, differingKeys } of mismatches) {
|
|
182
|
+
const keys = differingKeys.length > 0 ? ` (${differingKeys.join(', ')})` : '';
|
|
183
|
+
console.error(` ${kind}/${id}${keys}`);
|
|
184
|
+
}
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
const { outDir: writtenTo, report } = await migrate({
|
|
188
|
+
solutionDir,
|
|
189
|
+
outDir,
|
|
190
|
+
force,
|
|
191
|
+
cwd: process.cwd(),
|
|
192
|
+
});
|
|
193
|
+
console.log(`Migrated ${report.entities.migrated}/${report.entities.total} entities, typed ${report.nodes.typed}/${report.nodes.total} nodes, ${report.gaps.length} gaps (see migration-report.json)`);
|
|
194
|
+
console.log(` ${writtenTo}`);
|
|
195
|
+
const top = summarizeGaps({ gaps: report.gaps, limit: MIGRATE_SUMMARY_GAPS });
|
|
196
|
+
if (top.length > 0) {
|
|
197
|
+
console.log(`\nTop gaps by skipped nodes (gapId, occurrences, skipped nodes):`);
|
|
198
|
+
const width = Math.max(...top.map(({ gapId }) => gapId.length));
|
|
199
|
+
for (const { gapId, occurrences, skippedNodes } of top) {
|
|
200
|
+
console.log(` ${gapId.padEnd(width)} ${occurrences} ${skippedNodes}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
if (error instanceof MigrateError) {
|
|
206
|
+
const label = checkBuildDir === undefined ? 'Cannot migrate solution' : 'Cannot check build';
|
|
207
|
+
console.error(`${label}: ${error.message}`);
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
throw error;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
133
213
|
async function runCreate() {
|
|
134
214
|
const result = await create({ cwd: process.cwd() });
|
|
135
215
|
console.log(`\nScaffolded Application "${result.answers.applicationName}" at ${result.scaffold.destinationPath}`);
|
|
@@ -174,6 +254,9 @@ async function main() {
|
|
|
174
254
|
case 'logout':
|
|
175
255
|
await runLogout(rest);
|
|
176
256
|
return;
|
|
257
|
+
case 'migrate':
|
|
258
|
+
await runMigrate(rest);
|
|
259
|
+
return;
|
|
177
260
|
default:
|
|
178
261
|
console.error(`Unknown command: ${command}\n\n${HELP}`);
|
|
179
262
|
process.exit(1);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export { logout, LogoutCancelledError } from './logout/index.js';
|
|
|
12
12
|
export type { LogoutEnvOutcome, LogoutOptions, LogoutResult, LogoutScope } from './logout/index.js';
|
|
13
13
|
export { whoami } from './whoami/index.js';
|
|
14
14
|
export type { WhoamiOptions, WhoamiProjectOrganization, WhoamiResult, WhoamiUser, } from './whoami/index.js';
|
|
15
|
+
export { checkBuild, migrate, MigrateError } from './migrator/index.js';
|
|
16
|
+
export type { CheckBuildOptions, CheckBuildResult, EntityMismatch, GapRecord, MigrateOptions, MigrateResult, MigrationReport, } from './migrator/index.js';
|
|
15
17
|
export { PromptCancelledError, runCreatePrompts } from './prompts/index.js';
|
|
16
18
|
export type { CreatePromptAnswers } from './prompts/index.js';
|
|
17
19
|
export { scaffold, ScaffoldError } from './scaffolder/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEpG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzE,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEnG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,YAAY,EACV,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,UAAU,GACX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC/D,YAAY,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACvE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEpG,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACzE,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEnG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,YAAY,EACV,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,UAAU,GACX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvE,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC/D,YAAY,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACvE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { AuthHttpError, COGNITO_CONFIG, CognitoAuth, CredentialsSchemaError, Cre
|
|
|
5
5
|
export { login, LoginCancelledError } from './login/index.js';
|
|
6
6
|
export { logout, LogoutCancelledError } from './logout/index.js';
|
|
7
7
|
export { whoami } from './whoami/index.js';
|
|
8
|
+
export { checkBuild, migrate, MigrateError } from './migrator/index.js';
|
|
8
9
|
export { PromptCancelledError, runCreatePrompts } from './prompts/index.js';
|
|
9
10
|
export { scaffold, ScaffoldError } from './scaffolder/index.js';
|
|
10
11
|
export { slugifyTitle, validateApplicationName } from './slug/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAG1C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAG/D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AASzE,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAmBxB,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAG7D,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAGhE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ1C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG3E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAQ/D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAGvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAG1C,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAG/D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AASzE,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAmBxB,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAG7D,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAGhE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ1C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAWvE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG3E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAQ/D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAGvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ApplicationInput } from '@jigx/core-sdk';
|
|
2
|
+
import { type LegacyEntry } from '../read-solution.js';
|
|
3
|
+
import { type NodeGap } from '../report.js';
|
|
4
|
+
import { type Statement } from './types.js';
|
|
5
|
+
/** Index key carried by the `ApplicationBuilder` constructor input. */
|
|
6
|
+
interface IndexInputKey {
|
|
7
|
+
readonly type: 'input';
|
|
8
|
+
readonly key: string;
|
|
9
|
+
readonly input: Partial<ApplicationInput>;
|
|
10
|
+
}
|
|
11
|
+
/** Index key migrated into typed statements. */
|
|
12
|
+
interface IndexStatementsKey {
|
|
13
|
+
readonly type: 'statements';
|
|
14
|
+
readonly key: string;
|
|
15
|
+
readonly statements: readonly Statement[];
|
|
16
|
+
/** Nodes skipped inside the key's action tree (node-level gaps). */
|
|
17
|
+
readonly gaps?: readonly NodeGap[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Index key with no verified typed call: index-level gap `index:key-<key>`, or the
|
|
21
|
+
* root node's gap for an app event whose root action does not verify.
|
|
22
|
+
*/
|
|
23
|
+
interface IndexSkippedKey {
|
|
24
|
+
readonly type: 'skip';
|
|
25
|
+
readonly key: string;
|
|
26
|
+
readonly gapId: string;
|
|
27
|
+
readonly reason: string;
|
|
28
|
+
/** Node type of the gap; defaults to `index`. */
|
|
29
|
+
readonly nodeType?: string;
|
|
30
|
+
}
|
|
31
|
+
export type IndexKey = IndexInputKey | IndexStatementsKey | IndexSkippedKey;
|
|
32
|
+
export interface IndexConversion {
|
|
33
|
+
readonly name: string;
|
|
34
|
+
/** One result per legacy index key, in legacy key order. */
|
|
35
|
+
readonly keys: readonly IndexKey[];
|
|
36
|
+
}
|
|
37
|
+
/** Index-level gap id for a skipped index key. */
|
|
38
|
+
export declare function indexKeyGapId(key: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Converts `index.jigx`. `name` is required. Every other key is verified by probe on a
|
|
41
|
+
* scratch ApplicationBuilder; a key that does not verify is skipped as `index:key-<key>`.
|
|
42
|
+
* @throws MigrateError when `name` is missing or not a valid Application name
|
|
43
|
+
*/
|
|
44
|
+
export declare function convertIndex(entry: LegacyEntry): IndexConversion;
|
|
45
|
+
/** The ApplicationBuilder constructor input carried by the index keys. */
|
|
46
|
+
export declare function applicationInput(conversion: IndexConversion): ApplicationInput;
|
|
47
|
+
/** Renders `src/index.ts`: the `application` constructor input and `register` for the other keys. */
|
|
48
|
+
export declare function renderIndexModule(options: {
|
|
49
|
+
readonly relPath: string;
|
|
50
|
+
readonly conversion: IndexConversion;
|
|
51
|
+
}): string;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=app-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-index.d.ts","sourceRoot":"","sources":["../../../src/migrator/converters/app-index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EAItB,MAAM,gBAAgB,CAAA;AAKvB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAI3C,uEAAuE;AACvE,UAAU,aAAa;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC1C;AAED,gDAAgD;AAChD,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;IACzC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;CACnC;AAED;;;GAGG;AACH,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,kBAAkB,GAAG,eAAe,CAAA;AAE3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAA;CACnC;AAWD,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AA0JD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,CAehE;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,eAAe,GAAG,gBAAgB,CAM9E;AAED,qGAAqG;AACrG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAA;CACrC,GAAG,MAAM,CAeT"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
2
|
+
import { ApplicationBuilder, CategorySchema, isApplicationName, isExpression, } from '@jigx/core-sdk';
|
|
3
|
+
import { MigrateError } from '../errors.js';
|
|
4
|
+
import { renderModule, todoComment } from '../module-writer.js';
|
|
5
|
+
import { APP_EVENTS, convertAppEvent, Gen } from '../nodes/index.js';
|
|
6
|
+
import { dropUndefined, isPlainObject } from '../normalize.js';
|
|
7
|
+
import { countNodes } from '../report.js';
|
|
8
|
+
import { lit, str } from '../ts-printer.js';
|
|
9
|
+
const STRING_INPUT_KEYS = ['title', 'description', 'type', 'imageUrl'];
|
|
10
|
+
const TAB_KEYS = ['jigId', 'icon', 'label', 'badge', 'when'];
|
|
11
|
+
const KEY_REASONS = {
|
|
12
|
+
onAppActivated: 'ApplicationBuilder has no onAppActivated event',
|
|
13
|
+
onTableChanged: 'listeners carry action trees and app.onTableChanged() is untyped; untyped passthroughs must not carry nodes',
|
|
14
|
+
};
|
|
15
|
+
/** Index-level gap id for a skipped index key. */
|
|
16
|
+
export function indexKeyGapId(key) {
|
|
17
|
+
return `index:key-${key}`;
|
|
18
|
+
}
|
|
19
|
+
function skip(key, reason) {
|
|
20
|
+
return {
|
|
21
|
+
type: 'skip',
|
|
22
|
+
key,
|
|
23
|
+
gapId: indexKeyGapId(key),
|
|
24
|
+
reason: reason ?? KEY_REASONS[key] ?? 'no typed ApplicationBuilder call for this index key',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function inputCandidate(key, value) {
|
|
28
|
+
if (typeof value !== 'string')
|
|
29
|
+
return undefined;
|
|
30
|
+
if (key === 'category') {
|
|
31
|
+
const parsed = CategorySchema.safeParse(value);
|
|
32
|
+
return parsed.success ? { category: parsed.data } : undefined;
|
|
33
|
+
}
|
|
34
|
+
const stringKey = STRING_INPUT_KEYS.find((name) => name === key);
|
|
35
|
+
return stringKey ? { [stringKey]: value } : undefined;
|
|
36
|
+
}
|
|
37
|
+
function expressionStatements(value) {
|
|
38
|
+
if (!isPlainObject(value))
|
|
39
|
+
return undefined;
|
|
40
|
+
const statements = [];
|
|
41
|
+
for (const [name, expression] of Object.entries(value)) {
|
|
42
|
+
if (typeof expression === 'string') {
|
|
43
|
+
statements.push({
|
|
44
|
+
code: `app.expression(${str(name)}, ${str(expression)})`,
|
|
45
|
+
run: (app) => {
|
|
46
|
+
app.expression(name, expression);
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else if (isPlainObject(expression) &&
|
|
51
|
+
countNodes({ value: expression, asRoot: false }) === 0) {
|
|
52
|
+
statements.push({
|
|
53
|
+
code: `app.expression(${str(name)}, ${lit(expression, ' ')})`,
|
|
54
|
+
run: (app) => {
|
|
55
|
+
app.expression(name, expression);
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return statements;
|
|
64
|
+
}
|
|
65
|
+
function tabInput(tabId, tab) {
|
|
66
|
+
if (!isPlainObject(tab) || !Object.keys(tab).every((name) => TAB_KEYS.includes(name))) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const { jigId, icon, label, badge, when } = tab;
|
|
70
|
+
if (typeof jigId !== 'string' || typeof icon !== 'string')
|
|
71
|
+
return undefined;
|
|
72
|
+
if (label !== undefined && typeof label !== 'string')
|
|
73
|
+
return undefined;
|
|
74
|
+
const badgeOk = badge === undefined ||
|
|
75
|
+
typeof badge === 'number' ||
|
|
76
|
+
typeof badge === 'boolean' ||
|
|
77
|
+
isExpression(badge);
|
|
78
|
+
if (!badgeOk)
|
|
79
|
+
return undefined;
|
|
80
|
+
if (when !== undefined && typeof when !== 'boolean' && !isExpression(when))
|
|
81
|
+
return undefined;
|
|
82
|
+
return {
|
|
83
|
+
screenId: jigId,
|
|
84
|
+
...(tabId === jigId ? {} : { tabId }),
|
|
85
|
+
icon,
|
|
86
|
+
...(label === undefined ? {} : { label }),
|
|
87
|
+
...(badge === undefined ? {} : { badge }),
|
|
88
|
+
...(when === undefined ? {} : { when }),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function tabStatements(value) {
|
|
92
|
+
if (!isPlainObject(value))
|
|
93
|
+
return undefined;
|
|
94
|
+
const statements = [];
|
|
95
|
+
for (const [tabId, tab] of Object.entries(value)) {
|
|
96
|
+
const input = tabInput(tabId, tab);
|
|
97
|
+
if (!input)
|
|
98
|
+
return undefined;
|
|
99
|
+
statements.push({
|
|
100
|
+
code: `app.addTab(${lit(input, ' ')})`,
|
|
101
|
+
run: (app) => {
|
|
102
|
+
app.addTab(input);
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return statements;
|
|
107
|
+
}
|
|
108
|
+
/** Builds one key on a scratch ApplicationBuilder and compares it with the legacy value. */
|
|
109
|
+
function verifiesOnScratch(options) {
|
|
110
|
+
const { name, key, legacy, input = {}, statements = [] } = options;
|
|
111
|
+
try {
|
|
112
|
+
const app = new ApplicationBuilder({ ...input, name });
|
|
113
|
+
for (const statement of statements)
|
|
114
|
+
statement.run(app);
|
|
115
|
+
const built = app.build();
|
|
116
|
+
return isDeepStrictEqual(dropUndefined(built[key]), dropUndefined(legacy));
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function convertAppEventKey(options) {
|
|
123
|
+
const { key } = options;
|
|
124
|
+
const result = convertAppEvent(options);
|
|
125
|
+
if (result.type === 'not-node')
|
|
126
|
+
return skip(key, 'the app event is not an action node');
|
|
127
|
+
if (result.type === 'skip') {
|
|
128
|
+
const { gapId, reason, nodeType } = result.gap;
|
|
129
|
+
return { type: 'skip', key, gapId, reason, nodeType };
|
|
130
|
+
}
|
|
131
|
+
const { code, run, gaps } = result;
|
|
132
|
+
return { type: 'statements', key, statements: [{ code, run }], gaps };
|
|
133
|
+
}
|
|
134
|
+
function convertKey(options) {
|
|
135
|
+
const { name, key, value } = options;
|
|
136
|
+
if (key in KEY_REASONS)
|
|
137
|
+
return skip(key);
|
|
138
|
+
if (APP_EVENTS.includes(key))
|
|
139
|
+
return convertAppEventKey(options);
|
|
140
|
+
const input = inputCandidate(key, value);
|
|
141
|
+
if (input) {
|
|
142
|
+
return verifiesOnScratch({ name, key, legacy: value, input })
|
|
143
|
+
? { type: 'input', key, input }
|
|
144
|
+
: skip(key, 'the typed constructor input does not reproduce the legacy value');
|
|
145
|
+
}
|
|
146
|
+
const statements = key === 'expressions'
|
|
147
|
+
? expressionStatements(value)
|
|
148
|
+
: key === 'tabs'
|
|
149
|
+
? tabStatements(value)
|
|
150
|
+
: undefined;
|
|
151
|
+
if (!statements)
|
|
152
|
+
return skip(key);
|
|
153
|
+
return verifiesOnScratch({ name, key, legacy: value, statements })
|
|
154
|
+
? { type: 'statements', key, statements }
|
|
155
|
+
: skip(key, 'the typed calls do not reproduce the legacy value');
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Converts `index.jigx`. `name` is required. Every other key is verified by probe on a
|
|
159
|
+
* scratch ApplicationBuilder; a key that does not verify is skipped as `index:key-<key>`.
|
|
160
|
+
* @throws MigrateError when `name` is missing or not a valid Application name
|
|
161
|
+
*/
|
|
162
|
+
export function convertIndex(entry) {
|
|
163
|
+
const { entity, relPath } = entry;
|
|
164
|
+
if (!isPlainObject(entity))
|
|
165
|
+
throw new MigrateError(`${relPath} must be a YAML mapping`);
|
|
166
|
+
const { name } = entity;
|
|
167
|
+
if (!isApplicationName(name)) {
|
|
168
|
+
throw new MigrateError(`${relPath} needs a valid "name" (lower-kebab, 2-50 chars), got ${JSON.stringify(name)}`);
|
|
169
|
+
}
|
|
170
|
+
const gen = new Gen();
|
|
171
|
+
const keys = Object.entries(entity).map(([key, value]) => {
|
|
172
|
+
if (key === 'name')
|
|
173
|
+
return { type: 'input', key, input: { name } };
|
|
174
|
+
return convertKey({ name, key, value, gen });
|
|
175
|
+
});
|
|
176
|
+
return { name, keys };
|
|
177
|
+
}
|
|
178
|
+
/** The ApplicationBuilder constructor input carried by the index keys. */
|
|
179
|
+
export function applicationInput(conversion) {
|
|
180
|
+
let input = { name: conversion.name };
|
|
181
|
+
for (const key of conversion.keys) {
|
|
182
|
+
if (key.type === 'input')
|
|
183
|
+
input = { ...input, ...key.input };
|
|
184
|
+
}
|
|
185
|
+
return input;
|
|
186
|
+
}
|
|
187
|
+
/** Renders `src/index.ts`: the `application` constructor input and `register` for the other keys. */
|
|
188
|
+
export function renderIndexModule(options) {
|
|
189
|
+
const { relPath, conversion } = options;
|
|
190
|
+
const body = [];
|
|
191
|
+
for (const key of conversion.keys) {
|
|
192
|
+
if (key.type === 'statements')
|
|
193
|
+
body.push(...key.statements.map((statement) => statement.code));
|
|
194
|
+
if (key.type === 'skip')
|
|
195
|
+
body.push(todoComment(key));
|
|
196
|
+
}
|
|
197
|
+
return renderModule({
|
|
198
|
+
sources: [relPath],
|
|
199
|
+
coreSdkTypes: ['ApplicationBuilder', 'ApplicationInput'],
|
|
200
|
+
preamble: [
|
|
201
|
+
`export const application = ${lit(applicationInput(conversion))} satisfies ApplicationInput`,
|
|
202
|
+
],
|
|
203
|
+
body,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=app-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-index.js","sourceRoot":"","sources":["../../../src/migrator/converters/app-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type LegacyEntry } from '../read-solution.js';
|
|
2
|
+
import { type EntityConversion } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* `assets/<id>.jigx` (`{ <id>: value }`) → `app.images(…)`, `app.icons(…)` or `app.themePalette(…)`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function convertAsset(entry: LegacyEntry): EntityConversion;
|
|
7
|
+
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../src/migrator/converters/assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,KAAK,gBAAgB,EAAkB,MAAM,YAAY,CAAA;AAuDlE;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,gBAAgB,CAMjE"}
|