@heramb1/cli 0.1.0 → 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.
- package/README.md +116 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +3 -1
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/migrate.js +2 -2
- package/dist/commands/migrate.js.map +1 -1
- package/dist/utils/registry.d.ts.map +1 -1
- package/dist/utils/registry.js +7 -0
- package/dist/utils/registry.js.map +1 -1
- package/package.json +7 -6
package/README.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# @heramb1/cli
|
|
2
|
+
|
|
3
|
+
**Deploy full-stack apps across multiple platforms — without the dashboard tab circus.**
|
|
4
|
+
|
|
5
|
+
Heramb orchestrates frontend, backend, Redis, CORS, and WebSocket wiring in the correct order. One CLI instead of copy-pasting URLs between Railway, Vercel, Netlify, and Upstash.
|
|
6
|
+
|
|
7
|
+
**Website:** [heramb.pages.dev](https://heramb.pages.dev) · **Node.js:** 18+
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Run without installing globally
|
|
15
|
+
npx @heramb1/cli init
|
|
16
|
+
npx @heramb1/cli deploy
|
|
17
|
+
|
|
18
|
+
# Or install globally
|
|
19
|
+
npm install -g @heramb1/cli
|
|
20
|
+
heramb deploy
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Quick start
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd your-app
|
|
29
|
+
heramb init # detect stack, create heramb.config.json, store API tokens
|
|
30
|
+
heramb deploy # Redis → backend → frontend, env vars wired automatically
|
|
31
|
+
heramb status # unified status across providers
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## What Heramb does
|
|
37
|
+
|
|
38
|
+
Modern apps often span several platforms — frontend on Vercel or Netlify, backend on Railway, Redis on Upstash. Each service needs URLs from the others before it can start.
|
|
39
|
+
|
|
40
|
+
Heramb models your deployment as a **dependency graph** and runs every step in order:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
REDIS_URL ← Redis (first)
|
|
44
|
+
BACKEND_URL ← backend (needs REDIS_URL)
|
|
45
|
+
WS_URL ← derived from BACKEND_URL
|
|
46
|
+
CORS_ORIGIN ← frontend URL (patched after frontend deploy)
|
|
47
|
+
NEXT_PUBLIC_* ← aliases wired automatically
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
- **Dependency graph** — services deploy in the correct sequence
|
|
51
|
+
- **CORS handled** — temporary wildcard, then patch and redeploy backend
|
|
52
|
+
- **WebSocket smoke test** — handshake verified before deploy completes
|
|
53
|
+
- **Preview environments** — isolated deploys per branch
|
|
54
|
+
|
|
55
|
+
A clean deploy uses **zero AI tokens**.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Commands
|
|
60
|
+
|
|
61
|
+
| Command | Description |
|
|
62
|
+
|---------|-------------|
|
|
63
|
+
| `heramb init` | Scan repo, detect stack, prompt for tokens, generate `heramb.config.json` |
|
|
64
|
+
| `heramb deploy` | Full orchestrated multi-platform deploy |
|
|
65
|
+
| `heramb deploy --backend-only` | Skip frontend |
|
|
66
|
+
| `heramb deploy --frontend-only` | Skip backend and Redis |
|
|
67
|
+
| `heramb deploy --env preview --branch feat/x` | Preview environment for a branch |
|
|
68
|
+
| `heramb status` | Status across all configured providers |
|
|
69
|
+
| `heramb env push` | Sync local `.env` to remote services |
|
|
70
|
+
| `heramb logs <service>` | Tail logs from a service |
|
|
71
|
+
| `heramb ws test [url]` | WebSocket smoke test |
|
|
72
|
+
| `heramb migrate [service]` | Move a service to another provider |
|
|
73
|
+
|
|
74
|
+
Run `heramb --help` for the full list.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Supported providers
|
|
79
|
+
|
|
80
|
+
| Provider | Role |
|
|
81
|
+
|----------|------|
|
|
82
|
+
| **Railway** | Backend / API |
|
|
83
|
+
| **Vercel** | Frontend (Next.js, etc.) |
|
|
84
|
+
| **Netlify** | Frontend / static sites |
|
|
85
|
+
| **Upstash** | Redis |
|
|
86
|
+
|
|
87
|
+
API tokens are stored in `~/.heramb/keys.json` during `heramb init` — never commit this file.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Configuration
|
|
92
|
+
|
|
93
|
+
`heramb init` creates `heramb.config.json` in your project root. See the [repository](https://github.com/buildwithrenuka/heremb) for an example config.
|
|
94
|
+
|
|
95
|
+
Credentials: `~/.heramb/keys.json`
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## What Heramb is (and is not)
|
|
100
|
+
|
|
101
|
+
**Heramb is** a deployment orchestration CLI for apps split across multiple platforms. It wires env vars, deploy order, CORS, and WebSocket checks.
|
|
102
|
+
|
|
103
|
+
**Heramb is not** a hosting provider, infrastructure-as-code tool, or a replacement for platform-specific deploy CLIs. It orchestrates the gap *between* services.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Links
|
|
108
|
+
|
|
109
|
+
- [heramb.pages.dev](https://heramb.pages.dev) — product page & guide
|
|
110
|
+
- [GitHub](https://github.com/buildwithrenuka/heremb) — source & issues
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## License
|
|
115
|
+
|
|
116
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAWzF,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAWzF,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkFrF"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -54,7 +54,9 @@ export async function deployCommand(options = {}) {
|
|
|
54
54
|
svc.serviceId = id;
|
|
55
55
|
configUpdated = true;
|
|
56
56
|
}
|
|
57
|
-
else if (isProviderConfig(svc) &&
|
|
57
|
+
else if (isProviderConfig(svc) &&
|
|
58
|
+
(svc.provider === 'vercel' || svc.provider === 'netlify') &&
|
|
59
|
+
!svc.projectId) {
|
|
58
60
|
svc.projectId = id;
|
|
59
61
|
configUpdated = true;
|
|
60
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AACzF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAS5B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAgC,EAAE;IACpE,WAAW,EAAE,CAAC;IAEd,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC;IAC9C,IAAI,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAEhC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,CAAC,6DAA6D,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,cAAc,GAAkC,IAAI,CAAC;IAEzD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,MAAM;QACN,QAAQ;QACR,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS;QACT,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,uBAAuB,EAAE,SAAS,KAAK,YAAY;QACnD,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAClC,cAAc,EAAE,IAAI,EAAE,CAAC;YACvB,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1E,CAAC;QACD,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,cAAc,EAAE,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEhE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC;IAExC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC9D,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;gBACnB,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;iBAAM,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/migrate.js
CHANGED
|
@@ -3,8 +3,8 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { isProviderConfig } from '@heramb1/core';
|
|
4
4
|
import { loadHerambConfig, saveHerambConfig } from '../utils/config.js';
|
|
5
5
|
import { printBanner } from '../utils/output.js';
|
|
6
|
-
const IMPLEMENTED_PROVIDERS = ['railway', 'vercel', 'upstash'];
|
|
7
|
-
const PLANNED_PROVIDERS = ['render', '
|
|
6
|
+
const IMPLEMENTED_PROVIDERS = ['railway', 'vercel', 'upstash', 'netlify'];
|
|
7
|
+
const PLANNED_PROVIDERS = ['render', 'fly', 'heroku', 'cloudflare-pages'];
|
|
8
8
|
export async function migrateCommand(options = {}) {
|
|
9
9
|
printBanner();
|
|
10
10
|
const config = loadHerambConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,YAAY,EAAgB,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,YAAY,EAAgB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAO7F,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAwCrE"}
|
package/dist/utils/registry.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createRailwayLock } from '@heramb1/provider-railway';
|
|
2
2
|
import { createUpstashLock } from '@heramb1/provider-upstash';
|
|
3
3
|
import { createVercelLock } from '@heramb1/provider-vercel';
|
|
4
|
+
import { createNetlifyLock } from '@heramb1/provider-netlify';
|
|
4
5
|
import { getProviderToken, getProviderCredential } from './credentials.js';
|
|
5
6
|
export function createRegistry(config) {
|
|
6
7
|
const locks = new Map();
|
|
@@ -25,6 +26,12 @@ export function createRegistry(config) {
|
|
|
25
26
|
locks.set(provider, createVercelLock(token, teamId));
|
|
26
27
|
break;
|
|
27
28
|
}
|
|
29
|
+
case 'netlify': {
|
|
30
|
+
const token = getProviderToken('netlify');
|
|
31
|
+
if (token)
|
|
32
|
+
locks.set(provider, createNetlifyLock(token));
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
28
35
|
case 'upstash': {
|
|
29
36
|
const email = getProviderCredential('upstash', 'email');
|
|
30
37
|
const apiKey = getProviderCredential('upstash', 'apiKey') ?? getProviderToken('upstash');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC;YAAE,SAAS;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;QAEzB,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAE9D,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,KAAK;oBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACzD,IAAI,KAAK;oBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChE,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACzF,IAAI,KAAK,IAAI,MAAM;oBAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChF,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClD,YAAY,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;KAC7D,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC;YAAE,SAAS;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;QAEzB,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAE9D,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,KAAK;oBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACzD,IAAI,KAAK;oBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChE,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,KAAK;oBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACzF,IAAI,KAAK,IAAI,MAAM;oBAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChF,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClD,YAAY,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;KAC7D,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heramb1/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Heramb CLI — deploy orchestration across any platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -22,15 +22,16 @@
|
|
|
22
22
|
"url": "git+https://github.com/buildwithrenuka/heremb.git",
|
|
23
23
|
"directory": "packages/cli"
|
|
24
24
|
},
|
|
25
|
-
"keywords": ["cli", "deploy", "orchestration", "railway", "vercel", "heramb"],
|
|
25
|
+
"keywords": ["cli", "deploy", "orchestration", "railway", "vercel", "netlify", "upstash", "heramb"],
|
|
26
26
|
"engines": {
|
|
27
27
|
"node": ">=18"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@heramb1/core": "0.1.
|
|
31
|
-
"@heramb1/provider-railway": "0.1.
|
|
32
|
-
"@heramb1/provider-upstash": "0.1.
|
|
33
|
-
"@heramb1/provider-vercel": "0.1.
|
|
30
|
+
"@heramb1/core": "0.1.1",
|
|
31
|
+
"@heramb1/provider-railway": "0.1.1",
|
|
32
|
+
"@heramb1/provider-upstash": "0.1.1",
|
|
33
|
+
"@heramb1/provider-vercel": "0.1.1",
|
|
34
|
+
"@heramb1/provider-netlify": "0.1.1",
|
|
34
35
|
"chalk": "^5.4.1",
|
|
35
36
|
"commander": "^12.1.0",
|
|
36
37
|
"conf": "^13.0.1",
|