create-db 1.1.4-pr73-DR-6663-rate-limiting-import-20324781629.0 → 1.1.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/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as createDbCli } from "./src-XorNtxX8.mjs";
2
+ import { n as createDbCli } from "./src-BahssNpy.mjs";
3
3
 
4
4
  //#region src/cli.ts
5
5
  createDbCli().run();
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import { a as isDatabaseError, i as RegionSchema, n as createDbCli, o as isDatabaseSuccess, r as regions, t as create } from "./src-XorNtxX8.mjs";
2
+ import { a as isDatabaseError, i as RegionSchema, n as createDbCli, o as isDatabaseSuccess, r as regions, t as create } from "./src-BahssNpy.mjs";
3
3
 
4
4
  export { RegionSchema, create, createDbCli, isDatabaseError, isDatabaseSuccess, regions };
@@ -65,7 +65,7 @@ function getCommandName() {
65
65
  if (executable.includes("create-postgres")) return "create-postgres";
66
66
  return "create-db";
67
67
  }
68
- async function createDatabaseCore(region, createDbWorkerUrl, claimDbWorkerUrl, userAgent, cliRunId) {
68
+ async function createDatabaseCore(region, createDbWorkerUrl, claimDbWorkerUrl, userAgent, cliRunId, source) {
69
69
  const name = (/* @__PURE__ */ new Date()).toISOString();
70
70
  const runId = cliRunId ?? randomUUID();
71
71
  const resp = await fetch(`${createDbWorkerUrl}/create`, {
@@ -75,7 +75,8 @@ async function createDatabaseCore(region, createDbWorkerUrl, claimDbWorkerUrl, u
75
75
  region,
76
76
  name,
77
77
  utm_source: getCommandName(),
78
- userAgent
78
+ userAgent,
79
+ source: source || "cli"
79
80
  })
80
81
  });
81
82
  if (resp.status === 429) {
@@ -84,6 +85,16 @@ async function createDatabaseCore(region, createDbWorkerUrl, claimDbWorkerUrl, u
84
85
  "error-type": "rate_limit",
85
86
  "status-code": 429
86
87
  }, runId, createDbWorkerUrl);
88
+ try {
89
+ const errorData = await resp.json();
90
+ if (errorData.error === "RATE_LIMIT_EXCEEDED" && errorData.rateLimitInfo) return {
91
+ success: false,
92
+ error: "RATE_LIMIT_EXCEEDED",
93
+ message: errorData.message,
94
+ rateLimitInfo: errorData.rateLimitInfo,
95
+ status: 429
96
+ };
97
+ } catch {}
87
98
  return {
88
99
  success: false,
89
100
  error: "rate_limit_exceeded",
@@ -301,54 +312,6 @@ async function validateRegion(region, workerUrl) {
301
312
  return region;
302
313
  }
303
314
 
304
- //#endregion
305
- //#region src/rate-limiter.ts
306
- const MAX_REQUESTS = 5;
307
- const WINDOW_MS = 6e4;
308
- var RateLimiter = class {
309
- requests = [];
310
- /**
311
- * Check if a new request is allowed under the rate limit
312
- * @returns true if allowed, false if rate limit exceeded
313
- */
314
- checkLimit() {
315
- const now = Date.now();
316
- this.requests = this.requests.filter((record) => now - record.timestamp < WINDOW_MS);
317
- if (this.requests.length >= MAX_REQUESTS) return false;
318
- this.requests.push({ timestamp: now });
319
- return true;
320
- }
321
- /**
322
- * Get the time in milliseconds until the rate limit resets
323
- */
324
- getTimeUntilReset() {
325
- if (this.requests.length === 0) return 0;
326
- const oldestRequest = this.requests[0];
327
- if (!oldestRequest) return 0;
328
- const timeUntilReset = WINDOW_MS - (Date.now() - oldestRequest.timestamp);
329
- return Math.max(0, timeUntilReset);
330
- }
331
- /**
332
- * Get the current number of requests in the window
333
- */
334
- getCurrentCount() {
335
- const now = Date.now();
336
- this.requests = this.requests.filter((record) => now - record.timestamp < WINDOW_MS);
337
- return this.requests.length;
338
- }
339
- /**
340
- * Get the current configuration (read-only)
341
- * @internal
342
- */
343
- getConfig() {
344
- return {
345
- maxRequests: MAX_REQUESTS,
346
- windowMs: WINDOW_MS
347
- };
348
- }
349
- };
350
- const globalRateLimiter = new RateLimiter();
351
-
352
315
  //#endregion
353
316
  //#region src/index.ts
354
317
  dotenv.config({ quiet: true });
@@ -365,7 +328,7 @@ const checkOnlineWithUrl = async () => {
365
328
  };
366
329
  const getRegionsWithUrl = () => getRegions(CREATE_DB_WORKER_URL);
367
330
  const validateRegionWithUrl = (region) => validateRegion(region, CREATE_DB_WORKER_URL);
368
- const createDatabaseCoreWithUrl = (region, userAgent, cliRunId) => createDatabaseCore(region, CREATE_DB_WORKER_URL, CLAIM_DB_WORKER_URL, userAgent, cliRunId);
331
+ const createDatabaseCoreWithUrl = (region, userAgent, cliRunId, source) => createDatabaseCore(region, CREATE_DB_WORKER_URL, CLAIM_DB_WORKER_URL, userAgent, cliRunId, source);
369
332
  const router = os.router({
370
333
  create: os.meta({
371
334
  description: "Create a new Prisma Postgres database",
@@ -558,22 +521,7 @@ createRouterClient(router, { context: {} });
558
521
  * ```
559
522
  */
560
523
  async function create(options) {
561
- if (!globalRateLimiter.checkLimit()) {
562
- const retryAfterMs = globalRateLimiter.getTimeUntilReset();
563
- const config = globalRateLimiter.getConfig();
564
- const retryAfterSeconds = Math.ceil(retryAfterMs / 1e3);
565
- return {
566
- success: false,
567
- error: "RATE_LIMIT_EXCEEDED",
568
- message: `Rate limit exceeded. You can create up to ${config.maxRequests} databases per ${Math.ceil(config.windowMs / 1e3)} seconds. Please try again in ${retryAfterSeconds} seconds.`,
569
- rateLimitInfo: {
570
- retryAfterMs,
571
- currentCount: globalRateLimiter.getCurrentCount(),
572
- maxRequests: config.maxRequests
573
- }
574
- };
575
- }
576
- return createDatabaseCoreWithUrl(options?.region || "us-east-1", options?.userAgent);
524
+ return createDatabaseCoreWithUrl(options?.region || "us-east-1", options?.userAgent, void 0, "programmatic");
577
525
  }
578
526
  /**
579
527
  * List available Prisma Postgres regions programmatically.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-db",
3
- "version": "1.1.4-pr73-DR-6663-rate-limiting-import-20324781629.0",
3
+ "version": "1.1.4",
4
4
  "description": "Instantly create a temporary Prisma Postgres database with one command, then claim and persist it in your Prisma Data Platform project when ready.",
5
5
  "type": "module",
6
6
  "exports": {