Skip to content

Commit 9fff4c3

Browse files
Merge branch 'production' into marcio/pcx17803-mconn-kvm
2 parents 276de7c + 9cbe5f1 commit 9fff4c3

File tree

82 files changed

+1776
-819
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+1776
-819
lines changed

.github/CODEOWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@
9494

9595
# Developer Platform
9696

97-
/src/content/containers/ @mikenomitch @cloudflare/pcx-technical-writing
98-
/src/content/release-notes/containers.yaml @mikenomitch @cloudflare/pcx-technical-writing
97+
/src/content/containers/ @mikenomitch @th0m @cloudflare/pcx-technical-writing
98+
/src/content/release-notes/containers.yaml @mikenomitch @th0m @cloudflare/pcx-technical-writing
9999
/src/content/docs/d1/ @elithrar @rozenmd @vy-ton @joshthoward @oxyjun @harshil1712 @cloudflare/pcx-technical-writing
100100
/src/content/release-notes/d1.yaml @elithrar @rozenmd @vy-ton @joshthoward @oxyjun @cloudflare/pcx-technical-writing
101101
/src/content/partials/d1/ @elithrar @rozenmd @vy-ton @joshthoward @oxyjun @harshil1712 @cloudflare/pcx-technical-writing

bin/fetch-warp-releases.js

Lines changed: 91 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@ import fs from "fs";
22
import YAML from "yaml";
33
import { marked } from "marked";
44

5-
const tracks = [
6-
"windows/ga",
7-
"windows/beta",
8-
"macos/ga",
9-
"macos/beta",
10-
"noble-intel/ga",
11-
"noble-intel/beta",
12-
];
5+
const BASE_URL = "https://downloads.cloudflareclient.com/v1";
6+
7+
const platforms = await fetch(`${BASE_URL}/platforms`)
8+
.then((res) => res.json())
9+
.then((data) => data.result);
10+
11+
fs.writeFileSync(
12+
"./src/util/warp-platforms.json",
13+
JSON.stringify(platforms, null, "\t"),
14+
"utf-8",
15+
);
1316

1417
const linesToRemove = [
1518
"For related Cloudflare for Teams documentation please see: https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp",
@@ -18,72 +21,99 @@ const linesToRemove = [
1821
"For Consumer documentation please see: <https://developers.cloudflare.com/warp-client/>",
1922
];
2023

21-
for (let track of tracks) {
22-
fetch(`https://downloads.cloudflareclient.com/v1/update/json/${track}`)
23-
.then((res) => res.json())
24-
.then((data) => {
25-
if (!data.items) {
26-
console.warn(
27-
`${track} has no releases: ${JSON.stringify(data, null, 2)}`,
28-
);
29-
30-
return;
31-
}
32-
33-
data.items.forEach((item) => {
34-
if (track.startsWith("noble-intel")) {
35-
track = track.replace("noble-intel", "linux");
36-
}
24+
for (const { platform } of platforms) {
25+
const isLinux = platform !== "windows" && platform !== "macos";
3726

38-
const folder = `./src/content/warp-releases/${track}`;
39-
const path = `${folder}/${item.version}.yaml`;
27+
for (const track of ["ga", "beta"]) {
28+
fetch(`${BASE_URL}/update/json/${platform}/${track}`)
29+
.then((res) => res.json())
30+
.then((data) => {
31+
if (!data.items) {
32+
console.warn(
33+
`${track} has no releases: ${JSON.stringify(data, null, 2)}`,
34+
);
4035

41-
if (!fs.existsSync(folder)) {
42-
fs.mkdirSync(folder, { recursive: true });
43-
}
44-
45-
if (fs.existsSync(path)) {
46-
console.log(`${track} ${item.version} already exists.`);
4736
return;
4837
}
4938

50-
console.log(`Saving ${track} ${item.version}.`);
39+
data.items.forEach((item) => {
40+
let folder = `./src/content/warp-releases/`;
5141

52-
let markdown = item.releaseNotes;
42+
if (isLinux) {
43+
folder += `linux/${track}`;
44+
} else {
45+
folder += `${platform}/${track}`;
46+
}
5347

54-
markdown.replace(/\r\n/g, "\n");
48+
const path = `${folder}/${item.version}.yaml`;
5549

56-
for (const line of linesToRemove) {
57-
markdown = markdown.replace(line, "");
58-
}
50+
if (!fs.existsSync(folder)) {
51+
fs.mkdirSync(folder, { recursive: true });
52+
}
5953

60-
markdown = markdown.trim();
54+
if (fs.existsSync(path)) {
55+
if (isLinux) {
56+
const existingFile = YAML.parse(fs.readFileSync(path, "utf-8"));
6157

62-
const tokens = marked.lexer(markdown);
58+
existingFile.linuxPlatforms ??= {};
6359

64-
marked.walkTokens(tokens, (token) => {
65-
if (token.type === "heading") {
66-
token.type = "strong";
67-
token.raw = `**${token.text}**\n`;
60+
if (!existingFile.linuxPlatforms[platform]) {
61+
console.log(
62+
`Adding ${platform} to Linux ${track} ${item.version}.`,
63+
);
6864

69-
delete token.depth;
65+
existingFile.linuxPlatforms[platform] = item.packageSize;
66+
}
67+
68+
fs.writeFileSync(path, YAML.stringify(existingFile), "utf-8");
69+
} else {
70+
console.log(
71+
`${platform} ${track} ${item.version} already exists.`,
72+
);
73+
}
74+
75+
return;
7076
}
71-
});
7277

73-
const releaseNotes = tokens.reduce((s, t) => s + t.raw, "");
74-
const platformName = data.platformName.startsWith("noble-")
75-
? "Linux"
76-
: data.platformName;
77-
78-
fs.writeFileSync(
79-
`./src/content/warp-releases/${track}/${item.version}.yaml`,
80-
YAML.stringify({
81-
...item,
82-
releaseNotes,
83-
platformName,
84-
}),
85-
"utf-8",
86-
);
78+
console.log(`Saving ${track} ${item.version}.`);
79+
80+
let markdown = item.releaseNotes;
81+
82+
markdown.replace(/\r\n/g, "\n");
83+
84+
for (const line of linesToRemove) {
85+
markdown = markdown.replace(line, "");
86+
}
87+
88+
markdown = markdown.trim();
89+
90+
const tokens = marked.lexer(markdown);
91+
92+
marked.walkTokens(tokens, (token) => {
93+
if (token.type === "heading") {
94+
token.type = "strong";
95+
token.raw = `**${token.text}**\n`;
96+
97+
delete token.depth;
98+
}
99+
});
100+
101+
const releaseNotes = tokens.reduce((s, t) => s + t.raw, "");
102+
const platformName = isLinux ? "Linux" : data.platformName;
103+
104+
fs.writeFileSync(
105+
path,
106+
YAML.stringify({
107+
...item,
108+
releaseNotes,
109+
platformName,
110+
linuxPlatforms: isLinux
111+
? { [platform]: item.packageSize }
112+
: undefined,
113+
}),
114+
"utf-8",
115+
);
116+
});
87117
});
88-
});
118+
}
89119
}

package-lock.json

Lines changed: 24 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
"dedent": "1.6.0",
6666
"dompurify": "3.2.6",
6767
"dot-prop": "9.0.0",
68-
"eslint": "9.29.0",
68+
"eslint": "9.30.1",
6969
"eslint-plugin-astro": "1.3.1",
7070
"eslint-plugin-jsx-a11y": "6.10.2",
7171
"eslint-plugin-react": "7.37.5",
@@ -84,7 +84,7 @@
8484
"mdast-util-from-markdown": "2.0.2",
8585
"mdast-util-mdx": "3.0.0",
8686
"mdast-util-mdx-expression": "2.0.1",
87-
"mermaid": "11.8.0",
87+
"mermaid": "11.8.1",
8888
"micromark-extension-mdxjs": "3.0.0",
8989
"nanostores": "1.0.1",
9090
"node-html-parser": "7.0.1",

src/components/APIRequest.astro

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@ const props = z
2020
json: z.union([Record, z.array(Record)]).optional(),
2121
form: Record.optional(),
2222
code: z.custom<Omit<ComponentProps<typeof Code>, "title">>().optional(),
23+
roles: z.union([z.boolean(), z.string()]).default(true),
2324
})
2425
.strict();
2526
26-
let { path, method, parameters, json, form, code } = props.parse(Astro.props);
27+
let { path, method, parameters, json, form, code, roles } = props.parse(
28+
Astro.props,
29+
);
2730
2831
if (json && form) {
2932
throw new Error(`[APIRequest] Cannot use both "json" and "form" properties.`);
@@ -146,11 +149,17 @@ if (jsonSchema?.required) {
146149
}
147150
}
148151
149-
const tokenGroups = operation["x-api-token-group"];
152+
let tokenGroups = operation["x-api-token-group"];
153+
154+
if (typeof roles === "string") {
155+
tokenGroups = tokenGroups?.filter((group) =>
156+
group.toLowerCase().includes(roles.toLowerCase()),
157+
);
158+
}
150159
---
151160

152161
{
153-
tokenGroups && (
162+
tokenGroups && roles && (
154163
<Details header="Required API token permissions">
155164
<span>
156165
At least one of the following{" "}

0 commit comments

Comments
 (0)