@mdn/fred 2.10.0 → 2.10.1

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.
Files changed (58) hide show
  1. package/.c8rc.json +1 -1
  2. package/.nvmrc +1 -1
  3. package/CHANGELOG.md +17 -0
  4. package/components/content-section/server.css +2 -0
  5. package/components/table-container/README.md +7 -1
  6. package/components/table-container/global.css +3 -0
  7. package/l10n/locales/ja.ftl +59 -41
  8. package/out/service-worker.js +1 -1
  9. package/out/service-worker.js.map +1 -1
  10. package/out/static/client/{7027.4a1f5f3b9de03a78.js → 7027.6f1e3a6e6f360c5b.js} +61 -43
  11. package/out/static/client/7027.6f1e3a6e6f360c5b.js.map +1 -0
  12. package/out/static/{legacy/8292.36d2018207ff6ee8.js → client/8292.bf87f8021c83c2b4.js} +2 -2
  13. package/out/static/client/8292.bf87f8021c83c2b4.js.map +1 -0
  14. package/out/static/client/{8520.bcdbc55afd253de5.js → 8520.bb553a4d9076f9b0.js} +2 -2
  15. package/out/static/client/{8520.bcdbc55afd253de5.js.map → 8520.bb553a4d9076f9b0.js.map} +1 -1
  16. package/out/static/client/{index.6ebc0aa4b4c45812.js → index.aa5c9b4c9f8c4e0a.js} +3 -3
  17. package/out/static/client/{index.6ebc0aa4b4c45812.js.map → index.aa5c9b4c9f8c4e0a.js.map} +1 -1
  18. package/out/static/client/runtime.6a87eece5e71217d.js +2 -0
  19. package/out/static/client/runtime.6a87eece5e71217d.js.map +1 -0
  20. package/out/static/client/stats.json +181 -181
  21. package/out/static/client/{styles-content-section.098f0ffcf7f8155f.css → styles-content-section.b4a31c1c8089aa76.css} +2 -2
  22. package/out/static/client/{styles-content-section.098f0ffcf7f8155f.css.map → styles-content-section.b4a31c1c8089aa76.css.map} +1 -1
  23. package/out/static/client/{styles-global.4771b5dde17426f6.css → styles-global.746caad259db7618.css} +2 -2
  24. package/out/static/client/styles-global.746caad259db7618.css.map +1 -0
  25. package/out/static/client/{styles-global.ad4652c26bbb385c.js → styles-global.b17582b912fff79f.js} +1 -1
  26. package/out/static/legacy/{7478.41da8b8017c08e2c.js → 7478.2673b5d86edfd82b.js} +3 -3
  27. package/out/static/legacy/{7478.41da8b8017c08e2c.js.map → 7478.2673b5d86edfd82b.js.map} +1 -1
  28. package/out/static/{client/8292.36d2018207ff6ee8.js → legacy/8292.bf87f8021c83c2b4.js} +2 -2
  29. package/out/static/legacy/8292.bf87f8021c83c2b4.js.map +1 -0
  30. package/out/static/legacy/asset-manifest.json +68 -68
  31. package/out/static/legacy/{index.2110089c62a398bd.html → index.8d147c8cce1fbb4e.html} +1 -1
  32. package/out/static/legacy/stats.json +8 -8
  33. package/out/static/legacy/{yari.8761b6f1c0b03e17.js → yari.ab99fd7414eac59d.js} +3 -3
  34. package/out/static/legacy/{yari.8761b6f1c0b03e17.js.map → yari.ab99fd7414eac59d.js.map} +1 -1
  35. package/out/static/ssr/7027.js +60 -42
  36. package/out/static/ssr/7027.js.map +1 -1
  37. package/out/static/ssr/8292.js +1 -1
  38. package/out/static/ssr/8292.js.map +1 -1
  39. package/out/static/ssr/index.js +2 -2
  40. package/out/static/ssr/index.js.map +1 -1
  41. package/out/static/ssr/stats.json +4 -4
  42. package/package.json +24 -24
  43. package/scripts/tests.js +7 -1
  44. package/server.js +13 -9
  45. package/test/README.md +6 -0
  46. package/test/specs-dev/dev-server.e2e.js +37 -0
  47. package/vendor/yari/libs/play/package-lock.json +1 -1
  48. package/vendor/yari/libs/play/package.json +2 -1
  49. package/wdio.dev.conf.js +8 -0
  50. package/out/static/client/7027.4a1f5f3b9de03a78.js.map +0 -1
  51. package/out/static/client/8292.36d2018207ff6ee8.js.map +0 -1
  52. package/out/static/client/runtime.597e247f6c1f7aeb.js +0 -2
  53. package/out/static/client/runtime.597e247f6c1f7aeb.js.map +0 -1
  54. package/out/static/client/styles-global.4771b5dde17426f6.css.map +0 -1
  55. package/out/static/legacy/8292.36d2018207ff6ee8.js.map +0 -1
  56. /package/out/static/client/{index.6ebc0aa4b4c45812.js.LICENSE.txt → index.aa5c9b4c9f8c4e0a.js.LICENSE.txt} +0 -0
  57. /package/out/static/legacy/{7478.41da8b8017c08e2c.js.LICENSE.txt → 7478.2673b5d86edfd82b.js.LICENSE.txt} +0 -0
  58. /package/out/static/legacy/{yari.8761b6f1c0b03e17.js.LICENSE.txt → yari.ab99fd7414eac59d.js.LICENSE.txt} +0 -0
@@ -9,11 +9,11 @@
9
9
  "assets": [
10
10
  {
11
11
  "name": "index.js",
12
- "size": 1467461
12
+ "size": 1467475
13
13
  }
14
14
  ],
15
15
  "filteredAssets": 0,
16
- "assetsSize": 1467461,
16
+ "assetsSize": 1467475,
17
17
  "auxiliaryAssets": [
18
18
  {
19
19
  "name": "desktop-saving-page.bbb8eedefb3e848f.png",
@@ -325,7 +325,7 @@
325
325
  },
326
326
  {
327
327
  "name": "index.js.map",
328
- "size": 4440205
328
+ "size": 4440243
329
329
  },
330
330
  {
331
331
  "name": "deno.aed70d20abbf1067.svg",
@@ -528,7 +528,7 @@
528
528
  "size": 135602
529
529
  }
530
530
  ],
531
- "auxiliaryAssetsSize": 8904315,
531
+ "auxiliaryAssetsSize": 8904353,
532
532
  "children": {},
533
533
  "childAssets": {}
534
534
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mdn/fred",
3
- "version": "2.10.0",
3
+ "version": "2.10.1",
4
4
  "repository": "https://github.com/mdn/fred",
5
5
  "license": "MPL-2.0",
6
6
  "author": "MDN Web Docs",
@@ -46,14 +46,14 @@
46
46
  "@lit-labs/ssr": "^4.1.0",
47
47
  "@lit-labs/ssr-client": "^1.1.8",
48
48
  "@lit/task": "^1.0.3",
49
- "@mdn/rari": "1.2.0",
49
+ "@mdn/rari": "1.2.1",
50
50
  "@mdn/watify": "^1.1.11",
51
51
  "@mozilla/glean": "^5.0.10",
52
52
  "codemirror": "^6.0.1",
53
53
  "compression": "^1.8.2",
54
54
  "concurrently": "^10.0.6",
55
55
  "cookie-parser": "^1.4.7",
56
- "express": "^5.2.1",
56
+ "express": "^5.3.0",
57
57
  "fdir": "^6.5.0",
58
58
  "he": "^2.0.0",
59
59
  "http-proxy-middleware": "^4.2.0",
@@ -77,11 +77,12 @@
77
77
  "@fluent/syntax": "^0.19.0",
78
78
  "@jackolope/lit-analyzer": "^3.2.0",
79
79
  "@jackolope/ts-lit-plugin": "^3.1.6",
80
- "@mdn/browser-compat-data": "^8.1.5",
80
+ "@mdn/browser-compat-data": "^8.1.6",
81
81
  "@mdn/yari": "^6.0.1",
82
- "@rsdoctor/rspack-plugin": "^1.6.4",
83
- "@rspack/cli": "^2.2.8",
84
- "@rspack/core": "^2.2.8",
82
+ "@rsdoctor/rspack-plugin": "^1.6.5",
83
+ "@rspack/cli": "^2.2.9",
84
+ "@rspack/core": "^2.2.9",
85
+ "@rspack/dev-middleware": "^2.0.6",
85
86
  "@svgr/webpack": "^8.1.0",
86
87
  "@types/compression": "^1.8.1",
87
88
  "@types/cookie-parser": "^1.4.10",
@@ -89,39 +90,39 @@
89
90
  "@types/he": "^1.2.3",
90
91
  "@types/insane": "^1.0.0",
91
92
  "@types/mocha": "^10.0.10",
92
- "@types/node": "^24.19.1",
93
+ "@types/node": "^24.19.2",
93
94
  "@types/prismjs": "^1.26.6",
94
95
  "@types/webpack-hot-middleware": "^2.25.12",
95
- "@wdio/cli": "^10.0.2",
96
- "@wdio/firefox-profile-service": "^10.0.1",
97
- "@wdio/globals": "^10.0.2",
98
- "@wdio/local-runner": "^10.0.2",
99
- "@wdio/mocha-framework": "^10.0.1",
100
- "@wdio/spec-reporter": "^10.0.1",
101
- "@zip.js/zip.js": "^2.23.0",
96
+ "@wdio/cli": "^10.1.0",
97
+ "@wdio/firefox-profile-service": "^10.1.0",
98
+ "@wdio/globals": "^10.1.0",
99
+ "@wdio/local-runner": "^10.1.0",
100
+ "@wdio/mocha-framework": "^10.1.0",
101
+ "@wdio/spec-reporter": "^10.1.0",
102
+ "@zip.js/zip.js": "^2.24.0",
102
103
  "c8": "^12.0.0",
103
104
  "css-loader": "^7.1.5",
104
105
  "css-minimizer-webpack-plugin": "^8.0.0",
105
106
  "dexie": "^4.4.6",
106
- "eslint": "^10.12.0",
107
+ "eslint": "^10.13.0",
107
108
  "eslint-config-prettier": "^10.1.8",
108
109
  "eslint-plugin-import-x": "^4.17.1",
109
- "eslint-plugin-jsdoc": "^65.2.1",
110
+ "eslint-plugin-jsdoc": "^65.3.12",
110
111
  "eslint-plugin-lit": "^2.3.1",
111
- "eslint-plugin-n": "^18.4.1",
112
+ "eslint-plugin-n": "^18.5.0",
112
113
  "eslint-plugin-unicorn": "^74.0.0",
113
114
  "eslint-plugin-wc": "^3.1.0",
114
115
  "globals": "^17.13.0",
115
- "lefthook": "^2.2.1",
116
- "postcss": "^8.5.29",
116
+ "lefthook": "^2.2.2",
117
+ "postcss": "^8.5.31",
117
118
  "postcss-custom-media": "^12.0.3",
118
119
  "postcss-loader": "^8.2.1",
119
120
  "postcss-mixins": "^12.1.2",
120
121
  "postcss-preset-env": "^11.6.1",
121
- "prettier": "^3.9.9",
122
+ "prettier": "^3.9.10",
122
123
  "resolve-url-loader": "^5.0.0",
123
124
  "rspack-manifest-plugin": "^5.2.2",
124
- "sass-embedded": "^1.105.1",
125
+ "sass-embedded": "^1.105.2",
125
126
  "sass-loader": "^17.0.1",
126
127
  "spdy": "^4.0.2",
127
128
  "stylelint": "^17.16.0",
@@ -130,9 +131,8 @@
130
131
  "svgo-loader": "^5.0.0",
131
132
  "ts-morph": "^28.0.0",
132
133
  "typescript": "^6.0.3",
133
- "typescript-eslint": "^8.71.1",
134
+ "typescript-eslint": "^8.71.2",
134
135
  "webdriverio": "^10.0.2",
135
- "webpack-dev-middleware": "^8.3.0",
136
136
  "webpack-hot-middleware": "^2.26.1",
137
137
  "webpack-merge": "^6.0.1",
138
138
  "webpack-stats-plugin": "^1.1.3",
package/scripts/tests.js CHANGED
@@ -69,6 +69,12 @@ await yargs(hideBin(process.argv))
69
69
  describe: "run fred and rari from this content repo",
70
70
  type: "string",
71
71
  })
72
+ .option("config", {
73
+ describe: "WebdriverIO configuration file",
74
+ type: "string",
75
+ choices: ["wdio.conf.js", "wdio.dev.conf.js"],
76
+ default: "wdio.conf.js",
77
+ })
72
78
  .option("spec", {
73
79
  describe: "only run these spec files",
74
80
  type: "array",
@@ -96,7 +102,7 @@ await yargs(hideBin(process.argv))
96
102
  /** @type {import("concurrently").ConcurrentlyCommandInput[]} */
97
103
  const jobs = [
98
104
  {
99
- command: `npx --package=@wdio/cli wdio run wdio.conf.js${wdioArgs}`,
105
+ command: `npx --package=@wdio/cli wdio run ${argv.config}${wdioArgs}`,
100
106
  name: "wdio",
101
107
  prefixColor: "green",
102
108
  },
package/server.js CHANGED
@@ -125,16 +125,14 @@ export async function startServer() {
125
125
  if (devMode) {
126
126
  const { rspack } = await import("@rspack/core");
127
127
  const { default: rspackConfig } = await import("./rspack.config.js");
128
- const { default: webpackDevMiddleware } =
129
- await import("webpack-dev-middleware");
128
+ const { devMiddleware } = await import("@rspack/dev-middleware");
130
129
  const { default: webpackHotMiddleware } =
131
130
  await import("webpack-hot-middleware");
132
131
 
133
132
  const rspackCompiler = rspack(rspackConfig);
134
133
 
135
134
  app.use(
136
- // @ts-expect-error
137
- webpackDevMiddleware(rspackCompiler, {
135
+ devMiddleware(rspackCompiler, {
138
136
  serverSideRender: true,
139
137
  writeToDisk: true,
140
138
  }),
@@ -292,11 +290,17 @@ export async function startServer() {
292
290
  // render 404 page
293
291
  res.statusCode = 404;
294
292
  const locale = req.url?.match(/[^/]+/)?.[0] ?? "en-us";
295
- const notFoundRes = await fetch(
296
- `http://localhost:8083/${locale}/404/index.json`,
297
- );
298
- const json = await notFoundRes.json();
299
- return serverRenderMiddleware(req, res, json);
293
+ try {
294
+ const notFoundRes = await fetch(
295
+ `${RARI_URL}/${locale}/404/index.json`,
296
+ );
297
+ const json = await notFoundRes.json();
298
+ return await serverRenderMiddleware(req, res, json);
299
+ } catch (error) {
300
+ console.error("Failed to render 404 page:", error);
301
+ res.end();
302
+ return;
303
+ }
300
304
  }
301
305
 
302
306
  if (
package/test/README.md CHANGED
@@ -26,6 +26,12 @@ To run e2e tests and bring up a fred dev server and rari server:
26
26
  npm test -- e2e --fred dev --rari
27
27
  ```
28
28
 
29
+ To test development server startup and automatic page reloads:
30
+
31
+ ```
32
+ npm test -- e2e --fred dev --rari --config wdio.dev.conf.js
33
+ ```
34
+
29
35
  To run only some files:
30
36
 
31
37
  ```
@@ -0,0 +1,37 @@
1
+ import assert from "node:assert/strict";
2
+ import { readFile, writeFile } from "node:fs/promises";
3
+
4
+ import { browser, expect } from "@wdio/globals";
5
+
6
+ describe("Development server", () => {
7
+ it("renders a page and automatically reloads when a source file changes", async () => {
8
+ await browser.url("/en-US/sandbox");
9
+ await expect(browser.$("#host h1")).toHaveText("Fred sandbox");
10
+ await browser.waitUntil(
11
+ () =>
12
+ browser.execute(() => Boolean(customElements.get("mdn-color-theme"))),
13
+ { timeoutMsg: "Sandbox client code did not load" },
14
+ );
15
+ const sourceFile = new URL(
16
+ "../../components/sandbox/server.js",
17
+ import.meta.url,
18
+ );
19
+ const original = await readFile(sourceFile, "utf8");
20
+ const updated = original.replace("Fred sandbox", "Fred sandbox (reloaded)");
21
+ assert.notEqual(
22
+ updated,
23
+ original,
24
+ "Sandbox heading was not found in source",
25
+ );
26
+
27
+ try {
28
+ await writeFile(sourceFile, updated);
29
+ // Do not navigate or refresh: the dev server must trigger the reload.
30
+ await expect(browser.$("#host h1")).toHaveText("Fred sandbox (reloaded)");
31
+ } finally {
32
+ await writeFile(sourceFile, original);
33
+ }
34
+
35
+ await expect(browser.$("#host h1")).toHaveText("Fred sandbox");
36
+ });
37
+ });
@@ -15,7 +15,7 @@
15
15
  "@types/he": "^1.2.3"
16
16
  },
17
17
  "engines": {
18
- "node": ">=20"
18
+ "node": ">=24"
19
19
  }
20
20
  },
21
21
  "node_modules/@types/he": {
@@ -12,8 +12,9 @@
12
12
  "devDependencies": {
13
13
  "@types/he": "^1.2.3"
14
14
  },
15
+ "packageManager": "npm@11.19.0",
15
16
  "engines": {
16
- "node": ">=20"
17
+ "node": ">=24"
17
18
  },
18
19
  "export": "index.js"
19
20
  }
@@ -0,0 +1,8 @@
1
+ import { config as baseConfig } from "./wdio.conf.js";
2
+
3
+ /** @type {WebdriverIO.Config} */
4
+ export const config = {
5
+ ...baseConfig,
6
+ specs: ["./test/specs-dev/**/*.js"],
7
+ maxInstances: 1,
8
+ };
@@ -1 +0,0 @@
1
- {"version":3,"file":"7027.4a1f5f3b9de03a78.js","sources":["webpack://@mdn/fred/./l10n/locales/ja.ftl"],"sourcesContent":["export default `article-footer-last-modified = このページは <a data-l10n-name=\"contributors\">MDN の貢献者</a>によって <time data-l10n-name=\"date\">{ \\$date }</time> に最終更新されました。\narticle-footer-source-title = フォルダー: { \\$folder } (新しいタブで開く)\nbaseline-asterisk = この機能の一部は、対応レベルが異なる場合があります。\nbaseline-high-extra = この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。{ \\$date }以降、すべてのブラウザーで利用可能です。\nbaseline-low-extra = { \\$date }以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。\nbaseline-not-extra = この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。\nbaseline-supported-in = { \\$browsers } が対応\nbaseline-unsupported-in = { \\$browsers } が広く対応していない\nbaseline-supported-and-unsupported-in = { \\$supported } が対応していますが、{ \\$unsupported } は広く対応していません。\nhomepage-hero-title = 開発者による、<br>開発者のためのリソース\nhomepage-hero-description = 2005 年から <a data-l10n-name=\"css\">CSS</a>, <a data-l10n-name=\"html\">HTML</a>, <a data-l10n-name=\"js\">JavaScript</a> のドキュメントを作成しています。\n\nnot-found-title = ページが見つかりません\nnot-found-description = すみませんが、<code data-l10n-name=\"url\">{ \\$url }</code> のページは見つかりませんでした。\nnot-found-fallback-english = <strong data-l10n-name=\"strong\">朗報:</strong> リクエストされたこのページは<em data-l10n-name=\"em\">英語</em>版に存在します。\nnot-found-fallback-search = リクエストされたページは存在しませんが、サイト内を検索してみてください。\nnot-found-back = ホームページに戻る\nfooter-mofo = <a data-l10n-name=\"moco\">Mozilla Corporation</a> の非営利の親会社である <a data-l10n-name=\"mofo\">Mozilla Foundation</a> を参照してください。\nfooter-copyright = このコンテンツの一部は、©1998–{ \\$year } 個人の mozilla.org 協力者です。コンテンツは<a data-l10n-name=\"cc\">クリエイティブ・コモンズ・ライセンス</a>のもとで利用できます。\nsearch-modal-site-search = サイトで <em>{ \\$query }</em> を検索\nsearch-modal-results-status =\n { \\$results ->\n [0] 結果が見つかりませんでした。\n *[other] { \\$results } 件の結果が利用可能です。\n }\n\nsite-search-search-stats = { \\$results } 件の文書が見つかりました。\nsite-search-suggestion-matches =\n { \\$relation ->\n [gt]\n more than { \\$matches ->\n [one] { \\$matches } 件の一致\n *[other] { \\$matches } 件の一致\n }\n *[eq]\n { \\$matches ->\n [one] { \\$matches } 件の一致\n *[other] { \\$matches } 件の一致\n }\n }\nblog-time-to-read =\n { \\$minutes ->\n [one] { \\$minutes } 分で読めます\n *[other] { \\$minutes } 分で読めます\n }\n-brand-name-obs = HTTP 観測所\nobs-report = レポート\nobs-title = { -brand-name-obs }\nobs-landing-intro = 2016 年にリリースされた { -brand-name-obs }は、セキュリティのベストプラクティスへの準拠状況を分析することでウェブセキュリティを強化します。これまでに 4700 万回以上のスキャンを実施し、690 万以上のウェブサイトに知見を提供してきました。\nobs-assessment = Mozilla によって開発された { -brand-name-obs }は、サイトの HTTP ヘッダーやその他の主要なセキュリティ設定について詳細な評価を行います。\nobs-scanning = 自動化されたスキャンプロセスにより、開発者やウェブサイト管理者に詳細で実用的なフィードバックを提供し、潜在的なセキュリティ脆弱性の特定と対応に重点を置いています。\nobs-security = このツールは、絶えず進化するデジタル環境において、開発者やウェブサイト管理者が一般的なセキュリティ脅威に対するサイトの防御を強化する上で役立つ役割を果たします。\nobs-mdn = { -brand-name-obs } は、Mozilla の専門知識と安全でより堅牢なインターネットへの取り組みに基づき、確立された傾向とガイドラインに基づいて、効果的なセキュリティインサイトを提供します。\ncompat-browser-version-date = { \\$browser } { \\$version } – リリース日: { \\$date }\ncompat-browser-version-released = リリース日: { \\$date }\ncompat-link-source-title = ファイル: { \\$filename }\ncompat-support-prefix = { \\$prefix } ベンダー接頭辞付きで実装\ncompat-support-altname = 別名: { \\$altname }\ncompat-support-removed = { \\$version } 以降で除去\ncompat-support-see-impl-url = <a data-l10n-name=\"impl_url\">{ \\$label }</a> を参照\ncompat-support-flags =\n { \\$has_added ->\n [1] バージョン { \\$version_added } 以降\n *[0] { \"\" }\n }{ \\$has_last ->\n [1]\n { \\$has_added ->\n *[0] { \\$versionLast } までのユーザー\n [1] { \" \" } { \\$versionLast } までのユーザー\n }\n *[0]\n { \\$has_added ->\n *[0] ユーザー\n [1] { \" \" }ユーザー\n }\n }\n は明示的に設定の必要あり: <code data-l10n-name=\"name\">{ \\$flag_name }</code>{ \" \" }\n { \\$flag_type ->\n *[preference] 設定\n [runtime_flag] ランタイムフラグ\n }{ \\$has_value ->\n [1] { \" \" }to <code data-l10n-name=\"value\">{ \\$flag_value }</code>\n *[0] { \"\" }\n }{ \".\" }\n { \\$has_pref_url ->\n [1]\n { \\$flag_type ->\n [preference] { \\$browser_name } で設定を変更するには、{ \\$browser_pref_url } を参照してください。\n *[other] { \"\" }\n }\n *[0] { \"\" }\n }\ncompat-legend-yes = { compat-support-full }\ncompat-legend-partial = { compat-support-partial }\ncompat-legend-preview = 開発中。プレリリース版で対応。\ncompat-legend-no = { compat-support-no }\ncompat-legend-unknown = 互換性不明\ncompat-legend-experimental = { compat-experimental }。将来動作が変更される可能性があります。\ncompat-legend-nonstandard = { compat-nonstandard }。使用前にブラウザー間の互換性をチェックしてください。\ncompat-legend-deprecated = { compat-deprecated }。新しいウェブサイトでは使用しないでください。\ncompat-legend-footnote = 実装メモを参照。\ncompat-legend-disabled = ユーザーがこの機能を明示的に有効にする必要があります。\ncompat-legend-altname = 標準外の名前を使用しています。\ncompat-legend-prefix = 使用するにはベンダー接頭辞が必要か、別の名前が必要です。\ncompat-legend-more = 互換性に関する詳細情報があります。\nplacement-note = 広告\nplacement-no = 広告を見たくありませんか?\npagination-next = 次のページ\npagination-prev = 前のページ\npagination-current = 現在のページ\npagination-goto = ページ { \\$page } へ行く\nlogout = ログアウト\nlogin = ログイン\nexample-play-button-label = Play\nexample-play-button-title = 例を MDN Playground で実行(新しいタブで開く)\nwriter-reload-polling = { \\$seconds } 秒ごとにポーリング\na11y-menu-skip-to-main-content = メインコンテンツへスキップ\na11y-menu-skip-to-search = 検索へスキップ\narticle-footer-title = MDN の改良に協力\narticle-footer-learn-how-to-contribute = 協力方法を知る\narticle-footer-view-this-page-on-github = GitHub でこのページを表示\narticle-footer-this-will-take-you-to-github-to = GitHub へ移動して新しい issue を登録します。\narticle-footer-report-a-problem-with-this-conte = このコンテンツに関する問題を報告\nbaseline-indicator-baseline-cross = Baseline Cross\nbaseline-indicator-baseline-check = Baseline Check\nbaseline-indicator-limited-availability = 利用可能性は限定的\nbaseline-indicator-baseline = Baseline\nbaseline-indicator-widely-available = 広く利用可能\nbaseline-indicator-newly-available = 最近利用可能\nbaseline-indicator-check = check\nbaseline-indicator-cross = cross\nbaseline-indicator-learn-more = もっと詳しく\nbaseline-indicator-see-full-compatibility = 完全な互換性情報を見る\nbaseline-indicator-report-feedback = フィードバックを報告\nblog-previous = 前の投稿\nblog-next = 次の投稿\nblog-index-blog-it-better = ブログをさらに充実させる\nreference-toc-header = 目次\nblog-post-not-found = ブログ記事が見つかりません。\ncollection-save-button-save-in-collection = コレクションに保存\ncollection-save-button-remove = 削除\ncollection-save-button-save = 保存\ncollection-save-button-add-to-collection = コレクションに追加\ncollection-save-button-collection = コレクション:\ncollection-save-button-saved-articles = 記事を保存\ncollection-save-button-new-collection = あたら石コレクション\ncollection-save-button-name = 名前:\ncollection-save-button-note = メモ:\ncollection-save-button-saving = 保存中…\ncollection-save-button-cancel = キャンセル\ncollection-save-button-deleting = 削除中…\ncollection-save-button-delete = 削除\ntheme-default = OS のデフォルト\ncolor-theme-light = ライト\ncolor-theme-dark = ダーク\ncolor-theme-switch-color-theme = 配色を切り替え\ncolor-theme-theme = 配色\ncompat-link-report-issue-title = この互換性データに関する課題を報告\ncompat-link-report-issue = この互換性データに関する問題を報告\ncompat-link-source = GitHub でデータを閲覧\ncompat-experimental = 実験的\ncompat-deprecated = 非推奨\ncompat-nonstandard = 標準外\ncompat-support-partial = 部分的対応\ncompat-support-preview-browser = プレビュー版ブラウザーの対応\ncompat-support-full = 完全対応\ncompat-support-no = 対応なし\ncompat-support-unknown = 対応状況不明\ncompat-yes = 対応\ncompat-partial = 部分的\ncompat-no = 未対応\ncompat-support-preview = プレビュー対応\ncompat-legend = 凡例\ncompat-legend-tip = Tip: セルをクリック/タップすると、詳しい情報を確認できます。\ncompat-link-report-missing-title = 互換性データの不足を報告\ncompat-link-report-missing = この課題を報告\ncompat-js-required = ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。\ncompat-loading = 読み込み中…\ncontent-feedback-content-is-out-of-date = コンテンツが古い\ncontent-feedback-missing-information = 情報が欠けている\ncontent-feedback-code-examples-not-working-as-exp = コード例が期待通りに動作しない\ncontent-feedback-other = その他\ncontent-feedback-question = このページは役に立ちましたか?\ncontent-feedback-yes = はい\ncontent-feedback-no = いいえ\ncontent-feedback-reason = このページが役に立たなかったのはなぜですか?\ncontent-feedback-submit = 送信\ncontent-feedback-thanks = ご意見ありがとうございます!\ncontributor-spotlight-want-to-be-part-of-the-journey = この旅に参加してみませんか?\ncontributor-spotlight-our-constant-quest-for-innovatio = 私たちの絶え間ないイノベーションへの探求は、ここ、あなたから始まります。MDN のあらゆる要素(ドキュメント、デモ、サイト自体)は、素晴らしいオープンな開発者コミュニティから生まれています。ぜひご参加ください!\ncontributor-spotlight-get-involved = 参加する\ncontributor-spotlight-contributor-profile = 貢献者のプロフィール\ncopy-button-copied = コピーしました\ncopy-button-copy-failed = コピーに失敗しました\ncopy-button-copy = コピー\nfooter-mdn-on-github = MDN on GitHub\nfooter-mdn-on-bluesky = MDN on Bluesky\nfooter-mdn-on-x = MDN on X\nfooter-mdn-on-mastodon = MDN on Mastodon\nfooter-mdn-blog-rss-feed = MDN ブログ RSS フィード\nfooter-mdn = MDN\nfooter-about = MDN について\nfooter-blog = ブログ\nfooter-mozilla-careers = Mozilla 求人\nfooter-advertise-with-us = 広告掲載について\nfooter-mdn-plus = MDN Plus\nfooter-product-help = Product help\nfooter-contribute = 協力\nfooter-mdn-community = MDN コミュニティ\nfooter-community-resources = コミュニティリソース\nfooter-writing-guidelines = 執筆ガイドライン\nfooter-mdn-discord = MDN Discord\nfooter-developers = 開発者\nfooter-web-technologies = ウェブ技術\nfooter-learn-web-development = ウェブ開発を学ぶ\nfooter-guides = ガイド\nfooter-tutorials = チュートリアル\nfooter-glossary = 用語集\nfooter-hacks-blog = Hacks blog\nfooter-website-privacy-notice = ウェブサイトのプライバシー通知\nfooter-telemetry-settings = テレメトリー設定\nfooter-legal = 法的情報\nfooter-community-participation-guidelin = コミュニティ参加ガイドライン\nfooter-mdn-logo = MDN ロゴ\nfooter-tagline = より良いインターネットのための青写真。\nfooter-mozilla-logo = Mozilla ロゴ\ngeneric-toc__header = 目次\nhomepage-body-featured-articles = 注目の記事\nhomepage-body-latest-news = 最新ニュース\nhomepage-body-recent-contributions = 最近の貢献\nhomepage-contributor-spotlight-contributor-spotlight = 注目の貢献者\nhomepage-contributor-spotlight-get-involved = 参加する\nhomepage-search-search-the-site = サイトを検索\nhomepage-search-search = 検索\ninteractive-example-reset = リセット\ninteractive-example-value-select = 値の選択\ninteractive-example-the-current-value-is-not-support = 現在の値はこのブラウザーが対応していません。\ninteractive-example-run-example-and-show-console-ou = 例を実行してコンソール出力を表示\ninteractive-example-run = 実行\ninteractive-example-reset-example-and-clear-console = 例をリセットしてコンソール出力をクリア\ninteractive-example-console-output = コンソール出力\ninteractive-example-output = 出力\nissues-table-loading-issues = loading issues…\nissues-table-title = Title\nissues-table-repository = Repository\nlanguage-switcher-remember-language = 言語を記憶\nlanguage-switcher-enable-this-setting-to-always-sw = この設定を有効にすると、利用可能な場合は常に現在の言語に切り替わります。(詳細はこちらをクリックしてください。)\nlanguage-switcher-learn-more = もっと知る\nlogin-button-login = ログイン\nmodal-exit-modal = Exit modal\nnavigation-toggle-navigation = Toggle navigation\nobs-about-title = About the HTTP Observatory\nobservatory-landing-read-our-faq = Read our FAQ\nobservatory-landing-report-feedback = Report Feedback\nobservatory-rescan-button-rescan = Rescan\nobservatory-rescan-button-wait-a-minute-to-rescan = Wait a minute to rescan\nobservatory-results-report-feedback = Report Feedback\nobservatory-results-faq = FAQ\nobservatory-tests-and-scores-loading-tests-and-scoring-data = Loading tests and scoring data...\nobservatory-tests-and-scores-see = See\nobservatory-tests-and-scores-for-guidance = for guidance.\nobservatory-tests-and-scores-test-result = Test result\nobservatory-tests-and-scores-description = Description\nobservatory-tests-and-scores-modifier = Modifier\nobservatory-tests-and-scores-failed-to-load-tests-and-scoring = Failed to load tests and scoring data. Please try again later.\nbrand-web-docs = MDN Web Docs\nblog-rss-title = MDN Blog RSS フィード\nmeta-description = The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.\nlogo-alt = MDN ロゴ\npagination-pagination = Pagination\nplayground-do-you-really-want-to-clear-ever = 本当にすべてをクリアしますか?\nplayground-do-you-really-want-to-revert-you = 本当に変更を取り消しますか?\nplayground-playground = Playground\nplayground-format = 整形\nplayground-run = 実行\nplayground-share = 共有\nplayground-clear = クリア\nplayground-reset = リセット\nplayground-seeing-something-inappropriate = 不適切な内容を見つけましたか?\nplayground-console = コンソール\nplayground-share-markdown = マークダウンを共有\nplayground-copy-markdown-to-clipboard = マークダウンをクリップボードにコピー\nplayground-share-data-url = データ URL で共有\nplayground-copy-data-url-to-clipboard = データ URL をクリップボードにコピー\nplayground-share-your-code-via-permalink = コードをパーマリンクで共有\nplayground-copy-to-clipboard = クリップボードにコピー\nplayground-create-link = リンクを作成\nplayground-report-this-malicious-or-inappro = この悪意のある、または不適切な共有プレイグラウンドを報告\nplayground-can-you-please-share-some-detail = このコンテンツの問題点について、詳しく教えてください。\nplayground-cancel = キャンセル\nplayground-report = 報告\nrecently-visited-recently-visited = 最近訪問\nscrim-inline-clicking-will-load-content-from = クリックで scrimba.com からコンテンツを読み込み\nscrim-inline-toggle-fullscreen = 全画面切り替え\nscrim-inline-open-on-scrimba = Scrimba で開く\nscrim-inline-load-scrim-and-open-dialog = スクリームを読み込んでダイアログを開く\nsearch-button-search-the-site = このサイトを検索\nsearch-modal-loading-search-index = 検索インデックスを読み込み中…\nsearch-modal-search = 検索\nsearch-modal-exit-search = 検索終了\nsearch-modal-results-label = 検索結果\nsidebar-filter-filter-sidebar = サイドバーをフィルタリング\nsidebar-filter-filter = フィルター\nsidebar-filter-clear-filter-input = フィルター入力をクリア\nsite-search-search = 検索\nsite-search-previous = 前へ\nsite-search-next = 次へ\nsite-search-suggestions-text = 他の候補:\nsite-search-searching = 検索中…\nsite-search-language = 言語\nsite-search-both = Both\nspecifications-list-this-feature-does-not-appear-to = この機能は、どの仕様書にも定義されていません。\nspecifications-list-specification = 仕様書\nsurvey-hide-this-survey = この調査を非表示\nsurvey-take-survey-opens-in-a-new-tab = アンケート(新しいタブで開く)\ntoggle-sidebar-toggle-sidebar = サイドバーを切り替え\nuser-menu-ai-help = AI ヘルプ\nuser-menu-collections = コレクション\nuser-menu-updates = 更新\nuser-menu-settings = 個人設定\nuser-menu-help = ヘルプ\nuser-menu-feedback = フィードバック\nuser-menu-user = ユーザー\nwriter-open-editor-open-in-editor = エディターで開く\nwriter-toolbar-view-on-mdn = MDN で表示\n`;"],"names":[],"mappings":"sHAAA,MAAe,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,C"}