From c6a9f33b81df733d7750641b7da6fda1b09469fe Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 10 Jul 2023 14:11:49 -0400 Subject: [PATCH 1/3] Setup prember --- docs-app/config/fastboot.js | 24 ++ docs-app/ember-cli-build.js | 53 +++- docs-app/package.json | 4 + ember-primitives/src/color-scheme.ts | 49 ++- ember-primitives/src/proper-links.ts | 3 + pnpm-lock.yaml | 430 ++++++++++++++++++++++++++- 6 files changed, 544 insertions(+), 19 deletions(-) create mode 100644 docs-app/config/fastboot.js diff --git a/docs-app/config/fastboot.js b/docs-app/config/fastboot.js new file mode 100644 index 000000000..586e38218 --- /dev/null +++ b/docs-app/config/fastboot.js @@ -0,0 +1,24 @@ +/* global ReadableStream, WritableStream, TransformStream */ +module.exports = function () { + return { + buildSandboxGlobals(defaultGlobals) { + return Object.assign({}, defaultGlobals, { + fetch, + AbortController, + ReadableStream: + typeof ReadableStream !== 'undefined' + ? ReadableStream + : require('node:stream/web').ReadableStream, + WritableStream: + typeof WritableStream !== 'undefined' + ? WritableStream + : require('node:stream/web').WritableStream, + TransformStream: + typeof TransformStream !== 'undefined' + ? TransformStream + : require('node:stream/web').TransformStream, + Headers: typeof Headers !== 'undefined' ? Headers : undefined, + }); + }, + }; +}; diff --git a/docs-app/ember-cli-build.js b/docs-app/ember-cli-build.js index 634b15dce..07887504f 100644 --- a/docs-app/ember-cli-build.js +++ b/docs-app/ember-cli-build.js @@ -4,11 +4,22 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app'); const sortBy = require('lodash.sortby'); module.exports = function (defaults) { + let environment = EmberApp.env(); + let isProduction = environment === 'production'; + const app = new EmberApp(defaults, { // Add options here 'ember-cli-babel': { enableTypeScriptTransform: true, }, + prember: { + enabled: isProduction || process.env.PREMBER === 'true', + urls: async function () { + let data = await urlsForPrerender(); + + return data.map((markdownUrl) => markdownUrl.replace(/\.md$/, '')); + }, + }, }); // Use `app.import` to add additional libraries to the generated @@ -32,7 +43,7 @@ module.exports = function (defaults) { variants = [{ name: 'deployed-dev-build', runtime: 'browser', optimizeForProduction }]; } - return require('@embroider/compat').compatBuild(app, _Webpack, { + const compiledApp = require('@embroider/compat').compatBuild(app, _Webpack, { extraPublicTrees: [], staticAddonTrees: true, staticAddonTestSupportTrees: true, @@ -71,6 +82,8 @@ module.exports = function (defaults) { }, }, }); + + return require('prember').prerender(app, compiledApp); }; const { createUnplugin } = require('unplugin'); @@ -115,19 +128,17 @@ const createManifest = createUnplugin((options) => { name: 'create-manifest', async buildStart() { const path = await import('node:path'); - const { globbySync } = await import('globby'); - let paths = globbySync(include, { - cwd: path.join(process.cwd(), src), - expandDirectories: true, + let reshaped = await buildManifest({ + src, + include, + exclude, }); - paths = paths.filter((path) => !exclude.some((pattern) => path.match(pattern))); - await this.emitFile({ type: 'asset', fileName: path.join(dest, name), - source: JSON.stringify(reshape(paths)), + source: JSON.stringify(reshaped), }); }, watchChange(id) { @@ -136,6 +147,32 @@ const createManifest = createUnplugin((options) => { }; }); +async function urlsForPrerender() { + let manifest = await buildManifest({ + src: 'public/docs', + include: '**/*', + exclude: [], + }); + + return manifest.list.flat().map((tutorial) => tutorial.path); +} + +async function buildManifest(options) { + const { src, include, exclude } = options; + + const path = await import('node:path'); + const { globbySync } = await import('globby'); + + let paths = globbySync(include, { + cwd: path.join(process.cwd(), src), + expandDirectories: true, + }); + + paths = paths.filter((path) => !exclude.some((pattern) => path.match(pattern))); + + return reshape(paths); +} + /** * @param {string[]} paths */ diff --git a/docs-app/package.json b/docs-app/package.json index 0cea2f060..1817b3f76 100644 --- a/docs-app/package.json +++ b/docs-app/package.json @@ -22,6 +22,8 @@ "lint:prettier": "pnpm -w exec lint prettier", "lint:types": "glint", "start": "concurrently 'ember serve' 'pnpm _syncPnpm --watch' --names 'docs serve,docs sync deps'", + "start:prod": "concurrently 'ember serve --environment=production' 'pnpm _syncPnpm --watch' --names 'serve prod,sync deps'", + "start:prember": "PREMBER=true concurrently 'ember serve --environment=production' 'pnpm _syncPnpm --watch' --names 'serve prod,sync deps'", "test": "ember test", "test:ember": "ember test", "_syncPnpm": "pnpm sync-dependencies-meta-injected" @@ -81,6 +83,7 @@ "ember-cli": "~5.2.0", "ember-cli-app-version": "^6.0.0", "ember-cli-babel": "^8.0.0", + "ember-cli-fastboot": "^4.1.1", "ember-cli-htmlbars": "^6.3.0", "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sri": "^2.1.1", @@ -103,6 +106,7 @@ "globby": "^13.2.2", "loader.js": "^4.7.0", "pnpm-sync-dependencies-meta-injected": "0.0.9", + "prember": "^2.0.0", "prettier": "^3.0.2", "prettier-plugin-ember-template-tag": "^1.0.2", "qunit": "^2.19.3", diff --git a/ember-primitives/src/color-scheme.ts b/ember-primitives/src/color-scheme.ts index 84006c774..100d2dae4 100644 --- a/ember-primitives/src/color-scheme.ts +++ b/ember-primitives/src/color-scheme.ts @@ -53,19 +53,54 @@ export function sync() { } export const prefers = { - dark: () => window.matchMedia('(prefers-color-scheme: dark)').matches, - light: () => window.matchMedia('(prefers-color-scheme: light)').matches, - custom: (name: string) => window.matchMedia(`(prefers-color-scheme: ${name})`).matches, - none: () => window.matchMedia('(prefers-color-scheme: no-preference)').matches, + dark: () => { + // Fastboot has no graceful fallbacks + if (typeof matchMedia === 'undefined') return; + + return window.matchMedia('(prefers-color-scheme: dark)').matches; + }, + light: () => { + // Fastboot has no graceful fallbacks + if (typeof matchMedia === 'undefined') return; + + return window.matchMedia('(prefers-color-scheme: light)').matches; + }, + custom: (name: string) => { + // Fastboot has no graceful fallbacks + if (typeof matchMedia === 'undefined') return; + + return window.matchMedia(`(prefers-color-scheme: ${name})`).matches; + }, + none: () => { + // Fastboot has no graceful fallbacks + if (typeof matchMedia === 'undefined') return; + + return window.matchMedia('(prefers-color-scheme: no-preference)').matches; + }, }; const LOCAL_PREF_KEY = 'ember-primitives/color-scheme#local-preference'; export const localPreference = { isSet: () => Boolean(localPreference.read()), - read: () => localStorage.getItem(LOCAL_PREF_KEY), - update: (value: string) => localStorage.setItem(LOCAL_PREF_KEY, value), - delete: () => localStorage.removeItem(LOCAL_PREF_KEY), + read: () => { + // Fastboot has no graceful fallbacks + if (typeof localStorage === 'undefined') return; + + return localStorage.getItem(LOCAL_PREF_KEY); + }, + update: (value: string) => { + // Fastboot has no graceful fallbacks + if (typeof localStorage === 'undefined') return; + + return localStorage.setItem(LOCAL_PREF_KEY, value); + }, + delete: () => { + // Fastboot has no graceful fallbacks + if (typeof localStorage === 'undefined') return; + + return localStorage.removeItem(LOCAL_PREF_KEY); + }, }; export function getColorScheme(element?: HTMLElement) { diff --git a/ember-primitives/src/proper-links.ts b/ember-primitives/src/proper-links.ts index cf824043d..f73994542 100644 --- a/ember-primitives/src/proper-links.ts +++ b/ember-primitives/src/proper-links.ts @@ -66,6 +66,9 @@ export function properLinks { /** * event.target may not be an anchor, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d70f35ee..92268efed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -248,6 +248,9 @@ importers: ember-cli-babel: specifier: ^7.26.11 version: 7.26.11 + ember-cli-fastboot: + specifier: ^4.1.1 + version: 4.1.1 ember-cli-htmlbars: specifier: ^6.3.0 version: 6.3.0 @@ -314,6 +317,9 @@ importers: pnpm-sync-dependencies-meta-injected: specifier: 0.0.9 version: 0.0.9 + prember: + specifier: ^2.0.0 + version: 2.0.0 prettier: specifier: ^3.0.2 version: 3.0.2 @@ -3886,6 +3892,22 @@ packages: /@simple-dom/interface@1.4.0: resolution: {integrity: sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA==} + /@simple-dom/parser@1.4.0: + resolution: {integrity: sha512-TNjDkOehueRIKr1df416qk9ELj+qWuVVJNIT25y1aZg3pQvxv4UPGrgaDFte7dsWBTbF3V8NYPNQ5FDUZQ8Wlg==} + dependencies: + '@simple-dom/interface': 1.4.0 + dev: true + + /@simple-dom/serializer@1.4.0: + resolution: {integrity: sha512-mI1yRahsVs8atXLiQksineDsFEFqeG7RHwnnBTDOK6inbzl4tZQgjR+Z7edjgIJq5j5RhZvwPI6EuCji9B3eQw==} + dependencies: + '@simple-dom/interface': 1.4.0 + dev: true + + /@simple-dom/void-map@1.4.0: + resolution: {integrity: sha512-VDhLEyVCbuhOBBgHol9ShzIv9O8UCzdXeH4FoXu2DOcu/nnvTjLTck+BgXsCLv5ynDiUdoqsREEVFnoyPpFKVw==} + dev: true + /@sindresorhus/is@0.14.0: resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} @@ -3943,7 +3965,6 @@ packages: /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - dev: false /@tsconfig/ember@3.0.0: resolution: {integrity: sha512-KF9F9f4i+8LE31OKS014n5uEDt1mB/6ZvyQz/Mam28nAKDTSMBlOWHgTOj0TY8l4BfbEE+BgUuWCSoUHhb2BMw==} @@ -4864,6 +4885,16 @@ packages: is-string: 1.0.7 dev: true + /array-to-error@1.1.1: + resolution: {integrity: sha512-kqcQ8s7uQfg3UViYON3kCMcck3A9exxgq+riVuKy08Mx00VN4EJhK30L2VpjE58LQHKhcE/GRpvbVUhqTvqzGQ==} + dependencies: + array-to-sentence: 1.1.0 + dev: true + + /array-to-sentence@1.1.0: + resolution: {integrity: sha512-YkwkMmPA2+GSGvXj1s9NZ6cc2LBtR+uSeWTy2IGi5MR1Wag4DdrcjTxA/YV/Fw+qKlBeXomneZgThEbm/wvZbw==} + dev: true + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -5713,6 +5744,10 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true + /blueimp-md5@2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + dev: true + /body-parser@1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -5911,6 +5946,17 @@ packages: - supports-color dev: true + /broccoli-clean-css@1.1.0: + resolution: {integrity: sha512-S7/RWWX+lL42aGc5+fXVLnwDdMtS0QEWUFalDp03gJ9Na7zj1rWa351N2HZ687E2crM9g+eDWXKzD17cbcTepg==} + dependencies: + broccoli-persistent-filter: 1.4.6 + clean-css-promise: 0.1.1 + inline-source-map-comment: 1.0.5 + json-stable-stringify: 1.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /broccoli-concat@4.2.5: resolution: {integrity: sha512-dFB5ATPwOyV8S2I7a07HxCoutoq23oY//LhM6Mou86cWUTB174rND5aQLR7Fu8FjFFLxoTbkk7y0VPITJ1IQrw==} engines: {node: 10.* || >= 12.*} @@ -6034,6 +6080,15 @@ packages: glob: 5.0.15 mkdirp: 0.5.6 + /broccoli-merge-trees@2.0.1: + resolution: {integrity: sha512-WjaexJ+I8BxP5V5RNn6um/qDRSmKoiBC/QkRi79FT9ClHfldxRyCDs9mcV7mmoaPlsshmmPaUz5jdtcKA6DClQ==} + dependencies: + broccoli-plugin: 1.3.1 + merge-trees: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /broccoli-merge-trees@3.0.2: resolution: {integrity: sha512-ZyPAwrOdlCddduFbsMyyFzJUrvW6b04pMvDiAQZrCwghlvgowJDY+EfoXn+eR1RRA5nmGHJ+B68T63VnpRiT1A==} engines: {node: '>=6.0.0'} @@ -6230,6 +6285,28 @@ packages: - supports-color dev: true + /broccoli-stew@1.6.0: + resolution: {integrity: sha512-sUwCJNnYH4Na690By5xcEMAZqKgquUQnMAEuIiL3Z2k63mSw9Xg+7Ew4wCrFrMmXMcLpWjZDOm6Yqnq268N+ZQ==} + engines: {node: ^4.5 || 6.* || >= 7.*} + dependencies: + broccoli-debug: 0.6.5 + broccoli-funnel: 2.0.2 + broccoli-merge-trees: 2.0.1 + broccoli-persistent-filter: 1.4.6 + broccoli-plugin: 1.3.1 + chalk: 2.4.2 + debug: 3.2.7 + ensure-posix-path: 1.1.1 + fs-extra: 5.0.0 + minimatch: 3.1.2 + resolve: 1.22.4 + rsvp: 4.8.5 + symlink-or-copy: 1.3.1 + walk-sync: 0.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /broccoli-stew@3.0.0: resolution: {integrity: sha512-NXfi+Vas24n3Ivo21GvENTI55qxKu7OwKRnCLWXld8MiLiQKQlWIq28eoARaFj0lTUFwUa4jKZeA7fW9PiWQeg==} engines: {node: 8.* || >= 10.*} @@ -6680,6 +6757,23 @@ packages: resolution: {integrity: sha512-9q6ZvUAhbKOSRFY7A/irCQ/rF0KIpa3uXpx6izm8+fp7b2H4hLeUJ+F1YYk9+gDQ/X8Q0MEyYs+tG3cht//HTg==} dev: true + /clean-css-promise@0.1.1: + resolution: {integrity: sha512-tzWkANXMD70ETa/wAu2TXAAxYWS0ZjVUFM2dVik8RQBoAbGMFJv4iVluz3RpcoEbo++fX4RV/BXfgGoOjp8o3Q==} + dependencies: + array-to-error: 1.1.1 + clean-css: 3.4.28 + pinkie-promise: 2.0.1 + dev: true + + /clean-css@3.4.28: + resolution: {integrity: sha512-aTWyttSdI2mYi07kWqHi24NUU9YlELFKGOAgFzZjDN1064DMAOy2FBuoyGmkKRlXkbpXd0EVHmiVkbKhKoirTw==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + commander: 2.8.1 + source-map: 0.4.4 + dev: true + /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -6857,6 +6951,13 @@ packages: /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + /commander@2.8.1: + resolution: {integrity: sha512-+pJLBFVk+9ZZdlAOB5WuIElVPPth47hILFkmGym57aq8kwxsowvByvB0DHs1vQAhyMZzdcpTtF0VDKGkSDR4ZQ==} + engines: {node: '>= 0.6.x'} + dependencies: + graceful-readlink: 1.0.1 + dev: true + /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -7336,6 +7437,10 @@ packages: resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} dev: true + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + /cssstyle@2.3.0: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} @@ -7382,6 +7487,15 @@ packages: whatwg-url: 8.7.0 dev: true + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + /date-fns@2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} @@ -7684,6 +7798,13 @@ packages: webidl-conversions: 5.0.0 dev: true + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + /domhandler@2.4.2: resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} dependencies: @@ -7964,6 +8085,35 @@ packages: - supports-color dev: true + /ember-cli-fastboot@4.1.1: + resolution: {integrity: sha512-9B/qJUfDVqRmZlXxP23V2AZ3hiez99DKT2cPJ0MWkjwRom/kmVJHvv5X4fxvT7MCokjOVFvzas79D5toV4GLIA==} + engines: {node: 14.* || 16.* || >=18} + dependencies: + broccoli-concat: 4.2.5 + broccoli-file-creator: 2.1.1 + broccoli-funnel: 3.0.8 + broccoli-merge-trees: 4.2.0 + broccoli-plugin: 4.0.7 + chalk: 4.1.2 + ember-cli-babel: 7.26.11 + ember-cli-lodash-subset: 2.0.1 + ember-cli-preprocess-registry: 3.3.0 + ember-cli-version-checker: 5.1.2 + fastboot: 4.1.1 + fastboot-express-middleware: 4.1.1 + fastboot-transform: 0.1.3 + fs-extra: 10.1.0 + json-stable-stringify: 1.0.2 + md5-hex: 3.0.1 + recast: 0.19.1 + silent-error: 1.1.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + /ember-cli-get-component-path-option@1.0.0: resolution: {integrity: sha512-k47TDwcJ2zPideBCZE8sCiShSxQSpebY2BHcX2DdipMmBox5gsfyVrbKJWIHeSTTKyEUgmBIvQkqTOozEziCZA==} @@ -8037,6 +8187,17 @@ packages: /ember-cli-path-utils@1.0.0: resolution: {integrity: sha512-Qq0vvquzf4cFHoDZavzkOy3Izc893r/5spspWgyzLCPTaG78fM3HsrjZm7UWEltbXUqwHHYrqZd/R0jS08NqSA==} + /ember-cli-preprocess-registry@3.3.0: + resolution: {integrity: sha512-60GYpw7VPeB7TvzTLZTuLTlHdOXvayxjAQ+IxM2T04Xkfyu75O2ItbWlftQW7NZVGkaCsXSRAmn22PG03VpLMA==} + dependencies: + broccoli-clean-css: 1.1.0 + broccoli-funnel: 2.0.2 + debug: 3.2.7 + process-relative-require: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /ember-cli-preprocess-registry@5.0.1: resolution: {integrity: sha512-Jb2zbE5Kfe56Nf4IpdaQ10zZ72p/RyLdgE5j5/lKG3I94QHlq+7AkAd18nPpb5OUeRUT13yQTAYpU+MbjpKTtg==} engines: {node: 16.* || >= 18} @@ -9749,6 +9910,46 @@ packages: transitivePeerDependencies: - supports-color + /fastboot-express-middleware@4.1.1: + resolution: {integrity: sha512-RzobJdJXtFLOp+QtQlRSEm4RjepprLDITyYxPzd7M8LTH9jo2COhG0NFz2LFcv9Jtqlp8IzKh/0w2+hOt7JZow==} + engines: {node: 12.* || 14.* || >=16} + dependencies: + chalk: 4.1.2 + fastboot: 4.1.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + + /fastboot-transform@0.1.3: + resolution: {integrity: sha512-6otygPIJw1ARp1jJb+6KVO56iKBjhO+5x59RSC9qiZTbZRrv+HZAuP00KD3s+nWMvcFDemtdkugki9DNFTTwCQ==} + dependencies: + broccoli-stew: 1.6.0 + convert-source-map: 1.9.0 + transitivePeerDependencies: + - supports-color + dev: true + + /fastboot@4.1.1: + resolution: {integrity: sha512-XG7YprsAuAGZrUDhmJ0NFuEP0gpWg9LZwGWSS1I5+f0ETHKPWqb4x59sN2rU1nvCEETBK70z68tLsWsl9daomg==} + engines: {node: 12.* || 14.* || >=16} + dependencies: + chalk: 4.1.2 + cookie: 0.4.2 + debug: 4.3.4(supports-color@8.1.1) + jsdom: 19.0.0 + resolve: 1.22.4 + simple-dom: 1.4.0 + source-map-support: 0.5.21 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + /fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -10065,6 +10266,15 @@ packages: mime-types: 2.1.35 dev: true + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -10279,6 +10489,11 @@ packages: source-map: 0.6.1 dev: true + /get-stdin@4.0.1: + resolution: {integrity: sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==} + engines: {node: '>=0.10.0'} + dev: true + /get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} @@ -10568,6 +10783,10 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + /graceful-readlink@1.0.1: + resolution: {integrity: sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==} + dev: true + /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true @@ -10850,6 +11069,13 @@ packages: whatwg-encoding: 1.0.5 dev: true + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + /html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} @@ -10927,7 +11153,6 @@ packages: debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - dev: false /http-proxy@1.18.1: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} @@ -11002,8 +11227,6 @@ packages: requiresBuild: true dependencies: safer-buffer: 2.1.2 - dev: false - optional: true /icss-utils@5.1.0(postcss@8.4.27): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} @@ -11093,6 +11316,17 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dev: true + /inline-source-map-comment@1.0.5: + resolution: {integrity: sha512-a3/m6XgooVCXkZCduOb7pkuvUtNKt4DaqaggKKJrMQHQsqt6JcJXEreExeZiiK4vWL/cM/uF6+chH05pz2/TdQ==} + hasBin: true + dependencies: + chalk: 1.1.3 + get-stdin: 4.0.1 + minimist: 1.2.8 + sum-up: 1.0.3 + xtend: 4.0.2 + dev: true + /inquirer@6.5.2: resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} engines: {node: '>=6.0.0'} @@ -11711,6 +11945,48 @@ packages: - utf-8-validate dev: true + /jsdom@19.0.0: + resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==} + engines: {node: '>=12'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.10.0 + acorn-globals: 6.0.0 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1(supports-color@8.1.1) + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 10.0.0 + ws: 8.11.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsesc@0.3.0: resolution: {integrity: sha512-UHQmAeTXV+iwEk0aHheJRqo6Or90eDxI6KIYpHSjKLXKuKlPt1CQ7tGBerFcFA8uKU5mYxiPMlckmFptd5XZzA==} hasBin: true @@ -12395,6 +12671,13 @@ packages: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} dev: true + /md5-hex@3.0.1: + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} + engines: {node: '>=8'} + dependencies: + blueimp-md5: 2.19.0 + dev: true + /mdast-util-definitions@5.1.2: resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} dependencies: @@ -12616,6 +12899,19 @@ packages: /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + /merge-trees@1.0.1: + resolution: {integrity: sha512-O7TWwipLHhc9tErjq3WBvNP7I1g7Wgudl1ZkLqpT7F2MZy1yEdgnI9cpZZxBaqk+wJZu+2b9FE7D3ubUmGFHFA==} + dependencies: + can-symlink: 1.0.0 + fs-tree-diff: 0.5.9 + heimdalljs: 0.2.6 + heimdalljs-logger: 0.1.10 + rimraf: 2.7.1 + symlink-or-copy: 1.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /merge-trees@2.0.0: resolution: {integrity: sha512-5xBbmqYBalWqmhYm51XlohhkmVOua3VAUrrWh8t9iOkaLpS6ifqm/UVuUjQCeDVJ9Vx3g2l6ihfkbLSTeKsHbw==} dependencies: @@ -13106,6 +13402,12 @@ packages: engines: {node: '>=10'} hasBin: true + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: true + /mktemp@0.4.0: resolution: {integrity: sha512-IXnMcJ6ZyTuhRmJSjzvHSRhlVPiN9Jwc6e59V0bEJ0ba6OBeX2L0E+mRN1QseeOF4mM+F1Rit6Nh7o+rl2Yn/A==} engines: {node: '>0.9'} @@ -14002,6 +14304,18 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} + /pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + dev: true + + /pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + dev: true + /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} @@ -14199,6 +14513,25 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /prember@2.0.0: + resolution: {integrity: sha512-mNlTBBTC6ToJAqTG98pPAw9Kbg/yrRql21PoHMn0/MMQvFszR5e6w1NuOP76mfKQLFkHvxsKZcgibwjnRAKeMg==} + engines: {node: 12.* || 14.* || >= 16} + dependencies: + broccoli-debug: 0.6.5 + broccoli-merge-trees: 4.2.0 + broccoli-plugin: 4.0.7 + chalk: 4.1.2 + ember-cli-babel: 7.26.11 + express: 4.18.2 + fastboot: 4.1.1 + mkdirp: 3.0.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: true + /prepend-http@2.0.0: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} engines: {node: '>=4'} @@ -14272,6 +14605,12 @@ packages: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /process-relative-require@1.0.0: + resolution: {integrity: sha512-r8G5WJPozMJAiv8sDdVWKgJ4In/zBXqwJdMCGAXQt2Kd3HdbAuJVzWYM4JW150hWoaI9DjhtbjcsCCHIMxm8RA==} + dependencies: + node-modules-path: 1.0.2 + dev: true + /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -14585,6 +14924,16 @@ packages: private: 0.1.8 source-map: 0.6.1 + /recast@0.19.1: + resolution: {integrity: sha512-8FCjrBxjeEU2O6I+2hyHyBFH1siJbMBLwIRvVr1T3FD2cL754sOaJDsJ/8h3xYltasbJ8jqWRIhMuDGBSiSbjw==} + engines: {node: '>= 4'} + dependencies: + ast-types: 0.13.3 + esprima: 4.0.1 + private: 0.1.8 + source-map: 0.6.1 + dev: true + /recast@0.23.3: resolution: {integrity: sha512-HbCVFh2ANP6a09nzD4lx7XthsxMOJWKX5pIcUwtLrmeEIl3I0DwjCoVXDE0Aobk+7k/mS3H50FK4iuYArpcT6Q==} engines: {node: '>= 4'} @@ -15399,6 +15748,16 @@ packages: transitivePeerDependencies: - supports-color + /simple-dom@1.4.0: + resolution: {integrity: sha512-TnBPkmOyjdaOqyBMb4ick+n8c0Xv9Iwg1PykFV7hz9Se3UCiacTbRb+25cPmvozFNJLBUNvUzX/KsPfXF14ivA==} + dependencies: + '@simple-dom/document': 1.4.0 + '@simple-dom/interface': 1.4.0 + '@simple-dom/parser': 1.4.0 + '@simple-dom/serializer': 1.4.0 + '@simple-dom/void-map': 1.4.0 + dev: true + /simple-html-tokenizer@0.5.11: resolution: {integrity: sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==} @@ -15999,6 +16358,12 @@ packages: - supports-color dev: true + /sum-up@1.0.3: + resolution: {integrity: sha512-zw5P8gnhiqokJUWRdR6F4kIIIke0+ubQSGyYUY506GCbJWtV7F6Xuy0j6S125eSX2oF+a8KdivsZ8PlVEH0Mcw==} + dependencies: + chalk: 1.1.3 + dev: true + /supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} engines: {node: '>=0.8.0'} @@ -16453,6 +16818,13 @@ packages: punycode: 2.3.0 dev: true + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.3.0 + dev: true + /tracked-built-ins@3.1.1: resolution: {integrity: sha512-W8qLBxZzeC2zhEDdbPKi2GTffsiFn8PRbgal/2Fl6E/84CMvnpS6cPMmkvUmSLgKbqcAxl/RhyjWnhIZ9iPQjQ==} engines: {node: 14.* || 16.* || >= 18.*} @@ -17164,6 +17536,13 @@ packages: xml-name-validator: 3.0.0 dev: true + /w3c-xmlserializer@3.0.0: + resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} + engines: {node: '>=12'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + /walk-sync@0.2.7: resolution: {integrity: sha512-OH8GdRMowEFr0XSHQeX5fGweO6zSVHo7bG/0yJQx6LAj9Oukz0C8heI3/FYectT66gY0IPGe89kOvU410/UNpg==} dependencies: @@ -17257,6 +17636,11 @@ packages: engines: {node: '>=10.4'} dev: true + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -17324,6 +17708,13 @@ packages: iconv-lite: 0.4.24 dev: true + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + /whatwg-fetch@3.6.17: resolution: {integrity: sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==} dev: true @@ -17332,6 +17723,27 @@ packages: resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} dev: true + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url@10.0.0: + resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -17524,10 +17936,20 @@ packages: resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} dev: true + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: true + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true From 6885c8e53ca41584ed8a04b1b06d3eb72b405ee2 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 10 Jul 2023 15:26:45 -0400 Subject: [PATCH 2/3] Opt out of own pages for properLinks --- docs-app/app/router.ts | 22 +++++++++++++++++++++- docs-app/ember-cli-build.js | 6 +++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/docs-app/app/router.ts b/docs-app/app/router.ts index 31413e87b..799f86396 100644 --- a/docs-app/app/router.ts +++ b/docs-app/app/router.ts @@ -6,7 +6,27 @@ import config from 'docs-app/config/environment'; import { properLinks } from 'ember-primitives/proper-links'; @properLinks({ - ignore: ['/tests'], + ignore: [ + // Fallback to Prember + '/1-get-started/intro', + '/2-accessibility/intro', + '/3-components/external-link', + '/3-components/link', + '/3-components/modal', + '/3-components/popover', + '/3-components/portal-targets', + '/3-components/portal', + '/3-components/shadowed', + '/3-components/switch', + '/3-components/toggle', + '/4-helpers/service', + '/5-utils/color-scheme', + '/5-utils/iframe', + '/5-utils/proper-links', + '/6-forms/1-intro', + '/6-forms/2-switch', + '/tests', + ], }) export default class Router extends EmberRouter { location = config.locationType; diff --git a/docs-app/ember-cli-build.js b/docs-app/ember-cli-build.js index 07887504f..b45729d9b 100644 --- a/docs-app/ember-cli-build.js +++ b/docs-app/ember-cli-build.js @@ -17,7 +17,11 @@ module.exports = function (defaults) { urls: async function () { let data = await urlsForPrerender(); - return data.map((markdownUrl) => markdownUrl.replace(/\.md$/, '')); + let pages = data.map((markdownUrl) => markdownUrl.replace(/\.md$/, '')); + + console.debug('pre-rendered pages', pages); + + return pages; }, }, }); From a4a460d399df9fc3f9fb0e1bf20c140230b13f83 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Wed, 30 Aug 2023 22:19:31 -0400 Subject: [PATCH 3/3] Add hostWhitelist --- docs-app/ember-cli-build.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs-app/ember-cli-build.js b/docs-app/ember-cli-build.js index b45729d9b..5c63a3d4f 100644 --- a/docs-app/ember-cli-build.js +++ b/docs-app/ember-cli-build.js @@ -24,6 +24,9 @@ module.exports = function (defaults) { return pages; }, }, + fastboot: { + hostWhitelist: [/^localhost:\d+/, 'ember-primitives.pages.dev'], + } }); // Use `app.import` to add additional libraries to the generated