create-cloudflare 2.70.14 → 2.70.16
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.js
CHANGED
|
@@ -75471,7 +75471,7 @@ function getGlobalWranglerCachePath() {
|
|
|
75471
75471
|
}
|
|
75472
75472
|
__name(getGlobalWranglerCachePath, "getGlobalWranglerCachePath");
|
|
75473
75473
|
|
|
75474
|
-
// ../workers-utils/dist/chunk-
|
|
75474
|
+
// ../workers-utils/dist/chunk-3K53PSCY.mjs
|
|
75475
75475
|
init_chunk_Q72B4Q5Z();
|
|
75476
75476
|
var import_node_fs2 = require("node:fs");
|
|
75477
75477
|
var import_node_path2 = __toESM(require("node:path"), 1);
|
|
@@ -77822,10 +77822,20 @@ var APIError = class extends ParseError {
|
|
|
77822
77822
|
* endpoint-specific structured error payloads.
|
|
77823
77823
|
*/
|
|
77824
77824
|
meta;
|
|
77825
|
-
|
|
77825
|
+
/**
|
|
77826
|
+
* Optional number of milliseconds the API asked us to wait before retrying,
|
|
77827
|
+
* derived from the response's `Retry-After` header (if present).
|
|
77828
|
+
*/
|
|
77829
|
+
retryAfterMs;
|
|
77830
|
+
constructor({
|
|
77831
|
+
status: status2,
|
|
77832
|
+
retryAfterMs,
|
|
77833
|
+
...rest
|
|
77834
|
+
}) {
|
|
77826
77835
|
super(rest);
|
|
77827
77836
|
this.name = this.constructor.name;
|
|
77828
77837
|
this.#status = status2;
|
|
77838
|
+
this.retryAfterMs = retryAfterMs;
|
|
77829
77839
|
}
|
|
77830
77840
|
get status() {
|
|
77831
77841
|
return this.#status;
|
|
@@ -78345,6 +78355,7 @@ var import_undici = __toESM(require_undici(), 1);
|
|
|
78345
78355
|
var import_node_url2 = require("node:url");
|
|
78346
78356
|
var timersPromises = __toESM(require("node:timers/promises"), 1);
|
|
78347
78357
|
var import_promises2 = require("node:timers/promises");
|
|
78358
|
+
var import_node_console = require("node:console");
|
|
78348
78359
|
var require_vendors = __commonJS2({
|
|
78349
78360
|
"../../node_modules/.pnpm/ci-info@4.4.0/node_modules/ci-info/vendors.json"(exports2, module2) {
|
|
78350
78361
|
module2.exports = [
|
|
@@ -98668,12 +98679,47 @@ var validateR2Binding = /* @__PURE__ */ __name((diagnostics, field, value) => {
|
|
|
98668
98679
|
if (!isRemoteValid(value, field, diagnostics)) {
|
|
98669
98680
|
isValid = false;
|
|
98670
98681
|
}
|
|
98682
|
+
if (hasProperty(value, "local_dev")) {
|
|
98683
|
+
const localDev = value.local_dev;
|
|
98684
|
+
if (typeof localDev !== "object" || localDev === null) {
|
|
98685
|
+
diagnostics.errors.push(
|
|
98686
|
+
`"${field}" bindings should, optionally, have an object "local_dev" field but got ${JSON.stringify(
|
|
98687
|
+
value
|
|
98688
|
+
)}.`
|
|
98689
|
+
);
|
|
98690
|
+
isValid = false;
|
|
98691
|
+
} else {
|
|
98692
|
+
experimental(
|
|
98693
|
+
diagnostics,
|
|
98694
|
+
{ local_dev: localDev },
|
|
98695
|
+
"local_dev.experimental_s3_credentials"
|
|
98696
|
+
);
|
|
98697
|
+
if (hasProperty(localDev, "experimental_s3_credentials")) {
|
|
98698
|
+
const credentials = localDev.experimental_s3_credentials;
|
|
98699
|
+
if (typeof credentials !== "object" || credentials === null || !isRequiredProperty(credentials, "accessKeyId", "string") || !isRequiredProperty(credentials, "secretAccessKey", "string")) {
|
|
98700
|
+
diagnostics.errors.push(
|
|
98701
|
+
`"${field}" bindings should, optionally, have a "local_dev.experimental_s3_credentials" field with string "accessKeyId" and "secretAccessKey" fields, but got ${JSON.stringify(
|
|
98702
|
+
value
|
|
98703
|
+
)}.`
|
|
98704
|
+
);
|
|
98705
|
+
isValid = false;
|
|
98706
|
+
}
|
|
98707
|
+
}
|
|
98708
|
+
validateAdditionalProperties(
|
|
98709
|
+
diagnostics,
|
|
98710
|
+
`${field}.local_dev`,
|
|
98711
|
+
Object.keys(localDev),
|
|
98712
|
+
["experimental_s3_credentials"]
|
|
98713
|
+
);
|
|
98714
|
+
}
|
|
98715
|
+
}
|
|
98671
98716
|
validateAdditionalProperties(diagnostics, field, Object.keys(value), [
|
|
98672
98717
|
"binding",
|
|
98673
98718
|
"bucket_name",
|
|
98674
98719
|
"preview_bucket_name",
|
|
98675
98720
|
"jurisdiction",
|
|
98676
|
-
"remote"
|
|
98721
|
+
"remote",
|
|
98722
|
+
"local_dev"
|
|
98677
98723
|
]);
|
|
98678
98724
|
return isValid;
|
|
98679
98725
|
}, "validateR2Binding");
|
|
@@ -102107,6 +102153,7 @@ async function fetchInternalBase(complianceConfig, resource, init = {}, userAgen
|
|
|
102107
102153
|
logHeaders(response.headers, logger);
|
|
102108
102154
|
logger.debugWithSanitization?.("RESPONSE:", jsonText);
|
|
102109
102155
|
logger.debug("-- END CF API RESPONSE");
|
|
102156
|
+
const retryAfterMs = parseRetryAfterMs(response.headers);
|
|
102110
102157
|
if (!jsonText && (response.status === 204 || response.status === 205)) {
|
|
102111
102158
|
return {
|
|
102112
102159
|
response: {
|
|
@@ -102115,7 +102162,8 @@ async function fetchInternalBase(complianceConfig, resource, init = {}, userAgen
|
|
|
102115
102162
|
errors: [],
|
|
102116
102163
|
messages: []
|
|
102117
102164
|
},
|
|
102118
|
-
status: response.status
|
|
102165
|
+
status: response.status,
|
|
102166
|
+
retryAfterMs
|
|
102119
102167
|
};
|
|
102120
102168
|
}
|
|
102121
102169
|
if (isWAFBlockResponse(response.headers)) {
|
|
@@ -102124,12 +102172,13 @@ async function fetchInternalBase(complianceConfig, resource, init = {}, userAgen
|
|
|
102124
102172
|
method,
|
|
102125
102173
|
resource,
|
|
102126
102174
|
response.status,
|
|
102127
|
-
response.statusText
|
|
102175
|
+
response.statusText,
|
|
102176
|
+
retryAfterMs
|
|
102128
102177
|
);
|
|
102129
102178
|
}
|
|
102130
102179
|
try {
|
|
102131
102180
|
const json2 = parseJSON(jsonText);
|
|
102132
|
-
return { response: json2, status: response.status };
|
|
102181
|
+
return { response: json2, status: response.status, retryAfterMs };
|
|
102133
102182
|
} catch {
|
|
102134
102183
|
const rayId = extractWAFBlockRayId(response.headers);
|
|
102135
102184
|
throw new APIError({
|
|
@@ -102144,13 +102193,18 @@ async function fetchInternalBase(complianceConfig, resource, init = {}, userAgen
|
|
|
102144
102193
|
...rayId ? [{ text: `Cloudflare Ray ID: ${rayId}` }] : []
|
|
102145
102194
|
],
|
|
102146
102195
|
status: response.status,
|
|
102196
|
+
retryAfterMs,
|
|
102147
102197
|
telemetryMessage: false
|
|
102148
102198
|
});
|
|
102149
102199
|
}
|
|
102150
102200
|
}
|
|
102151
102201
|
__name(fetchInternalBase, "fetchInternalBase");
|
|
102152
102202
|
async function fetchResultBase(complianceConfig, resource, init = {}, userAgent, logger, queryParams, abortSignal, credentials) {
|
|
102153
|
-
const {
|
|
102203
|
+
const {
|
|
102204
|
+
response: json2,
|
|
102205
|
+
status: status2,
|
|
102206
|
+
retryAfterMs
|
|
102207
|
+
} = await fetchInternalBase(
|
|
102154
102208
|
complianceConfig,
|
|
102155
102209
|
resource,
|
|
102156
102210
|
init,
|
|
@@ -102163,7 +102217,7 @@ async function fetchResultBase(complianceConfig, resource, init = {}, userAgent,
|
|
|
102163
102217
|
if (json2.success) {
|
|
102164
102218
|
return json2.result;
|
|
102165
102219
|
} else {
|
|
102166
|
-
throwFetchError(resource, json2, status2);
|
|
102220
|
+
throwFetchError(resource, json2, status2, retryAfterMs);
|
|
102167
102221
|
}
|
|
102168
102222
|
}
|
|
102169
102223
|
__name(fetchResultBase, "fetchResultBase");
|
|
@@ -102176,7 +102230,11 @@ async function fetchListResultBase(complianceConfig, resource, init = {}, userAg
|
|
|
102176
102230
|
queryParams = new import_node_url2.URLSearchParams(queryParams);
|
|
102177
102231
|
queryParams.set("cursor", cursor);
|
|
102178
102232
|
}
|
|
102179
|
-
const {
|
|
102233
|
+
const {
|
|
102234
|
+
response: json2,
|
|
102235
|
+
status: status2,
|
|
102236
|
+
retryAfterMs
|
|
102237
|
+
} = await fetchInternalBase(
|
|
102180
102238
|
complianceConfig,
|
|
102181
102239
|
resource,
|
|
102182
102240
|
init,
|
|
@@ -102194,7 +102252,7 @@ async function fetchListResultBase(complianceConfig, resource, init = {}, userAg
|
|
|
102194
102252
|
getMoreResults = false;
|
|
102195
102253
|
}
|
|
102196
102254
|
} else {
|
|
102197
|
-
throwFetchError(resource, json2, status2);
|
|
102255
|
+
throwFetchError(resource, json2, status2, retryAfterMs);
|
|
102198
102256
|
}
|
|
102199
102257
|
}
|
|
102200
102258
|
return results;
|
|
@@ -102212,6 +102270,24 @@ function isWAFBlockResponse(headers) {
|
|
|
102212
102270
|
return headers.get("cf-mitigated") === "challenge";
|
|
102213
102271
|
}
|
|
102214
102272
|
__name(isWAFBlockResponse, "isWAFBlockResponse");
|
|
102273
|
+
function parseRetryAfterValue(retryAfter) {
|
|
102274
|
+
if (!retryAfter) {
|
|
102275
|
+
return void 0;
|
|
102276
|
+
}
|
|
102277
|
+
if (/^\d+$/.test(retryAfter.trim())) {
|
|
102278
|
+
return Number(retryAfter) * 1e3;
|
|
102279
|
+
}
|
|
102280
|
+
const retryAfterDate = new Date(retryAfter);
|
|
102281
|
+
if (!Number.isNaN(retryAfterDate.getTime())) {
|
|
102282
|
+
return Math.max(0, retryAfterDate.getTime() - Date.now());
|
|
102283
|
+
}
|
|
102284
|
+
return void 0;
|
|
102285
|
+
}
|
|
102286
|
+
__name(parseRetryAfterValue, "parseRetryAfterValue");
|
|
102287
|
+
function parseRetryAfterMs(headers) {
|
|
102288
|
+
return parseRetryAfterValue(headers.get("Retry-After"));
|
|
102289
|
+
}
|
|
102290
|
+
__name(parseRetryAfterMs, "parseRetryAfterMs");
|
|
102215
102291
|
function extractWAFBlockRayId(headers) {
|
|
102216
102292
|
return headers.get("cf-ray") ?? void 0;
|
|
102217
102293
|
}
|
|
@@ -102291,7 +102367,7 @@ function escapeCharacter(character) {
|
|
|
102291
102367
|
}).join("");
|
|
102292
102368
|
}
|
|
102293
102369
|
__name(escapeCharacter, "escapeCharacter");
|
|
102294
|
-
function throwFetchError(resource, response, status2) {
|
|
102370
|
+
function throwFetchError(resource, response, status2, retryAfterMs) {
|
|
102295
102371
|
const errors = response.errors ?? [];
|
|
102296
102372
|
for (const error52 of errors) {
|
|
102297
102373
|
maybeThrowFriendlyError(error52);
|
|
@@ -102309,10 +102385,19 @@ function throwFetchError(resource, response, status2) {
|
|
|
102309
102385
|
notes.push({ text: fallbackMessage });
|
|
102310
102386
|
}
|
|
102311
102387
|
}
|
|
102388
|
+
if (retryAfterMs !== void 0) {
|
|
102389
|
+
notes.push({
|
|
102390
|
+
text: `The API responded with a "Retry-After" header indicating you should wait ${Math.ceil(retryAfterMs / 1e3)} second(s) before retrying.`
|
|
102391
|
+
});
|
|
102392
|
+
}
|
|
102312
102393
|
const error512 = new APIError({
|
|
102313
102394
|
text: `A request to the Cloudflare API (${resource}) failed.`,
|
|
102314
102395
|
notes,
|
|
102315
102396
|
status: status2,
|
|
102397
|
+
// hoist the parsed `Retry-After` header (if any) so consumers such as
|
|
102398
|
+
// `retryOnAPIFailure()` can back off for the amount of time the API
|
|
102399
|
+
// asked us to wait, e.g. when rate limited (HTTP 429).
|
|
102400
|
+
retryAfterMs,
|
|
102316
102401
|
telemetryMessage: false
|
|
102317
102402
|
});
|
|
102318
102403
|
const code = errors[0]?.code;
|
|
@@ -102327,7 +102412,7 @@ function throwFetchError(resource, response, status2) {
|
|
|
102327
102412
|
throw error512;
|
|
102328
102413
|
}
|
|
102329
102414
|
__name(throwFetchError, "throwFetchError");
|
|
102330
|
-
function throwWAFBlockError(headers, method, resource, status2, statusText) {
|
|
102415
|
+
function throwWAFBlockError(headers, method, resource, status2, statusText, retryAfterMs) {
|
|
102331
102416
|
const rayId = extractWAFBlockRayId(headers);
|
|
102332
102417
|
throw new APIError({
|
|
102333
102418
|
text: "The Cloudflare API responded with a WAF block page instead of the expected JSON response",
|
|
@@ -102344,6 +102429,7 @@ function throwWAFBlockError(headers, method, resource, status2, statusText) {
|
|
|
102344
102429
|
}
|
|
102345
102430
|
],
|
|
102346
102431
|
status: status2,
|
|
102432
|
+
retryAfterMs,
|
|
102347
102433
|
telemetryMessage: false
|
|
102348
102434
|
});
|
|
102349
102435
|
}
|
|
@@ -102442,24 +102528,42 @@ ${url2}`
|
|
|
102442
102528
|
}
|
|
102443
102529
|
__name(handleBrowserOpenError, "handleBrowserOpenError");
|
|
102444
102530
|
var MAX_ATTEMPTS = 3;
|
|
102531
|
+
var MAX_RETRY_AFTER_MS = 6e4;
|
|
102445
102532
|
async function retryOnAPIFailure(action, logger, backoff = 0, attempts = MAX_ATTEMPTS, abortSignal) {
|
|
102446
102533
|
try {
|
|
102447
102534
|
return await action();
|
|
102448
102535
|
} catch (err) {
|
|
102449
102536
|
if (err instanceof APIError) {
|
|
102450
|
-
if (!err.isRetryable()) {
|
|
102537
|
+
if (!err.isRetryable() && err.status !== 429) {
|
|
102451
102538
|
throw err;
|
|
102452
102539
|
}
|
|
102453
102540
|
} else if (err instanceof DOMException && err.name === "TimeoutError") ;
|
|
102454
102541
|
else if (!(err instanceof TypeError)) {
|
|
102455
102542
|
throw err;
|
|
102456
102543
|
}
|
|
102457
|
-
|
|
102458
|
-
|
|
102544
|
+
const retryAfterMs = err instanceof APIError ? err.retryAfterMs : void 0;
|
|
102545
|
+
if (retryAfterMs !== void 0 && retryAfterMs > MAX_RETRY_AFTER_MS) {
|
|
102546
|
+
throw err;
|
|
102547
|
+
}
|
|
102459
102548
|
if (attempts <= 1) {
|
|
102460
102549
|
throw err;
|
|
102461
102550
|
}
|
|
102462
|
-
|
|
102551
|
+
const jitter = Math.random() * 1e3;
|
|
102552
|
+
let wait = backoff;
|
|
102553
|
+
if (retryAfterMs !== void 0) {
|
|
102554
|
+
wait = retryAfterMs + jitter;
|
|
102555
|
+
} else if (err instanceof APIError && err.status === 429) {
|
|
102556
|
+
wait = Math.max(backoff, 1e3) + jitter;
|
|
102557
|
+
}
|
|
102558
|
+
if (retryAfterMs !== void 0) {
|
|
102559
|
+
logger.info(
|
|
102560
|
+
`Received a "Retry-After" header from the Cloudflare API. Waiting ${Math.ceil(retryAfterMs / 1e3)} second(s) before retrying...`
|
|
102561
|
+
);
|
|
102562
|
+
} else {
|
|
102563
|
+
logger.debug(`Retrying API call after error...`);
|
|
102564
|
+
logger.debug(err);
|
|
102565
|
+
}
|
|
102566
|
+
await (0, import_promises2.setTimeout)(wait, void 0, { signal: abortSignal });
|
|
102463
102567
|
return retryOnAPIFailure(
|
|
102464
102568
|
action,
|
|
102465
102569
|
logger,
|
|
@@ -102570,6 +102674,14 @@ function getWorkerNameFromProject(projectPath) {
|
|
|
102570
102674
|
return getWorkerName(packageJsonName, projectPath);
|
|
102571
102675
|
}
|
|
102572
102676
|
__name(getWorkerNameFromProject, "getWorkerNameFromProject");
|
|
102677
|
+
function toUrlPath(filePath) {
|
|
102678
|
+
(0, import_node_console.assert)(
|
|
102679
|
+
!/^[a-z]:/i.test(filePath),
|
|
102680
|
+
"Tried to convert a Windows file path with a drive to a URL path."
|
|
102681
|
+
);
|
|
102682
|
+
return filePath.replace(/\\/g, "/");
|
|
102683
|
+
}
|
|
102684
|
+
__name(toUrlPath, "toUrlPath");
|
|
102573
102685
|
|
|
102574
102686
|
// ../cli/dist/check-macos-version.mjs
|
|
102575
102687
|
var import_ci_info2 = __toESM(require_ci_info2(), 1);
|
|
@@ -109455,7 +109567,7 @@ var Yargs = YargsFactory(esm_default2);
|
|
|
109455
109567
|
var yargs_default = Yargs;
|
|
109456
109568
|
|
|
109457
109569
|
// package.json
|
|
109458
|
-
var version2 = "2.70.
|
|
109570
|
+
var version2 = "2.70.16";
|
|
109459
109571
|
|
|
109460
109572
|
// src/metrics.ts
|
|
109461
109573
|
var import_node_async_hooks = require("node:async_hooks");
|
|
@@ -112024,24 +112136,24 @@ __name2(getPropertyName, "getPropertyName");
|
|
|
112024
112136
|
var package_default = {
|
|
112025
112137
|
name: "frameworks_clis_info",
|
|
112026
112138
|
dependencies: {
|
|
112027
|
-
"@angular/create": "22.0.
|
|
112028
|
-
"@tanstack/cli": "0.
|
|
112029
|
-
"create-analog": "2.6.
|
|
112030
|
-
"create-astro": "5.2.
|
|
112139
|
+
"@angular/create": "22.0.9",
|
|
112140
|
+
"@tanstack/cli": "0.70.1",
|
|
112141
|
+
"create-analog": "2.6.4",
|
|
112142
|
+
"create-astro": "5.2.3",
|
|
112031
112143
|
"create-docusaurus": "3.10.2",
|
|
112032
112144
|
"create-hono": "0.19.4",
|
|
112033
|
-
"create-next-app": "16.2.
|
|
112145
|
+
"create-next-app": "16.2.12",
|
|
112034
112146
|
"create-qwik": "1.20.0",
|
|
112035
|
-
"create-react-router": "8.
|
|
112147
|
+
"create-react-router": "8.3.0",
|
|
112036
112148
|
"create-rwsdk": "3.1.3",
|
|
112037
|
-
"create-solid": "0.
|
|
112038
|
-
"create-vike": "0.0.
|
|
112149
|
+
"create-solid": "0.8.0",
|
|
112150
|
+
"create-vike": "0.0.671",
|
|
112039
112151
|
"create-vite": "9.1.1",
|
|
112040
|
-
"create-vue": "3.
|
|
112152
|
+
"create-vue": "3.23.0",
|
|
112041
112153
|
"create-waku": "0.12.5-1.0.0-alpha.10-0",
|
|
112042
112154
|
gatsby: "5.16.1",
|
|
112043
112155
|
nuxi: "3.37.0",
|
|
112044
|
-
sv: "0.16.
|
|
112156
|
+
sv: "0.16.6"
|
|
112045
112157
|
},
|
|
112046
112158
|
info: [
|
|
112047
112159
|
"This package.json is only used to keep track of the frameworks cli dependencies",
|
|
@@ -114545,7 +114657,7 @@ If the application uses Durable Objects or Workflows, refer to the relevant best
|
|
|
114545
114657
|
var import_node_assert6 = __toESM(require("node:assert"));
|
|
114546
114658
|
|
|
114547
114659
|
// ../wrangler/package.json
|
|
114548
|
-
var version3 = "4.
|
|
114660
|
+
var version3 = "4.116.0";
|
|
114549
114661
|
|
|
114550
114662
|
// src/git.ts
|
|
114551
114663
|
var offerGit = async (ctx) => {
|
|
@@ -114600,16 +114712,24 @@ var gitCommit = async (ctx) => {
|
|
|
114600
114712
|
silent: true,
|
|
114601
114713
|
cwd: ctx.project.path
|
|
114602
114714
|
});
|
|
114715
|
+
} catch {
|
|
114716
|
+
s.stop(`${brandColor("git")} ${dim(`commit failed`)}`);
|
|
114717
|
+
updateStatus(
|
|
114718
|
+
"Failed to create initial commit. You can commit manually later."
|
|
114719
|
+
);
|
|
114720
|
+
return;
|
|
114721
|
+
}
|
|
114722
|
+
s.stop();
|
|
114723
|
+
try {
|
|
114603
114724
|
await runCommand(
|
|
114604
114725
|
["git", "commit", "-m", ctx.commitMessage, "--no-verify"],
|
|
114605
114726
|
{
|
|
114606
|
-
silent: true,
|
|
114607
114727
|
cwd: ctx.project.path
|
|
114608
114728
|
}
|
|
114609
114729
|
);
|
|
114610
|
-
|
|
114730
|
+
updateStatus(`${brandColor("git")} ${dim(`commit`)}`);
|
|
114611
114731
|
} catch {
|
|
114612
|
-
|
|
114732
|
+
updateStatus(`${brandColor("git")} ${dim(`commit failed`)}`);
|
|
114613
114733
|
updateStatus(
|
|
114614
114734
|
"Failed to create initial commit. You can commit manually later."
|
|
114615
114735
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-cloudflare",
|
|
3
|
-
"version": "2.70.
|
|
3
|
+
"version": "2.70.16",
|
|
4
4
|
"description": "A CLI for creating and deploying new applications to Cloudflare.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@babel/parser": "^7.21.3",
|
|
32
32
|
"@babel/types": "^7.21.4",
|
|
33
33
|
"@clack/prompts": "^1.2.0",
|
|
34
|
-
"@cloudflare/workers-types": "^5.
|
|
34
|
+
"@cloudflare/workers-types": "^5.20260730.1",
|
|
35
35
|
"@types/command-exists": "^1.2.0",
|
|
36
36
|
"@types/cross-spawn": "^6.0.2",
|
|
37
37
|
"@types/deepmerge": "^2.2.0",
|
|
@@ -65,19 +65,19 @@
|
|
|
65
65
|
"tree-kill": "1.2.2",
|
|
66
66
|
"typescript": "5.8.3",
|
|
67
67
|
"undici": "7.28.0",
|
|
68
|
-
"vite": "8.
|
|
68
|
+
"vite": "8.1.5",
|
|
69
69
|
"vite-tsconfig-paths": "^4.0.8",
|
|
70
70
|
"vitest": "4.1.0",
|
|
71
71
|
"which-pm-runs": "^1.1.0",
|
|
72
72
|
"wrap-ansi": "^9.0.0",
|
|
73
73
|
"yargs": "^17.7.2",
|
|
74
|
-
"@cloudflare/cli-shared-helpers": "0.1.
|
|
75
|
-
"@cloudflare/
|
|
74
|
+
"@cloudflare/cli-shared-helpers": "0.1.18",
|
|
75
|
+
"@cloudflare/codemod": "1.1.0",
|
|
76
76
|
"@cloudflare/mock-npm-registry": "0.0.0",
|
|
77
|
+
"@cloudflare/vite-plugin": "1.49.0",
|
|
77
78
|
"@cloudflare/workers-tsconfig": "0.0.0",
|
|
78
|
-
"@cloudflare/workers-utils": "0.
|
|
79
|
-
"
|
|
80
|
-
"wrangler": "4.114.0"
|
|
79
|
+
"@cloudflare/workers-utils": "0.30.0",
|
|
80
|
+
"wrangler": "4.116.0"
|
|
81
81
|
},
|
|
82
82
|
"engines": {
|
|
83
83
|
"node": ">=22.0.0"
|
|
@@ -22,13 +22,6 @@ import { WorkflowEntrypoint } from "cloudflare:workers";
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
export class MyWorkflow extends WorkflowEntrypoint {
|
|
25
|
-
/**
|
|
26
|
-
* @param {Env} env
|
|
27
|
-
*/
|
|
28
|
-
constructor(env) {
|
|
29
|
-
this.env = env;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
25
|
/**
|
|
33
26
|
* @param {WorkflowEvent<Params>} event
|
|
34
27
|
* @param {WorkflowStep} step
|