@intelligo-dev/cli 1.0.0-beta.13 → 1.0.0-beta.15
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 +65 -2
- package/dist/args.d.ts +10 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +20 -0
- package/dist/args.js.map +1 -0
- package/dist/bin.js +103 -22
- package/dist/bin.js.map +1 -1
- package/dist/commands/add.d.ts +4 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +28 -2
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/create-flow.d.ts +8 -1
- package/dist/commands/create-flow.d.ts.map +1 -1
- package/dist/commands/create-flow.js +101 -34
- package/dist/commands/create-flow.js.map +1 -1
- package/dist/commands/create.d.ts +24 -4
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +57 -14
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +123 -35
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/migrate-check.d.ts +20 -1
- package/dist/commands/migrate-check.d.ts.map +1 -1
- package/dist/commands/migrate-check.js +35 -6
- package/dist/commands/migrate-check.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +2 -8
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/sync-messages.d.ts +37 -0
- package/dist/commands/sync-messages.d.ts.map +1 -0
- package/dist/commands/sync-messages.js +88 -0
- package/dist/commands/sync-messages.js.map +1 -0
- package/dist/commands/sync-scaffold.d.ts +36 -0
- package/dist/commands/sync-scaffold.d.ts.map +1 -0
- package/dist/commands/sync-scaffold.js +53 -0
- package/dist/commands/sync-scaffold.js.map +1 -0
- package/dist/commands/sync.d.ts +109 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +392 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/upgrade-check.d.ts.map +1 -1
- package/dist/commands/upgrade-check.js +4 -1
- package/dist/commands/upgrade-check.js.map +1 -1
- package/dist/env-files.d.ts +11 -0
- package/dist/env-files.d.ts.map +1 -1
- package/dist/env-files.js +28 -9
- package/dist/env-files.js.map +1 -1
- package/dist/manifest.d.ts +27 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +30 -3
- package/dist/manifest.js.map +1 -1
- package/dist/module-exports.d.ts +63 -0
- package/dist/module-exports.d.ts.map +1 -0
- package/dist/module-exports.js +231 -0
- package/dist/module-exports.js.map +1 -0
- package/dist/registry-bundle.d.ts +43 -0
- package/dist/registry-bundle.d.ts.map +1 -0
- package/dist/registry-bundle.js +74 -0
- package/dist/registry-bundle.js.map +1 -0
- package/dist/registry-items.d.ts +41 -13
- package/dist/registry-items.d.ts.map +1 -1
- package/dist/registry-items.js +117 -33
- package/dist/registry-items.js.map +1 -1
- package/package.json +1 -1
- package/src/args.ts +25 -0
- package/src/bin.ts +124 -22
- package/src/commands/add.ts +39 -12
- package/src/commands/create-flow.ts +119 -29
- package/src/commands/create.ts +82 -14
- package/src/commands/doctor.ts +156 -47
- package/src/commands/migrate-check.ts +51 -10
- package/src/commands/migrate.ts +2 -8
- package/src/commands/sync-messages.ts +114 -0
- package/src/commands/sync-scaffold.ts +83 -0
- package/src/commands/sync.ts +574 -0
- package/src/commands/upgrade-check.ts +4 -1
- package/src/env-files.ts +28 -7
- package/src/manifest.ts +57 -3
- package/src/module-exports.ts +266 -0
- package/src/registry-bundle.ts +103 -0
- package/src/registry-items.ts +141 -36
- package/templates/admin-page/admin-page.tsx.tpl +96 -24
- package/templates/app-scaffold/gitignore.tpl +25 -0
- package/templates/app-scaffold/intelligo.ts.tpl +6 -47
- package/templates/app-scaffold/next.config.mjs.tpl +31 -2
- package/templates/app-scaffold/package.json.tpl +2 -2
- package/templates/manifest.json +40 -3
- package/templates/pnpm-standalone/npmrc.tpl +6 -0
- package/templates/pnpm-standalone/pnpm-workspace.yaml.tpl +10 -0
- package/templates/registry/ai-agent-activity.json +23 -0
- package/templates/registry/ai-agent-progress.json +21 -0
- package/templates/registry/ai-approval-card.json +27 -0
- package/templates/registry/ai-artifact.json +22 -0
- package/templates/registry/ai-branch.json +21 -0
- package/templates/registry/ai-citations.json +24 -0
- package/templates/registry/ai-code-block.json +23 -0
- package/templates/registry/ai-composer-menu.json +19 -0
- package/templates/registry/ai-file-diff.json +25 -0
- package/templates/registry/ai-image-generation.json +23 -0
- package/templates/registry/ai-markdown.json +23 -0
- package/templates/registry/ai-message-bubble.json +23 -0
- package/templates/registry/ai-message-scroller.json +22 -0
- package/templates/registry/ai-message.json +21 -0
- package/templates/registry/ai-motion.json +19 -0
- package/templates/registry/ai-prompt-input.json +28 -0
- package/templates/registry/ai-reasoning-text.json +22 -0
- package/templates/registry/ai-reasoning.json +22 -0
- package/templates/registry/ai-shimmer-text.json +19 -0
- package/templates/registry/ai-sidebar.json +25 -0
- package/templates/registry/ai-speech-input.json +21 -0
- package/templates/registry/ai-streaming-response.json +24 -0
- package/templates/registry/ai-suggestion.json +19 -0
- package/templates/registry/ai-todo-list.json +22 -0
- package/templates/registry/ai-tool-approval.json +26 -0
- package/templates/registry/ai-tool-result.json +25 -0
- package/templates/registry/alert-dialog.json +23 -0
- package/templates/registry/animated-list.json +21 -0
- package/templates/registry/app-shell.json +93 -0
- package/templates/registry/artifacts.json +82 -0
- package/templates/registry/attachment.json +22 -0
- package/templates/registry/auth-email-verification.json +39 -0
- package/templates/registry/auth-login.json +72 -0
- package/templates/registry/auth-password-reset.json +53 -0
- package/templates/registry/auth-signup.json +41 -0
- package/templates/registry/billing-settings.json +66 -0
- package/templates/registry/button.json +22 -0
- package/templates/registry/chat-eve.json +19 -0
- package/templates/registry/chat-panel.json +30 -0
- package/templates/registry/chat-share.json +42 -0
- package/templates/registry/chat-widget.json +34 -0
- package/templates/registry/chat.json +326 -0
- package/templates/registry/checkbox.json +22 -0
- package/templates/registry/checkout.json +40 -0
- package/templates/registry/collapsible.json +19 -0
- package/templates/registry/command.json +23 -0
- package/templates/registry/copy-button.json +21 -0
- package/templates/registry/dashboard.json +69 -0
- package/templates/registry/dialog.json +24 -0
- package/templates/registry/document-viewer.json +22 -0
- package/templates/registry/dropdown-menu.json +23 -0
- package/templates/registry/expandable-tabs.json +22 -0
- package/templates/registry/feature-gating.json +73 -0
- package/templates/registry/file-upload.json +24 -0
- package/templates/registry/hold-action-button.json +22 -0
- package/templates/registry/input-group.json +23 -0
- package/templates/registry/input.json +19 -0
- package/templates/registry/intelligo.json +187 -0
- package/templates/registry/invitation-accept.json +64 -0
- package/templates/registry/language-switcher.json +29 -0
- package/templates/registry/morphing-modal.json +24 -0
- package/templates/registry/notification-stack.json +24 -0
- package/templates/registry/notifications.json +87 -0
- package/templates/registry/onboarding.json +83 -0
- package/templates/registry/otp-input.json +22 -0
- package/templates/registry/page-header.json +15 -0
- package/templates/registry/payment-poll.json +58 -0
- package/templates/registry/popover-morph.json +22 -0
- package/templates/registry/popover.json +22 -0
- package/templates/registry/pricing.json +117 -0
- package/templates/registry/privacy-settings.json +65 -0
- package/templates/registry/profile-settings.json +68 -0
- package/templates/registry/progress.json +19 -0
- package/templates/registry/radio-group.json +22 -0
- package/templates/registry/registry.json +2960 -0
- package/templates/registry/route-error.json +65 -0
- package/templates/registry/select-morph.json +23 -0
- package/templates/registry/select.json +23 -0
- package/templates/registry/settings-shell.json +47 -0
- package/templates/registry/sheet.json +24 -0
- package/templates/registry/sidebar.json +28 -0
- package/templates/registry/smoke.json +34 -0
- package/templates/registry/spinner.json +16 -0
- package/templates/registry/stat-card.json +18 -0
- package/templates/registry/status-badge.json +18 -0
- package/templates/registry/switch.json +20 -0
- package/templates/registry/tabs.json +23 -0
- package/templates/registry/team-settings.json +97 -0
- package/templates/registry/textarea.json +16 -0
- package/templates/registry/tooltip.json +22 -0
- package/templates/registry/trial-banner.json +43 -0
- package/templates/registry/usage.json +84 -0
- package/templates/registry/workspace-settings.json +71 -0
- package/templates/registry-items.json +3 -3
- package/templates/registry-requires.json +30 -4
- package/templates/vitest/server-only.ts.tpl +7 -0
- package/templates/vitest/vitest.config.ts.tpl +37 -0
package/README.md
CHANGED
|
@@ -23,13 +23,75 @@ to the new application, which is where `intelligo` comes from afterwards.
|
|
|
23
23
|
```bash
|
|
24
24
|
pnpm dlx @intelligo-dev/cli@beta create my-app # a registry-ready Next.js app, plus the pages you pick
|
|
25
25
|
pnpm dlx @intelligo-dev/cli@beta create my-app --items chat,billing-settings --yes # no questions
|
|
26
|
-
intelligo
|
|
26
|
+
pnpm dlx @intelligo-dev/cli@beta create . --name "Acme Audit" # into the current, empty directory (a .git may be there)
|
|
27
|
+
intelligo add <feature> # generate consumer-owned source (admin-page, maintenance, vitest)
|
|
27
28
|
intelligo doctor # what is misconfigured, and why it matters
|
|
28
29
|
intelligo migrate # apply the framework chain
|
|
29
30
|
intelligo migrate --check [--json] # compare the chain with the database, change nothing
|
|
30
31
|
intelligo upgrade --check # what a template upgrade would change
|
|
32
|
+
intelligo sync [items…] # install registry pages from this release, seams kept
|
|
33
|
+
intelligo sync --check # exit 1 when an installed page drifted from the registry
|
|
31
34
|
```
|
|
32
35
|
|
|
36
|
+
## `sync`: installed pages stay the registry's
|
|
37
|
+
|
|
38
|
+
A page arrives as source, through `shadcn add`, and nothing stops it drifting
|
|
39
|
+
afterwards — an edit here, a release skipped there. `intelligo sync` installs
|
|
40
|
+
items from the registry bundled with this CLI, so the pages match the
|
|
41
|
+
`@intelligo-dev/*` packages of the same version, in dependency order. Files an
|
|
42
|
+
item ships once for you to own (`lib/*-config`, `lib/nav-config.ts`… — the
|
|
43
|
+
`seams` in the registry's `requires.json`) are put back after the install, and
|
|
44
|
+
message files are merged key by key with your copy winning. The result is
|
|
45
|
+
recorded in `intelligo.manifest.json`.
|
|
46
|
+
|
|
47
|
+
Name the items once — `intelligo sync intelligo app-shell chat …` — and
|
|
48
|
+
afterwards a bare `intelligo sync` updates them. It refuses to overwrite a file
|
|
49
|
+
you edited by hand unless you pass `--force`: move the change into a seam
|
|
50
|
+
first. `intelligo sync --check` installs nothing, lists every file that is
|
|
51
|
+
`missing`, `edited`, `outdated`, `messages-behind` or `locale-behind`, and
|
|
52
|
+
exits 1 on any — the gate to run in CI.
|
|
53
|
+
|
|
54
|
+
### Other locales
|
|
55
|
+
|
|
56
|
+
The registry ships English (`messages/en/<item>.json`). When the app's
|
|
57
|
+
`i18n/routing.ts` lists more `locales`, `sync --check` compares each other
|
|
58
|
+
locale's copy of every shipped namespace — `messages/<locale>/<item>.json` —
|
|
59
|
+
with the app's English file on disk (the merged copy, your own keys
|
|
60
|
+
included) and reports a missing file or missing keys as `locale-behind`,
|
|
61
|
+
with the keys. `sync` never writes another locale: after it adds English
|
|
62
|
+
keys, translate them, and the check passes again.
|
|
63
|
+
|
|
64
|
+
`create` installs the pages you pick the same way: the dependencies first
|
|
65
|
+
(from the root of a parent pnpm workspace when the new app is one of its
|
|
66
|
+
members, so the workspace keeps one lockfile), then `intelligo sync` of the
|
|
67
|
+
design-system base and every item, one `shadcn add` each. Scaffold files an
|
|
68
|
+
item replaces — `app/globals.css`, the theme provider, `lib/utils.ts` — move
|
|
69
|
+
from the `app-scaffold` record to the registry's (the feature's `handedOver`
|
|
70
|
+
list), so `upgrade --check` does not report them as yours forever.
|
|
71
|
+
|
|
72
|
+
The chosen items are recorded in `intelligo.manifest.json` before anything is
|
|
73
|
+
installed, and `sync` treats a file the scaffold wrote and nobody edited as the
|
|
74
|
+
registry's to replace, so when the install is declined or fails, a bare
|
|
75
|
+
`intelligo sync` picks up where `create` stopped. The project name is the
|
|
76
|
+
directory's unless `--name` says otherwise; its slug is the package name, the
|
|
77
|
+
billing product and the default page title. The scaffold carries its own
|
|
78
|
+
`.gitignore`. Under pnpm, an app outside any workspace also gets a
|
|
79
|
+
`pnpm-workspace.yaml` that declines the dependency build scripts pnpm 11 would
|
|
80
|
+
stop the install over and allows the shadcn CLI's `pnpm add` at the root (with
|
|
81
|
+
an `.npmrc` saying the same to pnpm 9). An app created inside a pnpm workspace
|
|
82
|
+
gets neither; its `next.config.mjs` reads the workspace root's `.env.local` and
|
|
83
|
+
`.env` instead, as `doctor` and `migrate` do.
|
|
84
|
+
|
|
85
|
+
## Where `doctor`, `migrate` and `upgrade` read env from
|
|
86
|
+
|
|
87
|
+
They run outside Next, so they load the env files themselves, never
|
|
88
|
+
overriding a variable that is already set. Highest precedence first: the
|
|
89
|
+
shell, the app's `.env.local`, the app's `.env`, then — when the app is a
|
|
90
|
+
member of a pnpm workspace — the workspace root's `.env.local` and `.env`. An
|
|
91
|
+
app in a monorepo whose `next.config` falls back to the repository root's
|
|
92
|
+
`.env` is therefore checked and migrated against the same `DATABASE_URL` it
|
|
93
|
+
boots with.
|
|
94
|
+
|
|
33
95
|
## Why `migrate` is not `drizzle-kit migrate`
|
|
34
96
|
|
|
35
97
|
Drizzle applies migrations in journal-timestamp order and skips anything
|
|
@@ -47,7 +109,8 @@ baselined first.
|
|
|
47
109
|
which an empty database and a stale one share. A deploy gate that must tell them
|
|
48
110
|
apart reads `--json`: one object on stdout whose `state` is `up_to_date`,
|
|
49
111
|
`pending`, `fresh` (empty database), `unmanaged`, `ahead` or `legacy`, beside
|
|
50
|
-
`exitCode`, `chain`, `applied`, `pending`, `unknown`, `legacy
|
|
112
|
+
`exitCode`, `chain`, `applied`, `pending`, `unknown`, `legacy`, `legacyMissing`
|
|
113
|
+
and `adoptable`.
|
|
51
114
|
|
|
52
115
|
## `add maintenance` and its schedule
|
|
53
116
|
|
package/dist/args.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The flags a command accepts. A flag it does not know is an error
|
|
3
|
+
* rather than ignored: `sync --chek` must not apply, and `add --all`
|
|
4
|
+
* must not look as if it did something.
|
|
5
|
+
*/
|
|
6
|
+
export declare function unknownFlags(args: readonly string[], allowed: readonly string[]): string[];
|
|
7
|
+
export declare function wantsHelp(args: readonly string[]): boolean;
|
|
8
|
+
/** `a,b c` → `["a", "b", "c"]`: items as `create --items` takes them, or space-separated. */
|
|
9
|
+
export declare function itemNames(args: readonly string[]): string[];
|
|
10
|
+
//# sourceMappingURL=args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,EAAE,CAEV;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAE1D;AAED,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAM3D"}
|
package/dist/args.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The flags a command accepts. A flag it does not know is an error
|
|
3
|
+
* rather than ignored: `sync --chek` must not apply, and `add --all`
|
|
4
|
+
* must not look as if it did something.
|
|
5
|
+
*/
|
|
6
|
+
export function unknownFlags(args, allowed) {
|
|
7
|
+
return args.filter((arg) => arg.startsWith("-") && !allowed.includes(arg));
|
|
8
|
+
}
|
|
9
|
+
export function wantsHelp(args) {
|
|
10
|
+
return args.includes("--help") || args.includes("-h");
|
|
11
|
+
}
|
|
12
|
+
/** `a,b c` → `["a", "b", "c"]`: items as `create --items` takes them, or space-separated. */
|
|
13
|
+
export function itemNames(args) {
|
|
14
|
+
return args
|
|
15
|
+
.filter((arg) => !arg.startsWith("-"))
|
|
16
|
+
.flatMap((arg) => arg.split(","))
|
|
17
|
+
.map((name) => name.trim())
|
|
18
|
+
.filter(Boolean);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=args.js.map
|
package/dist/args.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,YAAY,CAC1B,IAAuB,EACvB,OAA0B;IAE1B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAuB;IAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,IAAuB;IAC/C,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACrC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC"}
|
package/dist/bin.js
CHANGED
|
@@ -17,8 +17,13 @@ import { addFeature, formatAddResult, addExitCode, readCatalogue, } from "./comm
|
|
|
17
17
|
import { exitCodeFor, formatResults, runChecks } from "./commands/doctor.js";
|
|
18
18
|
import { formatMigrateCheck, formatMigrateCheckJson, migrateCheck, migrateCheckExitCode, } from "./commands/migrate-check.js";
|
|
19
19
|
import { MIGRATIONS_TABLE_SQL, SCHEMA_PROBE_SQL, applyExitCode, applyMigrations, formatApplyResult, } from "./commands/migrate.js";
|
|
20
|
+
import { formatSyncReport, installedFrameworkVersion, selectItems, syncApply, syncCheck, syncCheckExitCode, } from "./commands/sync.js";
|
|
20
21
|
import { formatUpgradeReport, upgradeCheck, upgradeCheckExitCode, } from "./commands/upgrade-check.js";
|
|
22
|
+
import { itemNames, unknownFlags, wantsHelp } from "./args.js";
|
|
21
23
|
import { loadAppEnv } from "./env-files.js";
|
|
24
|
+
import { workspaceRootVariable } from "./commands/create.js";
|
|
25
|
+
import { resolveRegistryDir } from "./registry-bundle.js";
|
|
26
|
+
import { findWorkspaceRoot, readRegistryCatalogue } from "./registry-items.js";
|
|
22
27
|
import { MIGRATION_LOCATIONS, resolveMigrationsDir } from "./migrations-dir.js";
|
|
23
28
|
/**
|
|
24
29
|
* Templates ship with the CLI package.
|
|
@@ -42,7 +47,7 @@ function usage() {
|
|
|
42
47
|
"intelligo <command>",
|
|
43
48
|
"",
|
|
44
49
|
" create [dir] Scaffold an app, then install the registry pages you pick",
|
|
45
|
-
" (--items a,b | --all, --yes, --no-install)",
|
|
50
|
+
" (--items a,b | --all, --yes, --no-install, --name <name>)",
|
|
46
51
|
" doctor Report configuration and migration-chain problems",
|
|
47
52
|
" migrate Apply the framework's migration chain to DATABASE_URL",
|
|
48
53
|
" migrate --check Compare the framework's migrations to a database",
|
|
@@ -50,6 +55,10 @@ function usage() {
|
|
|
50
55
|
" fresh | ahead | unmanaged | legacy)",
|
|
51
56
|
" add <feature> Generate consumer-owned source (--force to overwrite)",
|
|
52
57
|
" upgrade --check Show what a template upgrade would change",
|
|
58
|
+
" sync [items…] Install registry pages from this release's registry",
|
|
59
|
+
" (names space- or comma-separated),",
|
|
60
|
+
" keeping seams and merging messages (--force replaces",
|
|
61
|
+
" hand-edited files; --check only reports, exit 1 on drift)",
|
|
53
62
|
"",
|
|
54
63
|
].join("\n");
|
|
55
64
|
}
|
|
@@ -112,15 +121,61 @@ async function runMigrate(mode, json = false) {
|
|
|
112
121
|
await client.end();
|
|
113
122
|
}
|
|
114
123
|
}
|
|
124
|
+
function flagsOk(command, args, allowed) {
|
|
125
|
+
const unknown = unknownFlags(args, allowed);
|
|
126
|
+
if (unknown.length === 0)
|
|
127
|
+
return true;
|
|
128
|
+
console.error(`intelligo ${command}: unknown argument ${unknown.join(" ")}` +
|
|
129
|
+
(allowed.length ? ` (it takes ${allowed.join(", ")}).` : "."));
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
function runAdd(rest) {
|
|
133
|
+
if (!flagsOk("add", rest, ["--force"]))
|
|
134
|
+
return 2;
|
|
135
|
+
const feature = rest.find((a) => !a.startsWith("--"));
|
|
136
|
+
if (!feature) {
|
|
137
|
+
const catalogue = readCatalogue(TEMPLATES_DIR);
|
|
138
|
+
console.error("Usage: intelligo add <feature>\n");
|
|
139
|
+
for (const [name, spec] of Object.entries(catalogue)) {
|
|
140
|
+
console.error(` ${name.padEnd(16)} ${spec.description}`);
|
|
141
|
+
}
|
|
142
|
+
return 1;
|
|
143
|
+
}
|
|
144
|
+
if (feature === "pnpm-standalone" && findWorkspaceRoot(process.cwd())) {
|
|
145
|
+
console.error("intelligo add pnpm-standalone: this app is a member of a pnpm workspace, and a " +
|
|
146
|
+
"workspace file of its own would take it out; the workspace root's settings apply.");
|
|
147
|
+
return 1;
|
|
148
|
+
}
|
|
149
|
+
const result = addFeature(feature, {
|
|
150
|
+
appRoot: process.cwd(),
|
|
151
|
+
templatesDir: TEMPLATES_DIR,
|
|
152
|
+
frameworkVersion: FRAMEWORK_VERSION,
|
|
153
|
+
force: rest.includes("--force"),
|
|
154
|
+
// Computed, not recorded: an app made before the variable existed
|
|
155
|
+
// has no value for it.
|
|
156
|
+
variables: feature === "app-scaffold"
|
|
157
|
+
? workspaceRootVariable(process.cwd())
|
|
158
|
+
: undefined,
|
|
159
|
+
});
|
|
160
|
+
console.log(formatAddResult(result));
|
|
161
|
+
return addExitCode(result);
|
|
162
|
+
}
|
|
115
163
|
async function main() {
|
|
116
164
|
const [, , command = "help", ...rest] = process.argv;
|
|
165
|
+
if (wantsHelp(rest)) {
|
|
166
|
+
console.log(usage());
|
|
167
|
+
return 0;
|
|
168
|
+
}
|
|
117
169
|
// The commands that read the app's configuration see what the app
|
|
118
|
-
// itself would: its .env.local and .env,
|
|
170
|
+
// itself would: its .env.local and .env, then the pnpm workspace
|
|
171
|
+
// root's, under anything the shell set.
|
|
119
172
|
if (command === "doctor" || command === "migrate" || command === "upgrade") {
|
|
120
173
|
loadAppEnv(process.cwd());
|
|
121
174
|
}
|
|
122
175
|
switch (command) {
|
|
123
176
|
case "doctor": {
|
|
177
|
+
if (!flagsOk("doctor", rest, []))
|
|
178
|
+
return 2;
|
|
124
179
|
const results = runChecks();
|
|
125
180
|
console.log(formatResults(results));
|
|
126
181
|
return exitCodeFor(results);
|
|
@@ -141,32 +196,23 @@ async function main() {
|
|
|
141
196
|
// Imported lazily so the prompts library loads only for the one
|
|
142
197
|
// command that converses.
|
|
143
198
|
const { parseCreateFlags, runCreate } = await import("./commands/create-flow.js");
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
case "add": {
|
|
151
|
-
const feature = rest.find((a) => !a.startsWith("--"));
|
|
152
|
-
if (!feature) {
|
|
153
|
-
const catalogue = readCatalogue(TEMPLATES_DIR);
|
|
154
|
-
console.error("Usage: intelligo add <feature>\n");
|
|
155
|
-
for (const [name, spec] of Object.entries(catalogue)) {
|
|
156
|
-
console.error(` ${name.padEnd(16)} ${spec.description}`);
|
|
157
|
-
}
|
|
158
|
-
return 1;
|
|
199
|
+
const flags = parseCreateFlags(rest);
|
|
200
|
+
if (flags.unknown.length > 0) {
|
|
201
|
+
console.error(`intelligo create: unknown argument ${flags.unknown.join(" ")}.\n`);
|
|
202
|
+
console.error(usage());
|
|
203
|
+
return 2;
|
|
159
204
|
}
|
|
160
|
-
|
|
161
|
-
appRoot: process.cwd(),
|
|
205
|
+
return runCreate(flags, {
|
|
162
206
|
templatesDir: TEMPLATES_DIR,
|
|
163
207
|
frameworkVersion: FRAMEWORK_VERSION,
|
|
164
|
-
|
|
208
|
+
interactive: Boolean(process.stdin.isTTY && process.stdout.isTTY),
|
|
165
209
|
});
|
|
166
|
-
console.log(formatAddResult(result));
|
|
167
|
-
return addExitCode(result);
|
|
168
210
|
}
|
|
211
|
+
case "add":
|
|
212
|
+
return runAdd(rest);
|
|
169
213
|
case "upgrade": {
|
|
214
|
+
if (!flagsOk("upgrade", rest, ["--check"]))
|
|
215
|
+
return 2;
|
|
170
216
|
if (!rest.includes("--check")) {
|
|
171
217
|
console.error("Only `upgrade --check` is implemented.");
|
|
172
218
|
console.error("Applying an upgrade means re-running `intelligo add` for the " +
|
|
@@ -181,7 +227,42 @@ async function main() {
|
|
|
181
227
|
console.log(formatUpgradeReport(report));
|
|
182
228
|
return upgradeCheckExitCode(report);
|
|
183
229
|
}
|
|
230
|
+
case "sync": {
|
|
231
|
+
if (!flagsOk("sync", rest, ["--check", "--force"]))
|
|
232
|
+
return 2;
|
|
233
|
+
const registryDir = resolveRegistryDir(TEMPLATES_DIR);
|
|
234
|
+
if (!registryDir) {
|
|
235
|
+
console.error("This CLI has no bundled registry — in the framework repository, run `pnpm registry:build` first.");
|
|
236
|
+
return 1;
|
|
237
|
+
}
|
|
238
|
+
const context = {
|
|
239
|
+
appRoot: process.cwd(),
|
|
240
|
+
registryDir,
|
|
241
|
+
requires: readRegistryCatalogue(TEMPLATES_DIR).requires,
|
|
242
|
+
frameworkVersion: FRAMEWORK_VERSION,
|
|
243
|
+
};
|
|
244
|
+
const installed = installedFrameworkVersion(context.appRoot);
|
|
245
|
+
if (installed && installed !== FRAMEWORK_VERSION) {
|
|
246
|
+
console.error(`! @intelligo-dev/core is ${installed} but this CLI carries the ${FRAMEWORK_VERSION} registry — ` +
|
|
247
|
+
"run the CLI of the same version (`pnpm exec intelligo`), or pages and packages will disagree.");
|
|
248
|
+
}
|
|
249
|
+
const selection = selectItems(itemNames(rest), context);
|
|
250
|
+
if (!selection.ok) {
|
|
251
|
+
console.error(selection.message);
|
|
252
|
+
return 1;
|
|
253
|
+
}
|
|
254
|
+
if (rest.includes("--check")) {
|
|
255
|
+
const report = syncCheck(selection.items, context);
|
|
256
|
+
console.log(formatSyncReport(report));
|
|
257
|
+
return syncCheckExitCode(report);
|
|
258
|
+
}
|
|
259
|
+
return syncApply(selection.items, context, {
|
|
260
|
+
force: rest.includes("--force"),
|
|
261
|
+
});
|
|
262
|
+
}
|
|
184
263
|
case "help":
|
|
264
|
+
case "--help":
|
|
265
|
+
case "-h":
|
|
185
266
|
console.log(usage());
|
|
186
267
|
return 0;
|
|
187
268
|
default:
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhF;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAChC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EACJ,WAAW,CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,iBAAiB,GAAW,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAC9D,iBAAiB,CAClB,CAAC,OAAO,CAAC;AAEV,SAAS,KAAK;IACZ,OAAO;QACL,qBAAqB;QACrB,EAAE;QACF,+EAA+E;QAC/E
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/add.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export type TemplateFeature = {
|
|
|
23
23
|
deprecated?: string;
|
|
24
24
|
files: TemplateFile[];
|
|
25
25
|
cron?: TemplateCron;
|
|
26
|
+
/** What the developer still does by hand once the files are written. */
|
|
27
|
+
nextSteps?: string[];
|
|
26
28
|
};
|
|
27
29
|
export type TemplateCatalogue = Record<string, TemplateFeature>;
|
|
28
30
|
export declare function readCatalogue(templatesDir: string): TemplateCatalogue;
|
|
@@ -43,6 +45,8 @@ export type AddResult = {
|
|
|
43
45
|
cron?: TemplateCron & {
|
|
44
46
|
status: "written" | "present" | "manual";
|
|
45
47
|
};
|
|
48
|
+
/** The catalogue's steps left to the developer, printed after the files. */
|
|
49
|
+
nextSteps?: string[];
|
|
46
50
|
};
|
|
47
51
|
export type AddOptions = {
|
|
48
52
|
appRoot: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAChE,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAChE,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEhE,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAIrE;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kEAAkE;IAClE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG;QAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;KAAE,CAAC;IACnE,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC5C,MAAM,CAMR;AAsCD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,CA+F1E;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAsBpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAEhD"}
|
package/dist/commands/add.js
CHANGED
|
@@ -18,6 +18,8 @@ export function substitute(contents, variables) {
|
|
|
18
18
|
return contents;
|
|
19
19
|
return Object.entries(variables).reduce((out, [key, value]) => out.split(key).join(value), contents);
|
|
20
20
|
}
|
|
21
|
+
/** A `__NAME__` placeholder the variables did not fill. */
|
|
22
|
+
const PLACEHOLDER = /__[A-Z][A-Z0-9_]*__/;
|
|
21
23
|
const VERCEL_CONFIG = "vercel.json";
|
|
22
24
|
/**
|
|
23
25
|
* Schedule the cron in vercel.json when the app has none. An existing
|
|
@@ -62,11 +64,32 @@ export function addFeature(feature, options) {
|
|
|
62
64
|
};
|
|
63
65
|
if (spec.deprecated)
|
|
64
66
|
result.deprecated = spec.deprecated;
|
|
67
|
+
if (spec.nextSteps?.length)
|
|
68
|
+
result.nextSteps = spec.nextSteps;
|
|
65
69
|
const recorded = [];
|
|
70
|
+
const handedOver = new Set(previous?.handedOver ?? []);
|
|
71
|
+
// Re-generating a feature substitutes what it was generated with, so
|
|
72
|
+
// `add app-scaffold` in an app `create` made takes the app's own name;
|
|
73
|
+
// values passed now fill in or replace them.
|
|
74
|
+
const variables = previous?.variables || options.variables
|
|
75
|
+
? { ...previous?.variables, ...options.variables }
|
|
76
|
+
: undefined;
|
|
77
|
+
// Checked before anything is written, so a refusal leaves no half-made
|
|
78
|
+
// feature behind.
|
|
66
79
|
for (const file of spec.files) {
|
|
80
|
+
const unfilled = substitute(readFileSync(path.join(options.templatesDir, file.template), "utf8"), variables).match(PLACEHOLDER);
|
|
81
|
+
if (unfilled) {
|
|
82
|
+
throw new Error(`${feature} needs a value for ${unfilled[0]} that only \`intelligo create\` supplies — ` +
|
|
83
|
+
"run `intelligo create <directory>`, or `intelligo create .` in an empty one.");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
for (const file of spec.files) {
|
|
87
|
+
// A registry item replaced it; `intelligo sync` keeps it now.
|
|
88
|
+
if (handedOver.has(file.target))
|
|
89
|
+
continue;
|
|
67
90
|
const source = path.join(options.templatesDir, file.template);
|
|
68
91
|
const target = path.join(options.appRoot, file.target);
|
|
69
|
-
const contents = substitute(readFileSync(source, "utf8"),
|
|
92
|
+
const contents = substitute(readFileSync(source, "utf8"), variables);
|
|
70
93
|
if (existsSync(target) && !options.force) {
|
|
71
94
|
const current = hashContents(readFileSync(target, "utf8"));
|
|
72
95
|
const known = previousByPath.get(file.target);
|
|
@@ -96,7 +119,7 @@ export function addFeature(feature, options) {
|
|
|
96
119
|
status: scheduleCron(options.appRoot, spec.cron),
|
|
97
120
|
};
|
|
98
121
|
}
|
|
99
|
-
writeManifest(options.appRoot, recordFeature(manifest, feature, spec.templateVersion, recorded,
|
|
122
|
+
writeManifest(options.appRoot, recordFeature(manifest, feature, spec.templateVersion, recorded, variables));
|
|
100
123
|
return result;
|
|
101
124
|
}
|
|
102
125
|
export function formatAddResult(r) {
|
|
@@ -118,6 +141,9 @@ export function formatAddResult(r) {
|
|
|
118
141
|
lines.push(" nothing to do");
|
|
119
142
|
if (r.cron)
|
|
120
143
|
lines.push(...cronNextSteps(r.cron));
|
|
144
|
+
if (r.nextSteps?.length) {
|
|
145
|
+
lines.push("", " Next:", ...r.nextSteps.map((step) => ` - ${step}`));
|
|
146
|
+
}
|
|
121
147
|
return lines.join("\n");
|
|
122
148
|
}
|
|
123
149
|
/**
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,GAEd,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The conversation around `createApp`: ask what the flags did not say,
|
|
3
3
|
* scaffold, and install the chosen registry items once the developer
|
|
4
|
-
* has approved the commands that do it.
|
|
4
|
+
* has approved the commands that do it. The items go in through
|
|
5
|
+
* `intelligo sync` — one `shadcn add` per item from the registry this
|
|
6
|
+
* CLI carries, recorded in the manifest — exactly as a later sync
|
|
7
|
+
* would put them back.
|
|
5
8
|
*
|
|
6
9
|
* Nothing runs on the developer's machine without their say-so. In a
|
|
7
10
|
* terminal the commands are shown and confirmed; without one (CI, a
|
|
@@ -23,6 +26,10 @@ export type CreateFlags = {
|
|
|
23
26
|
* range, because that is what works everywhere else.
|
|
24
27
|
*/
|
|
25
28
|
linkWorkspace: boolean;
|
|
29
|
+
/** `--name <name>` — the project name, when it is not the directory's. */
|
|
30
|
+
name?: string;
|
|
31
|
+
/** Flags `create` does not know. */
|
|
32
|
+
unknown: string[];
|
|
26
33
|
};
|
|
27
34
|
export declare function parseCreateFlags(args: readonly string[]): CreateFlags;
|
|
28
35
|
export declare function runCreate(flags: CreateFlags, context: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-flow.d.ts","sourceRoot":"","sources":["../../src/commands/create-flow.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"create-flow.d.ts","sourceRoot":"","sources":["../../src/commands/create-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA6BH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iCAAiC;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,6DAA6D;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAUF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAmCrE;AAiED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAC;CACtB,GACA,OAAO,CAAC,MAAM,CAAC,CA2IjB"}
|