@lukoweb/apitogo 0.1.85 → 0.1.87

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.
Files changed (60) hide show
  1. package/dist/cli/cli.js +11660 -2924
  2. package/dist/declarations/cli/platform/apply/index.d.ts +3 -0
  3. package/dist/declarations/cli/platform/client/deploy-server.d.ts +16 -0
  4. package/dist/declarations/cli/platform/client/platform-api.d.ts +397 -0
  5. package/dist/declarations/cli/platform/config.d.ts +20 -0
  6. package/dist/declarations/cli/platform/errors.d.ts +16 -0
  7. package/dist/declarations/cli/platform/helpers/backend-packaging.d.ts +11 -0
  8. package/dist/declarations/cli/platform/helpers/deploy-artifact-hash.d.ts +14 -0
  9. package/dist/declarations/cli/platform/helpers/dev-portal-backend-job.d.ts +25 -0
  10. package/dist/declarations/cli/platform/helpers/dev-portal-backend.d.ts +11 -0
  11. package/dist/declarations/cli/platform/helpers/dev-portal-landing.d.ts +99 -0
  12. package/dist/declarations/cli/platform/helpers/dev-portal-manifest.d.ts +167 -0
  13. package/dist/declarations/cli/platform/helpers/dev-portal-plan-sync.d.ts +20 -0
  14. package/dist/declarations/cli/platform/helpers/dev-portal-secrets.d.ts +61 -0
  15. package/dist/declarations/cli/platform/helpers/dev-portal-settings-kinds.d.ts +8 -0
  16. package/dist/declarations/cli/platform/helpers/dev-portal-site-api-url.d.ts +12 -0
  17. package/dist/declarations/cli/platform/helpers/dev-portal-site-validation.d.ts +22 -0
  18. package/dist/declarations/cli/platform/helpers/dev-portal-urls.d.ts +17 -0
  19. package/dist/declarations/cli/platform/helpers/fetch-retry.d.ts +17 -0
  20. package/dist/declarations/cli/platform/helpers/free-projects-quota.d.ts +14 -0
  21. package/dist/declarations/cli/platform/helpers/gateway-plan-sync.d.ts +26 -0
  22. package/dist/declarations/cli/platform/helpers/gateway-readiness.d.ts +11 -0
  23. package/dist/declarations/cli/platform/helpers/job-status.d.ts +12 -0
  24. package/dist/declarations/cli/platform/helpers/merge-dev-portal-settings.d.ts +26 -0
  25. package/dist/declarations/cli/platform/helpers/npm-build.d.ts +34 -0
  26. package/dist/declarations/cli/platform/helpers/openapi-gateway-servers.d.ts +23 -0
  27. package/dist/declarations/cli/platform/helpers/openapi.d.ts +24 -0
  28. package/dist/declarations/cli/platform/helpers/package-files.d.ts +1 -0
  29. package/dist/declarations/cli/platform/helpers/paid-gateway-platform-compat.d.ts +22 -0
  30. package/dist/declarations/cli/platform/helpers/platform-plan-catalog.d.ts +27 -0
  31. package/dist/declarations/cli/platform/helpers/platform-plan.d.ts +17 -0
  32. package/dist/declarations/cli/platform/helpers/poll.d.ts +21 -0
  33. package/dist/declarations/cli/platform/helpers/progress.d.ts +45 -0
  34. package/dist/declarations/cli/platform/helpers/project-name.d.ts +8 -0
  35. package/dist/declarations/cli/platform/helpers/public-routes.d.ts +4 -0
  36. package/dist/declarations/cli/platform/helpers/publish-ledger.d.ts +30 -0
  37. package/dist/declarations/cli/platform/helpers/publish-preflight.d.ts +60 -0
  38. package/dist/declarations/cli/platform/helpers/status.d.ts +7 -0
  39. package/dist/declarations/cli/platform/helpers/stripe-webhook.d.ts +3 -0
  40. package/dist/declarations/cli/platform/helpers/tarball.d.ts +11 -0
  41. package/dist/declarations/cli/platform/helpers/validate-dev-portal-readiness.d.ts +48 -0
  42. package/dist/declarations/cli/platform/helpers/wait-for-gateway-actions.d.ts +9 -0
  43. package/dist/declarations/cli/platform/helpers/warm-pool.d.ts +35 -0
  44. package/dist/declarations/cli/platform/helpers/zip.d.ts +6 -0
  45. package/dist/declarations/cli/platform/tools/backend.d.ts +45 -0
  46. package/dist/declarations/cli/platform/tools/dev-portal-bootstrap-shared.d.ts +25 -0
  47. package/dist/declarations/cli/platform/tools/dev-portal-publish.d.ts +45 -0
  48. package/dist/declarations/cli/platform/tools/dev-portal-site-build.d.ts +12 -0
  49. package/dist/declarations/cli/platform/tools/dev-portal.d.ts +84 -0
  50. package/dist/declarations/cli/platform/tools/gateway.d.ts +140 -0
  51. package/dist/declarations/cli/platform/tools/infrastructure.d.ts +47 -0
  52. package/dist/declarations/cli/platform/tools/lifecycle.d.ts +40 -0
  53. package/dist/declarations/cli/platform/tools/platform-plan.d.ts +43 -0
  54. package/dist/declarations/cli/platform/tools/projects.d.ts +27 -0
  55. package/dist/declarations/cli/platform/tools/subscription.d.ts +13 -0
  56. package/docs/cli/commands.md +14 -9
  57. package/docs/cli/go-live.md +2 -2
  58. package/docs/cli/setup.md +1 -1
  59. package/docs/guides/environment-variables.md +1 -1
  60. package/package.json +14 -2
@@ -0,0 +1,40 @@
1
+ import type { PlatformApiClient } from "../client/platform-api.js";
2
+ import type { ApitogoConfig } from "../config.js";
3
+ import type { ProgressReporter } from "../helpers/progress.js";
4
+ interface BootstrapStep {
5
+ step: string;
6
+ status: string;
7
+ detail?: unknown;
8
+ }
9
+ export declare function resolveBootstrapProjectId(client: PlatformApiClient, args: {
10
+ name: string;
11
+ description?: string;
12
+ modules: string[];
13
+ }, steps: BootstrapStep[]): Promise<{
14
+ projectId: string;
15
+ resumed: boolean;
16
+ }>;
17
+ export declare function handleBootstrapProject(client: PlatformApiClient, config: ApitogoConfig, args: {
18
+ name: string;
19
+ description?: string;
20
+ modules?: string[];
21
+ activatedModules?: string[];
22
+ selectFreePlan?: boolean;
23
+ wait?: boolean;
24
+ timeoutMs?: number;
25
+ pollIntervalMs?: number;
26
+ configureGatewayBaseline?: boolean;
27
+ authMode?: "bringYourOwnOidc" | "platformManagedEntra";
28
+ oidcMetadataUrl?: string;
29
+ oidcAllowedIssuers?: string[];
30
+ oidcAudiences?: string[];
31
+ limitsJson?: string;
32
+ publicHealthActionKey?: string;
33
+ }, progress?: ProgressReporter): Promise<string>;
34
+ export declare function handleTeardownProject(client: PlatformApiClient, config: ApitogoConfig, args: {
35
+ projectId?: string;
36
+ wait?: boolean;
37
+ timeoutMs?: number;
38
+ pollIntervalMs?: number;
39
+ }, progress?: ProgressReporter): Promise<string>;
40
+ export {};
@@ -0,0 +1,43 @@
1
+ import type { PlatformApiClient } from "../client/platform-api.js";
2
+ import { type ApitogoConfig } from "../config.js";
3
+ import type { ManifestPlanInput } from "../helpers/dev-portal-manifest.js";
4
+ import type { ProgressReporter } from "../helpers/progress.js";
5
+ export type PlatformPlanChoice = "free" | "starter" | "professional";
6
+ export declare function loadPlatformPlanSelectionPayload(client: PlatformApiClient): Promise<{
7
+ note: string;
8
+ freeProjectsQuota?: import("../helpers/free-projects-quota.js").FreeProjectsQuota | undefined;
9
+ freeProjectsQuotaHint?: string | undefined;
10
+ freePlanAvailable?: boolean | undefined;
11
+ platformPlanCatalog: import("../helpers/platform-plan-catalog.js").PlatformPlanOption[];
12
+ platformPlanUserPrompt: string;
13
+ platformPlanSelectionAgentInstruction: string;
14
+ }>;
15
+ export declare function handleListPlatformPlans(client: PlatformApiClient): Promise<string>;
16
+ export declare function handleWaitForPlatformPlan(client: PlatformApiClient, config: ApitogoConfig, args: {
17
+ projectId?: string;
18
+ wait?: boolean;
19
+ timeoutMs?: number;
20
+ pollIntervalMs?: number;
21
+ }, progress?: ProgressReporter): Promise<string>;
22
+ export declare function handleEnsurePlatformPlan(client: PlatformApiClient, config: ApitogoConfig, args: {
23
+ projectId?: string;
24
+ projectName?: string;
25
+ plan: PlatformPlanChoice;
26
+ currency?: string;
27
+ wait?: boolean;
28
+ timeoutMs?: number;
29
+ pollIntervalMs?: number;
30
+ modules?: string[];
31
+ }, progress?: ProgressReporter): Promise<string>;
32
+ export declare function assertPlatformPlanReadyForPublish(client: PlatformApiClient, projectId: string): Promise<{
33
+ blocked: true;
34
+ payload: Record<string, unknown>;
35
+ } | {
36
+ blocked: false;
37
+ }>;
38
+ export declare function assertPaidGatewayPlansAllowedForPublish(client: PlatformApiClient, projectId: string, plans: ManifestPlanInput[] | undefined): Promise<{
39
+ blocked: true;
40
+ payload: Record<string, unknown>;
41
+ } | {
42
+ blocked: false;
43
+ }>;
@@ -0,0 +1,27 @@
1
+ import type { PlatformApiClient } from "../client/platform-api.js";
2
+ import { type ApitogoConfig } from "../config.js";
3
+ import type { ProgressReporter } from "../helpers/progress.js";
4
+ export declare function handleWhoami(client: PlatformApiClient): Promise<string>;
5
+ export declare function handleListProjects(client: PlatformApiClient): Promise<string>;
6
+ export declare function handleGetProject(client: PlatformApiClient, config: ApitogoConfig, args: {
7
+ projectId?: string;
8
+ includeInfrastructureStatus?: boolean;
9
+ }): Promise<string>;
10
+ export declare function handleCreateProject(client: PlatformApiClient, args: {
11
+ name: string;
12
+ description?: string;
13
+ activatedModules?: string[];
14
+ ownerTenantId?: string;
15
+ }): Promise<string>;
16
+ export declare function handleUpdateProject(client: PlatformApiClient, config: ApitogoConfig, args: {
17
+ projectId?: string;
18
+ name: string;
19
+ description?: string;
20
+ activatedModules?: string[];
21
+ }): Promise<string>;
22
+ export declare function handleDeleteProject(client: PlatformApiClient, config: ApitogoConfig, args: {
23
+ projectId?: string;
24
+ wait?: boolean;
25
+ timeoutMs?: number;
26
+ pollIntervalMs?: number;
27
+ }, progress?: ProgressReporter): Promise<string>;
@@ -0,0 +1,13 @@
1
+ import type { PlatformApiClient } from "../client/platform-api.js";
2
+ import { type ApitogoConfig } from "../config.js";
3
+ export declare function handleGetSubscription(client: PlatformApiClient, config: ApitogoConfig, args: {
4
+ projectId?: string;
5
+ }): Promise<string>;
6
+ export declare function handleSelectFreePlan(client: PlatformApiClient, config: ApitogoConfig, args: {
7
+ projectId?: string;
8
+ }): Promise<string>;
9
+ export declare function handleCreateCheckoutSession(client: PlatformApiClient, config: ApitogoConfig, args: {
10
+ projectId?: string;
11
+ planSlug: string;
12
+ currency?: string;
13
+ }): Promise<string>;
@@ -4,17 +4,20 @@ description: APItoGo CLI command catalog by category.
4
4
  sidebar_icon: wrench
5
5
  ---
6
6
 
7
- Commands are exposed by the **`apitogo`** binary (`@lukoweb/apitogo`). Platform commands delegate to
8
- `@lukoweb/apitogo-mcp` (`apitogo-apply`, `apitogo-status`, `apitogo-teardown`).
7
+ Commands are exposed by the **`apitogo`** binary (`@lukoweb/apitogo`). The CLI is the **source of
8
+ truth** for init, config, apply, status, teardown, project create, and check. MCP tools spawn these
9
+ same commands so agents and humans get identical behavior.
9
10
 
10
11
  ## Lifecycle (prefer these)
11
12
 
12
13
  | Command | Role |
13
14
  | ------- | ---- |
14
- | `init` | Scaffold portal locally (no platform calls) |
15
- | `config` / `make-config` | Write or update `apitogo.config.json` (interactive: backend, OpenAPI, pages, plans) |
15
+ | `init` | Scaffold portal (create-apitogo + OpenAPI discovery + secrets) |
16
+ | `config` / `make-config` | Write or update `apitogo.config.json` (interactive or flags) |
16
17
  | `dev` | Local preview server |
17
18
  | `build` | Production build (`--preview` to serve locally) |
19
+ | `check` | Publish readiness (secrets, manifest, site validation) |
20
+ | `project create` | Create a platform project (plan unselected) |
18
21
  | `apply` | Publish config to platform (apihub + portal) |
19
22
  | `status` | Account, project, and live readiness |
20
23
  | `teardown --yes` | Delete the linked platform project |
@@ -23,10 +26,10 @@ Commands are exposed by the **`apitogo`** binary (`@lukoweb/apitogo`). Platform
23
26
 
24
27
  | Command | Role |
25
28
  | ------- | ---- |
26
- | `init [dir]` | Create `package.json`, stubs, and initial `apitogo.config.json` |
27
- | `config` | Interactive on TTY: backend, OpenAPI, pages, plans (apply each immediately); flags for site/theme/auth |
29
+ | `init [dir]` | Named folder; `--install` (default), `--overwrite`, `--json`, `--openapi-search` |
30
+ | `config` | Interactive on TTY; flags: `--openapi`, `--page-*`, `--plan`, `--backend`, `--theme`, `--patch`, `--json` |
28
31
 
29
- `npm create @lukoweb/apitogo@latest` is an interactive alternative to `init` for new folders.
32
+ `npm create @lukoweb/apitogo@latest` remains an interactive alternative for new folders.
30
33
 
31
34
  See [Make config (CLI)](../configuration/make-config.mdx) for all `config` flags.
32
35
 
@@ -42,6 +45,8 @@ See [Make config (CLI)](../configuration/make-config.mdx) for all `config` flags
42
45
 
43
46
  | Command | Role |
44
47
  | ------- | ---- |
48
+ | `project create --name` | Create platform project only |
49
+ | `check` | Dry-run publish readiness |
45
50
  | `apply` | Full publish — project, plans, apihub, portal backend/frontend |
46
51
  | `apply --only <resource>` | Limit to `apihub`, `portal-backend`, or `portal-frontend` |
47
52
  | `apply --force` | Redeploy selected resources even when healthy |
@@ -50,7 +55,7 @@ See [Make config (CLI)](../configuration/make-config.mdx) for all `config` flags
50
55
  | `status` | Whoami + project + live verification |
51
56
  | `teardown --yes` | Delete platform project (confirmation required) |
52
57
 
53
- Env: `APITOGO_API_KEY_ID`, `APITOGO_API_SECRET`. Optional: `APITOGO_API_URL`, `APITOGO_MCP_PATH`.
58
+ Env: `APITOGO_API_KEY_ID`, `APITOGO_API_SECRET`. Optional: `APITOGO_API_URL`.
54
59
 
55
60
  ## Hand-edit exceptions
56
61
 
@@ -77,4 +82,4 @@ These print a redirect message — use the replacement:
77
82
  - [Overview](./overview.md)
78
83
  - [Shape](./shape.md)
79
84
  - [Go live](./go-live.md)
80
- - [MCP tools](../mcp/tools.md) — agent tool catalog
85
+ - [MCP tools](../mcp/tools.md) — agent tool catalog (spawn the CLI)
@@ -6,8 +6,8 @@ sidebar_icon: rocket
6
6
  ---
7
7
 
8
8
  **Go live** publishes your shaped portal to APItoGo hosting, optionally deploys the backend, upserts
9
- gateway plans, and verifies the live site. `apitogo apply` uses the same engine as MCP
10
- `publish_dev_portal`.
9
+ gateway plans, and verifies the live site. `apitogo apply` is the source of truth; MCP
10
+ `publish_dev_portal` spawns the same CLI.
11
11
 
12
12
  ## Before you publish
13
13
 
package/docs/cli/setup.md CHANGED
@@ -85,7 +85,7 @@ Optional:
85
85
  | Variable | Purpose |
86
86
  | ------------------ | ---------------------------------------------------- |
87
87
  | `APITOGO_API_URL` | Override platform API base URL |
88
- | `APITOGO_MCP_PATH` | Local `@lukoweb/apitogo-mcp` checkout for apply/status/teardown |
88
+ | `APITOGO_CLI_PATH` | Local `@lukoweb/apitogo` / doc-tool checkout for MCP spawn |
89
89
 
90
90
  Never commit secrets. Site auth secrets (OIDC, Stripe) belong in the portal **`.env`** as
91
91
  `APITOGO_CONFIG_AUTHENTICATION__*` — see [Go live](./go-live.md).
@@ -87,6 +87,6 @@ interface ImportMeta {
87
87
  | -------- | ------- |
88
88
  | `APITOGO_API_KEY_ID` / `APITOGO_API_SECRET` | Required for MCP and CLI apply/status/teardown |
89
89
  | `APITOGO_DOC_TOOL_PATH` | Optional local doc-tool for scaffold |
90
- | `APITOGO_MCP_PATH` | Optional local MCP checkout for CLI apply/status/teardown |
90
+ | `APITOGO_CLI_PATH` | Optional local `@lukoweb/apitogo` / doc-tool checkout for MCP spawn |
91
91
 
92
92
  See [MCP overview](../mcp/overview.md) and [CLI overview](../cli/overview.md).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lukoweb/apitogo",
3
- "version": "0.1.85",
3
+ "version": "0.1.87",
4
4
  "type": "module",
5
5
  "sideEffects": [
6
6
  "**/*.css",
@@ -161,6 +161,10 @@
161
161
  "./config-loader": {
162
162
  "types": "./dist/declarations/config/apitogo-config-loader.d.ts",
163
163
  "default": "./src/config/apitogo-config-loader.ts"
164
+ },
165
+ "./apply": {
166
+ "types": "./dist/declarations/cli/platform/apply/index.d.ts",
167
+ "default": "./src/cli/platform/apply/index.ts"
164
168
  }
165
169
  },
166
170
  "scripts": {
@@ -175,6 +179,7 @@
175
179
  },
176
180
  "dependencies": {
177
181
  "@apidevtools/json-schema-ref-parser": "15.3.1",
182
+ "@apidevtools/swagger-parser": "^12.1.0",
178
183
  "@envelop/core": "5.5.1",
179
184
  "@graphql-typed-document-node/core": "3.2.0",
180
185
  "@hono/node-server": "1.19.11",
@@ -223,6 +228,7 @@
223
228
  "@zudoku/httpsnippet": "10.0.9",
224
229
  "@zudoku/react-helmet-async": "2.0.5",
225
230
  "@zuplo/mcp": "0.0.32",
231
+ "archiver": "^8.0.0",
226
232
  "bs58": "6.0.0",
227
233
  "class-variance-authority": "0.7.1",
228
234
  "clsx": "2.1.1",
@@ -244,6 +250,7 @@
244
250
  "hast-util-to-string": "3.0.1",
245
251
  "hono": "4.12.5",
246
252
  "http-terminator": "3.2.0",
253
+ "ignore": "^7.0.5",
247
254
  "javascript-stringify": "2.1.0",
248
255
  "json-schema-to-typescript-lite": "15.0.0",
249
256
  "loglevel": "1.9.2",
@@ -280,9 +287,9 @@
280
287
  "shiki": "3.23.0",
281
288
  "sitemap": "9.0.1",
282
289
  "strip-ansi": "7.2.0",
283
- "tar": "7.5.10",
284
290
  "tailwind-merge": "3.5.0",
285
291
  "tailwindcss": "4.2.1",
292
+ "tar": "7.5.10",
286
293
  "tw-animate-css": "1.4.0",
287
294
  "unified": "11.0.5",
288
295
  "unist-util-visit": "5.1.0",
@@ -302,6 +309,7 @@
302
309
  "@testing-library/jest-dom": "6.9.1",
303
310
  "@testing-library/react": "16.3.2",
304
311
  "@testing-library/user-event": "14.6.1",
312
+ "@types/archiver": "^8.0.0",
305
313
  "@types/estree": "1.0.8",
306
314
  "@types/glob-parent": "5.1.3",
307
315
  "@types/hast": "3.0.4",
@@ -483,6 +491,10 @@
483
491
  "./config-loader": {
484
492
  "types": "./dist/declarations/config/apitogo-config-loader.d.ts",
485
493
  "default": "./src/config/apitogo-config-loader.ts"
494
+ },
495
+ "./apply": {
496
+ "types": "./dist/declarations/cli/platform/apply/index.d.ts",
497
+ "default": "./src/cli/platform/apply/index.ts"
486
498
  }
487
499
  },
488
500
  "access": "public"