diff --git a/package.json b/package.json index 297a7a35ae70..6dfc7c1cc529 100644 --- a/package.json +++ b/package.json @@ -34,5 +34,8 @@ "rollup-plugin-typescript2": "^0.29.0", "tslib": "^2.0.3", "typescript": "^4.0.3" + }, + "dependencies": { + "@rollup/plugin-sucrase": "^3.1.0" } } diff --git a/packages/adapter-netlify/rollup.config.js b/packages/adapter-netlify/rollup.config.js index d35e1d6cc73b..5e693a1bd158 100644 --- a/packages/adapter-netlify/rollup.config.js +++ b/packages/adapter-netlify/rollup.config.js @@ -1,6 +1,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; -import typescript from 'rollup-plugin-typescript2'; +import sucrase from '@rollup/plugin-sucrase'; export default [ { @@ -9,7 +9,9 @@ export default [ file: 'index.js', format: 'cjs' }, - plugins: [nodeResolve(), commonjs(), typescript()], + plugins: [nodeResolve(), commonjs(), sucrase({ + transforms: ['typescript'] + })], external: require('module').builtinModules }, { @@ -18,7 +20,9 @@ export default [ file: 'render.js', format: 'cjs' }, - plugins: [nodeResolve(), commonjs(), typescript()], + plugins: [nodeResolve(), commonjs(), sucrase({ + transforms: ['typescript'] + })], external: require('module').builtinModules } ]; diff --git a/packages/adapter-node/rollup.config.js b/packages/adapter-node/rollup.config.js index 73dfc2880973..cb2fe3a4707d 100644 --- a/packages/adapter-node/rollup.config.js +++ b/packages/adapter-node/rollup.config.js @@ -1,6 +1,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; -import typescript from 'rollup-plugin-typescript2'; +import sucrase from '@rollup/plugin-sucrase'; export default [ { @@ -9,7 +9,9 @@ export default [ file: 'index.js', format: 'cjs' }, - plugins: [nodeResolve(), commonjs(), typescript()], + plugins: [nodeResolve(), commonjs(), sucrase({ + transforms: ['typescript'] + })], external: require('module').builtinModules }, { @@ -18,7 +20,9 @@ export default [ file: 'server.js', format: 'cjs' }, - plugins: [nodeResolve(), commonjs(), typescript()], + plugins: [nodeResolve(), commonjs(), sucrase({ + transforms: ['typescript'] + })], external: require('module').builtinModules } ]; diff --git a/packages/adapter-static/rollup.config.js b/packages/adapter-static/rollup.config.js index a7b68cb044c5..838fe15d0641 100644 --- a/packages/adapter-static/rollup.config.js +++ b/packages/adapter-static/rollup.config.js @@ -1,6 +1,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; -import typescript from 'rollup-plugin-typescript2'; +import sucrase from '@rollup/plugin-sucrase'; export default { input: 'src/index.ts', @@ -8,6 +8,8 @@ export default { file: 'server.js', format: 'cjs' }, - plugins: [nodeResolve(), commonjs(), typescript()], + plugins: [nodeResolve(), commonjs(), sucrase({ + transforms: ['typescript'] + })], external: require('module').builtinModules }; diff --git a/packages/adapter-vercel/rollup.config.js b/packages/adapter-vercel/rollup.config.js index 73dfc2880973..cb2fe3a4707d 100644 --- a/packages/adapter-vercel/rollup.config.js +++ b/packages/adapter-vercel/rollup.config.js @@ -1,6 +1,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; -import typescript from 'rollup-plugin-typescript2'; +import sucrase from '@rollup/plugin-sucrase'; export default [ { @@ -9,7 +9,9 @@ export default [ file: 'index.js', format: 'cjs' }, - plugins: [nodeResolve(), commonjs(), typescript()], + plugins: [nodeResolve(), commonjs(), sucrase({ + transforms: ['typescript'] + })], external: require('module').builtinModules }, { @@ -18,7 +20,9 @@ export default [ file: 'server.js', format: 'cjs' }, - plugins: [nodeResolve(), commonjs(), typescript()], + plugins: [nodeResolve(), commonjs(), sucrase({ + transforms: ['typescript'] + })], external: require('module').builtinModules } ]; diff --git a/packages/app-utils/package.json b/packages/app-utils/package.json index c5d22597c431..d803c97ff886 100644 --- a/packages/app-utils/package.json +++ b/packages/app-utils/package.json @@ -9,7 +9,7 @@ "format": "prettier --write . --config ../../.prettierrc --ignore-path .gitignore", "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore", "prepublishOnly": "npm run build", - "test": "uvu -r ts-node/register" + "test": "uvu -r sucrase/register/ts" }, "dependencies": { "mime": "^2.4.6" diff --git a/packages/app-utils/rollup.config.js b/packages/app-utils/rollup.config.js index 2051a3c01901..3ff84fe5a4df 100644 --- a/packages/app-utils/rollup.config.js +++ b/packages/app-utils/rollup.config.js @@ -1,5 +1,5 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; -import typescript from 'rollup-plugin-typescript2'; +import sucrase from '@rollup/plugin-sucrase'; import pkg from './package.json'; const fs = require('fs'); const path = require('path'); @@ -29,7 +29,9 @@ export default { ], plugins: [ nodeResolve(), - typescript() + sucrase({ + transforms: ['typescript'] + }) ], external: [...require('module').builtinModules, ...Object.keys(pkg.dependencies)] }; diff --git a/packages/app-utils/src/http/get_body/read_only_form_data.ts b/packages/app-utils/src/http/get_body/read_only_form_data.ts index 721f7a3499bb..0c7942c5855f 100644 --- a/packages/app-utils/src/http/get_body/read_only_form_data.ts +++ b/packages/app-utils/src/http/get_body/read_only_form_data.ts @@ -17,26 +17,26 @@ export function read_only_form_data() { } class ReadOnlyFormData { - #map: FormDataMap; + private map: FormDataMap; constructor(map: FormDataMap) { - this.#map = map; + this.map = map; } get(key: string) { - return this.#map.get(key)?.[0]; + return this.map.get(key)?.[0]; } getAll(key: string) { - return this.#map.get(key); + return this.map.get(key); } has(key: string) { - return this.#map.has(key); + return this.map.has(key); } *[Symbol.iterator]() { - for (const [key, value] of this.#map) { + for (const [key, value] of this.map) { for (let i = 0; i < value.length; i += 1) { yield [key, value[i]]; } @@ -44,7 +44,7 @@ class ReadOnlyFormData { } *entries() { - for (const [key, value] of this.#map) { + for (const [key, value] of this.map) { for (let i = 0; i < value.length; i += 1) { yield [key, value[i]]; } @@ -52,7 +52,7 @@ class ReadOnlyFormData { } *keys() { - for (const [key, value] of this.#map) { + for (const [key, value] of this.map) { for (let i = 0; i < value.length; i += 1) { yield key; } @@ -60,7 +60,7 @@ class ReadOnlyFormData { } *values() { - for (const [, value] of this.#map) { + for (const [, value] of this.map) { for (let i = 0; i < value.length; i += 1) { yield value; } diff --git a/packages/app-utils/src/renderer/render/index.ts b/packages/app-utils/src/renderer/render/index.ts index 7187597e77f7..240ceb48385b 100644 --- a/packages/app-utils/src/renderer/render/index.ts +++ b/packages/app-utils/src/renderer/render/index.ts @@ -11,7 +11,7 @@ export async function render( request: IncomingRequest, options: RenderOptions ): Promise { - const { context, headers = {} } = (await options.setup.prepare?.(request.headers)) || {}; + const { context, headers = {} } = (await (options.setup.prepare && options.setup.prepare(request.headers))) || {}; try { const response = await (render_endpoint(request, context, options) || diff --git a/packages/app-utils/src/renderer/render/page.ts b/packages/app-utils/src/renderer/render/page.ts index b59d5afd3e1d..c24f31b50755 100644 --- a/packages/app-utils/src/renderer/render/page.ts +++ b/packages/app-utils/src/renderer/render/page.ts @@ -49,7 +49,7 @@ export default async function render_page( const baseUrl = ''; // TODO - const session = await options.setup.getSession?.(context); + const session = await (options.setup.getSession && options.setup.getSession(context)); const serialized_session = try_serialize(session, (err: Error) => { throw new Error(`Failed to serialize session data: ${err.message}`); diff --git a/packages/app-utils/src/types/index.ts b/packages/app-utils/src/types/index.ts index c3619d15b3a6..23e3c1576753 100644 --- a/packages/app-utils/src/types/index.ts +++ b/packages/app-utils/src/types/index.ts @@ -63,9 +63,9 @@ export type RouteParams = Record; export interface PageComponentManifest { default?: boolean; type?: string; + file?: string; url: string; name: string; - file: string; } export interface PageManifestPart { diff --git a/packages/kit/package.json b/packages/kit/package.json index 74bacb514d23..2910013ec545 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -15,6 +15,7 @@ }, "devDependencies": { "@types/node": "^14.11.10", + "@types/rimraf": "^3.0.0", "@types/sade": "^1.7.2", "estree-walker": "^2.0.1", "kleur": "^4.1.3", @@ -24,9 +25,12 @@ "periscopic": "^2.0.2", "port-authority": "^1.1.1", "require-relative": "^0.8.7", + "rimraf": "^3.0.2", "sirv": "^1.0.7", "source-map-support": "^0.5.19", "svelte": "^3.29.0", + "tiny-glob": "^0.2.8", + "ts-node": "^9.0.0", "typescript": "^4.0.5" }, "bin": { @@ -43,6 +47,7 @@ "lint": "eslint --ignore-pattern node_modules/ --ignore-pattern dist/ \"**/*.{ts,mjs,js,svelte}\" && npm run check-format", "format": "prettier --write . --config ../../.prettierrc --ignore-path .gitignore", "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore", - "prepublishOnly": "npm run build" + "prepublishOnly": "npm run build", + "test": "uvu -r sucrase/register/ts" } } diff --git a/packages/kit/rollup.config.js b/packages/kit/rollup.config.js index 3021be4e6a43..f1e7f7f2aa6e 100644 --- a/packages/kit/rollup.config.js +++ b/packages/kit/rollup.config.js @@ -1,7 +1,7 @@ import commonjs from '@rollup/plugin-commonjs'; import json from '@rollup/plugin-json'; import resolve from '@rollup/plugin-node-resolve'; -import typescript from 'rollup-plugin-typescript2'; +import sucrase from '@rollup/plugin-sucrase'; import pkg from './package.json'; import { readFileSync, writeFileSync } from 'fs'; @@ -31,7 +31,10 @@ export default [ resolve({ extensions: ['.mjs', '.js', '.ts'] }), - typescript(/*{ + sucrase({ + transforms: ['typescript'] + }) + /*typescript({ tsconfigDefaults: { compilerOptions: { // create typings. these options do not apply to the other build target @@ -41,8 +44,8 @@ export default [ } }, useTsconfigDeclarationDir: true - }*/), - /*{ + }), + { name: 'adjust-typings', resolveId: () => null, load: () => null, @@ -69,7 +72,10 @@ export default [ extensions: ['.mjs', '.js', '.ts'] }), commonjs(), - typescript() + sucrase({ + transforms: ['typescript'] + }) + //typescript() ], preserveEntrySignatures: false } diff --git a/packages/kit/src/api/build/Builder.ts b/packages/kit/src/api/build/Builder.ts new file mode 100644 index 000000000000..c985dd589d73 --- /dev/null +++ b/packages/kit/src/api/build/Builder.ts @@ -0,0 +1,60 @@ +import { copy } from '@sveltejs/app-utils/files'; +import { prerender } from '@sveltejs/app-utils/renderer'; +import { Logger } from '@sveltejs/app-utils/renderer/prerender'; // TODO this is in the wrong place +import { ManifestData } from '../../interfaces'; + +export type BuilderOptions = { + generated_files: string; + static_files: string; + log: Logger, + manifest: ManifestData; +}; + +export default class Builder { + log: Logger; + + private generated_files: string; + private static_files: string; + private manifest: ManifestData; + + constructor({ + generated_files, + static_files, + log, + manifest + }: BuilderOptions) { + this.generated_files = generated_files; + this.static_files = static_files; + this.manifest = manifest; + + this.log = log; + } + + copy_generated_files(dest: string) { + copy(this.generated_files, dest); + } + + copy_static_files(dest: string) { + copy(this.static_files, dest); + } + + prerender({ + force = false, + dest + }: { + force: boolean; + dest: string; + }) { + prerender({ + out: dest, + force, + dir: this.generated_files, + manifest: this.manifest, + log: this.log + }); + } + + foo() { + console.log(this.manifest); + } +} diff --git a/packages/kit/src/api/build/index.ts b/packages/kit/src/api/build/index.ts index 7ee87db634d6..694c89514d31 100644 --- a/packages/kit/src/api/build/index.ts +++ b/packages/kit/src/api/build/index.ts @@ -13,12 +13,13 @@ import { copy_assets } from '../utils'; import { create_app } from '../../core/create_app'; import { SvelteAppConfig } from '../../interfaces'; import { css_injection } from './css_injection'; +import Builder from './Builder'; const exec = promisify(child_process.exec); const snowpack_main = require.resolve('snowpack'); const snowpack_pkg_file = path.join(snowpack_main, '../../package.json'); -const snowpack_pkg = require(snowpack_pkg_file); +const snowpack_pkg = require(snowpack_pkg_file); // eslint-disable-line const snowpack_bin = path.resolve(path.dirname(snowpack_pkg_file), snowpack_pkg.bin.snowpack); const ignorable_warnings = new Set(['EMPTY_BUNDLE', 'CIRCULAR_DEPENDENCY', 'MISSING_EXPORT']); @@ -30,6 +31,9 @@ const onwarn = (warning, handler) => { handler(warning); }; +// TODO adapters need access to Adapter/Builder types +type Adapter = (builder: Builder) => void | Promise; + export async function build(config: SvelteAppConfig) { if (!config.adapter) { throw new Error('No adapter specified'); @@ -52,7 +56,7 @@ export async function build(config: SvelteAppConfig) { log.minor = (msg) => log(colors.grey(msg)); log.info = log; - const unoptimized = `.svelte/build/unoptimized`; + const unoptimized = '.svelte/build/unoptimized'; { // phase one — build with Snowpack @@ -136,7 +140,7 @@ export async function build(config: SvelteAppConfig) { sourcemap: true }); - log.success(`server`); + log.success('server'); const entry = path.resolve(`${unoptimized}/client/_app/main/runtime/navigation.js`); @@ -267,20 +271,22 @@ export async function build(config: SvelteAppConfig) { sourcemap: true }); - log.success(`client`); + log.success('client'); } { // phase three — adapter header(`Generating app (${config.adapter})...`); - await rimraf('build'); // TODO customize - const adapter = relative(config.adapter); - await adapter({ - dir: '.svelte/build/optimized', + const builder = new Builder({ + generated_files: '.svelte/build/optimized', + static_files: 'static', manifest, log }); + + const adapter: Adapter = relative(config.adapter); + await adapter(builder); } log.success('done'); diff --git a/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client.json b/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client.json new file mode 100644 index 000000000000..9e26dfeeb6e6 --- /dev/null +++ b/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client/root.js b/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client/root.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client/routes/index.js b/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client/routes/index.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client/setup.js b/packages/kit/src/api/build/test/fixtures/basic/.svelte/build/optimized/client/setup.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/kit/src/api/build/test/fixtures/basic/static/answer.md b/packages/kit/src/api/build/test/fixtures/basic/static/answer.md new file mode 100644 index 000000000000..f70d7bba4ae1 --- /dev/null +++ b/packages/kit/src/api/build/test/fixtures/basic/static/answer.md @@ -0,0 +1 @@ +42 \ No newline at end of file diff --git a/packages/kit/src/api/build/test/index.ts b/packages/kit/src/api/build/test/index.ts new file mode 100644 index 000000000000..9dbfea19566c --- /dev/null +++ b/packages/kit/src/api/build/test/index.ts @@ -0,0 +1,63 @@ +// import { mkdtempSync, writeFileSync, readdirSync, mkdirSync } from 'fs'; +// import { tmpdir } from 'os'; +import { join } from 'path'; +import * as uvu from 'uvu'; +import * as assert from 'uvu/assert'; +import rimraf from 'rimraf'; +import glob from 'tiny-glob/sync'; +import Builder from '../Builder'; + +const suite = uvu.suite('Builder'); + +suite('builder ', () => { + assert.ok(Builder); +}); + +suite('copy_static_files', () => { + const generated_files = join(__dirname, 'fixtures/basic/.svelte/build/optimized'); + const static_files = join(__dirname, 'fixtures/basic/static'); + + const builder = new Builder({ + generated_files, + static_files, + manifest: { + error: { + name: '$default_error', + url: '/_app/main/components/error.svelte' + }, + layout: { + name: '$default_layout', + url: '/_app/main/components/layout.svelte' + }, + components: [], + pages: [], + endpoints: [] + }, + log: Object.assign((_msg: string) => {}, { + info: (_msg: string) => {}, + warn: (_msg: string) => {}, + error: (_msg: string) => {}, + success: (_msg: string) => {} + }) + }); + + const dest = join(__dirname, 'output'); + + rimraf.sync(dest); + builder.copy_static_files(dest); + + assert.equal( + glob('**', { cwd: static_files }), + glob('**', { cwd: dest }) + ); + + rimraf.sync(dest); + builder.copy_generated_files(dest); + + assert.equal( + glob('**', { cwd: generated_files }), + glob('**', { cwd: dest }) + ); +}); + +suite.run(); diff --git a/packages/kit/src/api/build/test/output/client.json b/packages/kit/src/api/build/test/output/client.json new file mode 100644 index 000000000000..9e26dfeeb6e6 --- /dev/null +++ b/packages/kit/src/api/build/test/output/client.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/kit/src/api/build/test/output/client/root.js b/packages/kit/src/api/build/test/output/client/root.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/kit/src/api/build/test/output/client/routes/index.js b/packages/kit/src/api/build/test/output/client/routes/index.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/kit/src/api/build/test/output/client/setup.js b/packages/kit/src/api/build/test/output/client/setup.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/kit/src/core/create_manifest_data.ts b/packages/kit/src/core/create_manifest_data.ts index 18ae78a25b27..f4e4a94be471 100644 --- a/packages/kit/src/core/create_manifest_data.ts +++ b/packages/kit/src/core/create_manifest_data.ts @@ -32,13 +32,11 @@ export default function create_manifest_data( const default_layout: PageComponentManifest = { name: '$default_layout', - file: null, url: '/_app/main/components/layout.svelte' }; const default_error: PageComponentManifest = { name: '$default_error', - file: null, url: '/_app/main/components/error.svelte' }; diff --git a/packages/kit/src/runtime/stores/index.ts b/packages/kit/src/runtime/stores/index.ts index 5b5cf8f49d84..90bb429e44f2 100644 --- a/packages/kit/src/runtime/stores/index.ts +++ b/packages/kit/src/runtime/stores/index.ts @@ -29,7 +29,7 @@ export const preloading = { } }; -const error = (verb) => { +const error = (verb: string) => { throw new Error( ssr ? `Can only ${verb} session store in browser` @@ -48,10 +48,10 @@ export const session = { return store.subscribe(fn); }, - set: (updater: Updater) => { + set: (_value: any) => { error('set'); }, - update: (updater: Updater) => { + update: (_updater: Updater) => { error('update'); } }; diff --git a/packages/kit/tsconfig.json b/packages/kit/tsconfig.json index 2a454d44b896..891da25ebbd0 100644 --- a/packages/kit/tsconfig.json +++ b/packages/kit/tsconfig.json @@ -1,4 +1,5 @@ { + "extends": "../../tsconfig.json", "compilerOptions": { "resolveJsonModule": true, "module": "esnext", @@ -10,5 +11,10 @@ }, "include": ["src/**/*"], "lib": ["ES2020", "dom", "node"], - "strict": true -} + "strict": true, + "ts-node": { + "compilerOptions": { + "module": "commonjs" + } + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0010bcb87aa..70351b3fdf17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,7 @@ importers: .: + dependencies: + '@rollup/plugin-sucrase': 3.1.0_rollup@2.32.0 devDependencies: '@changesets/cli': 2.11.1 '@rollup/plugin-commonjs': 15.1.0_rollup@2.32.0 @@ -21,6 +23,7 @@ importers: '@rollup/plugin-commonjs': ^15.1.0 '@rollup/plugin-json': ^4.1.0 '@rollup/plugin-node-resolve': ^9.0.0 + '@rollup/plugin-sucrase': ^3.1.0 '@sveltejs/eslint-config': 'github:sveltejs/eslint-config#v5.6.0' '@typescript-eslint/eslint-plugin': ^4.6.0 '@typescript-eslint/parser': ^4.6.0 @@ -167,6 +170,7 @@ importers: snowpack: 2.17.0 devDependencies: '@types/node': 14.11.10 + '@types/rimraf': 3.0.0 '@types/sade': 1.7.2 estree-walker: 2.0.1 kleur: 4.1.3 @@ -176,13 +180,17 @@ importers: periscopic: 2.0.2 port-authority: 1.1.1 require-relative: 0.8.7 + rimraf: 3.0.2 sirv: 1.0.7 source-map-support: 0.5.19 svelte: 3.29.0 + tiny-glob: 0.2.8 + ts-node: 9.0.0_typescript@4.0.5 typescript: 4.0.5 specifiers: '@sveltejs/app-utils': 'workspace:*' '@types/node': ^14.11.10 + '@types/rimraf': ^3.0.0 '@types/sade': ^1.7.2 cheap-watch: ^1.0.2 estree-walker: ^2.0.1 @@ -194,6 +202,7 @@ importers: periscopic: ^2.0.2 port-authority: ^1.1.1 require-relative: ^0.8.7 + rimraf: ^3.0.2 rollup: ^2.32.0 rollup-dependency-tree: 0.0.14 rollup-plugin-css-chunks: ^1.2.8 @@ -204,6 +213,8 @@ importers: snowpack: ^2.17.0 source-map-support: ^0.5.19 svelte: ^3.29.0 + tiny-glob: ^0.2.8 + ts-node: ^9.0.0 typescript: ^4.0.5 packages/snowpack-config: dependencies: @@ -596,13 +607,24 @@ packages: rollup: ^1.20.0 || ^2.0.0 resolution: integrity: sha512-XPmVXZ7IlaoWaJLkSCDaa0Y6uVo5XQYHhiMFzOd5qSv5rE+t/UJToPIOE56flKIxBFQI27ONsxb7dqHnwSsjKQ== + /@rollup/plugin-sucrase/3.1.0_rollup@2.32.0: + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.32.0 + rollup: 2.32.0 + sucrase: 3.16.0 + dev: false + engines: + node: '>=8.0.0' + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + resolution: + integrity: sha512-PZ70LDNgIj8rL+3pKwKwTBOQ2c9JofXeLbWz+2V4/nCt4LqwYTNqxJJf1riTJsVARVzJdA0woIzUzjKZvL8TfA== /@rollup/pluginutils/3.1.0_rollup@2.32.0: dependencies: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.2.2 rollup: 2.32.0 - dev: true engines: node: '>= 8.0.0' peerDependencies: @@ -655,6 +677,13 @@ packages: /@types/estree/0.0.45: resolution: integrity: sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + /@types/glob/7.1.3: + dependencies: + '@types/minimatch': 3.0.3 + '@types/node': 14.14.9 + dev: true + resolution: + integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== /@types/json-schema/7.0.6: dev: true resolution: @@ -667,6 +696,10 @@ packages: dev: true resolution: integrity: sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== + /@types/minimatch/3.0.3: + dev: true + resolution: + integrity: sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== /@types/minimist/1.2.0: dev: true resolution: @@ -696,6 +729,10 @@ packages: /@types/node/14.14.5: resolution: integrity: sha512-H5Wn24s/ZOukBmDn03nnGTp18A60ny9AmCwnEcgJiTgSGsCO7k+NWP7zjCCbhlcnVCoI+co52dUAt9GMhOSULw== + /@types/node/14.14.9: + dev: true + resolution: + integrity: sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw== /@types/normalize-package-data/2.4.0: dev: true resolution: @@ -709,6 +746,13 @@ packages: '@types/node': 14.14.5 resolution: integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + /@types/rimraf/3.0.0: + dependencies: + '@types/glob': 7.1.3 + '@types/node': 14.14.9 + dev: true + resolution: + integrity: sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ== /@types/sade/1.7.2: dependencies: '@types/mri': 1.1.0 @@ -919,6 +963,10 @@ packages: node: '>=8' resolution: integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + /any-promise/1.3.0: + dev: false + resolution: + integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8= /anymatch/3.1.1: dependencies: normalize-path: 3.0.0 @@ -1235,6 +1283,12 @@ packages: dev: false resolution: integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + /commander/4.1.1: + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== /commondir/1.0.1: resolution: integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= @@ -2682,6 +2736,14 @@ packages: dev: true resolution: integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + /mz/2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + resolution: + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== /natural-compare/1.4.0: dev: true resolution: @@ -2692,6 +2754,12 @@ packages: node: 4.x || >=6.0.0 resolution: integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + /node-modules-regexp/1.0.0: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= /normalize-package-data/2.5.0: dependencies: hosted-git-info: 2.8.8 @@ -2723,6 +2791,12 @@ packages: node: '>=8' resolution: integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + /object-assign/4.1.1: + dev: false + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= /object-inspect/1.8.0: dev: true resolution: @@ -2991,6 +3065,14 @@ packages: node: '>=6' resolution: integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + /pirates/4.0.1: + dependencies: + node-modules-regexp: 1.0.0 + dev: false + engines: + node: '>= 6' + resolution: + integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== /pkg-dir/2.0.0: dependencies: find-up: 2.1.0 @@ -3260,7 +3342,6 @@ packages: /rimraf/3.0.2: dependencies: glob: 7.1.6 - dev: false hasBin: true resolution: integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -3707,6 +3788,20 @@ packages: node: '>=8' resolution: integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + /sucrase/3.16.0: + dependencies: + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.1.6 + mz: 2.7.0 + pirates: 4.0.1 + ts-interface-checker: 0.1.13 + dev: false + engines: + node: '>=8' + hasBin: true + resolution: + integrity: sha512-ovVuswxV5TayCPXfTk8bgBgk6uNRvsinIkEpq0J6zS1xXCx5N/LLGcbsKdRhqn/ToZylMX6+yXaR1LSn1I42Pg== /supports-color/2.0.0: dev: false engines: @@ -3800,6 +3895,20 @@ packages: dev: true resolution: integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + /thenify-all/1.6.0: + dependencies: + thenify: 3.3.1 + dev: false + engines: + node: '>=0.8' + resolution: + integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + /thenify/3.3.1: + dependencies: + any-promise: 1.3.0 + dev: false + resolution: + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== /tiny-glob/0.2.8: dependencies: globalyzer: 0.1.0 @@ -3843,6 +3952,10 @@ packages: node: '>=8' resolution: integrity: sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + /ts-interface-checker/0.1.13: + dev: false + resolution: + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== /ts-node/9.0.0: dependencies: arg: 4.1.3 @@ -3858,6 +3971,22 @@ packages: typescript: '>=2.7' resolution: integrity: sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg== + /ts-node/9.0.0_typescript@4.0.5: + dependencies: + arg: 4.1.3 + diff: 4.0.2 + make-error: 1.3.6 + source-map-support: 0.5.19 + typescript: 4.0.5 + yn: 3.1.1 + dev: true + engines: + node: '>=10.0.0' + hasBin: true + peerDependencies: + typescript: '>=2.7' + resolution: + integrity: sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg== /tsconfig-paths/3.9.0: dependencies: '@types/json5': 0.0.29