create-cloudflare 2.67.0 → 2.67.2
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 +149 -35
- package/package.json +6 -6
- package/templates/react/workers/c3.ts +12 -10
- package/templates/react/workers/js/src/App.jsx +132 -42
- package/templates/react/workers/js/src/assets/cloudflare.svg +1 -0
- package/templates/react/workers/ts/src/App.tsx +132 -42
- package/templates/react/workers/ts/src/assets/cloudflare.svg +1 -0
- package/templates/react/workers/js/src/App.css +0 -45
- package/templates/react/workers/js/src/assets/Cloudflare_Logo.svg +0 -53
- package/templates/react/workers/ts/src/App.css +0 -45
- package/templates/react/workers/ts/src/assets/Cloudflare_Logo.svg +0 -51
package/dist/cli.js
CHANGED
|
@@ -74534,7 +74534,7 @@ var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__
|
|
|
74534
74534
|
mod
|
|
74535
74535
|
));
|
|
74536
74536
|
|
|
74537
|
-
// ../workers-utils/dist/chunk-
|
|
74537
|
+
// ../workers-utils/dist/chunk-L6UDSO24.mjs
|
|
74538
74538
|
var import_node_assert = __toESM(require("node:assert"), 1);
|
|
74539
74539
|
function isCompatDate(str) {
|
|
74540
74540
|
return /^\d{4}-\d{2}-\d{2}$/.test(str);
|
|
@@ -74666,6 +74666,17 @@ function mapWorkerMetadataBindings(bindings) {
|
|
|
74666
74666
|
];
|
|
74667
74667
|
}
|
|
74668
74668
|
break;
|
|
74669
|
+
case "artifacts":
|
|
74670
|
+
{
|
|
74671
|
+
configObj.artifacts = [
|
|
74672
|
+
...configObj.artifacts ?? [],
|
|
74673
|
+
{
|
|
74674
|
+
binding: binding.name,
|
|
74675
|
+
namespace: binding.namespace
|
|
74676
|
+
}
|
|
74677
|
+
];
|
|
74678
|
+
}
|
|
74679
|
+
break;
|
|
74669
74680
|
case "unsafe_hello_world": {
|
|
74670
74681
|
configObj.unsafe_hello_world = [
|
|
74671
74682
|
...configObj.unsafe_hello_world ?? [],
|
|
@@ -78462,6 +78473,7 @@ var defaultWranglerConfig = {
|
|
|
78462
78473
|
hyperdrive: [],
|
|
78463
78474
|
workflows: [],
|
|
78464
78475
|
secrets_store_secrets: [],
|
|
78476
|
+
artifacts: [],
|
|
78465
78477
|
services: [],
|
|
78466
78478
|
analytics_engine_datasets: [],
|
|
78467
78479
|
ai: void 0,
|
|
@@ -83060,7 +83072,7 @@ var friendlyBindingNames = {
|
|
|
83060
83072
|
services: "Worker",
|
|
83061
83073
|
analytics_engine_datasets: "Analytics Engine Dataset",
|
|
83062
83074
|
text_blobs: "Text Blob",
|
|
83063
|
-
browser: "Browser",
|
|
83075
|
+
browser: "Browser Run",
|
|
83064
83076
|
ai: "AI",
|
|
83065
83077
|
images: "Images",
|
|
83066
83078
|
stream: "Stream",
|
|
@@ -83074,6 +83086,7 @@ var friendlyBindingNames = {
|
|
|
83074
83086
|
workflows: "Workflow",
|
|
83075
83087
|
pipelines: "Pipeline",
|
|
83076
83088
|
secrets_store_secrets: "Secrets Store Secret",
|
|
83089
|
+
artifacts: "Artifacts",
|
|
83077
83090
|
ratelimits: "Rate Limit",
|
|
83078
83091
|
assets: "Assets",
|
|
83079
83092
|
unsafe_hello_world: "Hello World",
|
|
@@ -83091,7 +83104,7 @@ var bindingTypeFriendlyNames = {
|
|
|
83091
83104
|
send_email: "Send Email",
|
|
83092
83105
|
wasm_module: "Wasm Module",
|
|
83093
83106
|
text_blob: "Text Blob",
|
|
83094
|
-
browser: "Browser",
|
|
83107
|
+
browser: "Browser Run",
|
|
83095
83108
|
ai: "AI",
|
|
83096
83109
|
images: "Images",
|
|
83097
83110
|
stream: "Stream",
|
|
@@ -83113,6 +83126,7 @@ var bindingTypeFriendlyNames = {
|
|
|
83113
83126
|
mtls_certificate: "mTLS Certificate",
|
|
83114
83127
|
pipeline: "Pipeline",
|
|
83115
83128
|
secrets_store_secret: "Secrets Store Secret",
|
|
83129
|
+
artifacts: "Artifacts",
|
|
83116
83130
|
logfwdr: "logfwdr",
|
|
83117
83131
|
unsafe_hello_world: "Hello World",
|
|
83118
83132
|
flagship: "Flagship",
|
|
@@ -84430,6 +84444,16 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDisp
|
|
|
84430
84444
|
validateBindingArray(envName, validateSecretsStoreSecretBinding),
|
|
84431
84445
|
[]
|
|
84432
84446
|
),
|
|
84447
|
+
artifacts: notInheritable(
|
|
84448
|
+
diagnostics,
|
|
84449
|
+
topLevelEnv,
|
|
84450
|
+
rawConfig,
|
|
84451
|
+
rawEnv,
|
|
84452
|
+
envName,
|
|
84453
|
+
"artifacts",
|
|
84454
|
+
validateBindingArray(envName, validateArtifactsBinding),
|
|
84455
|
+
[]
|
|
84456
|
+
),
|
|
84433
84457
|
unsafe_hello_world: notInheritable(
|
|
84434
84458
|
diagnostics,
|
|
84435
84459
|
topLevelEnv,
|
|
@@ -85327,7 +85351,8 @@ var validateUnsafeBinding = /* @__PURE__ */ __name((diagnostics, field, value) =
|
|
|
85327
85351
|
"flagship",
|
|
85328
85352
|
"vpc_network",
|
|
85329
85353
|
"stream",
|
|
85330
|
-
"media"
|
|
85354
|
+
"media",
|
|
85355
|
+
"artifacts"
|
|
85331
85356
|
];
|
|
85332
85357
|
if (safeBindings.includes(value.type)) {
|
|
85333
85358
|
diagnostics.warnings.push(
|
|
@@ -85585,6 +85610,11 @@ function validateContainerApp(envName, topLevelName, configPath) {
|
|
|
85585
85610
|
`"containers.durable_objects" is deprecated. Use the "class_name" field instead.`
|
|
85586
85611
|
);
|
|
85587
85612
|
}
|
|
85613
|
+
if ("wrangler_ssh" in containerAppOptional) {
|
|
85614
|
+
diagnostics.warnings.push(
|
|
85615
|
+
`"containers.wrangler_ssh" is deprecated. Use "containers.ssh" instead.`
|
|
85616
|
+
);
|
|
85617
|
+
}
|
|
85588
85618
|
if ("unsafe" in containerAppOptional) {
|
|
85589
85619
|
if (containerAppOptional.unsafe && typeof containerAppOptional.unsafe !== "object" || Array.isArray(containerAppOptional.unsafe)) {
|
|
85590
85620
|
diagnostics.errors.push(
|
|
@@ -85608,6 +85638,7 @@ function validateContainerApp(envName, topLevelName, configPath) {
|
|
|
85608
85638
|
"class_name",
|
|
85609
85639
|
"scheduling_policy",
|
|
85610
85640
|
"instance_type",
|
|
85641
|
+
"ssh",
|
|
85611
85642
|
"wrangler_ssh",
|
|
85612
85643
|
"authorized_keys",
|
|
85613
85644
|
"trusted_user_ca_keys",
|
|
@@ -85629,23 +85660,28 @@ function validateContainerApp(envName, topLevelName, configPath) {
|
|
|
85629
85660
|
["image", "secrets", "labels", "disk", "vcpu", "memory_mib"]
|
|
85630
85661
|
);
|
|
85631
85662
|
}
|
|
85632
|
-
|
|
85633
|
-
|
|
85634
|
-
|
|
85635
|
-
|
|
85636
|
-
|
|
85637
|
-
|
|
85663
|
+
let sshField;
|
|
85664
|
+
let sshConfig;
|
|
85665
|
+
if ("ssh" in containerAppOptional) {
|
|
85666
|
+
sshField = "ssh";
|
|
85667
|
+
sshConfig = containerAppOptional.ssh;
|
|
85668
|
+
containerAppOptional.wrangler_ssh = containerAppOptional.ssh;
|
|
85669
|
+
delete containerAppOptional.ssh;
|
|
85670
|
+
} else if ("wrangler_ssh" in containerAppOptional) {
|
|
85671
|
+
sshField = "wrangler_ssh";
|
|
85672
|
+
sshConfig = containerAppOptional.wrangler_ssh;
|
|
85673
|
+
}
|
|
85674
|
+
if (sshField !== void 0) {
|
|
85675
|
+
const sshConfigObject = typeof sshConfig === "object" && sshConfig !== null ? sshConfig : {};
|
|
85676
|
+
if (!isRequiredProperty(sshConfigObject, "enabled", "boolean")) {
|
|
85638
85677
|
diagnostics.errors.push(
|
|
85639
|
-
`${field}.
|
|
85678
|
+
`${field}.${sshField}.enabled must be a boolean`
|
|
85640
85679
|
);
|
|
85641
85680
|
}
|
|
85642
|
-
|
|
85643
|
-
|
|
85644
|
-
"port",
|
|
85645
|
-
"number"
|
|
85646
|
-
) || containerAppOptional.wrangler_ssh.port < 1 || containerAppOptional.wrangler_ssh.port > 65535) {
|
|
85681
|
+
const sshPort = "port" in sshConfigObject ? sshConfigObject.port : void 0;
|
|
85682
|
+
if (!isOptionalProperty(sshConfigObject, "port", "number") || typeof sshPort === "number" && (sshPort < 1 || sshPort > 65535)) {
|
|
85647
85683
|
diagnostics.errors.push(
|
|
85648
|
-
`${field}.
|
|
85684
|
+
`${field}.${sshField}.port must be a number between 1 and 65535 inclusive`
|
|
85649
85685
|
);
|
|
85650
85686
|
}
|
|
85651
85687
|
}
|
|
@@ -85721,6 +85757,43 @@ function validateContainerApp(envName, topLevelName, configPath) {
|
|
|
85721
85757
|
constraints.tiers,
|
|
85722
85758
|
"number"
|
|
85723
85759
|
);
|
|
85760
|
+
validateOptionalProperty(
|
|
85761
|
+
diagnostics,
|
|
85762
|
+
`${field}.constraints`,
|
|
85763
|
+
"jurisdiction",
|
|
85764
|
+
constraints.jurisdiction,
|
|
85765
|
+
"string"
|
|
85766
|
+
);
|
|
85767
|
+
if (constraints.jurisdiction && !["eu", "fedramp"].includes(constraints.jurisdiction)) {
|
|
85768
|
+
diagnostics.errors.push(
|
|
85769
|
+
`${field}.constraints.jurisdiction must be one of: "eu", "fedramp"`
|
|
85770
|
+
);
|
|
85771
|
+
}
|
|
85772
|
+
if (validateOptionalTypedArray(
|
|
85773
|
+
diagnostics,
|
|
85774
|
+
`${field}.constraints.regions`,
|
|
85775
|
+
constraints.regions,
|
|
85776
|
+
"string"
|
|
85777
|
+
) && constraints.regions && Array.isArray(constraints.regions)) {
|
|
85778
|
+
const validRegions = [
|
|
85779
|
+
"ENAM",
|
|
85780
|
+
"WNAM",
|
|
85781
|
+
"EEUR",
|
|
85782
|
+
"WEUR",
|
|
85783
|
+
"APAC",
|
|
85784
|
+
"SAM",
|
|
85785
|
+
"ME",
|
|
85786
|
+
"OC",
|
|
85787
|
+
"AFR"
|
|
85788
|
+
];
|
|
85789
|
+
for (const region of constraints.regions) {
|
|
85790
|
+
if (typeof region === "string" && !validRegions.includes(region.toUpperCase())) {
|
|
85791
|
+
diagnostics.errors.push(
|
|
85792
|
+
`${field}.constraints.regions contains invalid region "${region}". Valid regions are: ${validRegions.join(", ")}`
|
|
85793
|
+
);
|
|
85794
|
+
}
|
|
85795
|
+
}
|
|
85796
|
+
}
|
|
85724
85797
|
}
|
|
85725
85798
|
if (typeof containerAppOptional.instance_type === "string") {
|
|
85726
85799
|
validateOptionalProperty(
|
|
@@ -86731,6 +86804,40 @@ var validateSecretsStoreSecretBinding = /* @__PURE__ */ __name((diagnostics, fie
|
|
|
86731
86804
|
]);
|
|
86732
86805
|
return isValid2;
|
|
86733
86806
|
}, "validateSecretsStoreSecretBinding");
|
|
86807
|
+
var validateArtifactsBinding = /* @__PURE__ */ __name((diagnostics, field, value) => {
|
|
86808
|
+
if (typeof value !== "object" || value === null) {
|
|
86809
|
+
diagnostics.errors.push(
|
|
86810
|
+
`"artifacts" bindings should be objects, but got ${JSON.stringify(value)}`
|
|
86811
|
+
);
|
|
86812
|
+
return false;
|
|
86813
|
+
}
|
|
86814
|
+
let isValid2 = true;
|
|
86815
|
+
if (!isRequiredProperty(value, "binding", "string")) {
|
|
86816
|
+
diagnostics.errors.push(
|
|
86817
|
+
`"${field}" bindings must have a string "binding" field but got ${JSON.stringify(
|
|
86818
|
+
value
|
|
86819
|
+
)}.`
|
|
86820
|
+
);
|
|
86821
|
+
isValid2 = false;
|
|
86822
|
+
}
|
|
86823
|
+
if (!isRequiredProperty(value, "namespace", "string")) {
|
|
86824
|
+
diagnostics.errors.push(
|
|
86825
|
+
`"${field}" bindings must have a string "namespace" field but got ${JSON.stringify(
|
|
86826
|
+
value
|
|
86827
|
+
)}.`
|
|
86828
|
+
);
|
|
86829
|
+
isValid2 = false;
|
|
86830
|
+
}
|
|
86831
|
+
validateAdditionalProperties(diagnostics, field, Object.keys(value), [
|
|
86832
|
+
"binding",
|
|
86833
|
+
"namespace",
|
|
86834
|
+
"remote"
|
|
86835
|
+
]);
|
|
86836
|
+
if (!isRemoteValid(value, field, diagnostics)) {
|
|
86837
|
+
isValid2 = false;
|
|
86838
|
+
}
|
|
86839
|
+
return isValid2;
|
|
86840
|
+
}, "validateArtifactsBinding");
|
|
86734
86841
|
var validateHelloWorldBinding = /* @__PURE__ */ __name((diagnostics, field, value) => {
|
|
86735
86842
|
if (typeof value !== "object" || value === null) {
|
|
86736
86843
|
diagnostics.errors.push(
|
|
@@ -86952,6 +87059,7 @@ var validatePreviewsConfig = /* @__PURE__ */ __name((envName) => (diagnostics, f
|
|
|
86952
87059
|
"media",
|
|
86953
87060
|
"pipelines",
|
|
86954
87061
|
"secrets_store_secrets",
|
|
87062
|
+
"artifacts",
|
|
86955
87063
|
"unsafe_hello_world",
|
|
86956
87064
|
"worker_loaders",
|
|
86957
87065
|
"ratelimits",
|
|
@@ -87121,6 +87229,12 @@ var validatePreviewsConfig = /* @__PURE__ */ __name((envName) => (diagnostics, f
|
|
|
87121
87229
|
previews.secrets_store_secrets,
|
|
87122
87230
|
void 0
|
|
87123
87231
|
) && isValid2;
|
|
87232
|
+
isValid2 = validateBindingArray(envName, validateArtifactsBinding)(
|
|
87233
|
+
diagnostics,
|
|
87234
|
+
`${field}.artifacts`,
|
|
87235
|
+
previews.artifacts,
|
|
87236
|
+
void 0
|
|
87237
|
+
) && isValid2;
|
|
87124
87238
|
isValid2 = validateBindingArray(envName, validateHelloWorldBinding)(
|
|
87125
87239
|
diagnostics,
|
|
87126
87240
|
`${field}.unsafe_hello_world`,
|
|
@@ -94543,7 +94657,7 @@ var Yargs = YargsFactory(esm_default2);
|
|
|
94543
94657
|
var yargs_default = Yargs;
|
|
94544
94658
|
|
|
94545
94659
|
// package.json
|
|
94546
|
-
var version = "2.67.
|
|
94660
|
+
var version = "2.67.2";
|
|
94547
94661
|
|
|
94548
94662
|
// src/metrics.ts
|
|
94549
94663
|
var import_node_async_hooks = require("node:async_hooks");
|
|
@@ -96769,23 +96883,23 @@ var package_default = {
|
|
|
96769
96883
|
name: "frameworks_clis_info",
|
|
96770
96884
|
dependencies: {
|
|
96771
96885
|
"@angular/create": "21.2.6",
|
|
96772
|
-
"@tanstack/create-start": "0.59.
|
|
96773
|
-
"create-analog": "2.4.
|
|
96886
|
+
"@tanstack/create-start": "0.59.21",
|
|
96887
|
+
"create-analog": "2.4.8",
|
|
96774
96888
|
"create-astro": "5.0.5",
|
|
96775
96889
|
"create-docusaurus": "3.10.0",
|
|
96776
96890
|
"create-hono": "0.19.4",
|
|
96777
|
-
"create-next-app": "16.2.
|
|
96891
|
+
"create-next-app": "16.2.4",
|
|
96778
96892
|
"create-qwik": "1.19.2",
|
|
96779
|
-
"create-react-router": "7.14.
|
|
96893
|
+
"create-react-router": "7.14.1",
|
|
96780
96894
|
"create-rwsdk": "3.1.3",
|
|
96781
96895
|
"create-solid": "0.7.0",
|
|
96782
|
-
"create-vike": "0.0.
|
|
96896
|
+
"create-vike": "0.0.622",
|
|
96783
96897
|
"create-vite": "9.0.4",
|
|
96784
96898
|
"create-vue": "3.22.2",
|
|
96785
96899
|
"create-waku": "0.12.5-1.0.0-alpha.7-0",
|
|
96786
96900
|
gatsby: "5.16.1",
|
|
96787
96901
|
nuxi: "3.34.0",
|
|
96788
|
-
sv: "0.12.
|
|
96902
|
+
sv: "0.12.5"
|
|
96789
96903
|
},
|
|
96790
96904
|
info: [
|
|
96791
96905
|
"This package.json is only used to keep track of the frameworks cli dependencies",
|
|
@@ -98531,23 +98645,23 @@ async function getVariant2(ctx) {
|
|
|
98531
98645
|
lang: "ts",
|
|
98532
98646
|
label: "TypeScript"
|
|
98533
98647
|
},
|
|
98534
|
-
{
|
|
98535
|
-
value: "react-swc-ts",
|
|
98536
|
-
lang: "ts",
|
|
98537
|
-
label: "TypeScript + SWC"
|
|
98538
|
-
},
|
|
98539
98648
|
{
|
|
98540
98649
|
value: "react",
|
|
98541
98650
|
lang: "js",
|
|
98542
98651
|
label: "JavaScript"
|
|
98543
|
-
},
|
|
98544
|
-
{
|
|
98545
|
-
value: "react-swc",
|
|
98546
|
-
lang: "js",
|
|
98547
|
-
label: "JavaScript + SWC"
|
|
98548
98652
|
}
|
|
98549
98653
|
];
|
|
98550
98654
|
if (ctx.args.variant) {
|
|
98655
|
+
const deprecatedVariantReplacements = {
|
|
98656
|
+
"react-swc-ts": "react-ts",
|
|
98657
|
+
"react-swc": "react"
|
|
98658
|
+
};
|
|
98659
|
+
const replacement = deprecatedVariantReplacements[ctx.args.variant];
|
|
98660
|
+
if (replacement) {
|
|
98661
|
+
throw new Error(
|
|
98662
|
+
`The React variant "${ctx.args.variant}" is no longer available. Use "${replacement}" instead.`
|
|
98663
|
+
);
|
|
98664
|
+
}
|
|
98551
98665
|
const selected2 = variantsOptions2.find(
|
|
98552
98666
|
(variant) => variant.value === ctx.args.variant
|
|
98553
98667
|
);
|
|
@@ -99243,7 +99357,7 @@ If the application uses Durable Objects or Workflows, refer to the relevant best
|
|
|
99243
99357
|
var import_node_assert6 = __toESM(require("node:assert"));
|
|
99244
99358
|
|
|
99245
99359
|
// ../wrangler/package.json
|
|
99246
|
-
var version2 = "4.
|
|
99360
|
+
var version2 = "4.84.1";
|
|
99247
99361
|
|
|
99248
99362
|
// src/git.ts
|
|
99249
99363
|
var offerGit = async (ctx) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-cloudflare",
|
|
3
|
-
"version": "2.67.
|
|
3
|
+
"version": "2.67.2",
|
|
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": "^0.6.3",
|
|
34
|
-
"@cloudflare/workers-types": "^4.
|
|
34
|
+
"@cloudflare/workers-types": "^4.20260421.1",
|
|
35
35
|
"@types/command-exists": "^1.2.0",
|
|
36
36
|
"@types/cross-spawn": "^6.0.2",
|
|
37
37
|
"@types/deepmerge": "^2.2.0",
|
|
@@ -53,7 +53,6 @@
|
|
|
53
53
|
"execa": "^7.1.1",
|
|
54
54
|
"exit-hook": "2.2.1",
|
|
55
55
|
"get-port": "^7.1.0",
|
|
56
|
-
"glob": "^10.5.0",
|
|
57
56
|
"haikunator": "^2.1.2",
|
|
58
57
|
"indent-string": "^5.0.0",
|
|
59
58
|
"jsonc-parser": "^3.2.0",
|
|
@@ -62,6 +61,7 @@
|
|
|
62
61
|
"recast": "^0.23.11",
|
|
63
62
|
"semver": "^7.7.1",
|
|
64
63
|
"smol-toml": "^1.5.2",
|
|
64
|
+
"tinyglobby": "^0.2.12",
|
|
65
65
|
"tree-kill": "^1.2.2",
|
|
66
66
|
"typescript": "~5.8.3",
|
|
67
67
|
"undici": "7.24.8",
|
|
@@ -75,10 +75,10 @@
|
|
|
75
75
|
"@cloudflare/cli": "1.4.0",
|
|
76
76
|
"@cloudflare/codemod": "1.1.0",
|
|
77
77
|
"@cloudflare/mock-npm-registry": "0.0.0",
|
|
78
|
-
"@cloudflare/vite-plugin": "1.
|
|
78
|
+
"@cloudflare/vite-plugin": "1.33.1",
|
|
79
79
|
"@cloudflare/workers-tsconfig": "0.0.0",
|
|
80
|
-
"@cloudflare/workers-utils": "0.
|
|
81
|
-
"wrangler": "4.
|
|
80
|
+
"@cloudflare/workers-utils": "0.17.0",
|
|
81
|
+
"wrangler": "4.84.1"
|
|
82
82
|
},
|
|
83
83
|
"engines": {
|
|
84
84
|
"node": ">=20.0.0"
|
|
@@ -122,25 +122,27 @@ async function getVariant(ctx: C3Context) {
|
|
|
122
122
|
lang: "ts",
|
|
123
123
|
label: "TypeScript",
|
|
124
124
|
},
|
|
125
|
-
{
|
|
126
|
-
value: "react-swc-ts",
|
|
127
|
-
lang: "ts",
|
|
128
|
-
label: "TypeScript + SWC",
|
|
129
|
-
},
|
|
130
125
|
{
|
|
131
126
|
value: "react",
|
|
132
127
|
lang: "js",
|
|
133
128
|
label: "JavaScript",
|
|
134
129
|
},
|
|
135
|
-
{
|
|
136
|
-
value: "react-swc",
|
|
137
|
-
lang: "js",
|
|
138
|
-
label: "JavaScript + SWC",
|
|
139
|
-
},
|
|
140
130
|
];
|
|
141
131
|
|
|
142
132
|
// If variant is provided via CLI args, use it directly
|
|
143
133
|
if (ctx.args.variant) {
|
|
134
|
+
const deprecatedVariantReplacements: Record<string, string> = {
|
|
135
|
+
"react-swc-ts": "react-ts",
|
|
136
|
+
"react-swc": "react",
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
const replacement = deprecatedVariantReplacements[ctx.args.variant];
|
|
140
|
+
if (replacement) {
|
|
141
|
+
throw new Error(
|
|
142
|
+
`The React variant "${ctx.args.variant}" is no longer available. Use "${replacement}" instead.`
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
144
146
|
const selected = variantsOptions.find(
|
|
145
147
|
(variant) => variant.value === ctx.args.variant
|
|
146
148
|
);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { useState } from 'react'
|
|
2
2
|
import reactLogo from './assets/react.svg'
|
|
3
3
|
import viteLogo from './assets/vite.svg'
|
|
4
|
-
import cloudflareLogo from './assets/
|
|
4
|
+
import cloudflareLogo from './assets/cloudflare.svg'
|
|
5
|
+
import heroImg from './assets/hero.png'
|
|
5
6
|
import './App.css'
|
|
6
7
|
|
|
7
8
|
function App() {
|
|
@@ -10,47 +11,136 @@ function App() {
|
|
|
10
11
|
|
|
11
12
|
return (
|
|
12
13
|
<>
|
|
13
|
-
<
|
|
14
|
-
<
|
|
15
|
-
<img src={
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
</
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
14
|
+
<section id="center">
|
|
15
|
+
<div className="hero">
|
|
16
|
+
<img src={heroImg} className="base" width="170" height="179" alt="" />
|
|
17
|
+
<img src={reactLogo} className="framework" alt="React logo" />
|
|
18
|
+
<img src={viteLogo} className="vite" alt="Vite logo" />
|
|
19
|
+
</div>
|
|
20
|
+
<div>
|
|
21
|
+
<h1>Get started with Cloudflare</h1>
|
|
22
|
+
<p>
|
|
23
|
+
Edit <code>src/App.jsx</code> or <code>worker/index.js</code> and save to test <code>HMR</code>
|
|
24
|
+
</p>
|
|
25
|
+
</div>
|
|
26
|
+
<ul style={{ display: 'flex', gap: '1rem', listStyle: 'none', padding: 0 }}>
|
|
27
|
+
<li>
|
|
28
|
+
<button
|
|
29
|
+
className="counter"
|
|
30
|
+
onClick={() => setCount((count) => count + 1)}
|
|
31
|
+
>
|
|
32
|
+
Count is {count}
|
|
33
|
+
</button>
|
|
34
|
+
</li>
|
|
35
|
+
<li>
|
|
36
|
+
<button
|
|
37
|
+
className="counter"
|
|
38
|
+
onClick={() => {
|
|
39
|
+
fetch('/api/')
|
|
40
|
+
.then((res) => res.json())
|
|
41
|
+
.then((data) => setName(data.name))
|
|
42
|
+
}}
|
|
43
|
+
aria-label='get name'
|
|
44
|
+
>
|
|
45
|
+
Name from API is: {name}
|
|
46
|
+
</button>
|
|
47
|
+
</li>
|
|
48
|
+
</ul>
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
</section>
|
|
52
|
+
|
|
53
|
+
<div className="ticks"></div>
|
|
54
|
+
|
|
55
|
+
<section id="next-steps">
|
|
56
|
+
<div id="docs">
|
|
57
|
+
<svg className="icon" role="presentation" aria-hidden="true">
|
|
58
|
+
<use href="/icons.svg#documentation-icon"></use>
|
|
59
|
+
</svg>
|
|
60
|
+
<h2>Documentation</h2>
|
|
61
|
+
<p>Your questions, answered</p>
|
|
62
|
+
<ul>
|
|
63
|
+
<li>
|
|
64
|
+
<a href="https://vite.dev/" target="_blank">
|
|
65
|
+
<img className="logo" src={viteLogo} alt="" />
|
|
66
|
+
Explore Vite
|
|
67
|
+
</a>
|
|
68
|
+
</li>
|
|
69
|
+
<li>
|
|
70
|
+
<a href="https://react.dev/" target="_blank">
|
|
71
|
+
<img className="button-icon" src={reactLogo} alt="" />
|
|
72
|
+
Learn more
|
|
73
|
+
</a>
|
|
74
|
+
</li>
|
|
75
|
+
<li>
|
|
76
|
+
<a href="https://workers.cloudflare.com/" target="_blank">
|
|
77
|
+
<img className="button-icon" src={cloudflareLogo} alt="" />
|
|
78
|
+
Workers Docs
|
|
79
|
+
</a>
|
|
80
|
+
</li>
|
|
81
|
+
</ul>
|
|
82
|
+
</div>
|
|
83
|
+
<div id="social">
|
|
84
|
+
<svg className="icon" role="presentation" aria-hidden="true">
|
|
85
|
+
<use href="/icons.svg#social-icon"></use>
|
|
86
|
+
</svg>
|
|
87
|
+
<h2>Connect with us</h2>
|
|
88
|
+
<p>Join the Vite community</p>
|
|
89
|
+
<ul>
|
|
90
|
+
<li>
|
|
91
|
+
<a href="https://github.com/vitejs/vite" target="_blank">
|
|
92
|
+
<svg
|
|
93
|
+
className="button-icon"
|
|
94
|
+
role="presentation"
|
|
95
|
+
aria-hidden="true"
|
|
96
|
+
>
|
|
97
|
+
<use href="/icons.svg#github-icon"></use>
|
|
98
|
+
</svg>
|
|
99
|
+
GitHub
|
|
100
|
+
</a>
|
|
101
|
+
</li>
|
|
102
|
+
<li>
|
|
103
|
+
<a href="https://chat.vite.dev/" target="_blank">
|
|
104
|
+
<svg
|
|
105
|
+
className="button-icon"
|
|
106
|
+
role="presentation"
|
|
107
|
+
aria-hidden="true"
|
|
108
|
+
>
|
|
109
|
+
<use href="/icons.svg#discord-icon"></use>
|
|
110
|
+
</svg>
|
|
111
|
+
Discord
|
|
112
|
+
</a>
|
|
113
|
+
</li>
|
|
114
|
+
<li>
|
|
115
|
+
<a href="https://x.com/vite_js" target="_blank">
|
|
116
|
+
<svg
|
|
117
|
+
className="button-icon"
|
|
118
|
+
role="presentation"
|
|
119
|
+
aria-hidden="true"
|
|
120
|
+
>
|
|
121
|
+
<use href="/icons.svg#x-icon"></use>
|
|
122
|
+
</svg>
|
|
123
|
+
X.com
|
|
124
|
+
</a>
|
|
125
|
+
</li>
|
|
126
|
+
<li>
|
|
127
|
+
<a href="https://bsky.app/profile/vite.dev" target="_blank">
|
|
128
|
+
<svg
|
|
129
|
+
className="button-icon"
|
|
130
|
+
role="presentation"
|
|
131
|
+
aria-hidden="true"
|
|
132
|
+
>
|
|
133
|
+
<use href="/icons.svg#bluesky-icon"></use>
|
|
134
|
+
</svg>
|
|
135
|
+
Bluesky
|
|
136
|
+
</a>
|
|
137
|
+
</li>
|
|
138
|
+
</ul>
|
|
139
|
+
</div>
|
|
140
|
+
</section>
|
|
141
|
+
|
|
142
|
+
<div className="ticks"></div>
|
|
143
|
+
<section id="spacer"></section>
|
|
54
144
|
</>
|
|
55
145
|
)
|
|
56
146
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="19" fill="none" viewBox="0 0 40 19"><path fill="#f6821f" d="m27.16 18.507.204-.735c.242-.873.152-1.68-.255-2.274-.374-.547-.998-.868-1.755-.906l-14.346-.19a.3.3 0 0 1-.127-.034.3.3 0 0 1-.099-.09.31.31 0 0 1-.03-.27.4.4 0 0 1 .128-.185.37.37 0 0 1 .205-.081l14.479-.192c1.717-.082 3.576-1.536 4.227-3.31l.826-2.25a.55.55 0 0 0 .022-.298C29.702 3.29 25.94 0 21.44 0c-4.146 0-7.667 2.792-8.928 6.673a4.1 4.1 0 0 0-2.978-.86c-1.99.206-3.589 1.877-3.786 3.953a4.6 4.6 0 0 0 .11 1.547C2.605 11.41 0 14.189 0 17.603q0 .459.065.911c.009.07.042.134.093.18.05.047.116.072.183.073l26.485.003h.007a.34.34 0 0 0 .205-.076.36.36 0 0 0 .122-.187"/><path fill="#fbad41" d="M31.94 8.153q-.2 0-.397.01a.2.2 0 0 0-.062.014.2.2 0 0 0-.091.061.24.24 0 0 0-.054.098l-.564 2.033c-.243.874-.152 1.68.254 2.274.375.547.998.868 1.756.906l3.058.191a.3.3 0 0 1 .123.035.28.28 0 0 1 .142.22.3.3 0 0 1-.015.14.4.4 0 0 1-.128.185.37.37 0 0 1-.205.08l-3.177.192c-1.725.083-3.585 1.536-4.235 3.31l-.23.626a.18.18 0 0 0 .017.16.17.17 0 0 0 .134.08h10.941a.3.3 0 0 0 .176-.06.3.3 0 0 0 .106-.16 8.5 8.5 0 0 0 .291-2.216c0-4.517-3.51-8.18-7.84-8.18"/></svg>
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { useState } from 'react'
|
|
2
2
|
import reactLogo from './assets/react.svg'
|
|
3
3
|
import viteLogo from './assets/vite.svg'
|
|
4
|
-
import cloudflareLogo from './assets/
|
|
4
|
+
import cloudflareLogo from './assets/cloudflare.svg'
|
|
5
|
+
import heroImg from './assets/hero.png'
|
|
5
6
|
import './App.css'
|
|
6
7
|
|
|
7
8
|
function App() {
|
|
@@ -10,47 +11,136 @@ function App() {
|
|
|
10
11
|
|
|
11
12
|
return (
|
|
12
13
|
<>
|
|
13
|
-
<
|
|
14
|
-
<
|
|
15
|
-
<img src={
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
</
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
14
|
+
<section id="center">
|
|
15
|
+
<div className="hero">
|
|
16
|
+
<img src={heroImg} className="base" width="170" height="179" alt="" />
|
|
17
|
+
<img src={reactLogo} className="framework" alt="React logo" />
|
|
18
|
+
<img src={viteLogo} className="vite" alt="Vite logo" />
|
|
19
|
+
</div>
|
|
20
|
+
<div>
|
|
21
|
+
<h1>Get started with Cloudflare</h1>
|
|
22
|
+
<p>
|
|
23
|
+
Edit <code>src/App.tsx</code> or <code>worker/index.ts</code> and save to test <code>HMR</code>
|
|
24
|
+
</p>
|
|
25
|
+
</div>
|
|
26
|
+
<ul style={{ display: 'flex', gap: '1rem', listStyle: 'none', padding: 0 }}>
|
|
27
|
+
<li>
|
|
28
|
+
<button
|
|
29
|
+
className="counter"
|
|
30
|
+
onClick={() => setCount((count) => count + 1)}
|
|
31
|
+
>
|
|
32
|
+
Count is {count}
|
|
33
|
+
</button>
|
|
34
|
+
</li>
|
|
35
|
+
<li>
|
|
36
|
+
<button
|
|
37
|
+
className="counter"
|
|
38
|
+
onClick={() => {
|
|
39
|
+
fetch('/api/')
|
|
40
|
+
.then((res) => res.json())
|
|
41
|
+
.then((data) => setName(data.name))
|
|
42
|
+
}}
|
|
43
|
+
aria-label='get name'
|
|
44
|
+
>
|
|
45
|
+
Name from API is: {name}
|
|
46
|
+
</button>
|
|
47
|
+
</li>
|
|
48
|
+
</ul>
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
</section>
|
|
52
|
+
|
|
53
|
+
<div className="ticks"></div>
|
|
54
|
+
|
|
55
|
+
<section id="next-steps">
|
|
56
|
+
<div id="docs">
|
|
57
|
+
<svg className="icon" role="presentation" aria-hidden="true">
|
|
58
|
+
<use href="/icons.svg#documentation-icon"></use>
|
|
59
|
+
</svg>
|
|
60
|
+
<h2>Documentation</h2>
|
|
61
|
+
<p>Your questions, answered</p>
|
|
62
|
+
<ul>
|
|
63
|
+
<li>
|
|
64
|
+
<a href="https://vite.dev/" target="_blank">
|
|
65
|
+
<img className="logo" src={viteLogo} alt="" />
|
|
66
|
+
Explore Vite
|
|
67
|
+
</a>
|
|
68
|
+
</li>
|
|
69
|
+
<li>
|
|
70
|
+
<a href="https://react.dev/" target="_blank">
|
|
71
|
+
<img className="button-icon" src={reactLogo} alt="" />
|
|
72
|
+
Learn more
|
|
73
|
+
</a>
|
|
74
|
+
</li>
|
|
75
|
+
<li>
|
|
76
|
+
<a href="https://workers.cloudflare.com/" target="_blank">
|
|
77
|
+
<img className="button-icon" src={cloudflareLogo} alt="" />
|
|
78
|
+
Workers Docs
|
|
79
|
+
</a>
|
|
80
|
+
</li>
|
|
81
|
+
</ul>
|
|
82
|
+
</div>
|
|
83
|
+
<div id="social">
|
|
84
|
+
<svg className="icon" role="presentation" aria-hidden="true">
|
|
85
|
+
<use href="/icons.svg#social-icon"></use>
|
|
86
|
+
</svg>
|
|
87
|
+
<h2>Connect with us</h2>
|
|
88
|
+
<p>Join the Vite community</p>
|
|
89
|
+
<ul>
|
|
90
|
+
<li>
|
|
91
|
+
<a href="https://github.com/vitejs/vite" target="_blank">
|
|
92
|
+
<svg
|
|
93
|
+
className="button-icon"
|
|
94
|
+
role="presentation"
|
|
95
|
+
aria-hidden="true"
|
|
96
|
+
>
|
|
97
|
+
<use href="/icons.svg#github-icon"></use>
|
|
98
|
+
</svg>
|
|
99
|
+
GitHub
|
|
100
|
+
</a>
|
|
101
|
+
</li>
|
|
102
|
+
<li>
|
|
103
|
+
<a href="https://chat.vite.dev/" target="_blank">
|
|
104
|
+
<svg
|
|
105
|
+
className="button-icon"
|
|
106
|
+
role="presentation"
|
|
107
|
+
aria-hidden="true"
|
|
108
|
+
>
|
|
109
|
+
<use href="/icons.svg#discord-icon"></use>
|
|
110
|
+
</svg>
|
|
111
|
+
Discord
|
|
112
|
+
</a>
|
|
113
|
+
</li>
|
|
114
|
+
<li>
|
|
115
|
+
<a href="https://x.com/vite_js" target="_blank">
|
|
116
|
+
<svg
|
|
117
|
+
className="button-icon"
|
|
118
|
+
role="presentation"
|
|
119
|
+
aria-hidden="true"
|
|
120
|
+
>
|
|
121
|
+
<use href="/icons.svg#x-icon"></use>
|
|
122
|
+
</svg>
|
|
123
|
+
X.com
|
|
124
|
+
</a>
|
|
125
|
+
</li>
|
|
126
|
+
<li>
|
|
127
|
+
<a href="https://bsky.app/profile/vite.dev" target="_blank">
|
|
128
|
+
<svg
|
|
129
|
+
className="button-icon"
|
|
130
|
+
role="presentation"
|
|
131
|
+
aria-hidden="true"
|
|
132
|
+
>
|
|
133
|
+
<use href="/icons.svg#bluesky-icon"></use>
|
|
134
|
+
</svg>
|
|
135
|
+
Bluesky
|
|
136
|
+
</a>
|
|
137
|
+
</li>
|
|
138
|
+
</ul>
|
|
139
|
+
</div>
|
|
140
|
+
</section>
|
|
141
|
+
|
|
142
|
+
<div className="ticks"></div>
|
|
143
|
+
<section id="spacer"></section>
|
|
54
144
|
</>
|
|
55
145
|
)
|
|
56
146
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="19" fill="none" viewBox="0 0 40 19"><path fill="#f6821f" d="m27.16 18.507.204-.735c.242-.873.152-1.68-.255-2.274-.374-.547-.998-.868-1.755-.906l-14.346-.19a.3.3 0 0 1-.127-.034.3.3 0 0 1-.099-.09.31.31 0 0 1-.03-.27.4.4 0 0 1 .128-.185.37.37 0 0 1 .205-.081l14.479-.192c1.717-.082 3.576-1.536 4.227-3.31l.826-2.25a.55.55 0 0 0 .022-.298C29.702 3.29 25.94 0 21.44 0c-4.146 0-7.667 2.792-8.928 6.673a4.1 4.1 0 0 0-2.978-.86c-1.99.206-3.589 1.877-3.786 3.953a4.6 4.6 0 0 0 .11 1.547C2.605 11.41 0 14.189 0 17.603q0 .459.065.911c.009.07.042.134.093.18.05.047.116.072.183.073l26.485.003h.007a.34.34 0 0 0 .205-.076.36.36 0 0 0 .122-.187"/><path fill="#fbad41" d="M31.94 8.153q-.2 0-.397.01a.2.2 0 0 0-.062.014.2.2 0 0 0-.091.061.24.24 0 0 0-.054.098l-.564 2.033c-.243.874-.152 1.68.254 2.274.375.547.998.868 1.756.906l3.058.191a.3.3 0 0 1 .123.035.28.28 0 0 1 .142.22.3.3 0 0 1-.015.14.4.4 0 0 1-.128.185.37.37 0 0 1-.205.08l-3.177.192c-1.725.083-3.585 1.536-4.235 3.31l-.23.626a.18.18 0 0 0 .017.16.17.17 0 0 0 .134.08h10.941a.3.3 0 0 0 .176-.06.3.3 0 0 0 .106-.16 8.5 8.5 0 0 0 .291-2.216c0-4.517-3.51-8.18-7.84-8.18"/></svg>
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
#root {
|
|
2
|
-
max-width: 1280px;
|
|
3
|
-
margin: 0 auto;
|
|
4
|
-
padding: 2rem;
|
|
5
|
-
text-align: center;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.logo {
|
|
9
|
-
height: 6em;
|
|
10
|
-
padding: 1.5em;
|
|
11
|
-
will-change: filter;
|
|
12
|
-
transition: filter 300ms;
|
|
13
|
-
}
|
|
14
|
-
.logo:hover {
|
|
15
|
-
filter: drop-shadow(0 0 2em #646cffaa);
|
|
16
|
-
}
|
|
17
|
-
.logo.react:hover {
|
|
18
|
-
filter: drop-shadow(0 0 2em #61dafbaa);
|
|
19
|
-
}
|
|
20
|
-
.logo.cloudflare:hover {
|
|
21
|
-
filter: drop-shadow(0 0 2em #f6821faa);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@keyframes logo-spin {
|
|
25
|
-
from {
|
|
26
|
-
transform: rotate(0deg);
|
|
27
|
-
}
|
|
28
|
-
to {
|
|
29
|
-
transform: rotate(360deg);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
34
|
-
a:nth-of-type(2) .logo {
|
|
35
|
-
animation: logo-spin infinite 20s linear;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.card {
|
|
40
|
-
padding: 2em;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.read-the-docs {
|
|
44
|
-
color: #888;
|
|
45
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
-
viewBox="0 0 822.8 355.5" style="enable-background:new 0 0 822.8 355.5;" xml:space="preserve">
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
.st0{fill:#FFFFFF;}
|
|
7
|
-
@media(prefers-color-scheme:light){.st0{fill:#404242;}}
|
|
8
|
-
.st1{fill:#FFFFFF;}
|
|
9
|
-
.st2{fill:#FBAE40;}
|
|
10
|
-
.st3{fill:#F58220;}
|
|
11
|
-
</style>
|
|
12
|
-
<g id="Page-1">
|
|
13
|
-
<path id="CLOUDFLARE-_xAE_" class="st0" d="M772.2,252.6c-3.4,0-6.1-2.7-6.1-6.1c0-3.3,2.7-6.1,6.1-6.1c3.3,0,6.1,2.7,6.1,6.1
|
|
14
|
-
C778.3,249.8,775.5,252.6,772.2,252.6L772.2,252.6z M772.2,241.6c-2.7,0-4.9,2.2-4.9,4.9s2.2,4.9,4.9,4.9c2.7,0,4.9-2.2,4.9-4.9
|
|
15
|
-
S774.9,241.6,772.2,241.6L772.2,241.6z M775.3,249.7h-1.4l-1.2-2.3h-1.6v2.3h-1.3V243h3.2c1.4,0,2.3,0.9,2.3,2.2c0,1-0.6,1.7-1.4,2
|
|
16
|
-
L775.3,249.7z M772.9,246.2c0.5,0,1-0.3,1-1c0-0.8-0.4-1-1-1h-2v2H772.9z M136.7,239.8h15.6v42.5h27.1v13.6h-42.7V239.8z
|
|
17
|
-
M195.5,268v-0.2c0-16.1,13-29.2,30.3-29.2s30.1,12.9,30.1,29v0.2c0,16.1-13,29.2-30.3,29.2S195.5,284.1,195.5,268z M240.1,268
|
|
18
|
-
v-0.2c0-8.1-5.8-15.1-14.4-15.1c-8.5,0-14.2,6.9-14.2,15v0.2c0,8.1,5.8,15.1,14.3,15.1C234.4,283,240.1,276.1,240.1,268z
|
|
19
|
-
M275,271.3v-31.5h15.8V271c0,8.1,4.1,11.9,10.3,11.9c6.2,0,10.3-3.7,10.3-11.5v-31.6h15.8v31.1c0,18.1-10.3,26-26.3,26
|
|
20
|
-
C285,296.9,275,288.9,275,271.3z M351,239.8h21.6c20,0,31.7,11.5,31.7,27.7v0.2c0,16.2-11.8,28.2-32,28.2H351V239.8z M372.9,282.1
|
|
21
|
-
c9.3,0,15.5-5.1,15.5-14.2v-0.2c0-9-6.2-14.2-15.5-14.2h-6.3V282L372.9,282.1L372.9,282.1z M426.9,239.8h44.9v13.6h-29.4v9.6H469
|
|
22
|
-
v12.9h-26.6v20h-15.5V239.8z M493.4,239.8h15.5v42.5h27.2v13.6h-42.7V239.8z M576.7,239.4h15l23.9,56.5h-16.7l-4.1-10h-21.6l-4,10
|
|
23
|
-
h-16.3L576.7,239.4z M590.4,273.8l-6.2-15.9l-6.3,15.9H590.4z M635.6,239.8h26.5c8.6,0,14.5,2.2,18.3,6.1c3.3,3.2,5,7.5,5,13.1v0.2
|
|
24
|
-
c0,8.6-4.6,14.3-11.5,17.2l13.4,19.6h-18L658,279h-6.8v17h-15.6V239.8z M661.4,266.7c5.3,0,8.3-2.6,8.3-6.6v-0.2
|
|
25
|
-
c0-4.4-3.2-6.6-8.4-6.6h-10.2v13.4H661.4z M707.8,239.8h45.1V253h-29.7v8.5h26.9v12.3h-26.9v8.9h30.1v13.2h-45.5V239.8z
|
|
26
|
-
M102.7,274.6c-2.2,4.9-6.8,8.4-12.8,8.4c-8.5,0-14.3-7.1-14.3-15.1v-0.2c0-8.1,5.7-15,14.2-15c6.4,0,11.3,3.9,13.3,9.3h16.4
|
|
27
|
-
c-2.6-13.4-14.4-23.3-29.6-23.3c-17.3,0-30.3,13.1-30.3,29.2v0.2c0,16.1,12.8,29,30.1,29c14.8,0,26.4-9.6,29.4-22.4L102.7,274.6z"
|
|
28
|
-
/>
|
|
29
|
-
<path id="flare" class="st1" d="M734.5,150.4l-40.7-24.7c-0.6-0.1-4.4,0.3-6.4-0.7c-1.4-0.7-2.5-1.9-3.2-4c-3.2,0-175.5,0-175.5,0
|
|
30
|
-
v91.8h225.8V150.4z"/>
|
|
31
|
-
<path id="right-cloud" class="st2" d="M692.2,125.8c-0.8,0-1.5,0.6-1.8,1.4l-4.8,16.7c-2.1,7.2-1.3,13.8,2.2,18.7
|
|
32
|
-
c3.2,4.5,8.6,7.1,15.1,7.4l26.2,1.6c0.8,0,1.5,0.4,1.9,1c0.4,0.6,0.5,1.5,0.3,2.2c-0.4,1.2-1.6,2.1-2.9,2.2l-27.3,1.6
|
|
33
|
-
c-14.8,0.7-30.7,12.6-36.3,27.2l-2,5.1c-0.4,1,0.3,2,1.4,2H758c1.1,0,2.1-0.7,2.4-1.8c1.6-5.8,2.5-11.9,2.5-18.2
|
|
34
|
-
c0-37-30.2-67.2-67.3-67.2C694.5,125.7,693.3,125.7,692.2,125.8z"/>
|
|
35
|
-
<path id="left-cloud" class="st3" d="M656.4,204.6c2.1-7.2,1.3-13.8-2.2-18.7c-3.2-4.5-8.6-7.1-15.1-7.4L516,176.9
|
|
36
|
-
c-0.8,0-1.5-0.4-1.9-1c-0.4-0.6-0.5-1.4-0.3-2.2c0.4-1.2,1.6-2.1,2.9-2.2l124.2-1.6c14.7-0.7,30.7-12.6,36.3-27.2l7.1-18.5
|
|
37
|
-
c0.3-0.8,0.4-1.6,0.2-2.4c-8-36.2-40.3-63.2-78.9-63.2c-35.6,0-65.8,23-76.6,54.9c-7-5.2-15.9-8-25.5-7.1
|
|
38
|
-
c-17.1,1.7-30.8,15.4-32.5,32.5c-0.4,4.4-0.1,8.7,0.9,12.7c-27.9,0.8-50.2,23.6-50.2,51.7c0,2.5,0.2,5,0.5,7.5
|
|
39
|
-
c0.2,1.2,1.2,2.1,2.4,2.1h227.2c1.3,0,2.5-0.9,2.9-2.2L656.4,204.6z"/>
|
|
40
|
-
</g>
|
|
41
|
-
<g>
|
|
42
|
-
</g>
|
|
43
|
-
<g>
|
|
44
|
-
</g>
|
|
45
|
-
<g>
|
|
46
|
-
</g>
|
|
47
|
-
<g>
|
|
48
|
-
</g>
|
|
49
|
-
<g>
|
|
50
|
-
</g>
|
|
51
|
-
<g>
|
|
52
|
-
</g>
|
|
53
|
-
</svg>
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
#root {
|
|
2
|
-
max-width: 1280px;
|
|
3
|
-
margin: 0 auto;
|
|
4
|
-
padding: 2rem;
|
|
5
|
-
text-align: center;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.logo {
|
|
9
|
-
height: 6em;
|
|
10
|
-
padding: 1.5em;
|
|
11
|
-
will-change: filter;
|
|
12
|
-
transition: filter 300ms;
|
|
13
|
-
}
|
|
14
|
-
.logo:hover {
|
|
15
|
-
filter: drop-shadow(0 0 2em #646cffaa);
|
|
16
|
-
}
|
|
17
|
-
.logo.react:hover {
|
|
18
|
-
filter: drop-shadow(0 0 2em #61dafbaa);
|
|
19
|
-
}
|
|
20
|
-
.logo.cloudflare:hover {
|
|
21
|
-
filter: drop-shadow(0 0 2em #f6821faa);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@keyframes logo-spin {
|
|
25
|
-
from {
|
|
26
|
-
transform: rotate(0deg);
|
|
27
|
-
}
|
|
28
|
-
to {
|
|
29
|
-
transform: rotate(360deg);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
34
|
-
a:nth-of-type(2) .logo {
|
|
35
|
-
animation: logo-spin infinite 20s linear;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.card {
|
|
40
|
-
padding: 2em;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.read-the-docs {
|
|
44
|
-
color: #888;
|
|
45
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
-
viewBox="0 0 822.8 355.5" style="enable-background:new 0 0 822.8 355.5;" xml:space="preserve">
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
.st0{fill:#FFFFFF;}
|
|
7
|
-
.st1{fill:#FBAE40;}
|
|
8
|
-
.st2{fill:#F58220;}
|
|
9
|
-
</style>
|
|
10
|
-
<g id="Page-1">
|
|
11
|
-
<path id="CLOUDFLARE-_xAE_" class="st0" d="M772.2,252.6c-3.4,0-6.1-2.7-6.1-6.1c0-3.3,2.7-6.1,6.1-6.1c3.3,0,6.1,2.7,6.1,6.1
|
|
12
|
-
C778.3,249.8,775.5,252.6,772.2,252.6L772.2,252.6z M772.2,241.6c-2.7,0-4.9,2.2-4.9,4.9s2.2,4.9,4.9,4.9c2.7,0,4.9-2.2,4.9-4.9
|
|
13
|
-
S774.9,241.6,772.2,241.6L772.2,241.6z M775.3,249.7h-1.4l-1.2-2.3h-1.6v2.3h-1.3V243h3.2c1.4,0,2.3,0.9,2.3,2.2c0,1-0.6,1.7-1.4,2
|
|
14
|
-
L775.3,249.7z M772.9,246.2c0.5,0,1-0.3,1-1c0-0.8-0.4-1-1-1h-2v2H772.9z M136.7,239.8h15.6v42.5h27.1v13.6h-42.7V239.8z
|
|
15
|
-
M195.5,268v-0.2c0-16.1,13-29.2,30.3-29.2s30.1,12.9,30.1,29v0.2c0,16.1-13,29.2-30.3,29.2S195.5,284.1,195.5,268z M240.1,268
|
|
16
|
-
v-0.2c0-8.1-5.8-15.1-14.4-15.1c-8.5,0-14.2,6.9-14.2,15v0.2c0,8.1,5.8,15.1,14.3,15.1C234.4,283,240.1,276.1,240.1,268z
|
|
17
|
-
M275,271.3v-31.5h15.8V271c0,8.1,4.1,11.9,10.3,11.9c6.2,0,10.3-3.7,10.3-11.5v-31.6h15.8v31.1c0,18.1-10.3,26-26.3,26
|
|
18
|
-
C285,296.9,275,288.9,275,271.3z M351,239.8h21.6c20,0,31.7,11.5,31.7,27.7v0.2c0,16.2-11.8,28.2-32,28.2H351V239.8z M372.9,282.1
|
|
19
|
-
c9.3,0,15.5-5.1,15.5-14.2v-0.2c0-9-6.2-14.2-15.5-14.2h-6.3V282L372.9,282.1L372.9,282.1z M426.9,239.8h44.9v13.6h-29.4v9.6H469
|
|
20
|
-
v12.9h-26.6v20h-15.5V239.8z M493.4,239.8h15.5v42.5h27.2v13.6h-42.7V239.8z M576.7,239.4h15l23.9,56.5h-16.7l-4.1-10h-21.6l-4,10
|
|
21
|
-
h-16.3L576.7,239.4z M590.4,273.8l-6.2-15.9l-6.3,15.9H590.4z M635.6,239.8h26.5c8.6,0,14.5,2.2,18.3,6.1c3.3,3.2,5,7.5,5,13.1v0.2
|
|
22
|
-
c0,8.6-4.6,14.3-11.5,17.2l13.4,19.6h-18L658,279h-6.8v17h-15.6V239.8z M661.4,266.7c5.3,0,8.3-2.6,8.3-6.6v-0.2
|
|
23
|
-
c0-4.4-3.2-6.6-8.4-6.6h-10.2v13.4H661.4z M707.8,239.8h45.1V253h-29.7v8.5h26.9v12.3h-26.9v8.9h30.1v13.2h-45.5V239.8z
|
|
24
|
-
M102.7,274.6c-2.2,4.9-6.8,8.4-12.8,8.4c-8.5,0-14.3-7.1-14.3-15.1v-0.2c0-8.1,5.7-15,14.2-15c6.4,0,11.3,3.9,13.3,9.3h16.4
|
|
25
|
-
c-2.6-13.4-14.4-23.3-29.6-23.3c-17.3,0-30.3,13.1-30.3,29.2v0.2c0,16.1,12.8,29,30.1,29c14.8,0,26.4-9.6,29.4-22.4L102.7,274.6z"
|
|
26
|
-
/>
|
|
27
|
-
<path id="flare" class="st0" d="M734.5,150.4l-40.7-24.7c-0.6-0.1-4.4,0.3-6.4-0.7c-1.4-0.7-2.5-1.9-3.2-4c-3.2,0-175.5,0-175.5,0
|
|
28
|
-
v91.8h225.8V150.4z"/>
|
|
29
|
-
<path id="right-cloud" class="st1" d="M692.2,125.8c-0.8,0-1.5,0.6-1.8,1.4l-4.8,16.7c-2.1,7.2-1.3,13.8,2.2,18.7
|
|
30
|
-
c3.2,4.5,8.6,7.1,15.1,7.4l26.2,1.6c0.8,0,1.5,0.4,1.9,1c0.4,0.6,0.5,1.5,0.3,2.2c-0.4,1.2-1.6,2.1-2.9,2.2l-27.3,1.6
|
|
31
|
-
c-14.8,0.7-30.7,12.6-36.3,27.2l-2,5.1c-0.4,1,0.3,2,1.4,2H758c1.1,0,2.1-0.7,2.4-1.8c1.6-5.8,2.5-11.9,2.5-18.2
|
|
32
|
-
c0-37-30.2-67.2-67.3-67.2C694.5,125.7,693.3,125.7,692.2,125.8z"/>
|
|
33
|
-
<path id="left-cloud" class="st2" d="M656.4,204.6c2.1-7.2,1.3-13.8-2.2-18.7c-3.2-4.5-8.6-7.1-15.1-7.4L516,176.9
|
|
34
|
-
c-0.8,0-1.5-0.4-1.9-1c-0.4-0.6-0.5-1.4-0.3-2.2c0.4-1.2,1.6-2.1,2.9-2.2l124.2-1.6c14.7-0.7,30.7-12.6,36.3-27.2l7.1-18.5
|
|
35
|
-
c0.3-0.8,0.4-1.6,0.2-2.4c-8-36.2-40.3-63.2-78.9-63.2c-35.6,0-65.8,23-76.6,54.9c-7-5.2-15.9-8-25.5-7.1
|
|
36
|
-
c-17.1,1.7-30.8,15.4-32.5,32.5c-0.4,4.4-0.1,8.7,0.9,12.7c-27.9,0.8-50.2,23.6-50.2,51.7c0,2.5,0.2,5,0.5,7.5
|
|
37
|
-
c0.2,1.2,1.2,2.1,2.4,2.1h227.2c1.3,0,2.5-0.9,2.9-2.2L656.4,204.6z"/>
|
|
38
|
-
</g>
|
|
39
|
-
<g>
|
|
40
|
-
</g>
|
|
41
|
-
<g>
|
|
42
|
-
</g>
|
|
43
|
-
<g>
|
|
44
|
-
</g>
|
|
45
|
-
<g>
|
|
46
|
-
</g>
|
|
47
|
-
<g>
|
|
48
|
-
</g>
|
|
49
|
-
<g>
|
|
50
|
-
</g>
|
|
51
|
-
</svg>
|