@edge-base/cli 0.1.1

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 (234) hide show
  1. package/README.md +182 -0
  2. package/dist/commands/admin.d.ts +10 -0
  3. package/dist/commands/admin.d.ts.map +1 -0
  4. package/dist/commands/admin.js +307 -0
  5. package/dist/commands/admin.js.map +1 -0
  6. package/dist/commands/backup.d.ts +148 -0
  7. package/dist/commands/backup.d.ts.map +1 -0
  8. package/dist/commands/backup.js +1247 -0
  9. package/dist/commands/backup.js.map +1 -0
  10. package/dist/commands/completion.d.ts +3 -0
  11. package/dist/commands/completion.d.ts.map +1 -0
  12. package/dist/commands/completion.js +168 -0
  13. package/dist/commands/completion.js.map +1 -0
  14. package/dist/commands/create-plugin.d.ts +3 -0
  15. package/dist/commands/create-plugin.d.ts.map +1 -0
  16. package/dist/commands/create-plugin.js +208 -0
  17. package/dist/commands/create-plugin.js.map +1 -0
  18. package/dist/commands/deploy.d.ts +146 -0
  19. package/dist/commands/deploy.d.ts.map +1 -0
  20. package/dist/commands/deploy.js +1823 -0
  21. package/dist/commands/deploy.js.map +1 -0
  22. package/dist/commands/describe.d.ts +45 -0
  23. package/dist/commands/describe.d.ts.map +1 -0
  24. package/dist/commands/describe.js +114 -0
  25. package/dist/commands/describe.js.map +1 -0
  26. package/dist/commands/destroy.d.ts +13 -0
  27. package/dist/commands/destroy.d.ts.map +1 -0
  28. package/dist/commands/destroy.js +642 -0
  29. package/dist/commands/destroy.js.map +1 -0
  30. package/dist/commands/dev.d.ts +80 -0
  31. package/dist/commands/dev.d.ts.map +1 -0
  32. package/dist/commands/dev.js +1131 -0
  33. package/dist/commands/dev.js.map +1 -0
  34. package/dist/commands/docker.d.ts +22 -0
  35. package/dist/commands/docker.d.ts.map +1 -0
  36. package/dist/commands/docker.js +373 -0
  37. package/dist/commands/docker.js.map +1 -0
  38. package/dist/commands/export.d.ts +15 -0
  39. package/dist/commands/export.d.ts.map +1 -0
  40. package/dist/commands/export.js +142 -0
  41. package/dist/commands/export.js.map +1 -0
  42. package/dist/commands/init.d.ts +7 -0
  43. package/dist/commands/init.d.ts.map +1 -0
  44. package/dist/commands/init.js +506 -0
  45. package/dist/commands/init.js.map +1 -0
  46. package/dist/commands/keys.d.ts +23 -0
  47. package/dist/commands/keys.d.ts.map +1 -0
  48. package/dist/commands/keys.js +347 -0
  49. package/dist/commands/keys.js.map +1 -0
  50. package/dist/commands/logs.d.ts +17 -0
  51. package/dist/commands/logs.d.ts.map +1 -0
  52. package/dist/commands/logs.js +104 -0
  53. package/dist/commands/logs.js.map +1 -0
  54. package/dist/commands/migrate.d.ts +29 -0
  55. package/dist/commands/migrate.d.ts.map +1 -0
  56. package/dist/commands/migrate.js +302 -0
  57. package/dist/commands/migrate.js.map +1 -0
  58. package/dist/commands/migration.d.ts +18 -0
  59. package/dist/commands/migration.d.ts.map +1 -0
  60. package/dist/commands/migration.js +114 -0
  61. package/dist/commands/migration.js.map +1 -0
  62. package/dist/commands/neon.d.ts +66 -0
  63. package/dist/commands/neon.d.ts.map +1 -0
  64. package/dist/commands/neon.js +600 -0
  65. package/dist/commands/neon.js.map +1 -0
  66. package/dist/commands/plugins.d.ts +9 -0
  67. package/dist/commands/plugins.d.ts.map +1 -0
  68. package/dist/commands/plugins.js +295 -0
  69. package/dist/commands/plugins.js.map +1 -0
  70. package/dist/commands/realtime.d.ts +3 -0
  71. package/dist/commands/realtime.d.ts.map +1 -0
  72. package/dist/commands/realtime.js +71 -0
  73. package/dist/commands/realtime.js.map +1 -0
  74. package/dist/commands/secret.d.ts +7 -0
  75. package/dist/commands/secret.d.ts.map +1 -0
  76. package/dist/commands/secret.js +180 -0
  77. package/dist/commands/secret.js.map +1 -0
  78. package/dist/commands/seed.d.ts +21 -0
  79. package/dist/commands/seed.d.ts.map +1 -0
  80. package/dist/commands/seed.js +325 -0
  81. package/dist/commands/seed.js.map +1 -0
  82. package/dist/commands/telemetry.d.ts +12 -0
  83. package/dist/commands/telemetry.d.ts.map +1 -0
  84. package/dist/commands/telemetry.js +57 -0
  85. package/dist/commands/telemetry.js.map +1 -0
  86. package/dist/commands/typegen.d.ts +26 -0
  87. package/dist/commands/typegen.d.ts.map +1 -0
  88. package/dist/commands/typegen.js +212 -0
  89. package/dist/commands/typegen.js.map +1 -0
  90. package/dist/commands/upgrade.d.ts +29 -0
  91. package/dist/commands/upgrade.d.ts.map +1 -0
  92. package/dist/commands/upgrade.js +265 -0
  93. package/dist/commands/upgrade.js.map +1 -0
  94. package/dist/commands/webhook-test.d.ts +3 -0
  95. package/dist/commands/webhook-test.d.ts.map +1 -0
  96. package/dist/commands/webhook-test.js +133 -0
  97. package/dist/commands/webhook-test.js.map +1 -0
  98. package/dist/index.d.ts +3 -0
  99. package/dist/index.d.ts.map +1 -0
  100. package/dist/index.js +183 -0
  101. package/dist/index.js.map +1 -0
  102. package/dist/lib/agent-contract.d.ts +36 -0
  103. package/dist/lib/agent-contract.d.ts.map +1 -0
  104. package/dist/lib/agent-contract.js +78 -0
  105. package/dist/lib/agent-contract.js.map +1 -0
  106. package/dist/lib/cf-auth.d.ts +76 -0
  107. package/dist/lib/cf-auth.d.ts.map +1 -0
  108. package/dist/lib/cf-auth.js +321 -0
  109. package/dist/lib/cf-auth.js.map +1 -0
  110. package/dist/lib/cli-context.d.ts +23 -0
  111. package/dist/lib/cli-context.d.ts.map +1 -0
  112. package/dist/lib/cli-context.js +40 -0
  113. package/dist/lib/cli-context.js.map +1 -0
  114. package/dist/lib/cloudflare-deploy-manifest.d.ts +26 -0
  115. package/dist/lib/cloudflare-deploy-manifest.d.ts.map +1 -0
  116. package/dist/lib/cloudflare-deploy-manifest.js +107 -0
  117. package/dist/lib/cloudflare-deploy-manifest.js.map +1 -0
  118. package/dist/lib/cloudflare-wrangler-resources.d.ts +32 -0
  119. package/dist/lib/cloudflare-wrangler-resources.d.ts.map +1 -0
  120. package/dist/lib/cloudflare-wrangler-resources.js +59 -0
  121. package/dist/lib/cloudflare-wrangler-resources.js.map +1 -0
  122. package/dist/lib/config-editor.d.ts +139 -0
  123. package/dist/lib/config-editor.d.ts.map +1 -0
  124. package/dist/lib/config-editor.js +1188 -0
  125. package/dist/lib/config-editor.js.map +1 -0
  126. package/dist/lib/deploy-shared.d.ts +55 -0
  127. package/dist/lib/deploy-shared.d.ts.map +1 -0
  128. package/dist/lib/deploy-shared.js +183 -0
  129. package/dist/lib/deploy-shared.js.map +1 -0
  130. package/dist/lib/dev-sidecar.d.ts +31 -0
  131. package/dist/lib/dev-sidecar.d.ts.map +1 -0
  132. package/dist/lib/dev-sidecar.js +1058 -0
  133. package/dist/lib/dev-sidecar.js.map +1 -0
  134. package/dist/lib/fetch-with-timeout.d.ts +14 -0
  135. package/dist/lib/fetch-with-timeout.d.ts.map +1 -0
  136. package/dist/lib/fetch-with-timeout.js +29 -0
  137. package/dist/lib/fetch-with-timeout.js.map +1 -0
  138. package/dist/lib/function-registry.d.ts +56 -0
  139. package/dist/lib/function-registry.d.ts.map +1 -0
  140. package/dist/lib/function-registry.js +210 -0
  141. package/dist/lib/function-registry.js.map +1 -0
  142. package/dist/lib/load-config.d.ts +24 -0
  143. package/dist/lib/load-config.d.ts.map +1 -0
  144. package/dist/lib/load-config.js +263 -0
  145. package/dist/lib/load-config.js.map +1 -0
  146. package/dist/lib/local-secrets.d.ts +2 -0
  147. package/dist/lib/local-secrets.d.ts.map +1 -0
  148. package/dist/lib/local-secrets.js +60 -0
  149. package/dist/lib/local-secrets.js.map +1 -0
  150. package/dist/lib/managed-resource-names.d.ts +4 -0
  151. package/dist/lib/managed-resource-names.d.ts.map +1 -0
  152. package/dist/lib/managed-resource-names.js +19 -0
  153. package/dist/lib/managed-resource-names.js.map +1 -0
  154. package/dist/lib/migrator.d.ts +57 -0
  155. package/dist/lib/migrator.d.ts.map +1 -0
  156. package/dist/lib/migrator.js +321 -0
  157. package/dist/lib/migrator.js.map +1 -0
  158. package/dist/lib/neon.d.ts +41 -0
  159. package/dist/lib/neon.d.ts.map +1 -0
  160. package/dist/lib/neon.js +325 -0
  161. package/dist/lib/neon.js.map +1 -0
  162. package/dist/lib/node-tools.d.ts +10 -0
  163. package/dist/lib/node-tools.d.ts.map +1 -0
  164. package/dist/lib/node-tools.js +32 -0
  165. package/dist/lib/node-tools.js.map +1 -0
  166. package/dist/lib/npm.d.ts +8 -0
  167. package/dist/lib/npm.d.ts.map +1 -0
  168. package/dist/lib/npm.js +10 -0
  169. package/dist/lib/npm.js.map +1 -0
  170. package/dist/lib/npx.d.ts +9 -0
  171. package/dist/lib/npx.d.ts.map +1 -0
  172. package/dist/lib/npx.js +11 -0
  173. package/dist/lib/npx.js.map +1 -0
  174. package/dist/lib/project-runtime.d.ts +38 -0
  175. package/dist/lib/project-runtime.d.ts.map +1 -0
  176. package/dist/lib/project-runtime.js +122 -0
  177. package/dist/lib/project-runtime.js.map +1 -0
  178. package/dist/lib/prompts.d.ts +28 -0
  179. package/dist/lib/prompts.d.ts.map +1 -0
  180. package/dist/lib/prompts.js +85 -0
  181. package/dist/lib/prompts.js.map +1 -0
  182. package/dist/lib/rate-limit-bindings.d.ts +11 -0
  183. package/dist/lib/rate-limit-bindings.d.ts.map +1 -0
  184. package/dist/lib/rate-limit-bindings.js +52 -0
  185. package/dist/lib/rate-limit-bindings.js.map +1 -0
  186. package/dist/lib/realtime-provision.d.ts +22 -0
  187. package/dist/lib/realtime-provision.d.ts.map +1 -0
  188. package/dist/lib/realtime-provision.js +246 -0
  189. package/dist/lib/realtime-provision.js.map +1 -0
  190. package/dist/lib/resolve-options.d.ts +42 -0
  191. package/dist/lib/resolve-options.d.ts.map +1 -0
  192. package/dist/lib/resolve-options.js +98 -0
  193. package/dist/lib/resolve-options.js.map +1 -0
  194. package/dist/lib/runtime-scaffold.d.ts +17 -0
  195. package/dist/lib/runtime-scaffold.d.ts.map +1 -0
  196. package/dist/lib/runtime-scaffold.js +366 -0
  197. package/dist/lib/runtime-scaffold.js.map +1 -0
  198. package/dist/lib/schema-check.d.ts +79 -0
  199. package/dist/lib/schema-check.d.ts.map +1 -0
  200. package/dist/lib/schema-check.js +347 -0
  201. package/dist/lib/schema-check.js.map +1 -0
  202. package/dist/lib/spinner.d.ts +20 -0
  203. package/dist/lib/spinner.d.ts.map +1 -0
  204. package/dist/lib/spinner.js +42 -0
  205. package/dist/lib/spinner.js.map +1 -0
  206. package/dist/lib/telemetry.d.ts +37 -0
  207. package/dist/lib/telemetry.d.ts.map +1 -0
  208. package/dist/lib/telemetry.js +98 -0
  209. package/dist/lib/telemetry.js.map +1 -0
  210. package/dist/lib/turnstile-provision.d.ts +27 -0
  211. package/dist/lib/turnstile-provision.d.ts.map +1 -0
  212. package/dist/lib/turnstile-provision.js +144 -0
  213. package/dist/lib/turnstile-provision.js.map +1 -0
  214. package/dist/lib/update-check.d.ts +13 -0
  215. package/dist/lib/update-check.d.ts.map +1 -0
  216. package/dist/lib/update-check.js +110 -0
  217. package/dist/lib/update-check.js.map +1 -0
  218. package/dist/lib/wrangler-secrets.d.ts +3 -0
  219. package/dist/lib/wrangler-secrets.d.ts.map +1 -0
  220. package/dist/lib/wrangler-secrets.js +32 -0
  221. package/dist/lib/wrangler-secrets.js.map +1 -0
  222. package/dist/lib/wrangler.d.ts +9 -0
  223. package/dist/lib/wrangler.d.ts.map +1 -0
  224. package/dist/lib/wrangler.js +84 -0
  225. package/dist/lib/wrangler.js.map +1 -0
  226. package/dist/templates/plugin/README.md.tmpl +91 -0
  227. package/dist/templates/plugin/client/js/package.json.tmpl +23 -0
  228. package/dist/templates/plugin/client/js/src/index.ts.tmpl +68 -0
  229. package/dist/templates/plugin/client/js/tsconfig.json.tmpl +14 -0
  230. package/dist/templates/plugin/server/package.json.tmpl +19 -0
  231. package/dist/templates/plugin/server/src/index.ts.tmpl +59 -0
  232. package/dist/templates/plugin/server/tsconfig.json.tmpl +14 -0
  233. package/llms.txt +94 -0
  234. package/package.json +60 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * {{PLUGIN_NAME}} — EdgeBase Plugin
3
+ *
4
+ * Define your plugin's tables, functions, and hooks below.
5
+ *
6
+ * Usage in edgebase.config.ts:
7
+ * ```typescript
8
+ * import { {{PLUGIN_NAME_CAMEL}}Plugin } from '{{PLUGIN_NAME}}';
9
+ * export default defineConfig({
10
+ * plugins: [ {{PLUGIN_NAME_CAMEL}}Plugin({ apiKey: process.env.MY_API_KEY! }) ],
11
+ * });
12
+ * ```
13
+ */
14
+ import { definePlugin } from '@edge-base/plugin-core';
15
+
16
+ interface {{PLUGIN_NAME_PASCAL}}Config {
17
+ apiKey: string;
18
+ }
19
+
20
+ export const {{PLUGIN_NAME_CAMEL}}Plugin = definePlugin<{{PLUGIN_NAME_PASCAL}}Config>({
21
+ name: '{{PLUGIN_NAME}}',
22
+ version: '0.1.0',
23
+ manifest: {
24
+ description: '{{PLUGIN_NAME}} functionality',
25
+ configTemplate: {
26
+ apiKey: 'CHANGE_ME',
27
+ },
28
+ },
29
+
30
+ tables: {
31
+ // Example table — rename to match your domain
32
+ // items: {
33
+ // schema: {
34
+ // name: { type: 'string', required: true },
35
+ // status: { type: 'string', default: 'active' },
36
+ // },
37
+ // access: {
38
+ // read: (auth) => auth !== null,
39
+ // insert: (auth) => auth !== null,
40
+ // },
41
+ // handlers: {
42
+ // hooks: {
43
+ // beforeInsert: async (_auth, data) => ({ ...data, source: '{{PLUGIN_NAME}}' }),
44
+ // },
45
+ // },
46
+ // },
47
+ },
48
+
49
+ functions: {
50
+ // Example function — rename to match your use case
51
+ // 'hello': {
52
+ // trigger: { type: 'http', method: 'GET', path: '/{{PLUGIN_NAME}}/hello' },
53
+ // handler: async (ctx) => {
54
+ // const key = ctx.pluginConfig.apiKey; // typed via {{PLUGIN_NAME_PASCAL}}Config
55
+ // return Response.json({ message: 'Hello from {{PLUGIN_NAME}}!' });
56
+ // },
57
+ // },
58
+ },
59
+ });
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "declaration": true,
7
+ "outDir": "dist",
8
+ "rootDir": "src",
9
+ "strict": true,
10
+ "esModuleInterop": true,
11
+ "skipLibCheck": true
12
+ },
13
+ "include": ["src"]
14
+ }
package/llms.txt ADDED
@@ -0,0 +1,94 @@
1
+ # EdgeBase CLI
2
+
3
+ Use this file as a quick-reference contract for AI coding assistants working with `@edge-base/cli`.
4
+
5
+ ## Package Boundary
6
+
7
+ Use `@edge-base/cli` to scaffold, develop, deploy, inspect, and operate EdgeBase projects.
8
+
9
+ Do not assume a public unscoped `edgebase` npm package exists. For new projects, use `npm create edge-base@latest`. Inside generated projects, use the local `edgebase` binary through `npx edgebase` or `npm run ...`.
10
+
11
+ ## Source Of Truth
12
+
13
+ - Package README: https://github.com/edge-base/edgebase/blob/main/packages/cli/README.md
14
+ - Quickstart: https://edgebase.fun/docs/getting-started/quickstart
15
+ - CLI overview: https://edgebase.fun/docs/cli
16
+ - CLI workflows: https://edgebase.fun/docs/cli/workflows
17
+ - CLI reference: https://edgebase.fun/docs/cli/reference
18
+
19
+ If examples, docs, and assumptions disagree, prefer the current CLI behavior and official docs over guessed flags.
20
+
21
+ ## Canonical Examples
22
+
23
+ ### Create a new project
24
+
25
+ ```bash
26
+ npm create edge-base@latest my-app
27
+ ```
28
+
29
+ ### Start local development in a generated project
30
+
31
+ ```bash
32
+ cd my-app
33
+ npm run dev
34
+ ```
35
+
36
+ ### Run the local CLI directly
37
+
38
+ ```bash
39
+ cd my-app
40
+ npx edgebase dev
41
+ ```
42
+
43
+ ### Deploy
44
+
45
+ ```bash
46
+ cp .env.release.example .env.release
47
+ npx edgebase deploy
48
+ ```
49
+
50
+ ### Automation-friendly mode
51
+
52
+ ```bash
53
+ edgebase --json --non-interactive describe
54
+ edgebase --json --non-interactive deploy
55
+ ```
56
+
57
+ ## Command Areas
58
+
59
+ - Project lifecycle: `init`, `dev`, `deploy`, `destroy`, `logs`, `upgrade`
60
+ - Data workflow: `migration`, `migrate`, `seed`, `backup`, `export`, `typegen`, `neon`
61
+ - Security and admin: `secret`, `keys`, `admin`
62
+ - Plugins and tooling: `plugins`, `create-plugin`, `docker`, `webhook-test`, `completion`, `describe`, `telemetry`, `realtime`
63
+
64
+ ## Common Mistakes
65
+
66
+ - use `npm create edge-base@latest <dir>` for bootstrapping, not `npm edgebase`
67
+ - inside a generated project, `npx edgebase ...` works because the CLI is installed locally
68
+ - outside a generated project, do not assume `npx edgebase ...` will work unless the CLI is globally installed
69
+ - for agents, CI, or editors, prefer `--json --non-interactive`
70
+ - if you need to inspect the live command surface, use `edgebase describe` instead of guessing flags
71
+ - remote commands often require `EDGEBASE_URL`
72
+ - Service Key protected flows require `EDGEBASE_SERVICE_KEY`
73
+ - destructive commands like `destroy` and `backup restore` should be preceded by dry runs or explicit confirmation
74
+
75
+ ## Quick Reference
76
+
77
+ ```text
78
+ edgebase dev -> run local development
79
+ edgebase deploy -> deploy project resources and worker
80
+ edgebase destroy --dry-run -> inspect cleanup plan
81
+ edgebase typegen -> generate schema types
82
+ edgebase migration create <name> -> generate migration snippet
83
+ edgebase backup create --url ... --service-key ... -> create portable backup
84
+ edgebase --json describe -> inspect command tree
85
+ edgebase --json describe --command "deploy" -> inspect one command
86
+ ```
87
+
88
+ ## Environment Variables
89
+
90
+ - `EDGEBASE_URL`
91
+ - `EDGEBASE_SERVICE_KEY`
92
+ - `CLOUDFLARE_API_TOKEN`
93
+ - `CLOUDFLARE_ACCOUNT_ID`
94
+ - `NEON_API_KEY`
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@edge-base/cli",
3
+ "version": "0.1.1",
4
+ "description": "CLI for EdgeBase — create, develop, and deploy EdgeBase projects",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/edge-base/edgebase.git",
9
+ "directory": "packages/cli"
10
+ },
11
+ "homepage": "https://edgebase.fun",
12
+ "bugs": "https://github.com/edge-base/edgebase/issues",
13
+ "keywords": [
14
+ "edgebase",
15
+ "cli",
16
+ "baas",
17
+ "backend",
18
+ "cloudflare-workers"
19
+ ],
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "type": "module",
24
+ "bin": {
25
+ "edgebase": "./dist/index.js"
26
+ },
27
+ "main": "./dist/index.js",
28
+ "files": [
29
+ "dist",
30
+ "llms.txt"
31
+ ],
32
+ "scripts": {
33
+ "build": "tsc && node ./scripts/copy-assets.mjs",
34
+ "lint": "eslint src/ --max-warnings 0",
35
+ "test": "vitest run",
36
+ "dev": "tsc --watch",
37
+ "prepack": "pnpm run build"
38
+ },
39
+ "engines": {
40
+ "node": ">=20.19.0"
41
+ },
42
+ "dependencies": {
43
+ "@edge-base/server": "workspace:*",
44
+ "@edge-base/shared": "workspace:*",
45
+ "chalk": "^5.4.0",
46
+ "commander": "^13.1.0",
47
+ "esbuild": "^0.27.3",
48
+ "jose": "^6.0.0",
49
+ "ora": "^9.3.0",
50
+ "pg": "^8.16.3",
51
+ "tsx": "^4.20.6",
52
+ "ts-morph": "^27.0.2",
53
+ "wrangler": "^4.70.0"
54
+ },
55
+ "devDependencies": {
56
+ "@types/node": "^25.2.3",
57
+ "typescript": "^5.7.0",
58
+ "vitest": "^3.0.0"
59
+ }
60
+ }