curatedreels-deploy 1.0.1 → 1.0.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 CHANGED
@@ -1,176 +1,289 @@
1
- # @curatedreels/deploy
1
+ # CuratedReels Deploy CLI
2
2
 
3
- White-label deployment CLI for CuratedReels - Deploy to customer's infrastructure without exposing source code.
3
+ Deploy your white-label video curation platform to your own infrastructure in minutes.
4
4
 
5
- ## Overview
6
-
7
- This CLI tool allows customers to deploy CuratedReels to their own infrastructure (Vercel, Deno Deploy, MongoDB) using pre-compiled bundles, without seeing or modifying the source code.
8
-
9
- ## Installation
5
+ ## 🚀 Quick Start
10
6
 
11
7
  ```bash
12
- npm install -g @curatedreels/deploy
8
+ # Set your GitHub token (required for private repo access)
9
+ export GITHUB_TOKEN=ghp_your_token_here
10
+
11
+ # Run the deployment
12
+ npx curatedreels-deploy
13
13
  ```
14
14
 
15
- ## Usage
15
+ That's it! The CLI will guide you through the entire deployment process.
16
16
 
17
- ```bash
18
- curatedreels-deploy
19
- ```
17
+ ## 📋 Prerequisites
20
18
 
21
- The CLI will guide you through:
22
- 1. License verification
23
- 2. Infrastructure credentials collection
24
- 3. Bundle download
25
- 4. Automated deployment
19
+ Before you start, make sure you have:
26
20
 
27
- ## Required Accounts
21
+ 1. **CuratedReels License Key** - You received this when you purchased CuratedReels
22
+ 2. **GitHub Token** - Required to download deployment bundles
23
+ - Get token: https://github.com/settings/tokens
24
+ - Required scope: `repo` (Full control of private repositories)
25
+ - Set as environment variable: `export GITHUB_TOKEN=ghp_...`
26
+ 3. **Vercel Account** (free tier works)
27
+ - Sign up: https://vercel.com
28
+ - Get API token: https://vercel.com/account/tokens
29
+ 4. **Deno Deploy Account** (free tier works)
30
+ - Sign up: https://deno.com/deploy
31
+ - Get access token: https://dash.deno.com/account/access-tokens
32
+ 5. **MongoDB Atlas** (free tier works)
33
+ - Sign up: https://mongodb.com/atlas
34
+ - Create a cluster and get connection URI
35
+ 6. **Telegram Bot Token** (See detailed steps below)
36
+ - Chat with [@BotFather](https://t.me/botfather)
37
+ - Create a new bot and get the token
28
38
 
29
- Customers need:
30
- - [Vercel](https://vercel.com) account + API token
31
- - [Deno Deploy](https://deno.com/deploy) account + access token
32
- - ✅ [MongoDB Atlas](https://mongodb.com/atlas) cluster + connection URI
33
- - ✅ [Telegram Bot](https://t.me/botfather) token
34
- - ✅ Valid CuratedReels license key
39
+ ### Optional (Recommended)
40
+ - **Cloudinary** - For video uploads (https://cloudinary.com)
41
+ - **YouTube API Key** - For video metadata (https://developers.google.com/youtube/v3)
35
42
 
36
- ## Optional Services
43
+ ## 🎯 What You'll Get
37
44
 
38
- - [Cloudinary](https://cloudinary.com) - For video uploads
39
- - [YouTube Data API](https://developers.google.com/youtube/v3) - For metadata extraction
45
+ After deployment, you'll have:
40
46
 
41
- ## What Gets Deployed
47
+ - **Public Website** - Your branded video platform at `your-project.vercel.app`
48
+ - **Admin Panel** - CMS to manage content at `your-project-cms.vercel.app`
49
+ - **Telegram Bot** - Interactive bot for video curation at `t.me/your_bot`
50
+ - **Database** - All your data in your own MongoDB
42
51
 
43
- ### Vercel (2 projects)
44
- 1. **Frontend** - Public-facing web app
45
- 2. **CMS/Admin** - PayloadCMS admin panel + API
52
+ ## 📖 Step-by-Step Guide
46
53
 
47
- ### Deno Deploy (1 project)
48
- 3. **Bot** - Telegram bot worker
54
+ ### STEP 1: Create Bot (BEFORE Deployment)
49
55
 
50
- ### MongoDB Atlas
51
- - Creates database collections
52
- - Sets up indexes
53
- - Seeds initial data
56
+ Before running the deploy command, create your Telegram bot:
54
57
 
55
- ## Architecture
58
+ 1. **Open Telegram**
59
+ 2. **Search for @BotFather**
60
+ 3. **Send:** `/newbot`
61
+ 4. **Choose a name:** "My CuratedReels Bot"
62
+ 5. **Choose username:** `my_curated_bot` (must end with 'bot')
63
+ 6. **BotFather gives you a TOKEN:** `7951673577:AAEalQZ...`
64
+ 7. **Save this token!** You'll need it in Step 3
56
65
 
57
- ```
58
- Customer's Infrastructure:
59
- ├── Vercel
60
- │ ├── Frontend (Next.js)
61
- │ └── CMS (Next.js + PayloadCMS)
62
- ├── Deno Deploy
63
- │ └── Bot (Telegram worker)
64
- └── MongoDB Atlas
65
- └── Database
66
- ```
66
+ **Configure Bot Privacy (IMPORTANT):**
67
67
 
68
- ## Deployment Process
68
+ 8. **Send to @BotFather:** `/setprivacy`
69
+ 9. **Select your bot:** Click on @my_curated_bot
70
+ 10. **Choose:** `Disable`
71
+ 11. **Confirmation:** BotFather says "Success! Privacy mode is disabled"
69
72
 
70
- 1. **License Verification** - Validates license key
71
- 2. **Credential Collection** - Interactive prompts for API tokens
72
- 3. **Bundle Download** - Downloads pre-compiled bundles (authenticated)
73
- 4. **Checksum Verification** - Ensures bundle integrity
74
- 5. **Deployment** - Deploys to all services
75
- 6. **Configuration** - Sets up environment variables
76
- 7. **Health Check** - Verifies all services are running
73
+ ⚠️ **Why?** By default, bots only see messages that start with `/` or mention them. Disabling privacy mode lets your bot see ALL messages in the group, which is required to detect video links.
77
74
 
78
- ## Security
75
+ ### STEP 2: Run the Deploy Command
79
76
 
80
- - ✅ Pre-compiled bundles only (no source code)
81
- - ✅ License-gated downloads
82
- - ✅ Checksum verification
83
- - ✅ Encrypted credentials
84
- - ✅ API token validation
77
+ ```bash
78
+ npx curatedreels-deploy
79
+ ```
85
80
 
86
- ## Bundle Contents
81
+ ### STEP 3: Enter Your License Key
87
82
 
88
- ### frontend.zip
89
- - Next.js production build (`.next/`)
90
- - Static assets (`public/`)
91
- - Package.json (dependencies only)
83
+ Paste the license key you received from CuratedReels:
84
+ ```
85
+ ? Enter your CuratedReels license key: ck_live_abc123...
86
+ ```
92
87
 
93
- ### cms.zip
94
- - Next.js production build
95
- - PayloadCMS compiled code
96
- - Package.json (dependencies only)
88
+ ### STEP 4: Choose Your Project Name
97
89
 
98
- ### bot.js
99
- - Single bundled Deno executable
100
- - All dependencies included
101
- - Obfuscated code
90
+ ```
91
+ ? Enter project name: my-video-platform
92
+ ```
102
93
 
103
- ### schema.json
104
- - MongoDB collection schemas
105
- - Index definitions
106
- - Seed data structure
94
+ This will be used for:
95
+ - Vercel project names (`my-video-platform`, `my-video-platform-cms`)
96
+ - Deno Deploy project name (`my-video-platform-bot`)
107
97
 
108
- ## Environment Variables
98
+ ### STEP 5: Enter API Tokens
109
99
 
110
- Auto-configured during deployment:
100
+ The CLI will ask for your tokens one by one:
111
101
 
112
- **Frontend:**
113
- ```env
114
- NEXT_PUBLIC_PAYLOAD_API_URL=<cms-url>
102
+ **Vercel:**
103
+ ```
104
+ ? Vercel API token: [paste your token]
115
105
  ```
116
106
 
117
- **CMS:**
118
- ```env
119
- MONGODB_URI=<customer-mongo-uri>
120
- NEXT_PUBLIC_FRONTEND_URL=<frontend-url>
121
- TELEGRAM_BOT_TOKEN=<customer-bot-token>
122
- CLOUDINARY_*=<customer-cloudinary-creds>
107
+ **Deno Deploy:**
108
+ ```
109
+ ? Deno Deploy access token: [paste your token]
123
110
  ```
124
111
 
125
- **Bot:**
126
- ```env
127
- TELEGRAM_BOT_TOKEN=<customer-bot-token>
128
- MONGODB_URI=<customer-mongo-uri>
129
- PAYLOAD_API_URL=<cms-url>
130
- CLOUDINARY_*=<customer-cloudinary-creds>
131
- YOUTUBE_API_KEY=<customer-youtube-key>
112
+ **MongoDB:**
113
+ ```
114
+ ? MongoDB connection URI: mongodb+srv://user:pass@cluster.mongodb.net/
132
115
  ```
133
116
 
134
- ## Troubleshooting
117
+ **Telegram:**
118
+ ```
119
+ ? Telegram bot token: [paste the token from STEP 1]
120
+ ```
135
121
 
136
- ### License Issues
122
+ **Admin Account:**
137
123
  ```
138
- Error: Invalid license key
124
+ ? Admin Full Name: John Doe
125
+ ? Admin Email: john@mycompany.com
126
+ ? Admin Password: ******** (min 8 characters)
139
127
  ```
140
- **Solution:** Ensure you have an active CuratedReels license. Purchase at https://curatedreels.com/pricing
141
128
 
142
- ### Vercel Deployment Fails
129
+ **Cloudinary (optional):**
143
130
  ```
144
- Error: Vercel API authentication failed
131
+ ? Cloudinary cloud name: [your-cloud-name]
132
+ ? Cloudinary API key: [your-api-key]
133
+ ? Cloudinary API secret: [your-api-secret]
145
134
  ```
146
- **Solution:** Verify your Vercel API token. Get it from https://vercel.com/account/tokens
147
135
 
148
- ### MongoDB Connection Fails
136
+ ### STEP 6: Wait for Deployment
137
+
138
+ The CLI will:
139
+ 1. ✅ Verify your license
140
+ 2. ✅ Download deployment bundles
141
+ 3. ✅ Deploy frontend to Vercel
142
+ 4. ✅ Deploy CMS/admin to Vercel
143
+ 5. ✅ Deploy bot to Deno Deploy
144
+ 6. ✅ Configure environment variables
145
+ 7. ✅ Run health checks
146
+
147
+ This takes ~3-5 minutes.
148
+
149
+ ### STEP 7: Access Your Platform
150
+
151
+ When complete, you'll see:
149
152
  ```
150
- Error: MongoDB authentication failed
153
+ Deployment successful!
154
+
155
+ 🌐 Frontend: https://my-video-platform.vercel.app
156
+ ⚙️ CMS Admin: https://my-video-platform-cms.vercel.app
157
+ 🤖 Telegram Bot: https://t.me/my_video_bot
151
158
  ```
152
- **Solution:**
153
- 1. Check your connection string format
154
- 2. Verify IP whitelist in MongoDB Atlas
155
- 3. Confirm database user has read/write permissions
156
159
 
157
- ### Bundle Download Fails
160
+ ### STEP 8: Add Bot to Group
161
+
162
+ After deployment completes, add your bot to a Telegram group:
163
+
164
+ 1. **Create a Telegram group** (or use an existing one)
165
+ 2. **In group settings** → Add Members
166
+ 3. **Search for @my_curated_bot** (the username from STEP 1)
167
+ 4. **Add it to the group**
168
+ 5. **Make it admin** (optional, but recommended for full functionality)
169
+
170
+ ✅ **Test it:** Post a YouTube/Instagram/Facebook video link in the group. The bot should respond with age range options!
171
+
172
+ ⚠️ **Not working?** Make sure you disabled privacy mode in STEP 1. If you skipped it, go back to @BotFather, send `/setprivacy`, select your bot, and choose `Disable`. Then **remove and re-add** the bot to your group.
173
+
174
+ ## 🎨 Next Steps
175
+
176
+ 1. **Open your admin panel** - Visit the CMS URL and login with the credentials you provided during deployment
177
+ 2. **Configure your bot** - Send `/start` to your Telegram bot
178
+ 3. **Customize branding** - Update colors, logo in the admin panel
179
+ 4. **Add videos** - Start curating content!
180
+
181
+ ## ❓ FAQ
182
+
183
+ ### Do I need to know how to code?
184
+ No! The CLI handles everything. Just provide your API tokens and project name.
185
+
186
+ ### Will I own the infrastructure?
187
+ Yes! Everything is deployed to **your** accounts (Vercel, Deno, MongoDB). You have full control.
188
+
189
+ ### Can I use the free tiers?
190
+ Yes! All platforms offer free tiers that work with CuratedReels:
191
+ - Vercel: Free tier (100GB bandwidth)
192
+ - Deno Deploy: Free tier (100k requests/day)
193
+ - MongoDB Atlas: Free tier (512MB storage)
194
+
195
+ ### How do I update my deployment?
196
+ Run `npx curatedreels-deploy` again with the same project name. It will update your existing deployment.
197
+
198
+ ### Can I customize the platform?
199
+ You can customize branding, colors, and content through the admin panel. Source code customization is not available.
200
+
201
+ ### What happens if I exceed deployment limits?
202
+ Your license tier determines how many deployments you can create:
203
+ - **Starter**: 1 deployment
204
+ - **Pro**: 5 deployments
205
+ - **Enterprise**: 999 deployments
206
+
207
+ Contact support to upgrade your license.
208
+
209
+ ## 🏗️ Architecture
210
+
211
+ Your deployed platform includes:
212
+
158
213
  ```
159
- Error: Failed to download bundles
214
+ Your Infrastructure:
215
+ ├── Vercel (Frontend)
216
+ │ └── User-facing website
217
+ ├── Vercel (CMS)
218
+ │ └── Admin panel + API
219
+ ├── Deno Deploy (Bot)
220
+ │ └── Telegram bot worker
221
+ └── MongoDB Atlas
222
+ └── Your database
160
223
  ```
161
- **Solution:**
162
- 1. Check your internet connection
163
- 2. Verify license key is valid and not expired
164
- 3. Ensure you haven't exceeded deployment limits
165
224
 
166
- ## Support
225
+ All components connect automatically during deployment.
226
+
227
+ ## 🔒 Security & Privacy
228
+
229
+ - Your data stays in **your** infrastructure
230
+ - CuratedReels never has access to your MongoDB or user data
231
+ - Pre-compiled, secure bundles
232
+ - Automatic SSL certificates on all deployments
233
+ - Environment variables encrypted in transit
234
+
235
+ ## 🐛 Troubleshooting
236
+
237
+ ### "Invalid license key"
238
+ - Double-check you copied the entire key (starts with `ck_live_`)
239
+ - Ensure your license hasn't expired
240
+ - Contact support if you need a new key
241
+
242
+ ### "Vercel API authentication failed"
243
+ - Get a new token from https://vercel.com/account/tokens
244
+ - Make sure it has deployment permissions
245
+ - Copy the entire token without spaces
246
+
247
+ ### "MongoDB connection failed"
248
+ - **IP Whitelist**: Go to MongoDB Atlas → Network Access → Add IP `0.0.0.0/0` (allow all)
249
+ - **Format**: Should look like `mongodb+srv://user:password@cluster.mongodb.net/`
250
+ - **Permissions**: Database user needs read/write access
251
+
252
+ ### "Deployment limit exceeded"
253
+ You've used all deployments for your license tier. To add more:
254
+ - Upgrade your license tier
255
+ - Or delete an existing deployment from the admin panel
256
+
257
+ ### "Bot not responding on Telegram"
258
+ - Make sure bot token is correct
259
+ - Send `/start` to the bot
260
+ - Check bot status at https://dash.deno.com
261
+
262
+ ### Still stuck?
263
+ Contact support with your deployment logs:
264
+ - 💬 Email: support@whatsnxt.in
265
+ - Include: License key (first 10 chars only), error message, timestamps
266
+
267
+ ## 📦 What's Included
268
+
269
+ | Component | Technology | Purpose |
270
+ |-----------|-----------|---------|
271
+ | Frontend | Next.js | Public video platform |
272
+ | CMS/Admin | PayloadCMS | Content management |
273
+ | Bot | Grammy (Deno) | Telegram integration |
274
+ | Database | MongoDB | Data storage |
275
+
276
+ ## 🔄 Updates
277
+
278
+ To update your deployment to the latest version:
279
+ ```bash
280
+ npx curatedreels-deploy
281
+ ```
167
282
 
168
- - 📚 Documentation: https://docs.curatedreels.com
169
- - 💬 Support: support@curatedreels.com
170
- - 🐛 Issues: https://github.com/curatedreels/deploy-cli/issues
283
+ Use the same project name and credentials. The CLI will update everything automatically.
171
284
 
172
- ## License
285
+ ## 📄 License
173
286
 
174
287
  Proprietary - © CuratedReels 2026
175
288
 
176
- This tool is licensed software. Source code is not included in the distributed bundles.
289
+ This is licensed software. You have the right to deploy and use the platform, but source code is not included.
@@ -8,6 +8,13 @@ export interface DenoDeploymentOptions {
8
8
  entrypoint: string;
9
9
  envVars: Record<string, string>;
10
10
  }
11
+ export interface DenoDeploymentResult {
12
+ url: string;
13
+ projectId: string;
14
+ projectName: string;
15
+ settingsUrl: string;
16
+ envVarsToSet: Record<string, string>;
17
+ }
11
18
  export declare class DenoClient {
12
19
  private token;
13
20
  private org?;
@@ -16,9 +23,9 @@ export declare class DenoClient {
16
23
  /**
17
24
  * Deploy a project to Deno Deploy using deployctl
18
25
  */
19
- deploy(options: DenoDeploymentOptions): Promise<string>;
26
+ deploy(options: DenoDeploymentOptions): Promise<DenoDeploymentResult>;
20
27
  /**
21
- * Deploy using deployctl CLI
28
+ * Deploy using deployctl CLI (without env vars - they must be set in dashboard)
22
29
  */
23
30
  private deployWithCLI;
24
31
  /**
@@ -33,10 +40,6 @@ export declare class DenoClient {
33
40
  * Create a new project
34
41
  */
35
42
  private createProject;
36
- /**
37
- * Set environment variables
38
- */
39
- setEnvironmentVariables(projectId: string, envVars: Record<string, string>): Promise<void>;
40
43
  /**
41
44
  * Update project settings
42
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"deno.d.ts","sourceRoot":"","sources":["../../src/clients/deno.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,qBAAa,UAAU;IAIf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG,CAAC;IAJhB,OAAO,CAAC,OAAO,CAA8B;gBAGjC,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,YAAA;IAGxB;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAc7D;;OAEG;YACW,aAAa;IA2B3B;;OAEG;YACW,aAAa;IAS3B;;OAEG;YACW,UAAU;IAcxB;;OAEG;YACW,aAAa;IAuB3B;;OAEG;IACG,uBAAuB,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAoBhB;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC;IAejB;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAexD;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;IACH,OAAO,CAAC,UAAU;CAMrB"}
1
+ {"version":3,"file":"deno.d.ts","sourceRoot":"","sources":["../../src/clients/deno.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,oBAAoB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC;AAED,qBAAa,UAAU;IAIf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG,CAAC;IAJhB,OAAO,CAAC,OAAO,CAA8B;gBAGjC,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,YAAA;IAGxB;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiB3E;;OAEG;YACW,aAAa;IAwB3B;;OAEG;YACW,aAAa;IAU3B;;OAEG;YACW,UAAU;IAcxB;;OAEG;YACW,aAAa;IAuB3B;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,WAAW,CAAC,EAAE,MAAM,CAAA;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC;IAejB;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAexD;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD;;OAEG;IACH,OAAO,CAAC,UAAU;CAMrB"}
@@ -19,17 +19,21 @@ export class DenoClient {
19
19
  * Deploy a project to Deno Deploy using deployctl
20
20
  */
21
21
  async deploy(options) {
22
- // Step 1: Ensure project exists
23
- const projectName = await this.ensureProject(options.projectName);
24
- // Step 2: Deploy using deployctl from the bot directory
25
- // entrypoint should be a directory containing deno.json and src/main.ts
22
+ // Step 1: Ensure project exists and get project ID/name
23
+ const { name: projectName, id: projectId } = await this.ensureProject(options.projectName);
24
+ // Step 2: Deploy using deployctl (without env vars - they must be set in dashboard)
26
25
  const url = await this.deployWithCLI(projectName, options.entrypoint);
27
- // Step 3: Set environment variables
28
- await this.setEnvironmentVariables(projectName, options.envVars);
29
- return url;
26
+ // Return deployment info with manual setup instructions
27
+ return {
28
+ url,
29
+ projectId,
30
+ projectName,
31
+ settingsUrl: `https://dash.deno.com/projects/${projectName}/settings`,
32
+ envVarsToSet: options.envVars
33
+ };
30
34
  }
31
35
  /**
32
- * Deploy using deployctl CLI
36
+ * Deploy using deployctl CLI (without env vars - they must be set in dashboard)
33
37
  */
34
38
  async deployWithCLI(projectName, deployDir) {
35
39
  const deployctlPath = `${process.env.HOME}/.deno/bin/deployctl`;
@@ -37,12 +41,10 @@ export class DenoClient {
37
41
  const { stdout, stderr } = await execAsync(`cd "${deployDir}" && DENO_DEPLOY_TOKEN=${this.token} "${deployctlPath}" deploy --project=${projectName} --entrypoint=src/main.ts --prod 2>&1`, { timeout: 300000 } // 5 minute timeout
38
42
  );
39
43
  const output = stdout + stderr;
40
- // Extract deployment URL
41
- const urlMatch = output.match(/https:\/\/[^\s]+\.deno\.dev/);
42
- if (urlMatch) {
43
- return urlMatch[0];
44
- }
45
- throw new Error(`Could not extract deployment URL: ${output.slice(0, 500)}`);
44
+ // Return production URL (stable, doesn't change with redeployments)
45
+ // Format: https://{projectName}.deno.dev
46
+ // This is better than the deployment-specific URL with random suffix
47
+ return `https://${projectName}.deno.dev`;
46
48
  }
47
49
  catch (error) {
48
50
  // If deployctl not found, try installing it
@@ -58,10 +60,11 @@ export class DenoClient {
58
60
  async ensureProject(name) {
59
61
  try {
60
62
  const project = await this.getProject(name);
61
- return project.name; // Return name for deployctl
63
+ return { name: project.name, id: project.id };
62
64
  }
63
65
  catch {
64
- return await this.createProject(name);
66
+ const newProjectId = await this.createProject(name);
67
+ return { name, id: newProjectId };
65
68
  }
66
69
  }
67
70
  /**
@@ -96,26 +99,7 @@ export class DenoClient {
96
99
  throw new Error(`Failed to create project: ${error}`);
97
100
  }
98
101
  const project = await response.json();
99
- return project.name; // Return name for deployctl
100
- }
101
- /**
102
- * Set environment variables
103
- */
104
- async setEnvironmentVariables(projectId, envVars) {
105
- const url = `${this.baseUrl}/projects/${projectId}/env`;
106
- const variables = Object.entries(envVars).map(([key, value]) => ({
107
- key,
108
- value
109
- }));
110
- const response = await fetch(url, {
111
- method: 'PATCH',
112
- headers: this.getHeaders(),
113
- body: JSON.stringify({ variables })
114
- });
115
- if (!response.ok) {
116
- const error = await response.text();
117
- throw new Error(`Failed to set environment variables: ${error}`);
118
- }
102
+ return project.id; // Return ID
119
103
  }
120
104
  /**
121
105
  * Update project settings
@@ -1 +1 @@
1
- {"version":3,"file":"deno.js","sourceRoot":"","sources":["../../src/clients/deno.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deno.js","sourceRoot":"","sources":["../../src/clients/deno.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,10 @@ export declare class VercelClient {
70
70
  * Add a custom domain to a project
71
71
  */
72
72
  addDomain(projectName: string, domain: string): Promise<void>;
73
+ /**
74
+ * Delete a project
75
+ */
76
+ deleteProject(projectName: string): Promise<void>;
73
77
  /**
74
78
  * Build API URL with team parameter
75
79
  */
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../src/clients/vercel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;CACjC;AAED,qBAAa,YAAY;IAIjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM,CAAC;IAJnB,OAAO,CAAC,OAAO,CAA2B;gBAG9B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,YAAA;IAG3B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAW/D;;OAEG;YACW,aAAa;IA2D3B;;OAEG;YACW,aAAa;IAW3B;;OAEG;YACW,UAAU;IAcxB;;OAEG;YACW,aAAa;IAqB3B;;OAEG;YACW,YAAY;IAuC1B;;OAEG;YACW,gBAAgB;IAiD9B;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;IACG,uBAAuB,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;YACW,yBAAyB;IA6BvC;;OAEG;YACW,yBAAyB;IAwCvC;;OAEG;IACG,0BAA0B,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;YACW,mBAAmB;IAwBjC;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnE;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,OAAO,CAAC,UAAU;CAMrB"}
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../src/clients/vercel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;CACjC;AAED,qBAAa,YAAY;IAIjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM,CAAC;IAJnB,OAAO,CAAC,OAAO,CAA2B;gBAG9B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,YAAA;IAG3B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAe/D;;OAEG;YACW,aAAa;IAqD3B;;OAEG;YACW,aAAa;IAW3B;;OAEG;YACW,UAAU;IAcxB;;OAEG;YACW,aAAa;IA6C3B;;OAEG;YACW,YAAY;IAuC1B;;OAEG;YACW,gBAAgB;IAiD9B;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;IACG,uBAAuB,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAShB;;OAEG;YACW,yBAAyB;IA+BvC;;OAEG;YACW,yBAAyB;IAwCvC;;OAEG;IACG,0BAA0B,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;YACW,mBAAmB;IAwBjC;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnE;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,OAAO,CAAC,UAAU;CAMrB"}