Compare commits

...

24 Commits

Author SHA1 Message Date
github-actions[bot]
c7261aa2b0 Version Packages 2021-05-04 21:26:53 +02:00
Thomas Allmer
690075d335 chore: fix typo on service worker page 2021-05-04 07:19:47 +02:00
Thomas Allmer
2724f073fc feat: adopt a service worker flow with more control 2021-05-04 06:55:33 +02:00
github-actions[bot]
d08692c7f3 Version Packages 2021-04-29 12:35:04 +02:00
Thomas Allmer
2b7f1ee719 fix: support pathprefix in cli, launch, mdjs, search 2021-04-29 12:30:47 +02:00
github-actions[bot]
3802778be4 Version Packages 2021-04-29 08:30:57 +02:00
Thomas Allmer
26f4a1ebff chore: align versions 2021-04-29 00:35:26 +02:00
Thomas Allmer
81edf45fe2 fix: drastically reduce the amount of js files in build output 2021-04-29 00:35:26 +02:00
github-actions[bot]
c5a1d7e8d1 Version Packages 2021-04-24 17:12:15 +02:00
Thomas Allmer
74dd8d1bcc fix(mdjs-preview): autoheight will not grow bigger than the current size height 2021-04-24 17:05:20 +02:00
Thomas Allmer
72f631ac86 chore: add releases 2021-04-23 13:06:44 +02:00
Thomas Allmer
fafb99b0fa feat(mdjs-preview): add a copy code button 2021-04-23 13:06:44 +02:00
Thomas Allmer
f5769b9aa9 fix(mdjs-preview): improve customization capabilities 2021-04-23 13:06:44 +02:00
Konstantinos Norgias
12d9cc3b44 fix: configure simulator themes & platforms 2021-04-23 11:37:34 +02:00
Konstantinos Norgias
ef9b373aa1 style: add color theming with css custom props 2021-04-23 11:37:34 +02:00
Konstantinos Norgias
560234d663 fix: default no render empty themes and platforms 2021-04-23 11:37:34 +02:00
Konstantinos Norgias
024514e901 style: add simulator css vars 2021-04-23 11:37:34 +02:00
Mathieu Puech
66c2d781e6 fix: windows path issue when using rocket lint 2021-04-23 11:18:53 +02:00
github-actions[bot]
14721d1e0f Version Packages 2021-04-20 12:58:41 +02:00
Thomas Allmer
0f6709ac4b fix(mdjs-preview): initial setting should come from the element 2021-04-20 12:55:32 +02:00
Thomas Allmer
ed86ff2346 fix(cli): do not set data-localize-lang in the simulator iframe html tag 2021-04-20 12:55:32 +02:00
Mathieu Puech
c675820163 fix: windows path issue avoid filtering of index section of collections 2021-04-20 12:28:19 +02:00
Konstantinos Norgias
f4a0ab559f fix: add changeset & update drawer 2021-04-20 12:27:12 +02:00
Konstantinos Norgias
a8cdaebab1 fix(simulator): document shadowRoot n/a in iframe 2021-04-20 12:27:12 +02:00
55 changed files with 640 additions and 509 deletions

View File

@@ -0,0 +1,45 @@
# Configuration >> Service Worker ||30
Rocket does come with a default service worker that will
- cache already visited pages
- cache assets of visited pages (up to 100 files then it replaces older entries)
- reload the page if a newer html page version is available on service worker activation
## Adjusting the file name
Changing the service worker file name can be quite a hassle so you can adjust generate file name via a config.
👉 `rocket.config.js`
```js
export default {
serviceWorkerName: 'my-service-worker-name.js',
};
```
## Meet the Service Worker
The default service worker will work for many scenarios however your needs my vary.
To enable different service worker strategies you can replace the default service worker code by providing a file at `_assets/service-worker.js`.
This file will be auto transformed and generated in the root of the website using the defined `serviceWorkerName`.
For inspiration, you can take a look at the default config.
[https://github.com/modernweb-dev/rocket/blob/main/packages/cli/preset/\_assets/service-worker.js](https://github.com/modernweb-dev/rocket/blob/main/packages/cli/preset/_assets/service-worker.js)
Be sure to check out [workbox](https://developers.google.com/web/tools/workbox) for more service worker magic.
And if you wanna have a 30 minutes crash course we highly recommend the talk [Service Workers For The Rest Of Us](https://vimeo.com/362260166) by [Philip Walton](https://twitter.com/philwalton).
## Registration
The registration happens via another file that you can also overwrite at `_assets/scripts/registerServiceWorker.js`.
Below you find the default implementation.
<!-- prettier-ignore-start -->
```js
{{ '/_assets/scripts/registerServiceWorker.js' | asset | toAbsPath | inlineFilePath; }}
```
<!-- prettier-ignore-end -->

View File

@@ -111,7 +111,7 @@ We can simulate the following settings
<html theme="dark"></html> <html theme="dark"></html>
``` ```
3. `language` 3. `language`
Best to relay on `data-lang` and `lang` often gets changes by translations services which may interfere with you translation loading system. Best to relay on `data-lang` as `lang` often gets changes by translations services which may interfere with your translation loading system.
```html ```html
<html lang="en-US" data-lang="en-US"></html> <html lang="en-US" data-lang="en-US"></html>
<html lang="de-DE" data-lang="de-DE"></html> <html lang="de-DE" data-lang="de-DE"></html>

View File

@@ -8,7 +8,6 @@ You write modern JavaScript using the latest browser features. Rollup will optim
- Set HTML or JavaScript as input and/or output - Set HTML or JavaScript as input and/or output
- Optimized for browsers which support modules - Optimized for browsers which support modules
- Loads polyfills using feature detection - Loads polyfills using feature detection
- Generates a service worker
- Minifies JavaScript - Minifies JavaScript
- Minifies lit-html templates - Minifies lit-html templates

View File

@@ -5,7 +5,7 @@ For that reason Rocket creates those automatically with the title, parent title,
It will look like this but with your logo: It will look like this but with your logo:
<img src="{{ socialMediaImage }}" width="1200" height="630" alt="Social Media Image of this page" style="border: 1px solid #000" /> <img src="{{ socialMediaImage | url }}" width="1200" height="630" alt="Social Media Image of this page" style="border: 1px solid #000" />
There are multiple ways you can modify it. There are multiple ways you can modify it.

View File

@@ -1,5 +1,11 @@
# @rocket/building-rollup # @rocket/building-rollup
## 0.3.0
### Minor Changes
- 2724f07: Stop auto generating a service worker from a template. Setup your own and then bundle via `createServiceWorkerConfig`.
## 0.2.0 ## 0.2.0
### Minor Changes ### Minor Changes

View File

@@ -6,3 +6,7 @@
export { createBasicConfig, createBasicMetaConfig } from './src/createBasicConfig.js'; export { createBasicConfig, createBasicMetaConfig } from './src/createBasicConfig.js';
export { createSpaConfig, createSpaMetaConfig } from './src/createSpaConfig.js'; export { createSpaConfig, createSpaMetaConfig } from './src/createSpaConfig.js';
export { createMpaConfig, createMpaMetaConfig } from './src/createMpaConfig.js'; export { createMpaConfig, createMpaMetaConfig } from './src/createMpaConfig.js';
export {
createServiceWorkerConfig,
createServiceWorkerMetaConfig,
} from './src/createServiceWorkerConfig.js';

View File

@@ -1,6 +1,6 @@
{ {
"name": "@rocket/building-rollup", "name": "@rocket/building-rollup",
"version": "0.2.0", "version": "0.3.0",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },
@@ -55,11 +55,16 @@
"@babel/preset-env": "^7.12.11", "@babel/preset-env": "^7.12.11",
"@rollup/plugin-babel": "^5.2.2", "@rollup/plugin-babel": "^5.2.2",
"@rollup/plugin-node-resolve": "^11.0.1", "@rollup/plugin-node-resolve": "^11.0.1",
"@rollup/plugin-replace": "^2.4.2",
"@web/rollup-plugin-html": "^1.6.0", "@web/rollup-plugin-html": "^1.6.0",
"@web/rollup-plugin-import-meta-assets": "^1.0.4", "@web/rollup-plugin-import-meta-assets": "^1.0.4",
"@web/rollup-plugin-polyfills-loader": "^1.1.0", "@web/rollup-plugin-polyfills-loader": "^1.1.0",
"browserslist": "^4.16.1", "browserslist": "^4.16.1",
"rollup-plugin-terser": "^7.0.2", "rollup-plugin-terser": "^7.0.2",
"rollup-plugin-workbox": "^6.1.0" "workbox-broadcast-update": "^6.1.5",
"workbox-cacheable-response": "^6.1.5",
"workbox-expiration": "^6.1.5",
"workbox-routing": "^6.1.5",
"workbox-strategies": "^6.1.5"
} }
} }

View File

@@ -15,10 +15,6 @@ export function createMpaMetaConfig(userConfig = { output: {}, setupPlugins: []
adjustPluginOptions('html', { adjustPluginOptions('html', {
flattenOutput: false, flattenOutput: false,
}), }),
adjustPluginOptions('workbox', config => {
delete config.navigateFallback;
return config;
}),
...config.setupPlugins, ...config.setupPlugins,
]; ];

View File

@@ -0,0 +1,91 @@
import resolve from '@rollup/plugin-node-resolve';
import { terser } from 'rollup-plugin-terser';
import babelPkg from '@rollup/plugin-babel';
import replace from '@rollup/plugin-replace';
import { metaConfigToRollupConfig } from 'plugins-manager';
const { babel } = babelPkg;
export function createServiceWorkerConfig(userConfig) {
const { config, metaPlugins } = createServiceWorkerMetaConfig(userConfig);
return metaConfigToRollupConfig(config, metaPlugins);
}
export function createServiceWorkerMetaConfig(userConfig = { output: {} }) {
const developmentMode =
typeof userConfig.developmentMode !== undefined
? userConfig.developmentMode
: !!process.env.ROLLUP_WATCH;
delete userConfig.developmentMode;
const config = {
treeshake: !developmentMode,
setupPlugins: [],
...userConfig,
output: {
format: 'iife',
file: 'service-worker.js',
...userConfig.output,
},
};
let metaPlugins = [
{
name: 'node-resolve',
plugin: resolve,
options: {
moduleDirectories: ['node_modules', 'web_modules'],
},
},
{
name: 'replace',
plugin: replace,
options: {
'process.env.NODE_ENV': JSON.stringify(developmentMode ? 'development' : 'production'),
},
},
{
name: 'babel',
plugin: babel,
options: {
babelHelpers: 'bundled',
compact: true,
presets: [
[
'@babel/preset-env',
{
targets: [
'last 3 Chrome major versions',
'last 3 ChromeAndroid major versions',
'last 3 Firefox major versions',
'last 3 Edge major versions',
'last 3 Safari major versions',
'last 3 iOS major versions',
],
useBuiltIns: false,
shippedProposals: true,
modules: false,
bugfixes: true,
},
],
],
},
},
{
name: 'terser',
plugin: terser,
options: {
mangle: {
toplevel: true,
properties: {
regex: /(^_|_$)/,
},
},
},
},
];
return { config, metaPlugins, developmentMode };
}

View File

@@ -1,6 +1,4 @@
import path from 'path';
import { rollupPluginHTML } from '@web/rollup-plugin-html'; import { rollupPluginHTML } from '@web/rollup-plugin-html';
import { generateSW } from 'rollup-plugin-workbox';
import { importMetaAssets } from '@web/rollup-plugin-import-meta-assets'; import { importMetaAssets } from '@web/rollup-plugin-import-meta-assets';
import { polyfillsLoader } from '@web/rollup-plugin-polyfills-loader'; import { polyfillsLoader } from '@web/rollup-plugin-polyfills-loader';
import { metaConfigToRollupConfig } from 'plugins-manager'; import { metaConfigToRollupConfig } from 'plugins-manager';
@@ -37,31 +35,6 @@ export function createSpaMetaConfig(userConfig = { output: {} }) {
options: { options: {
rootDir, rootDir,
absoluteBaseUrl, absoluteBaseUrl,
injectServiceWorker: true,
serviceWorkerPath: path.join(config.output.dir, 'service-worker.js'),
},
},
{
name: 'workbox',
plugin: generateSW,
options: {
// Keep 'legacy-*.js' just for retro compatibility
globIgnores: ['polyfills/*.js', 'legacy-*.js', 'nomodule-*.js'],
navigateFallback: '/index.html',
// where to output the generated sw
swDest: path.join(config.output.dir, 'service-worker.js'),
// directory to match patterns against to be precached
globDirectory: path.join(config.output.dir),
// cache any html js and css by default
globPatterns: ['**/*.{html,js,css,webmanifest}', '**/*-search-index.json'],
skipWaiting: true,
clientsClaim: true,
runtimeCaching: [
{
urlPattern: 'polyfills/*.js',
handler: 'CacheFirst',
},
],
}, },
}, },
{ {

View File

@@ -9,13 +9,13 @@ describe('plugin count', () => {
expect(config.plugins.length).to.equal(3); expect(config.plugins.length).to.equal(3);
}); });
it('createSpaConfig has 7 plugins', () => { it('createSpaConfig has 6 plugins', () => {
const config = createSpaConfig(); const config = createSpaConfig();
expect(config.plugins.length).to.equal(7); expect(config.plugins.length).to.equal(6);
}); });
it('createMpaConfig has 7 plugins', () => { it('createMpaConfig has 6 plugins', () => {
const config = createMpaConfig(); const config = createMpaConfig();
expect(config.plugins.length).to.equal(7); expect(config.plugins.length).to.equal(6);
}); });
}); });

View File

@@ -26,10 +26,7 @@ async function execute(configString) {
const config = (await import(configPath)).default; const config = (await import(configPath)).default;
await buildAndWrite(config); await buildAndWrite(config);
return async ( return async (fileName, { stripToBody = false, stripStartEndWhitespace = true } = {}) => {
fileName,
{ stripServiceWorker = false, stripToBody = false, stripStartEndWhitespace = true } = {},
) => {
let text = await fs.promises.readFile( let text = await fs.promises.readFile(
path.join(config.output.dir, fileName.split('/').join(path.sep)), path.join(config.output.dir, fileName.split('/').join(path.sep)),
); );
@@ -39,11 +36,6 @@ async function execute(configString) {
const bodyCloseTagStart = text.indexOf('</body>'); const bodyCloseTagStart = text.indexOf('</body>');
text = text.substring(bodyOpenTagEnd, bodyCloseTagStart); text = text.substring(bodyOpenTagEnd, bodyCloseTagStart);
} }
if (stripServiceWorker) {
const scriptOpenTagEnd = text.indexOf('<script inject-service-worker');
const scriptCloseTagStart = text.indexOf('</script>', scriptOpenTagEnd) + 9;
text = text.substring(0, scriptOpenTagEnd) + text.substring(scriptCloseTagStart);
}
if (stripStartEndWhitespace) { if (stripStartEndWhitespace) {
text = text.trim(); text = text.trim();
} }
@@ -57,19 +49,16 @@ describe('createMapConfig', () => {
const indexHtml = await readOutput('index.html', { const indexHtml = await readOutput('index.html', {
stripToBody: true, stripToBody: true,
stripServiceWorker: true,
}); });
expect(indexHtml).to.equal('<h1>Only static HTML content in index.html</h1>'); expect(indexHtml).to.equal('<h1>Only static HTML content in index.html</h1>');
const subHtmlIndexHtml = await readOutput('sub-html/index.html', { const subHtmlIndexHtml = await readOutput('sub-html/index.html', {
stripToBody: true, stripToBody: true,
stripServiceWorker: true,
}); });
expect(subHtmlIndexHtml).to.equal('<h1>Only static HTML content in sub-html/index.html</h1>'); expect(subHtmlIndexHtml).to.equal('<h1>Only static HTML content in sub-html/index.html</h1>');
const subJsIndexHtml = await readOutput('sub-js/index.html', { const subJsIndexHtml = await readOutput('sub-js/index.html', {
stripToBody: true, stripToBody: true,
stripServiceWorker: true,
}); });
expect(subJsIndexHtml).to.equal( expect(subJsIndexHtml).to.equal(
'<h1>Has js in sub-js/index.html</h1>\n\n\n<script type="module" src="../sub-js.js"></script>', '<h1>Has js in sub-js/index.html</h1>\n\n\n<script type="module" src="../sub-js.js"></script>',
@@ -77,13 +66,9 @@ describe('createMapConfig', () => {
const subJsAbsoluteIndexHtml = await readOutput('sub-js-absolute/index.html', { const subJsAbsoluteIndexHtml = await readOutput('sub-js-absolute/index.html', {
stripToBody: true, stripToBody: true,
stripServiceWorker: true,
}); });
expect(subJsAbsoluteIndexHtml).to.equal( expect(subJsAbsoluteIndexHtml).to.equal(
'<h1>Has js in sub-js-absolute/index.html</h1>\n\n\n<script type="module" src="../sub-js-absolute.js"></script>', '<h1>Has js in sub-js-absolute/index.html</h1>\n\n\n<script type="module" src="../sub-js-absolute.js"></script>',
); );
const serviceWorkerJs = await readOutput('service-worker.js');
expect(serviceWorkerJs).to.include('Promise'); // not empty string might be enough...
}); });
}); });

View File

@@ -1,5 +1,11 @@
# check-html-links # check-html-links
## 0.2.2
### Patch Changes
- 66c2d78: fix: windows path issue
## 0.2.1 ## 0.2.1
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "check-html-links", "name": "check-html-links",
"version": "0.2.1", "version": "0.2.2",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },

View File

@@ -6,6 +6,7 @@ import { createRequire } from 'module';
import { listFiles } from './listFiles.js'; import { listFiles } from './listFiles.js';
import path from 'path'; import path from 'path';
import slash from 'slash';
/** @typedef {import('../types/main').Link} Link */ /** @typedef {import('../types/main').Link} Link */
/** @typedef {import('../types/main').LocalFile} LocalFile */ /** @typedef {import('../types/main').LocalFile} LocalFile */
@@ -45,7 +46,7 @@ function extractReferences(htmlFilePath) {
if (ev === SaxEventType.Attribute) { if (ev === SaxEventType.Attribute) {
const data = /** @type {Attribute} */ (/** @type {any} */ (_data)); const data = /** @type {Attribute} */ (/** @type {any} */ (_data));
const attributeName = data.name.toString(); const attributeName = data.name.toString();
const value = data.value.toString(); const value = slash(data.value.toString());
const entry = { const entry = {
attribute: attributeName, attribute: attributeName,
value, value,

View File

@@ -1,5 +1,36 @@
# @rocket/cli # @rocket/cli
## 0.7.0
### Minor Changes
- 2724f07: The service worker no longer precaches all urls and assets. It now
- caches already visited pages
- caches assets of visited pages (up to 100 files then it replaces older entries)
- on service worker activation it will reload the page if a newer version is available
### Patch Changes
- Updated dependencies [2724f07]
- @rocket/building-rollup@0.3.0
## 0.6.3
### Patch Changes
- 2b7f1ee: Add support for pathprefix
- Updated dependencies [2b7f1ee]
- @rocket/eleventy-plugin-mdjs-unified@0.4.1
## 0.6.2
### Patch Changes
- ed86ff2: Do not set `data-localize-lang` in the simulator iframe html tag
- f4a0ab5: Pass document shadowRoot to iframe
- c675820: fix: windows path issue avoid filtering of index section of collections
## 0.6.1 ## 0.6.1
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@rocket/cli", "name": "@rocket/cli",
"version": "0.6.1", "version": "0.7.0",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },
@@ -57,9 +57,9 @@
"dependencies": { "dependencies": {
"@11ty/eleventy": "^0.11.1", "@11ty/eleventy": "^0.11.1",
"@11ty/eleventy-img": "^0.7.4", "@11ty/eleventy-img": "^0.7.4",
"@rocket/building-rollup": "^0.2.0", "@rocket/building-rollup": "^0.3.0",
"@rocket/core": "^0.1.2", "@rocket/core": "^0.1.2",
"@rocket/eleventy-plugin-mdjs-unified": "^0.4.0", "@rocket/eleventy-plugin-mdjs-unified": "^0.4.1",
"@rocket/eleventy-rocket-nav": "^0.3.0", "@rocket/eleventy-rocket-nav": "^0.3.0",
"@rollup/plugin-babel": "^5.2.2", "@rollup/plugin-babel": "^5.2.2",
"@rollup/plugin-node-resolve": "^11.0.1", "@rollup/plugin-node-resolve": "^11.0.1",
@@ -67,13 +67,15 @@
"@web/dev-server": "^0.1.4", "@web/dev-server": "^0.1.4",
"@web/dev-server-rollup": "^0.3.2", "@web/dev-server-rollup": "^0.3.2",
"@web/rollup-plugin-copy": "^0.2.0", "@web/rollup-plugin-copy": "^0.2.0",
"check-html-links": "^0.2.1", "check-html-links": "^0.2.2",
"command-line-args": "^5.1.1", "command-line-args": "^5.1.1",
"command-line-usage": "^6.1.1", "command-line-usage": "^6.1.1",
"fs-extra": "^9.0.1", "fs-extra": "^9.0.1",
"micromatch": "^4.0.2", "micromatch": "^4.0.2",
"plugins-manager": "^0.2.1", "plugins-manager": "^0.2.1",
"utf8": "^3.0.0" "slash": "^3.0.0",
"utf8": "^3.0.0",
"workbox-window": "^6.1.5"
}, },
"types": "dist-types/index.d.ts" "types": "dist-types/index.d.ts"
} }

View File

@@ -0,0 +1,22 @@
(async () => {
if ('serviceWorker' in navigator) {
const { Workbox } = await import('workbox-window');
const url = window.__rocketServiceWorkerUrl || '/service-worker.js';
const wb = new Workbox(url);
wb.addEventListener('message', event => {
if (event.data.type === 'CACHE_UPDATED') {
const { updatedURL } = event.data.payload;
console.log(`Reloading as a newer version of ${updatedURL} became available!`);
window.location.reload();
}
});
wb.register()
.then(function () {
console.log('ServiceWorker registered.');
})
.catch(function (err) {
console.log('ServiceWorker registration failed: ', err);
});
}
})();

View File

@@ -0,0 +1,29 @@
import { registerRoute } from 'workbox-routing';
import { CacheFirst, StaleWhileRevalidate } from 'workbox-strategies';
import { BroadcastUpdatePlugin } from 'workbox-broadcast-update';
import { ExpirationPlugin } from 'workbox-expiration';
addEventListener('install', () => {
// eslint-disable-next-line no-undef
skipWaiting();
});
// addEventListener('activate', () => {
// console.log('activate');
// });
const cacheFirst = new CacheFirst({
cacheName: 'assets',
plugins: [
new ExpirationPlugin({
maxEntries: 100,
}),
],
});
const staleWhileRevalidate = new StaleWhileRevalidate({
cacheName: 'pages',
plugins: [new BroadcastUpdatePlugin()],
});
registerRoute(/(\/|\.html)$/, staleWhileRevalidate);
registerRoute(/\.(css|m?js|svg|woff2|png|jpg|gif|json|xml)$/, cacheFirst);

View File

@@ -0,0 +1,5 @@
<script>
window.__rocketServiceWorkerUrl = '/{{ rocketConfig.serviceWorkerName }}';
</script>
<script type="module" inject-service-worker="" src="{{ '/_assets/scripts/registerServiceWorker.js' | asset | url }}"></script>

View File

@@ -1,3 +0,0 @@
<script>
{{ '_assets/_inline-scripts/serviceWorkerUpdate.js' | asset | toAbsPath | inlineFilePath | safe }}
</script>

View File

@@ -1,7 +1,7 @@
<meta property="og:site_name" content="{{ site.name }}"/> <meta property="og:site_name" content="{{ site.name }}"/>
<meta property="og:type" content="website"/> <meta property="og:type" content="website"/>
<meta property="og:image" content="{{ socialMediaImage }}"/> <meta property="og:image" content="{{ socialMediaImage | url }}"/>
<meta property="og:url" content="{{ page.url }}"/> <meta property="og:url" content="{{ page.url | url }}"/>
<meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:card" content="summary_large_image"/>

View File

@@ -35,7 +35,6 @@
if (urlParts.get('language')) { if (urlParts.get('language')) {
document.documentElement.setAttribute('lang', urlParts.get('language')); document.documentElement.setAttribute('lang', urlParts.get('language'));
document.documentElement.setAttribute('data-lang', urlParts.get('language')); document.documentElement.setAttribute('data-lang', urlParts.get('language'));
document.documentElement.setAttribute('data-localize-lang', urlParts.get('language'));
} }
if (urlParts.get('story-key')) { if (urlParts.get('story-key')) {
document.documentElement.setAttribute('story-key', urlParts.get('story-key')); document.documentElement.setAttribute('story-key', urlParts.get('story-key'));
@@ -47,7 +46,7 @@
} }
const mod = await import(urlParts.get('story-file')); const mod = await import(urlParts.get('story-file'));
render(mod[urlParts.get('story-key')](), document.body); render(mod[urlParts.get('story-key')]({ shadowRoot: document }), document.body);
} }
window.addEventListener('hashchange', onHashChange, false); window.addEventListener('hashchange', onHashChange, false);

View File

@@ -6,7 +6,7 @@ import fs from 'fs-extra';
import path from 'path'; import path from 'path';
import { copy } from '@web/rollup-plugin-copy'; import { copy } from '@web/rollup-plugin-copy';
import { createMpaConfig } from '@rocket/building-rollup'; import { createMpaConfig, createServiceWorkerConfig } from '@rocket/building-rollup';
import { addPlugin, adjustPluginOptions } from 'plugins-manager'; import { addPlugin, adjustPluginOptions } from 'plugins-manager';
/** /**
@@ -56,6 +56,18 @@ async function productionBuild(config) {
}); });
await buildAndWrite(mpaConfig); await buildAndWrite(mpaConfig);
const serviceWorkerSourcePath = path.resolve('docs/_merged_assets/service-worker.js');
if (fs.existsSync(serviceWorkerSourcePath)) {
const serviceWorkerConfig = createServiceWorkerConfig({
input: serviceWorkerSourcePath,
output: {
file: path.join(path.resolve(config.outputDir), config.serviceWorkerName),
},
});
await buildAndWrite(serviceWorkerConfig);
}
} }
export class RocketBuild { export class RocketBuild {

View File

@@ -1,5 +1,6 @@
const path = require('path'); const path = require('path');
const fs = require('fs'); const fs = require('fs');
const slash = require('slash');
const { readdirSync } = require('fs'); const { readdirSync } = require('fs');
function getDirectories(source) { function getDirectories(source) {
@@ -23,7 +24,7 @@ const rocketCollections = {
let docs = [ let docs = [
...collection.getFilteredByGlob(`${_inputDirCwdRelative}/${section}/**/*.md`), ...collection.getFilteredByGlob(`${_inputDirCwdRelative}/${section}/**/*.md`),
]; ];
docs = docs.filter(page => page.inputPath !== `./${indexSection}`); docs = docs.filter(page => page.inputPath !== `./${slash(indexSection)}`);
return docs; return docs;
}); });

View File

@@ -40,6 +40,7 @@ export async function normalizeConfig(inConfig) {
inputDir: 'docs', inputDir: 'docs',
outputDir: '_site', outputDir: '_site',
outputDevDir: '_site-dev', outputDevDir: '_site-dev',
serviceWorkerName: 'service-worker.js',
build: {}, build: {},
devServer: {}, devServer: {},

View File

@@ -15,7 +15,6 @@ export function setFixtureDir(importMetaUrl) {
/** /**
* @typedef {object} readOutputOptions * @typedef {object} readOutputOptions
* @property {boolean} stripServiceWorker
* @property {boolean} stripToBody * @property {boolean} stripToBody
* @property {boolean} stripStartEndWhitespace * @property {boolean} stripStartEndWhitespace
* @property {boolean} stripScripts * @property {boolean} stripScripts
@@ -47,7 +46,6 @@ export async function readOutput(
cli, cli,
fileName, fileName,
{ {
stripServiceWorker = false,
stripToBody = false, stripToBody = false,
stripStartEndWhitespace = true, stripStartEndWhitespace = true,
stripScripts = false, stripScripts = false,
@@ -67,11 +65,6 @@ export async function readOutput(
const bodyCloseTagStart = text.indexOf('</body>'); const bodyCloseTagStart = text.indexOf('</body>');
text = text.substring(bodyOpenTagEnd, bodyCloseTagStart); text = text.substring(bodyOpenTagEnd, bodyCloseTagStart);
} }
if (stripServiceWorker) {
const scriptOpenTagEnd = text.indexOf('<script inject-service-worker');
const scriptCloseTagStart = text.indexOf('</script>', scriptOpenTagEnd) + 9;
text = text.substring(0, scriptOpenTagEnd) + text.substring(scriptCloseTagStart);
}
if (stripScripts) { if (stripScripts) {
const scriptOpenTagEnd = text.indexOf('<script>'); const scriptOpenTagEnd = text.indexOf('<script>');
const scriptCloseTagStart = text.indexOf('</script>', scriptOpenTagEnd) + 9; const scriptCloseTagStart = text.indexOf('</script>', scriptOpenTagEnd) + 9;

View File

@@ -66,7 +66,6 @@ describe('RocketCli computedConfig', () => {
const indexHtml = await readBuildOutput(cli, 'index.html', { const indexHtml = await readBuildOutput(cli, 'index.html', {
stripToBody: true, stripToBody: true,
stripServiceWorker: true,
}); });
expect(indexHtml).to.equal('/_merged_assets/11ty-img/5893749-1200.png'); expect(indexHtml).to.equal('/_merged_assets/11ty-img/5893749-1200.png');
}); });

View File

@@ -75,9 +75,6 @@ describe('RocketCli e2e', () => {
cli = await executeBuild('e2e-fixtures/rollup-plugin/devbuild-build.rocket.config.js'); cli = await executeBuild('e2e-fixtures/rollup-plugin/devbuild-build.rocket.config.js');
const inlineModule = await readBuildOutput(cli, 'e97af63d.js'); const inlineModule = await readBuildOutput(cli, 'e97af63d.js');
expect(inlineModule).to.equal('var a={test:"data"};console.log(a);'); expect(inlineModule).to.equal('var a={test:"data"};console.log(a);');
const swCode = await readBuildOutput(cli, 'my-service-worker.js');
expect(swCode).to.not.be.undefined;
}); });
it('can adjust the inputDir', async () => { it('can adjust the inputDir', async () => {
@@ -111,7 +108,6 @@ describe('RocketCli e2e', () => {
cli = await executeBuild('e2e-fixtures/content/pathPrefix.rocket.config.js'); cli = await executeBuild('e2e-fixtures/content/pathPrefix.rocket.config.js');
const linkHtml = await readBuildOutput(cli, 'link/index.html', { const linkHtml = await readBuildOutput(cli, 'link/index.html', {
stripServiceWorker: true,
stripToBody: true, stripToBody: true,
}); });
expect(linkHtml).to.equal( expect(linkHtml).to.equal(
@@ -119,9 +115,7 @@ describe('RocketCli e2e', () => {
'\n', '\n',
), ),
); );
const assetHtml = await readBuildOutput(cli, 'use-assets/index.html', { const assetHtml = await readBuildOutput(cli, 'use-assets/index.html');
stripServiceWorker: true,
});
expect(assetHtml).to.equal( expect(assetHtml).to.equal(
'<html><head><link rel="stylesheet" href="../41297ffa.css">\n\n</head><body>\n\n</body></html>', '<html><head><link rel="stylesheet" href="../41297ffa.css">\n\n</head><body>\n\n</body></html>',
); );

View File

@@ -86,6 +86,12 @@ describe('RocketCli preset', () => {
' </div>', ' </div>',
'', '',
' <footer id="main-footer"></footer>', ' <footer id="main-footer"></footer>',
'',
' <script',
' type="module"',
' inject-service-worker=""',
' src="/_merged_assets/scripts/registerServiceWorker.js"',
' ></script>',
' </body>', ' </body>',
'</html>', '</html>',
].join('\n'), ].join('\n'),

View File

@@ -1,19 +1,11 @@
// @ts-no-check // @ts-no-check
import path from 'path';
import { fileURLToPath } from 'url';
import json from '@rollup/plugin-json'; import json from '@rollup/plugin-json';
import { addPlugin, adjustPluginOptions } from 'plugins-manager'; import { addPlugin, adjustPluginOptions } from 'plugins-manager';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const outputDir = path.join(__dirname, '__output');
/** @type {Partial<import("../../../types/main").RocketCliOptions>} */ /** @type {Partial<import("../../../types/main").RocketCliOptions>} */
const config = { const config = {
setupDevAndBuildPlugins: [addPlugin({ name: 'json', plugin: json, location: 'top' })], setupDevAndBuildPlugins: [addPlugin({ name: 'json', plugin: json, location: 'top' })],
setupBuildPlugins: [ setupBuildPlugins: [adjustPluginOptions('html', { absoluteBaseUrl: 'https://test-me.com' })],
adjustPluginOptions('workbox', { swDest: path.join(outputDir, 'my-service-worker.js') }),
],
}; };
export default config; export default config;

View File

@@ -31,12 +31,7 @@ export async function expectThrowsAsync(method, { errorMatch, errorMessage } = {
export async function readOutput( export async function readOutput(
cli, cli,
fileName, fileName,
{ { stripToBody = false, stripStartEndWhitespace = true, type = 'build' } = {},
stripServiceWorker = false,
stripToBody = false,
stripStartEndWhitespace = true,
type = 'build',
} = {},
) { ) {
const outputDir = type === 'build' ? cli.config.outputDir : cli.config.outputDevDir; const outputDir = type === 'build' ? cli.config.outputDir : cli.config.outputDevDir;
let text = await fs.promises.readFile(path.join(outputDir, fileName)); let text = await fs.promises.readFile(path.join(outputDir, fileName));
@@ -46,11 +41,6 @@ export async function readOutput(
const bodyCloseTagStart = text.indexOf('</body>'); const bodyCloseTagStart = text.indexOf('</body>');
text = text.substring(bodyOpenTagEnd, bodyCloseTagStart); text = text.substring(bodyOpenTagEnd, bodyCloseTagStart);
} }
if (stripServiceWorker) {
const scriptOpenTagEnd = text.indexOf('<script inject-service-worker');
const scriptCloseTagStart = text.indexOf('</script>', scriptOpenTagEnd) + 9;
text = text.substring(0, scriptOpenTagEnd) + text.substring(scriptCloseTagStart);
}
if (stripStartEndWhitespace) { if (stripStartEndWhitespace) {
text = text.trim(); text = text.trim();
} }

View File

@@ -41,6 +41,7 @@ describe('normalizeConfig', () => {
setupEleventyComputedConfig: [], setupEleventyComputedConfig: [],
setupCliPlugins: [], setupCliPlugins: [],
presets: [], presets: [],
serviceWorkerName: 'service-worker.js',
plugins: [ plugins: [
{ commands: ['start'] }, { commands: ['start'] },
{ commands: ['build'] }, { commands: ['build'] },
@@ -76,6 +77,7 @@ describe('normalizeConfig', () => {
setupCliPlugins: [], setupCliPlugins: [],
setupEleventyComputedConfig: [], setupEleventyComputedConfig: [],
presets: [], presets: [],
serviceWorkerName: 'service-worker.js',
plugins: [ plugins: [
{ commands: ['start'] }, { commands: ['start'] },
{ commands: ['build'] }, { commands: ['build'] },
@@ -108,6 +110,7 @@ describe('normalizeConfig', () => {
setupCliPlugins: [], setupCliPlugins: [],
setupEleventyComputedConfig: [], setupEleventyComputedConfig: [],
presets: [], presets: [],
serviceWorkerName: 'service-worker.js',
plugins: [ plugins: [
{ commands: ['start'] }, { commands: ['start'] },
{ commands: ['build'] }, { commands: ['build'] },
@@ -143,6 +146,7 @@ describe('normalizeConfig', () => {
setupCliPlugins: [], setupCliPlugins: [],
setupEleventyComputedConfig: [], setupEleventyComputedConfig: [],
presets: [], presets: [],
serviceWorkerName: 'service-worker.js',
plugins: [ plugins: [
{ commands: ['start'] }, { commands: ['start'] },
{ commands: ['build'] }, { commands: ['build'] },

View File

@@ -20,6 +20,7 @@ interface RocketStartConfig {
export interface RocketCliOptions { export interface RocketCliOptions {
presets: Array<RocketPreset>; presets: Array<RocketPreset>;
pathPrefix?: string; pathPrefix?: string;
serviceWorkerName?: string;
inputDir: string; inputDir: string;
outputDir: string; outputDir: string;
emptyOutputDir?: boolean; emptyOutputDir?: boolean;

View File

@@ -1,5 +1,13 @@
# @rocket/eleventy-plugin-mdjs-unified # @rocket/eleventy-plugin-mdjs-unified
## 0.4.1
### Patch Changes
- 2b7f1ee: Add support for pathprefix
- Updated dependencies [2b7f1ee]
- @mdjs/core@0.7.1
## 0.4.0 ## 0.4.0
### Minor Changes ### Minor Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@rocket/eleventy-plugin-mdjs-unified", "name": "@rocket/eleventy-plugin-mdjs-unified",
"version": "0.4.0", "version": "0.4.1",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },
@@ -31,7 +31,7 @@
"mdjs" "mdjs"
], ],
"dependencies": { "dependencies": {
"@mdjs/core": "^0.7.0", "@mdjs/core": "^0.7.1",
"es-module-lexer": "^0.3.26", "es-module-lexer": "^0.3.26",
"unist-util-visit": "^2.0.3" "unist-util-visit": "^2.0.3"
}, },

View File

@@ -1,5 +1,6 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable @typescript-eslint/ban-ts-comment */
const path = require('path'); const path = require('path');
const slash = require('slash');
const fs = require('fs'); const fs = require('fs');
const { mdjsProcess } = require('@mdjs/core'); const { mdjsProcess } = require('@mdjs/core');
const visit = require('unist-util-visit'); const visit = require('unist-util-visit');
@@ -121,8 +122,12 @@ function eleventyUnified(pluginOptions) {
return plugins.map(plugin => { return plugins.map(plugin => {
if (plugin.options) { if (plugin.options) {
plugin.options.page = eleventySettings.page; plugin.options.page = eleventySettings.page;
plugin.options.rocketConfig = eleventySettings.rocketConfig;
} else { } else {
plugin.options = { page: eleventySettings.page }; plugin.options = {
page: eleventySettings.page,
rocketConfig: eleventySettings.rocketConfig,
};
} }
return plugin; return plugin;
}); });
@@ -145,8 +150,19 @@ function eleventyUnified(pluginOptions) {
const newName = path.join(newFolder, '__mdjs-stories.js'); const newName = path.join(newFolder, '__mdjs-stories.js');
await fs.promises.mkdir(newFolder, { recursive: true }); await fs.promises.mkdir(newFolder, { recursive: true });
await fs.promises.writeFile(newName, result.jsCode, 'utf8'); await fs.promises.writeFile(newName, result.jsCode, 'utf8');
let scriptUrl = eleventySettings.page.url;
if (
eleventySettings.rocketConfig &&
eleventySettings.rocketConfig.command === 'build' &&
eleventySettings.rocketConfig.pathPrefix
) {
scriptUrl = slash(
path.join(eleventySettings.rocketConfig.pathPrefix, eleventySettings.page.url),
);
}
code += ` code += `
<script type="module" src="${eleventySettings.page.url}__mdjs-stories.js" mdjs-setup></script> <script type="module" src="${scriptUrl}__mdjs-stories.js" mdjs-setup></script>
`; `;
} }
return code; return code;

View File

@@ -1,5 +1,17 @@
# @rocket/launch # @rocket/launch
## 0.4.2
### Patch Changes
- 2b7f1ee: Add support for pathprefix
## 0.4.1
### Patch Changes
- 81edf45: Reduce the amount of js files in the build by avoiding inline script tags
## 0.4.0 ## 0.4.0
### Minor Changes ### Minor Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@rocket/launch", "name": "@rocket/launch",
"version": "0.4.0", "version": "0.4.2",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },
@@ -35,7 +35,7 @@
"preset" "preset"
], ],
"dependencies": { "dependencies": {
"@rocket/drawer": "^0.1.2", "@rocket/drawer": "^0.1.3",
"@rocket/navigation": "^0.2.1" "@rocket/navigation": "^0.2.1"
} }
} }

View File

@@ -1,17 +1 @@
{# <script type="module" src="{{ '/_assets/scripts/init-navigation.js' | asset | url }}"></script>
src leads to the file not being included/executed? bug in rollup-plugin-html?
<script type="module" src="{{ '/_assets/scripts/init-navigation.js' | asset }}"></script>
#}
<script type="module">
import '@rocket/navigation/rocket-navigation.js';
import '@rocket/drawer/rocket-drawer.js';
const drawer = document.querySelector('#sidebar');
// Toggle button
const triggers = document.querySelectorAll('[data-action="trigger-mobile-menu"]');
for (const trigger of [...triggers]) {
trigger.addEventListener('click', function () {
drawer.opened = true;
});
}
</script>

View File

@@ -1,7 +1,7 @@
<meta property="og:site_name" content="{{ site.name }}"/> <meta property="og:site_name" content="{{ site.name }}"/>
<meta property="og:type" content="website"/> <meta property="og:type" content="website"/>
<meta property="og:image" content="{{ socialMediaImage }}"/> <meta property="og:image" content="{{ socialMediaImage | url }}"/>
<meta property="og:url" content="{{ page.url }}"/> <meta property="og:url" content="{{ page.url | url }}"/>
<meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:card" content="summary_large_image"/>

View File

@@ -208,19 +208,13 @@ describe('RocketLaunch preset', () => {
' </div>', ' </div>',
' </footer>', ' </footer>',
'', '',
' <script type="module">', ' <script type="module" src="/_merged_assets/scripts/init-navigation.js"></script>',
' import "@rocket/navigation/rocket-navigation.js";',
' import "@rocket/drawer/rocket-drawer.js";',
' const drawer = document.querySelector("#sidebar");',
'', '',
' // Toggle button', ' <script',
` const triggers = document.querySelectorAll('[data-action="trigger-mobile-menu"]');`, ' type="module"',
' for (const trigger of [...triggers]) {', ' inject-service-worker=""',
' trigger.addEventListener("click", function () {', ' src="/_merged_assets/scripts/registerServiceWorker.js"',
' drawer.opened = true;', ' ></script>',
' });',
' }',
' </script>',
' </body>', ' </body>',
'</html>', '</html>',
].join('\n'), ].join('\n'),
@@ -443,19 +437,13 @@ describe('RocketLaunch preset', () => {
' </div>', ' </div>',
' </footer>', ' </footer>',
'', '',
' <script type="module">', ' <script type="module" src="/_merged_assets/scripts/init-navigation.js"></script>',
' import "@rocket/navigation/rocket-navigation.js";',
' import "@rocket/drawer/rocket-drawer.js";',
' const drawer = document.querySelector("#sidebar");',
'', '',
' // Toggle button', ' <script',
` const triggers = document.querySelectorAll('[data-action="trigger-mobile-menu"]');`, ' type="module"',
' for (const trigger of [...triggers]) {', ' inject-service-worker=""',
' trigger.addEventListener("click", function () {', ' src="/_merged_assets/scripts/registerServiceWorker.js"',
' drawer.opened = true;', ' ></script>',
' });',
' }',
' </script>',
' </body>', ' </body>',
'</html>', '</html>',
].join('\n'), ].join('\n'),

View File

@@ -1,5 +1,11 @@
# Change Log # Change Log
## 0.7.1
### Patch Changes
- 2b7f1ee: Add support for pathprefix
## 0.7.0 ## 0.7.0
### Minor Changes ### Minor Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@mdjs/core", "name": "@mdjs/core",
"version": "0.7.0", "version": "0.7.1",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },
@@ -43,7 +43,7 @@
"remark" "remark"
], ],
"dependencies": { "dependencies": {
"@mdjs/mdjs-preview": "^0.4.0", "@mdjs/mdjs-preview": "^0.4.2",
"@mdjs/mdjs-story": "^0.2.0", "@mdjs/mdjs-story": "^0.2.0",
"@types/unist": "^2.0.3", "@types/unist": "^2.0.3",
"es-module-lexer": "^0.3.26", "es-module-lexer": "^0.3.26",

View File

@@ -1,8 +1,43 @@
const path = require('path');
const slash = require('slash');
/** @typedef {import('vfile').VFileOptions} VFileOptions */ /** @typedef {import('vfile').VFileOptions} VFileOptions */
/** @typedef {import('unist').Node} Node */ /** @typedef {import('unist').Node} Node */
/** @typedef {import('@mdjs/core/types/code').Story} Story */ /** @typedef {import('@mdjs/core/types/code').Story} Story */
function mdjsSetupCode({ rootNodeQueryCode = 'document', simulationSettings = {} } = {}) { /**
* @typedef {Object} simulationSettings
* @property {string} [simulatorUrl]
*/
/**
* @typedef {Object} rocketConfig
* @property {string} [pathPrefix]
*/
/**
* @param {object} options
* @param {string} [options.rootNodeQueryCode]
* @param {simulationSettings} [options.simulationSettings]
* @param {rocketConfig} [options.rocketConfig]
* @returns
*/
function mdjsSetupCode({
rootNodeQueryCode = 'document',
simulationSettings = {},
rocketConfig = {},
} = {}) {
if (rocketConfig && rocketConfig.pathPrefix) {
if (simulationSettings && simulationSettings.simulatorUrl) {
const { simulatorUrl } = simulationSettings;
if (simulatorUrl[0] === '/' && !simulatorUrl.startsWith(rocketConfig.pathPrefix)) {
simulationSettings.simulatorUrl = slash(
path.join(rocketConfig.pathPrefix, simulationSettings.simulatorUrl),
);
}
}
}
/** /**
* @param {Node} tree * @param {Node} tree
* @param {VFileOptions} file * @param {VFileOptions} file

View File

@@ -1,5 +1,19 @@
# @mdjs/mdjs-preview # @mdjs/mdjs-preview
## 0.4.2
### Patch Changes
- 72f631a: Improve customizations by hiding empty themes, platforms and adding parts to be styled.
- 74dd8d1: Autoheight will not grow bigger than the current size height
- 72f631a: Add a copy code button
## 0.4.1
### Patch Changes
- 0f6709a: Make sure initial settings are taken from the element if nothing is yet stored
## 0.4.0 ## 0.4.0
### Minor Changes ### Minor Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@mdjs/mdjs-preview", "name": "@mdjs/mdjs-preview",
"version": "0.4.0", "version": "0.4.2",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },

View File

@@ -51,6 +51,7 @@ export class MdJsPreview extends LitElement {
edgeDistance: { type: Boolean }, edgeDistance: { type: Boolean },
autoHeight: { type: Boolean }, autoHeight: { type: Boolean },
rememberSettings: { type: Boolean }, rememberSettings: { type: Boolean },
__copyButtonText: { type: String },
}; };
} }
@@ -61,18 +62,21 @@ export class MdJsPreview extends LitElement {
this.key = ''; this.key = '';
this.contentHeight = 0; this.contentHeight = 0;
this.simulatorUrl = ''; this.simulatorUrl = '';
this.__supportsClipboard = 'clipboard' in navigator;
this.__copyButtonText = 'Copy Code';
this.theme = 'light'; this.theme = 'light';
/** @type {{ key: string, name: string }[]} */
this.themes = [ this.themes = [
{ key: 'light', name: 'Light' }, // { key: 'light', name: 'Light' },
{ key: 'dark', name: 'Dark' }, // { key: 'dark', name: 'Dark' },
]; ];
this.language = 'en-US'; this.language = 'en-US';
this.languages = [ this.languages = [
{ key: 'en', name: 'English' }, { key: 'en', name: 'English' },
{ key: 'en-US', name: 'English (United States)' }, { key: 'en-US', name: 'English (United States)' },
{ key: 'en-US', name: 'English (United Kingdom)' }, { key: 'en-GB', name: 'English (United Kingdom)' },
{ key: 'de', name: 'German' }, { key: 'de', name: 'German' },
{ key: 'es', name: 'Spanish' }, { key: 'es', name: 'Spanish' },
{ key: 'fi', name: 'Finnish' }, { key: 'fi', name: 'Finnish' },
@@ -83,16 +87,17 @@ export class MdJsPreview extends LitElement {
{ key: 'pt', name: 'Portuguese' }, { key: 'pt', name: 'Portuguese' },
{ key: 'ro', name: 'Romanian' }, { key: 'ro', name: 'Romanian' },
{ key: 'sv', name: 'Swedish' }, { key: 'sv', name: 'Swedish' },
{ key: 'sv', name: 'Swedish' },
]; ];
this.platform = 'web'; this.platform = 'web';
/** @type {{ key: string, name: string }[]} */
this.platforms = [ this.platforms = [
{ key: 'web', name: 'Web' }, // { key: 'web', name: 'Web' },
// { key: 'web-windows', name: 'Windows' }, // { key: 'web-windows', name: 'Windows' },
// { key: 'web-mac', name: 'Mac' }, // { key: 'web-mac', name: 'Mac' },
{ key: 'android', name: 'Android' }, // { key: 'android', name: 'Android' },
{ key: 'ios', name: 'iOS' }, // { key: 'ios', name: 'iOS' },
]; ];
this.size = 'webSmall'; this.size = 'webSmall';
@@ -178,10 +183,11 @@ export class MdJsPreview extends LitElement {
} }
get deviceHeight() { get deviceHeight() {
const maxHeight = this.sizeData?.height || 50;
if (this.autoHeight) { if (this.autoHeight) {
return this.contentHeight + 10; return Math.min(this.contentHeight, maxHeight);
} }
return this.sizeData?.height || 50; return maxHeight;
} }
/** /**
@@ -269,10 +275,19 @@ export class MdJsPreview extends LitElement {
this.size = sizes[0].key; this.size = sizes[0].key;
} }
async onCopy() {
if (this.textContent) {
await navigator.clipboard.writeText(this.textContent.trim());
this.__copyButtonText = 'Copied ✅';
setTimeout(() => {
this.__copyButtonText = 'Copy code';
}, 2000);
}
}
renderPlatforms() { renderPlatforms() {
return html` if (this.platforms.length) {
<div> return html`
<h3>Platform</h3>
<h4>Platform</h4> <h4>Platform</h4>
<div <div
class="segmented-control" class="segmented-control"
@@ -298,14 +313,24 @@ export class MdJsPreview extends LitElement {
`, `,
)} )}
</div> </div>
</div> `;
`; }
}
renderPlatform() {
if (this.platforms.length) {
return html`
<div>
<h3>Platform</h3>
${this.renderPlatforms()}
</div>
`;
}
} }
renderSizes() { renderSizes() {
return html` if (this.sizes.length) {
<div> return html`
<h3>Viewport</h3>
<h4>Size</h4> <h4>Size</h4>
<div <div
class="segmented-control" class="segmented-control"
@@ -331,16 +356,22 @@ export class MdJsPreview extends LitElement {
`, `,
)} )}
</div> </div>
${this.renderAutoHeight()} `;
}
}
renderViewport() {
return html`
<div>
<h3>Viewport</h3>
${this.renderSizes()} ${this.renderAutoHeight()}
</div> </div>
`; `;
} }
renderThemes() { renderThemes() {
return html` if (this.themes.length) {
<div> return html`
<h3>Visual</h3>
<h4>Theme</h4>
<div <div
class="segmented-control" class="segmented-control"
@change=${ @change=${
@@ -365,15 +396,22 @@ export class MdJsPreview extends LitElement {
`, `,
)} )}
</div> </div>
${this.renderEdgeDistance()} `;
}
}
renderVisual() {
return html`
<div>
<h3>Visual</h3>
${this.renderThemes()} ${this.renderEdgeDistance()}
</div> </div>
`; `;
} }
renderLanguages() { renderLanguages() {
return html` if (this.languages.length) {
<div> return html`
<h3>Localization</h3>
<label> <label>
Language Language
<select <select
@@ -394,6 +432,15 @@ export class MdJsPreview extends LitElement {
)} )}
</select> </select>
</label> </label>
`;
}
}
renderLocalization() {
return html`
<div>
<h3>Localization</h3>
${this.renderLanguages()}
</div> </div>
`; `;
} }
@@ -403,7 +450,7 @@ export class MdJsPreview extends LitElement {
<div> <div>
<label class="${this.edgeDistance ? 'switch selected' : 'switch'}"> <label class="${this.edgeDistance ? 'switch selected' : 'switch'}">
Apply distance to edge Apply distance to edge
<span class="switch-button"></span> <span part="switch-button"></span>
<input <input
type="checkbox" type="checkbox"
@@ -426,7 +473,7 @@ export class MdJsPreview extends LitElement {
<div> <div>
<label class="${this.autoHeight ? 'switch selected' : 'switch'}"> <label class="${this.autoHeight ? 'switch selected' : 'switch'}">
Fit height to content Fit height to content
<span class="switch-button"></span> <span part="switch-button"></span>
<input <input
type="checkbox" type="checkbox"
?checked=${this.autoHeight} ?checked=${this.autoHeight}
@@ -448,7 +495,7 @@ export class MdJsPreview extends LitElement {
<div> <div>
<label class="${this.sameSettings ? 'switch selected' : 'switch'}"> <label class="${this.sameSettings ? 'switch selected' : 'switch'}">
Same settings for all simulations Same settings for all simulations
<span class="switch-button"></span> <span part="switch-button"></span>
<input <input
type="checkbox" type="checkbox"
?checked=${this.sameSettings} ?checked=${this.sameSettings}
@@ -473,7 +520,7 @@ export class MdJsPreview extends LitElement {
<div> <div>
<label class="${this.rememberSettings ? 'switch selected' : 'switch'}"> <label class="${this.rememberSettings ? 'switch selected' : 'switch'}">
Remember settings Remember settings
<span class="switch-button"></span> <span part="switch-button"></span>
<input <input
type="checkbox" type="checkbox"
?checked=${this.rememberSettings} ?checked=${this.rememberSettings}
@@ -506,11 +553,12 @@ export class MdJsPreview extends LitElement {
? html`<div>${this.story({ shadowRoot: this.shadowRoot })}</div>` ? html`<div>${this.story({ shadowRoot: this.shadowRoot })}</div>`
: html` : html`
<iframe <iframe
part="iframe"
csp=${`script-src ${document.location.origin} 'unsafe-inline'; connect-src ws://${document.location.host}/`} csp=${`script-src ${document.location.origin} 'unsafe-inline'; connect-src ws://${document.location.host}/`}
.src=${this.iframeUrl} .src=${this.iframeUrl}
style=${`width: ${this.sizeData.width}px; height: ${this.deviceHeight}px;`} style=${`width: ${this.sizeData.width}px; height: ${this.deviceHeight}px;`}
></iframe> ></iframe>
<p class="frame-description" style=${`width: ${this.sizeData.width + 4}px;`}> <p part="frame-description" style=${`width: ${this.sizeData.width + 4}px;`}>
${this.sizeData.name} - ${this.deviceHeight}x${this.sizeData.width} ${this.sizeData.name} - ${this.deviceHeight}x${this.sizeData.width}
</p> </p>
`} `}
@@ -523,8 +571,8 @@ export class MdJsPreview extends LitElement {
</h3> </h3>
<div slot="content"> <div slot="content">
<div class="settings-wrapper"> <div class="settings-wrapper">
${this.renderPlatforms()} ${this.renderSizes()} ${this.renderThemes()} ${this.renderPlatform()} ${this.renderViewport()} ${this.renderVisual()}
${this.renderLanguages()} ${this.renderSyncSettings()} ${this.renderLocalization()} ${this.renderSyncSettings()}
</div> </div>
</div> </div>
` `
@@ -533,7 +581,10 @@ export class MdJsPreview extends LitElement {
<button>Code</button> <button>Code</button>
</h3> </h3>
<div slot="content"> <div slot="content">
<slot></slot> <slot id="code-slot"></slot>
<button part="copy-button" @click="${this.onCopy}" ?hidden="${!this.__supportsClipboard}">
${this.__copyButtonText}
</button>
</div> </div>
</lion-accordion> </lion-accordion>
${this.simulatorUrl ${this.simulatorUrl
@@ -564,26 +615,45 @@ export class MdJsPreview extends LitElement {
background: #fff; background: #fff;
} }
[part='copy-button'] {
border: 1px solid var(--primary-color, #3f51b5);
border-radius: 9px;
padding: 7px;
background: none;
font-weight: bold;
color: var(--primary-color, #3f51b5);
text-align: center;
font-size: 12px;
line-height: 12px;
float: right;
margin-top: -10px;
}
[part='copy-button']:hover {
background-color: var(--primary-color, #3f51b5);
color: #fff;
}
.switch { .switch {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 10px; margin-bottom: 10px;
} }
.switch:focus-within .switch-button { .switch:focus-within [part='switch-button'] {
box-shadow: 0 0 0 1px hsl(0deg 0% 100% / 40%), 0 0 0 4px rgb(31 117 203 / 48%); box-shadow: 0 0 0 1px hsl(0deg 0% 100% / 40%), 0 0 0 4px rgb(31 117 203 / 48%);
} }
.switch-button { [part='switch-button'] {
display: inline-block; display: inline-block;
width: 44px; width: 44px;
background: grey; background: #808080;
height: 25px; height: 25px;
border-radius: 15px; border-radius: 15px;
position: relative; position: relative;
} }
.switch-button::after { [part='switch-button']::after {
content: ' '; content: ' ';
width: 18px; width: 18px;
height: 18px; height: 18px;
@@ -595,16 +665,16 @@ export class MdJsPreview extends LitElement {
left: 4px; left: 4px;
} }
.switch.selected .switch-button { .switch.selected [part='switch-button'] {
background: green; background: var(--primary-color, #008000);
} }
.switch.selected .switch-button::after { .switch.selected [part='switch-button']::after {
left: auto; left: auto;
right: 4px; right: 4px;
} }
.frame-description { [part='frame-description'] {
margin: -5px 0 10px 0; margin: -5px 0 10px 0;
text-align: right; text-align: right;
font-size: 12px; font-size: 12px;
@@ -640,23 +710,23 @@ export class MdJsPreview extends LitElement {
} }
.controls a { .controls a {
color: #3f51b5; color: var(--primary-color, #3f51b5);
font-size: 14px; font-size: 14px;
line-height: 37px; line-height: 37px;
} }
.simulation-toggle { .simulation-toggle {
border: 1px solid #3f51b5; border: 1px solid var(--primary-color, #3f51b5);
border-radius: 9px; border-radius: 9px;
padding: 10px; padding: 10px;
background: none; background: none;
font-weight: bold; font-weight: bold;
color: #3f51b5; color: var(--primary-color, #3f51b5);
text-align: center; text-align: center;
} }
.simulation-toggle:hover { .simulation-toggle:hover {
background-color: #3f51b5; background-color: var(--primary-color, #3f51b5);
color: #fff; color: #fff;
} }
@@ -705,7 +775,7 @@ export class MdJsPreview extends LitElement {
} }
.segmented-control { .segmented-control {
border: 1px solid #3f51b5; border: 1px solid var(--primary-color, #3f51b5);
border-radius: 18px; border-radius: 18px;
display: inline-block; display: inline-block;
font-size: 14px; font-size: 14px;
@@ -728,7 +798,7 @@ export class MdJsPreview extends LitElement {
} }
.segmented-control label.selected span { .segmented-control label.selected span {
background: #3f51b5; background: var(--primary-color, #3f51b5);
color: #fff; color: #fff;
} }

View File

@@ -40,6 +40,8 @@ function storeSettings() {
} }
} }
let hasGlobalStateBeenSetBefore = false;
function restoreSettings() { function restoreSettings() {
for (const _sharedStateKey of Object.keys(_sharedStates)) { for (const _sharedStateKey of Object.keys(_sharedStates)) {
const sharedStateKey = /** @type {keyof _sharedStates} */ (_sharedStateKey); const sharedStateKey = /** @type {keyof _sharedStates} */ (_sharedStateKey);
@@ -55,6 +57,7 @@ function restoreSettings() {
default: default:
_sharedStates[sharedStateKey] = restoredValue; _sharedStates[sharedStateKey] = restoredValue;
} }
hasGlobalStateBeenSetBefore = true;
} }
} }
} }
@@ -66,27 +69,30 @@ restoreSettings();
* @param {import('./MdJsPreview.js').MdJsPreview} target * @param {import('./MdJsPreview.js').MdJsPreview} target
*/ */
export function applySharedStates(target) { export function applySharedStates(target) {
for (const _sharedStateKey of Object.keys(_sharedStates)) { if (hasGlobalStateBeenSetBefore) {
const sharedStateKey = /** @type {keyof _sharedStates} */ (_sharedStateKey); for (const _sharedStateKey of Object.keys(_sharedStates)) {
switch (sharedStateKey) { const sharedStateKey = /** @type {keyof _sharedStates} */ (_sharedStateKey);
case 'autoHeight': switch (sharedStateKey) {
case 'deviceMode': case 'autoHeight':
case 'rememberSettings': case 'deviceMode':
case 'edgeDistance': case 'rememberSettings':
target[sharedStateKey] = _sharedStates[sharedStateKey]; case 'edgeDistance':
break; target[sharedStateKey] = _sharedStates[sharedStateKey];
default: break;
target[sharedStateKey] = _sharedStates[sharedStateKey]; default:
target[sharedStateKey] = _sharedStates[sharedStateKey];
}
} }
} else {
_saveToSharedStates(target);
} }
} }
/** /**
* *
* @param {import('./MdJsPreview.js').MdJsPreview} target * @param {import('./MdJsPreview.js').MdJsPreview} target
* @param {Function} subscribedFn
*/ */
export function saveToSharedStates(target, subscribedFn) { function _saveToSharedStates(target) {
let updated = false; let updated = false;
for (const _sharedStateKey of Object.keys(_sharedStates)) { for (const _sharedStateKey of Object.keys(_sharedStates)) {
const sharedStateKey = /** @type {keyof _sharedStates} */ (_sharedStateKey); const sharedStateKey = /** @type {keyof _sharedStates} */ (_sharedStateKey);
@@ -102,8 +108,19 @@ export function saveToSharedStates(target, subscribedFn) {
_sharedStates[sharedStateKey] = target[sharedStateKey]; _sharedStates[sharedStateKey] = target[sharedStateKey];
} }
updated = true; updated = true;
hasGlobalStateBeenSetBefore = true;
} }
} }
return updated;
}
/**
*
* @param {import('./MdJsPreview.js').MdJsPreview} target
* @param {Function} subscribedFn
*/
export function saveToSharedStates(target, subscribedFn) {
const updated = _saveToSharedStates(target);
if (updated) { if (updated) {
storeSettings(); storeSettings();
for (const subscribeFn of subscribeFns) { for (const subscribeFn of subscribeFns) {

View File

@@ -1,5 +1,17 @@
# @rocket/search # @rocket/search
## 0.3.5
### Patch Changes
- 2b7f1ee: Add support for pathprefix
## 0.3.4
### Patch Changes
- 81edf45: Reduce the amount of js files in the build by avoiding inline script tags
## 0.3.3 ## 0.3.3
### Patch Changes ### Patch Changes

View File

@@ -1,6 +1,6 @@
{ {
"name": "@rocket/search", "name": "@rocket/search",
"version": "0.3.3", "version": "0.3.5",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },

View File

@@ -0,0 +1 @@
import '@rocket/search/rocket-search.js';

View File

@@ -4,6 +4,4 @@
</svg> </svg>
</rocket-search> </rocket-search>
<script type="module"> <script type="module" src="{{ '/_assets/scripts/define-rocket-search.js' | asset | url }}"></script>
import '@rocket/search/rocket-search.js';
</script>

View File

@@ -4,14 +4,29 @@ import { rocketSearch } from '@rocket/search';
import { absoluteBaseUrlNetlify } from '@rocket/core/helpers'; import { absoluteBaseUrlNetlify } from '@rocket/core/helpers';
import { adjustPluginOptions } from 'plugins-manager'; import { adjustPluginOptions } from 'plugins-manager';
export default { /** @type {Partial<import("./packages/cli/types/main").RocketCliOptions>} */
const config = {
presets: [rocketLaunch(), rocketBlog(), rocketSearch()], presets: [rocketLaunch(), rocketBlog(), rocketSearch()],
absoluteBaseUrl: absoluteBaseUrlNetlify('http://localhost:8080'), absoluteBaseUrl: absoluteBaseUrlNetlify('http://localhost:8080'),
setupUnifiedPlugins: [ setupUnifiedPlugins: [
adjustPluginOptions('mdjsSetupCode', { adjustPluginOptions('mdjsSetupCode', {
simulationSettings: { simulatorUrl: '/simulator/' }, simulationSettings: {
simulatorUrl: '/simulator/',
themes: [
{ key: 'light', name: 'Light' },
{ key: 'dark', name: 'Dark' },
],
platforms: [
{ key: 'web', name: 'Web' },
{ key: 'android', name: 'Android' },
{ key: 'ios', name: 'iOS' },
],
},
}), }),
], ],
// serviceWorkerName: 'sw.js',
// emptyOutputDir: false, // emptyOutputDir: false,
}; };
export default config;

330
yarn.lock
View File

@@ -81,7 +81,7 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41"
integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==
"@babel/core@^7.11.1", "@babel/core@^7.12.10": "@babel/core@^7.12.10":
version "7.12.10" version "7.12.10"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd"
integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==
@@ -758,7 +758,7 @@
"@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-create-regexp-features-plugin" "^7.12.1"
"@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4"
"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.11": "@babel/preset-env@^7.12.11":
version "7.12.11" version "7.12.11"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9"
integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw== integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==
@@ -841,7 +841,7 @@
"@babel/types" "^7.4.4" "@babel/types" "^7.4.4"
esutils "^2.0.2" esutils "^2.0.2"
"@babel/runtime@^7.10.4", "@babel/runtime@^7.11.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": "@babel/runtime@^7.10.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
version "7.12.5" version "7.12.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
@@ -1096,44 +1096,6 @@
minimatch "^3.0.4" minimatch "^3.0.4"
strip-json-comments "^3.1.1" strip-json-comments "^3.1.1"
"@hapi/address@^2.1.2":
version "2.1.4"
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==
"@hapi/formula@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-1.2.0.tgz#994649c7fea1a90b91a0a1e6d983523f680e10cd"
integrity sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==
"@hapi/hoek@^8.2.4", "@hapi/hoek@^8.3.0":
version "8.5.1"
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
"@hapi/joi@^16.1.8":
version "16.1.8"
resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-16.1.8.tgz#84c1f126269489871ad4e2decc786e0adef06839"
integrity sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg==
dependencies:
"@hapi/address" "^2.1.2"
"@hapi/formula" "^1.2.0"
"@hapi/hoek" "^8.2.4"
"@hapi/pinpoint" "^1.0.2"
"@hapi/topo" "^3.1.3"
"@hapi/pinpoint@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-1.0.2.tgz#025b7a36dbbf4d35bf1acd071c26b20ef41e0d13"
integrity sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==
"@hapi/topo@^3.1.3":
version "3.1.6"
resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==
dependencies:
"@hapi/hoek" "^8.3.0"
"@lion/accordion@^0.4.2": "@lion/accordion@^0.4.2":
version "0.4.2" version "0.4.2"
resolved "https://registry.yarnpkg.com/@lion/accordion/-/accordion-0.4.2.tgz#efeb56360113a2b68e182ff29ef0932edd17df8c" resolved "https://registry.yarnpkg.com/@lion/accordion/-/accordion-0.4.2.tgz#efeb56360113a2b68e182ff29ef0932edd17df8c"
@@ -1310,7 +1272,7 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.6.0.tgz#f022195afdfc942e088ee2101285a1d31c7d727f" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.6.0.tgz#f022195afdfc942e088ee2101285a1d31c7d727f"
integrity sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw== integrity sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw==
"@rollup/plugin-babel@^5.2.0", "@rollup/plugin-babel@^5.2.2": "@rollup/plugin-babel@^5.2.2":
version "5.2.2" version "5.2.2"
resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.2.2.tgz#e5623a01dd8e37e004ba87f2de218c611727d9b2" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.2.2.tgz#e5623a01dd8e37e004ba87f2de218c611727d9b2"
integrity sha512-MjmH7GvFT4TW8xFdIeFS3wqIX646y5tACdxkTO+khbHvS3ZcVJL6vkAHLw2wqPmkhwCfWHoNsp15VYNwW6JEJA== integrity sha512-MjmH7GvFT4TW8xFdIeFS3wqIX646y5tACdxkTO+khbHvS3ZcVJL6vkAHLw2wqPmkhwCfWHoNsp15VYNwW6JEJA==
@@ -1350,22 +1312,10 @@
is-module "^1.0.0" is-module "^1.0.0"
resolve "^1.19.0" resolve "^1.19.0"
"@rollup/plugin-node-resolve@^9.0.0": "@rollup/plugin-replace@^2.4.2":
version "9.0.0" version "2.4.2"
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz#39bd0034ce9126b39c1699695f440b4b7d2b62e6" resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a"
integrity sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg== integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==
dependencies:
"@rollup/pluginutils" "^3.1.0"
"@types/resolve" "1.17.1"
builtin-modules "^3.1.0"
deepmerge "^4.2.2"
is-module "^1.0.0"
resolve "^1.17.0"
"@rollup/plugin-replace@^2.3.3", "@rollup/plugin-replace@^2.3.4":
version "2.3.4"
resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.3.4.tgz#7dd84c17755d62b509577f2db37eb524d7ca88ca"
integrity sha512-waBhMzyAtjCL1GwZes2jaE9MjuQ/DQF2BatH3fRivUF3z0JBFrU0U6iBNC/4WR+2rLKhaAhPWDNPYp4mI6RqdQ==
dependencies: dependencies:
"@rollup/pluginutils" "^3.1.0" "@rollup/pluginutils" "^3.1.0"
magic-string "^0.25.7" magic-string "^0.25.7"
@@ -1415,14 +1365,6 @@
resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
"@surma/rollup-plugin-off-main-thread@^1.4.1":
version "1.4.2"
resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58"
integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==
dependencies:
ejs "^2.6.1"
magic-string "^0.25.0"
"@types/accepts@*": "@types/accepts@*":
version "1.3.5" version "1.3.5"
resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575"
@@ -3008,11 +2950,6 @@ commander@^6.2.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
common-tags@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
commondir@^1.0.1: commondir@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -3223,11 +3160,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2:
shebang-command "^2.0.0" shebang-command "^2.0.0"
which "^2.0.1" which "^2.0.1"
crypto-random-string@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
csv-generate@^3.2.4: csv-generate@^3.2.4:
version "3.3.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.3.0.tgz#0e25658f1bb9806d94fec7b270896a35c7eedf1a" resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.3.0.tgz#0e25658f1bb9806d94fec7b270896a35c7eedf1a"
@@ -3543,7 +3475,7 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
ejs@^2.6.1, ejs@^2.7.4: ejs@^2.7.4:
version "2.7.4" version "2.7.4"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
@@ -3974,7 +3906,7 @@ fast-glob@^3.1.1, fast-glob@^3.2.2:
micromatch "^4.0.2" micromatch "^4.0.2"
picomatch "^2.2.1" picomatch "^2.2.1"
fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: fast-json-stable-stringify@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@@ -5563,7 +5495,7 @@ luxon@^1.24.1:
resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.25.0.tgz#d86219e90bc0102c0eb299d65b2f5e95efe1fe72" resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.25.0.tgz#d86219e90bc0102c0eb299d65b2f5e95efe1fe72"
integrity sha512-hEgLurSH8kQRjY6i4YLey+mcKVAWXbDNlZRmM6AgWDJ1cY3atl8Ztf5wEY7VBReFbmGnwQPz7KYJblL8B2k0jQ== integrity sha512-hEgLurSH8kQRjY6i4YLey+mcKVAWXbDNlZRmM6AgWDJ1cY3atl8Ztf5wEY7VBReFbmGnwQPz7KYJblL8B2k0jQ==
magic-string@^0.25.0, magic-string@^0.25.7: magic-string@^0.25.7:
version "0.25.7" version "0.25.7"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
@@ -6736,11 +6668,6 @@ prettier@^2.2.1:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
pretty-bytes@^5.3.0, pretty-bytes@^5.4.1:
version "5.5.0"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e"
integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==
pretty-ms@^0.2.1: pretty-ms@^0.2.1:
version "0.2.2" version "0.2.2"
resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6" resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6"
@@ -7423,7 +7350,7 @@ rimraf@^3.0.2:
dependencies: dependencies:
glob "^7.1.3" glob "^7.1.3"
rollup-plugin-terser@^7.0.0, rollup-plugin-terser@^7.0.2: rollup-plugin-terser@^7.0.2:
version "7.0.2" version "7.0.2"
resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
@@ -7433,18 +7360,7 @@ rollup-plugin-terser@^7.0.0, rollup-plugin-terser@^7.0.2:
serialize-javascript "^4.0.0" serialize-javascript "^4.0.0"
terser "^5.0.0" terser "^5.0.0"
rollup-plugin-workbox@^6.1.0: rollup@^2.35.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-workbox/-/rollup-plugin-workbox-6.1.0.tgz#120cde36547769fc8cc45eae97a338c4017ed936"
integrity sha512-BqeEBj53fiqNLjiiyVvuBlic3Apg2Us1mpTkn3zgqaipJoAOC3soi+W9vrOQcm190lHLo9WNvi1wQg/M7olJHg==
dependencies:
"@rollup/plugin-node-resolve" "^11.0.1"
"@rollup/plugin-replace" "^2.3.4"
pretty-bytes "^5.4.1"
rollup-plugin-terser "^7.0.2"
workbox-build "^6.0.2"
rollup@^2.25.0, rollup@^2.35.1:
version "2.35.1" version "2.35.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.35.1.tgz#e6bc8d10893556a638066f89e8c97f422d03968c" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.35.1.tgz#e6bc8d10893556a638066f89e8c97f422d03968c"
integrity sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA== integrity sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==
@@ -7866,11 +7782,6 @@ source-map-support@^0.5.17, source-map-support@~0.5.19:
buffer-from "^1.0.0" buffer-from "^1.0.0"
source-map "^0.6.0" source-map "^0.6.0"
source-map-url@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
source-map@^0.5.0, source-map@~0.5.1: source-map@^0.5.0, source-map@~0.5.1:
version "0.5.7" version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
@@ -8115,11 +8026,6 @@ strip-bom@^3.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
strip-comments@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==
strip-eof@^1.0.0: strip-eof@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
@@ -8238,21 +8144,6 @@ tar-stream@^2.1.4:
inherits "^2.0.3" inherits "^2.0.3"
readable-stream "^3.1.1" readable-stream "^3.1.1"
temp-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
tempy@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3"
integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==
dependencies:
is-stream "^2.0.0"
temp-dir "^2.0.0"
type-fest "^0.16.0"
unique-string "^2.0.0"
term-size@^1.2.0: term-size@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
@@ -8455,11 +8346,6 @@ type-fest@^0.13.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
type-fest@^0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==
type-fest@^0.6.0: type-fest@^0.6.0:
version "0.6.0" version "0.6.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
@@ -8581,13 +8467,6 @@ unified@^9.1.0, unified@^9.2.0:
trough "^1.0.0" trough "^1.0.0"
vfile "^4.0.0" vfile "^4.0.0"
unique-string@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
dependencies:
crypto-random-string "^2.0.0"
unist-builder@^2.0.0: unist-builder@^2.0.0:
version "2.0.3" version "2.0.3"
resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436"
@@ -8683,11 +8562,6 @@ untildify@^4.0.0:
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
upath@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
uri-js@^4.2.2: uri-js@^4.2.2:
version "4.4.0" version "4.4.0"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
@@ -8888,160 +8762,52 @@ wordwrapjs@^4.0.0:
reduce-flatten "^2.0.0" reduce-flatten "^2.0.0"
typical "^5.0.0" typical "^5.0.0"
workbox-background-sync@^6.0.2: workbox-broadcast-update@^6.1.5:
version "6.0.2" version "6.1.5"
resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.0.2.tgz#9205f5ef7fbf68203b925bdc85bdaa31a34fbbe6" resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.1.5.tgz#49a2a4cc50c7b1cfe86bed6d8f15edf1891d1e79"
integrity sha512-KQU2ntvbvFoBvCRm+EDpWAaykt4u/oaF5j3C6io0dZVWhFc/ZwgYDii8fb34LTenug3VPWQELdw9dNBCoP4b0w== integrity sha512-zGrTTs+n4wHpYtqYMqBg6kl/x5j1UrczGCQnODSHTxIDV8GXLb/GtA1BCZdysNxpMmdVSeLmTcgIYAAqWFamrA==
dependencies: dependencies:
workbox-core "^6.0.2" workbox-core "^6.1.5"
workbox-broadcast-update@^6.0.2: workbox-cacheable-response@^6.1.5:
version "6.0.2" version "6.1.5"
resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.0.2.tgz#fc034277e631e4193dcee9f6b0a77e415b4ddefb" resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.1.5.tgz#2772e09a333cba47b0923ed91fd022416b69e75c"
integrity sha512-yCXYEln7nU8FkMDysYQPirpgFXtsdBtxruHbvZzRsxMHvAELf3j/o6Ufae1zjl8XanLF696sqSNxehpCGSD6tw== integrity sha512-x8DC71lO/JCgiaJ194l9le8wc8lFPLgUpDkLhp2si7mXV6S/wZO+8Osvw1LLgYa8YYTWGbhbFhFTXIkEMknIIA==
dependencies: dependencies:
workbox-core "^6.0.2" workbox-core "^6.1.5"
workbox-build@^6.0.2: workbox-core@^6.1.5:
version "6.0.2" version "6.1.5"
resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.0.2.tgz#a23eebd6556cf473fedda77c08421b2d093efc32" resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.1.5.tgz#424ff600e2c5448b14ebd58b2f5ac8ed91b73fb9"
integrity sha512-Dukbt+p62Yzb12SXAmycTYvHngJ8aRtXy3hymsC8B6gxTCZmCZ0u5JuKhu7lNLbDwDkYE78lhFvT9SF+MXFz5A== integrity sha512-9SOEle7YcJzg3njC0xMSmrPIiFjfsFm9WjwGd5enXmI8Lwk8wLdy63B0nzu5LXoibEmS9k+aWF8EzaKtOWjNSA==
workbox-expiration@^6.1.5:
version "6.1.5"
resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.1.5.tgz#a62a4ac953bb654aa969ede13507ca5bd154adc2"
integrity sha512-6cN+FVbh8fNq56LFKPMchGNKCJeyboHsDuGBqmhDUPvD4uDjsegQpDQzn52VaE0cpywbSIsDF/BSq9E9Yjh5oQ==
dependencies: dependencies:
"@babel/core" "^7.11.1" workbox-core "^6.1.5"
"@babel/preset-env" "^7.11.0"
"@babel/runtime" "^7.11.2"
"@hapi/joi" "^16.1.8"
"@rollup/plugin-babel" "^5.2.0"
"@rollup/plugin-node-resolve" "^9.0.0"
"@rollup/plugin-replace" "^2.3.3"
"@surma/rollup-plugin-off-main-thread" "^1.4.1"
common-tags "^1.8.0"
fast-json-stable-stringify "^2.1.0"
fs-extra "^9.0.1"
glob "^7.1.6"
lodash "^4.17.20"
pretty-bytes "^5.3.0"
rollup "^2.25.0"
rollup-plugin-terser "^7.0.0"
source-map "^0.7.3"
source-map-url "^0.4.0"
stringify-object "^3.3.0"
strip-comments "^2.0.1"
tempy "^0.6.0"
upath "^1.2.0"
workbox-background-sync "^6.0.2"
workbox-broadcast-update "^6.0.2"
workbox-cacheable-response "^6.0.2"
workbox-core "^6.0.2"
workbox-expiration "^6.0.2"
workbox-google-analytics "^6.0.2"
workbox-navigation-preload "^6.0.2"
workbox-precaching "^6.0.2"
workbox-range-requests "^6.0.2"
workbox-recipes "^6.0.2"
workbox-routing "^6.0.2"
workbox-strategies "^6.0.2"
workbox-streams "^6.0.2"
workbox-sw "^6.0.2"
workbox-window "^6.0.2"
workbox-cacheable-response@^6.0.2: workbox-routing@^6.1.5:
version "6.0.2" version "6.1.5"
resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.0.2.tgz#00b1133c4c846a2874f32ae14206c0636bacfd87" resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.1.5.tgz#15884d6152dba03faef83f0b23331846d8b6ef8e"
integrity sha512-OrgFiYWkmFXDIbNRYSu+fchcfoZqyJ4yZbdc8WKUjr9v/MghKHfR9u7UI077xBkjno5J3YNpbwx73/no3HkrzA== integrity sha512-uC/Ctz+4GXGL42h1WxUNKxqKRik/38uS0NZ6VY/EHqL2F1ObLFqMHUZ4ZYvyQsKdyI82cxusvhJZHOrY0a2fIQ==
dependencies: dependencies:
workbox-core "^6.0.2" workbox-core "^6.1.5"
workbox-core@^6.0.2: workbox-strategies@^6.1.5:
version "6.0.2" version "6.1.5"
resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.0.2.tgz#2f865cfe633890b4210fd6d6fdb049a6daed0914" resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.1.5.tgz#2549a3e78f0eda371b760c4db21feb0d26143573"
integrity sha512-Ksl6qeikGb+BOCILoCUJGxwlEQOeeqdpOnpOr9UDt3NtacPYbfYBmpYpKArw5DFWK+5geBsFqgUUlXThlCYfKQ== integrity sha512-QhiOn9KT9YGBdbfWOmJT6pXZOIAxaVrs6J6AMYzRpkUegBTEcv36+ZhE/cfHoT0u2fxVtthHnskOQ/snEzaXQw==
workbox-expiration@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.0.2.tgz#ac01e8d17f48daa31dc0872c09ee6f4d2cf28ccb"
integrity sha512-6+nbR18cklAdI3BPT675ytftXPwnVbXGR8mPWNWTJtl5y2urRYv56ZOJLD7FBFVkZ8EjWiRhNP/A0fkxgdKtWQ==
dependencies: dependencies:
workbox-core "^6.0.2" workbox-core "^6.1.5"
workbox-google-analytics@^6.0.2: workbox-window@^6.1.5:
version "6.0.2" version "6.1.5"
resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.0.2.tgz#7e3641adb30a3acb25006b244035631cf6f65019" resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.1.5.tgz#017b22342e10c6df6b9672326b575ec950b6cd80"
integrity sha512-xmYJurR1M6Pzc2SBM/E7AgwmBszhu/YYDzBnU+HJPZFLbTG97ASIJyTXV1vcczA/dNaS0miIf0cFqneozVlDRw== integrity sha512-akL0X6mAegai2yypnq78RgfazeqvKbsllRtEI4dnbhPcRINEY1NmecFmsQk8SD+zWLK1gw5OdwAOX+zHSRVmeA==
dependencies: dependencies:
workbox-background-sync "^6.0.2" workbox-core "^6.1.5"
workbox-core "^6.0.2"
workbox-routing "^6.0.2"
workbox-strategies "^6.0.2"
workbox-navigation-preload@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.0.2.tgz#bfd9c61096be921b830153a3004b7212220748dc"
integrity sha512-7+ojLrjXmTFZBfGmUQIcBWB+xrFgXLMJGNQAtxT7Ta9A23rEWo8jqAgeuwAylebcORUlM+ztgYTV7eGp+AD+Yg==
dependencies:
workbox-core "^6.0.2"
workbox-precaching@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.0.2.tgz#cb45f290b0604bef1d9fc96bf42df82385d54e54"
integrity sha512-sqKWL2emzmGnfJpna+9RjUkUiqQO++AKfwljCbgkHg8wBbVLy/rnui3eelKgAI7D8R31LJFfiZkY/kXmwkjtlQ==
dependencies:
workbox-core "^6.0.2"
workbox-routing "^6.0.2"
workbox-strategies "^6.0.2"
workbox-range-requests@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.0.2.tgz#3b50cbe8ddaaed7e3bfaa2dfdcd6a22e02fe7770"
integrity sha512-qCrDbH9AzDbCErde71Nys2iNZO9I9M9Jgl/9/Q67dGQVwFsEq73SuIzS2DGIBKqtIdC5QUigC3d7XJONajclUQ==
dependencies:
workbox-core "^6.0.2"
workbox-recipes@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.0.2.tgz#ad4b3f26a71a7396004c4f617af318f3fd072208"
integrity sha512-ewZIHO4jYE6bnEeUIYS6joQy3l+MydpOsVr2F6EpE8ps++z1ScbSdLtJU+yu6WuO3lH44HFZLeFxYQqYm50QAA==
dependencies:
workbox-cacheable-response "^6.0.2"
workbox-core "^6.0.2"
workbox-expiration "^6.0.2"
workbox-precaching "^6.0.2"
workbox-routing "^6.0.2"
workbox-strategies "^6.0.2"
workbox-routing@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.0.2.tgz#8380bc322a2b1c44978df8ff6ae4e4d723f4e3f8"
integrity sha512-iQ9ch3fL1YpztDLfHNURaHQ0ispgPCdzWmZZhtSHUyy/+YkTlIiDVTbOQCIpHIrWlKQiim6X3K2ItIy1FW9+wA==
dependencies:
workbox-core "^6.0.2"
workbox-strategies@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.0.2.tgz#f4383e2e5d46c1546e6e08048c9f5c9a7beb5137"
integrity sha512-HjLnYCVS60U7OKhl5NIq8NAQXrotJQRDakmIONnRlQIlP2If/kAiQSUP3QCHMq4EeXGiF+/CdlR1/bhYBHZzZg==
dependencies:
workbox-core "^6.0.2"
workbox-streams@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.0.2.tgz#07c19025af309ad3475e737018a05ed538bffacd"
integrity sha512-bckftu/iMlg5LFXPZ6NX/FUc/w4illgxSuwtsZkQAO6Uen1EeegjfLyenO01/dwoyc3D/AlZepMdhv87XhE7HQ==
dependencies:
workbox-core "^6.0.2"
workbox-routing "^6.0.2"
workbox-sw@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.0.2.tgz#cd1b8b02ceaaf1abe5804936158a87ec605d271e"
integrity sha512-EoOjbyy5bpoBoSqt2PIeDOZ/JJ41f+WJjb979PkfIUWw4F+F/w2uKJJrMA5fk+nWnVge83Fwy8nF3dWNsqOrdg==
workbox-window@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.0.2.tgz#9b47fdb7c088aa4e8b7d0c6cfda17c8bfca6bf7f"
integrity sha512-I/X+qUh1AwN9x/MxFbXsPn7DA27BMtzkXo55w1tBD8V54fv8nUCeC5E4RpXt/mlgdSwBztnURCQTWsdhTrSUjg==
dependencies:
workbox-core "^6.0.2"
workerpool@6.0.2: workerpool@6.0.2:
version "6.0.2" version "6.0.2"