diff --git a/.gitignore b/.gitignore index ead94f04da8d..d005b0ecb55a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,7 @@ test-results/ package-lock.json yarn.lock /packages/create-svelte/template/CHANGELOG.md -/packages/kit/src/packaging/test/watch/package +/packages/package/test/**/package /documentation/types.js .env .vercel_build_output diff --git a/.prettierrc b/.prettierrc index 6b1b2fe02cff..478c4dcc8747 100644 --- a/.prettierrc +++ b/.prettierrc @@ -21,9 +21,9 @@ "files": [ "**/CHANGELOG.md", "**/.svelte-kit/**", - "packages/kit/src/packaging/test/fixtures/**/expected/**/*", - "packages/kit/src/packaging/test/watch/expected/**/*", - "packages/kit/src/packaging/test/watch/package/**/*", + "packages/package/test/fixtures/**/expected/**/*", + "packages/package/test/watch/expected/**/*", + "packages/package/test/watch/package/**/*", "packages/kit/src/core/prerender/fixtures/**/*", "packages/migrate/migrations/routes/*/samples.md" ], diff --git a/documentation/docs/13-packaging.md b/documentation/docs/13-packaging.md index 0dab6c4918f6..f755202a2763 100644 --- a/documentation/docs/13-packaging.md +++ b/documentation/docs/13-packaging.md @@ -2,18 +2,18 @@ title: Packaging --- -> `svelte-kit package` is currently experimental and is not subject to Semantic Versioning rules. Non-backward compatible changes may occur in any future release. +> `svelte-package` is currently experimental. Non-backward compatible changes may occur in any future release. -You can use SvelteKit to build component libraries as well as apps. +You can use SvelteKit to build apps as well as component libraries, using the `@sveltejs/package` package (`npm create svelte` has an option to set this up for you). When you're creating an app, the contents of `src/routes` is the public-facing stuff; [`src/lib`](/docs/modules#$lib) contains your app's internal library. A SvelteKit component library has the exact same structure as a SvelteKit app, except that `src/lib` is the public-facing bit. `src/routes` might be a documentation or demo site that accompanies the library, or it might just be a sandbox you use during development. -Running `svelte-kit package` will take the contents of `src/lib` and generate a `package` directory (which can be [configured](/docs/configuration#package)) containing the following: +Running the `svelte-package` command from `@sveltejs/package` will take the contents of `src/lib` and generate a `package` directory (which can be [configured](/docs/configuration#package)) containing the following: - All the files in `src/lib`, unless you [configure](/docs/configuration#package) custom `include`/`exclude` options. Svelte components will be preprocessed, TypeScript files will be transpiled to JavaScript. -- Type definitions (`d.ts` files) which are generated for Svelte, JavaScript and TypeScript files. You need to install `typescript >= 4.0.0` and `svelte2tsx >= 0.4.1` for this. Type definitions are placed next to their implementation, hand-written `d.ts` files are copied over as is. You can [disable generation](/docs/configuration#package), but we strongly recommend against it. +- Type definitions (`d.ts` files) which are generated for Svelte, JavaScript and TypeScript files. You need to install `typescript >= 4.0.0` for this. Type definitions are placed next to their implementation, hand-written `d.ts` files are copied over as is. You can [disable generation](/docs/configuration#package), but we strongly recommend against it. - A `package.json` copied from the project root with all fields except `"scripts"`, `"publishConfig.directory"` and `"publishConfig.linkDirectory"`. The `"dependencies"` field is included, which means you should add packages that you only need for your documentation or demo site to `"devDependencies"`. A `"type": "module"` and an `"exports"` field will be added if it's not defined in the original file. The `"exports"` field contains the package's entry points. By default, all files in `src/lib` will be treated as an entry point unless they start with (or live in a directory that starts with) an underscore, but you can [configure](/docs/configuration#package) this behaviour. If you have a `src/lib/index.js` or `src/lib/index.svelte` file, it will be treated as the package root. @@ -50,4 +50,6 @@ The `./package` above is referring to the directory name generated, change accor ### Caveats +All relative file imports need to be fully specified, adhering to Node's ESM algorithm. This means you cannot import the file `src/lib/something/index.js` like `import { something } from './something`, instead you need to import it like this: `import { something } from './something/index.js`. If you are using TypeScript, you need to import `.ts` files the same way, but using a `.js` file ending, _not_ a `.ts` file ending (this isn't under our control, the TypeScript team has made that decision). Setting `"moduleResolution": "NodeNext"` in your `tsconfig.json` or `jsconfig.json` will help you with this. + This is a relatively experimental feature and is not yet fully implemented. All files except Svelte files (preprocessed) and TypeScript files (transpiled to JavaScript) are copied across as-is. diff --git a/documentation/docs/15-configuration.md b/documentation/docs/15-configuration.md index 60192675068c..844ba60b3678 100644 --- a/documentation/docs/15-configuration.md +++ b/documentation/docs/15-configuration.md @@ -48,13 +48,6 @@ const config = { }, moduleExtensions: ['.js', '.ts'], outDir: '.svelte-kit', - package: { - dir: 'package', - emitTypes: true, - // excludes all .d.ts and files starting with _ as the name - exports: (filepath) => !/^_|\/_|\.d\.ts$/.test(filepath), - files: () => true - }, paths: { assets: '', base: '' @@ -80,7 +73,17 @@ const config = { }, // options passed to svelte.preprocess (https://svelte.dev/docs#compile-time-svelte-preprocess) - preprocess: null + preprocess: null, + + // options passed to @sveltejs/package + package: { + source: 'value of kit.files.lib, if available, else src/lib', + dir: 'package', + emitTypes: true, + // excludes all .d.ts and files starting with _ as the name + exports: (filepath) => !/^_|\/_|\.d\.ts$/.test(filepath), + files: () => true + } }; export default config; @@ -208,8 +211,9 @@ The directory that SvelteKit writes files to during `dev` and `build`. You shoul Options related to [creating a package](/docs/packaging). +- `source` - library directory - `dir` - output directory -- `emitTypes` - by default, `svelte-kit package` will automatically generate types for your package in the form of `.d.ts` files. While generating types is configurable, we believe it is best for the ecosystem quality to generate types, always. Please make sure you have a good reason when setting it to `false` (for example when you want to provide handwritten type definitions instead) +- `emitTypes` - by default, `svelte-package` will automatically generate types for your package in the form of `.d.ts` files. While generating types is configurable, we believe it is best for the ecosystem quality to generate types, always. Please make sure you have a good reason when setting it to `false` (for example when you want to provide handwritten type definitions instead) - `exports` - a function with the type of `(filepath: string) => boolean`. When `true`, the filepath will be included in the `exports` field of the `package.json`. Any existing values in the `package.json` source will be merged with values from the original `exports` field taking precedence - `files` - a function with the type of `(filepath: string) => boolean`. When `true`, the file will be processed and copied over to the final output folder, specified in `dir` @@ -226,14 +230,12 @@ import mm from 'micromatch'; /** @type {import('@sveltejs/kit').Config} */ const config = { - kit: { - package: { - exports: (filepath) => { - if (filepath.endsWith('.d.ts')) return false; - return mm.isMatch(filepath, ['!**/_*', '!**/internal/**']); - }, - files: mm.matcher('!**/build.*') - } + package: { + exports: (filepath) => { + if (filepath.endsWith('.d.ts')) return false; + return mm.isMatch(filepath, ['!**/_*', '!**/internal/**']); + }, + files: mm.matcher('!**/build.*') } }; diff --git a/packages/adapter-static/package.json b/packages/adapter-static/package.json index 271b8b0516ad..d3a0c7a2576e 100644 --- a/packages/adapter-static/package.json +++ b/packages/adapter-static/package.json @@ -32,6 +32,6 @@ "svelte": "^3.48.0", "typescript": "^4.7.4", "uvu": "^0.5.3", - "vite": "^3.0.0" + "vite": "3.0.2" } } diff --git a/packages/adapter-static/test/apps/prerendered/package.json b/packages/adapter-static/test/apps/prerendered/package.json index 425cb7a94356..3d8844d99cb6 100644 --- a/packages/adapter-static/test/apps/prerendered/package.json +++ b/packages/adapter-static/test/apps/prerendered/package.json @@ -10,7 +10,7 @@ "devDependencies": { "@sveltejs/kit": "workspace:*", "svelte": "^3.48.0", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/adapter-static/test/apps/spa/package.json b/packages/adapter-static/test/apps/spa/package.json index 156d0fe3bd5a..585a543a2e72 100644 --- a/packages/adapter-static/test/apps/spa/package.json +++ b/packages/adapter-static/test/apps/spa/package.json @@ -12,7 +12,7 @@ "@sveltejs/kit": "workspace:*", "sirv-cli": "^2.0.2", "svelte": "^3.48.0", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/create-svelte/index.js b/packages/create-svelte/index.js index 0cbcf5999798..b002120a8acc 100755 --- a/packages/create-svelte/index.js +++ b/packages/create-svelte/index.js @@ -54,7 +54,7 @@ function write_common_files(cwd, options, name) { const pkg_file = path.join(cwd, 'package.json'); const pkg = /** @type {any} */ (JSON.parse(fs.readFileSync(pkg_file, 'utf-8'))); - files.forEach((file) => { + sort_files(files).forEach((file) => { const include = file.include.every((condition) => matches_condition(condition, options)); const exclude = file.exclude.some((condition) => matches_condition(condition, options)); @@ -83,7 +83,7 @@ function write_common_files(cwd, options, name) { * @returns {boolean} */ function matches_condition(condition, options) { - if (condition === 'default' || condition === 'skeleton') { + if (condition === 'default' || condition === 'skeleton' || condition === 'libskeleton') { return options.template === condition; } if (condition === 'typescript' || condition === 'checkjs') { @@ -135,6 +135,26 @@ function sort_keys(obj) { return sorted; } +/** + * Sort files so that those which apply more generically come first so they + * can be overwritten by files for more precise cases later. + * + * @param files {import('./types/internal').Common['files']} + * */ +function sort_files(files) { + return files.sort((f1, f2) => { + const f1_more_generic = + f1.include.every((include) => f2.include.includes(include)) && + f1.exclude.every((exclude) => f2.exclude.includes(exclude)); + const f2_more_generic = + f2.include.every((include) => f1.include.includes(include)) && + f2.exclude.every((exclude) => f1.exclude.includes(exclude)); + const same = f1_more_generic && f2_more_generic; + const different = !f1_more_generic && !f2_more_generic; + return same || different ? 0 : f1_more_generic ? -1 : 1; + }); +} + /** @param {string} name */ function to_valid_package_name(name) { return name diff --git a/packages/create-svelte/shared/+libskeleton+checkjs/jsconfig.json b/packages/create-svelte/shared/+libskeleton+checkjs/jsconfig.json new file mode 100644 index 000000000000..f56aae6ff5c8 --- /dev/null +++ b/packages/create-svelte/shared/+libskeleton+checkjs/jsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "NodeNext" + } +} diff --git a/packages/create-svelte/shared/+libskeleton+typescript/tsconfig.json b/packages/create-svelte/shared/+libskeleton+typescript/tsconfig.json new file mode 100644 index 000000000000..f56aae6ff5c8 --- /dev/null +++ b/packages/create-svelte/shared/+libskeleton+typescript/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "NodeNext" + } +} diff --git a/packages/create-svelte/shared/+skeleton+typescript/svelte.config.js b/packages/create-svelte/shared/+typescript/svelte.config.js similarity index 100% rename from packages/create-svelte/shared/+skeleton+typescript/svelte.config.js rename to packages/create-svelte/shared/+typescript/svelte.config.js diff --git a/packages/create-svelte/shared/+skeleton-typescript/svelte.config.js b/packages/create-svelte/shared/-typescript/svelte.config.js similarity index 100% rename from packages/create-svelte/shared/+skeleton-typescript/svelte.config.js rename to packages/create-svelte/shared/-typescript/svelte.config.js diff --git a/packages/create-svelte/templates/default/package.json b/packages/create-svelte/templates/default/package.json index 630e6f122b83..bf068924231d 100644 --- a/packages/create-svelte/templates/default/package.json +++ b/packages/create-svelte/templates/default/package.json @@ -5,7 +5,6 @@ "scripts": { "dev": "vite dev", "build": "vite build", - "package": "svelte-kit package", "preview": "vite preview" }, "devDependencies": { diff --git a/packages/create-svelte/templates/libskeleton/.gitignore b/packages/create-svelte/templates/libskeleton/.gitignore new file mode 100644 index 000000000000..f4401a32d242 --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example diff --git a/packages/create-svelte/templates/libskeleton/.ignore b/packages/create-svelte/templates/libskeleton/.ignore new file mode 100644 index 000000000000..449d6440cc69 --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/.ignore @@ -0,0 +1,3 @@ +package.json +.meta.json +.turbo \ No newline at end of file diff --git a/packages/create-svelte/templates/libskeleton/.meta.json b/packages/create-svelte/templates/libskeleton/.meta.json new file mode 100644 index 000000000000..17f168aca33c --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/.meta.json @@ -0,0 +1,4 @@ +{ + "title": "Library skeleton project", + "description": "Barebones scaffolding for your new Svelte library" +} diff --git a/packages/create-svelte/templates/libskeleton/.npmrc b/packages/create-svelte/templates/libskeleton/.npmrc new file mode 100644 index 000000000000..b6f27f135954 --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/packages/create-svelte/templates/libskeleton/package.template.json b/packages/create-svelte/templates/libskeleton/package.template.json new file mode 100644 index 000000000000..e154bd154cc4 --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/package.template.json @@ -0,0 +1,18 @@ +{ + "name": "~TODO~", + "version": "0.0.1", + "scripts": { + "dev": "vite dev", + "build": "svelte-kit sync && svelte-package" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "workspace:*", + "@sveltejs/kit": "workspace:*", + "@sveltejs/package": "workspace:*", + "svelte": "^3.44.0", + "tslib": "^2.3.1", + "typescript": "^4.7.4", + "vite": "^3.0.0" + }, + "type": "module" +} diff --git a/packages/create-svelte/templates/libskeleton/src/app.d.ts b/packages/create-svelte/templates/libskeleton/src/app.d.ts new file mode 100644 index 000000000000..b28d8405630d --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/src/app.d.ts @@ -0,0 +1,11 @@ +/// + +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +// and what to do when importing types +declare namespace App { + // interface Locals {} + // interface Platform {} + // interface Session {} + // interface Stuff {} +} diff --git a/packages/create-svelte/templates/libskeleton/src/app.html b/packages/create-svelte/templates/libskeleton/src/app.html new file mode 100644 index 000000000000..2f8367462108 --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/packages/create-svelte/templates/libskeleton/src/lib/index.js b/packages/create-svelte/templates/libskeleton/src/lib/index.js new file mode 100644 index 000000000000..47d3c46fb896 --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/src/lib/index.js @@ -0,0 +1 @@ +// Reexport your entry components here diff --git a/packages/create-svelte/templates/libskeleton/src/routes/+page.svelte b/packages/create-svelte/templates/libskeleton/src/routes/+page.svelte new file mode 100644 index 000000000000..0a45b69f099b --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/src/routes/+page.svelte @@ -0,0 +1,3 @@ +

Welcome to your library project

+

Create your package using @sveltejs/package and preview/showcase your work with SvelteKit

+

Visit kit.svelte.dev to read the documentation

diff --git a/packages/create-svelte/templates/libskeleton/static/favicon.png b/packages/create-svelte/templates/libskeleton/static/favicon.png new file mode 100644 index 000000000000..825b9e65af7c Binary files /dev/null and b/packages/create-svelte/templates/libskeleton/static/favicon.png differ diff --git a/packages/create-svelte/templates/libskeleton/svelte.config.js b/packages/create-svelte/templates/libskeleton/svelte.config.js new file mode 100644 index 000000000000..a894776b5d11 --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/svelte.config.js @@ -0,0 +1,12 @@ +import adapter from '@sveltejs/adapter-auto'; + +// This config is ignored and replaced with one of the configs in the shared folder when a project is created. + +/** @type {import('@sveltejs/package').Config} */ +const config = { + kit: { + adapter: adapter() + } +}; + +export default config; diff --git a/packages/create-svelte/templates/libskeleton/vite.config.js b/packages/create-svelte/templates/libskeleton/vite.config.js new file mode 100644 index 000000000000..8747050534d8 --- /dev/null +++ b/packages/create-svelte/templates/libskeleton/vite.config.js @@ -0,0 +1,8 @@ +import { sveltekit } from '@sveltejs/kit/vite'; + +/** @type {import('vite').UserConfig} */ +const config = { + plugins: [sveltekit()] +}; + +export default config; diff --git a/packages/create-svelte/templates/skeleton/package.template.json b/packages/create-svelte/templates/skeleton/package.template.json index 6168c971b6ac..9b213b5b1501 100644 --- a/packages/create-svelte/templates/skeleton/package.template.json +++ b/packages/create-svelte/templates/skeleton/package.template.json @@ -1,10 +1,10 @@ { "name": "~TODO~", "version": "0.0.1", + "private": true, "scripts": { "dev": "vite dev", "build": "vite build", - "package": "svelte-kit package", "preview": "vite preview" }, "devDependencies": { diff --git a/packages/create-svelte/types/internal.d.ts b/packages/create-svelte/types/internal.d.ts index e0a6ede97b72..ad1fa0b2d767 100644 --- a/packages/create-svelte/types/internal.d.ts +++ b/packages/create-svelte/types/internal.d.ts @@ -1,6 +1,6 @@ export type Options = { name: string; - template: 'default' | 'skeleton'; + template: 'default' | 'skeleton' | 'libskeleton'; types: 'typescript' | 'checkjs' | null; prettier: boolean; eslint: boolean; @@ -19,7 +19,8 @@ export type Condition = | 'checkjs' | 'playwright' | 'skeleton' - | 'default'; + | 'default' + | 'libskeleton'; export type Common = { files: Array<{ diff --git a/packages/kit/package.json b/packages/kit/package.json index 938c03c0e845..89891f1516c1 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -37,14 +37,14 @@ "rollup": "^2.75.7", "svelte": "^3.48.0", "svelte-preprocess": "^4.10.6", - "svelte2tsx": "~0.5.10", + "tiny-glob": "^0.2.9", "typescript": "^4.7.4", "uvu": "^0.5.3", - "vite": "^3.0.0" + "vite": "3.0.2" }, "peerDependencies": { "svelte": "^3.44.0", - "vite": "^3.0.0" + "vite": "3.0.2" }, "bin": { "svelte-kit": "svelte-kit.js" @@ -66,10 +66,9 @@ "check:all": "tsc && pnpm -r --filter=\"./**\" check", "format": "npm run lint -- --write", "prepublishOnly": "npm run build", - "test": "npm run test:unit && npm run test:packaging && npm run test:integration", + "test": "npm run test:unit && npm run test:integration", "test:integration": "pnpm run -r --workspace-concurrency 1 --filter=\"./test/**\" test", "test:unit": "uvu src \"(spec\\.js|test[\\\\/]index\\.js)\" -i packaging", - "test:packaging": "uvu src/packaging \"(spec\\.js|test[\\\\/]index\\.js)\"", "types": "node scripts/extract-types.js", "postinstall": "node svelte-kit.js sync" }, diff --git a/packages/kit/src/cli.js b/packages/kit/src/cli.js index 54b5ecd17b74..98348e6f0753 100755 --- a/packages/kit/src/cli.js +++ b/packages/kit/src/cli.js @@ -22,21 +22,6 @@ function handle_error(e) { const pkg = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.url), 'utf-8')); const prog = sade('svelte-kit').version(pkg.version); -prog - .command('package') - .describe('Create a package') - .option('-w, --watch', 'Rerun when files change', false) - .action(async ({ watch }) => { - try { - const config = await load_config(); - const packaging = await import('./packaging/index.js'); - - await (watch ? packaging.watch(config) : packaging.build(config)); - } catch (error) { - handle_error(error); - } - }); - prog .command('sync') .describe('Synchronise generated files') @@ -78,6 +63,14 @@ prog replace('dev'); replace('build'); replace('preview'); +prog + .command('package') + .describe('No longer available - use @sveltejs/package instead') + .action(() => { + console.error( + 'svelte-kit package has been removed. It now lives in its own npm package. See the PR on how to migrate: https://github.com/sveltejs/kit/pull/5730' + ); + }); prog.parse(process.argv, { unknown: (arg) => `Unknown option: ${arg}` }); diff --git a/packages/kit/src/core/config/index.spec.js b/packages/kit/src/core/config/index.spec.js index 638a44b96d62..3cd626d4910c 100644 --- a/packages/kit/src/core/config/index.spec.js +++ b/packages/kit/src/core/config/index.spec.js @@ -95,10 +95,6 @@ const get_defaults = (prefix = '') => ({ }, moduleExtensions: ['.js', '.ts'], outDir: join(prefix, '.svelte-kit'), - package: { - dir: 'package', - emitTypes: true - }, serviceWorker: { register: true }, @@ -129,15 +125,14 @@ const get_defaults = (prefix = '') => ({ pollInterval: 0 }, // TODO cleanup for 1.0 - vite: undefined + vite: undefined, + package: undefined } }); test('fills in defaults', () => { const validated = validate_config({}); - assert.equal(validated.kit.package.exports(''), true); - assert.equal(validated.kit.package.files(''), true); assert.equal(validated.kit.serviceWorker.files(''), true); remove_keys(validated, ([, v]) => typeof v === 'function'); @@ -200,8 +195,6 @@ test('fills in partial blanks', () => { } }); - assert.equal(validated.kit.package.exports(''), true); - assert.equal(validated.kit.package.files(''), true); assert.equal(validated.kit.serviceWorker.files(''), true); remove_keys(validated, ([, v]) => typeof v === 'function'); diff --git a/packages/kit/src/core/config/options.js b/packages/kit/src/core/config/options.js index 7abba322254a..9d89fd4ee6fe 100644 --- a/packages/kit/src/core/config/options.js +++ b/packages/kit/src/core/config/options.js @@ -173,13 +173,7 @@ const options = object( outDir: string('.svelte-kit'), - package: object({ - dir: string('package'), - // excludes all .d.ts and filename starting with _ - exports: fun((filepath) => !/^_|\/_|\.d\.ts$/.test(filepath)), - files: fun(() => true), - emitTypes: boolean(true) - }), + package: error((keypath) => `${keypath} has been removed — use @sveltejs/package instead`), paths: object({ base: validate('', (input, keypath) => { diff --git a/packages/kit/src/packaging/test/errors/duplicate-export/tsconfig.json b/packages/kit/src/packaging/test/errors/duplicate-export/tsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/errors/duplicate-export/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/test/errors/no-lib-folder/tsconfig.json b/packages/kit/src/packaging/test/errors/no-lib-folder/tsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/errors/no-lib-folder/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/test/fixtures/assets/jsconfig.json b/packages/kit/src/packaging/test/fixtures/assets/jsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/fixtures/assets/jsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/svelte.config.js b/packages/kit/src/packaging/test/fixtures/emitTypes-false/svelte.config.js deleted file mode 100644 index 49e9577ed57e..000000000000 --- a/packages/kit/src/packaging/test/fixtures/emitTypes-false/svelte.config.js +++ /dev/null @@ -1,10 +0,0 @@ -/** @type {import('@sveltejs/kit').Config} */ -const config = { - kit: { - package: { - emitTypes: false - } - } -}; - -export default config; diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/jsconfig.json b/packages/kit/src/packaging/test/fixtures/exports-merge/jsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/fixtures/exports-merge/jsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/jsconfig.json b/packages/kit/src/packaging/test/fixtures/exports-replace/jsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/fixtures/exports-replace/jsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/svelte.config.js b/packages/kit/src/packaging/test/fixtures/exports-replace/svelte.config.js deleted file mode 100644 index 23da5549797d..000000000000 --- a/packages/kit/src/packaging/test/fixtures/exports-replace/svelte.config.js +++ /dev/null @@ -1,10 +0,0 @@ -/** @type {import('@sveltejs/kit').Config} */ -const config = { - kit: { - package: { - exports: () => false - } - } -}; - -export default config; diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/jsconfig.json b/packages/kit/src/packaging/test/fixtures/files-exclude/jsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/fixtures/files-exclude/jsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/svelte.config.js b/packages/kit/src/packaging/test/fixtures/files-exclude/svelte.config.js deleted file mode 100644 index f203417f3489..000000000000 --- a/packages/kit/src/packaging/test/fixtures/files-exclude/svelte.config.js +++ /dev/null @@ -1,14 +0,0 @@ -/** @type {import('@sveltejs/kit').Config} */ -const config = { - kit: { - package: { - files(filepath) { - const ext = filepath.slice(filepath.lastIndexOf('.') + 1); - if (ext === 'js' || ext === 'svelte') return !filepath.includes('exclude'); - return ext !== 'mjs'; - } - } - } -}; - -export default config; diff --git a/packages/kit/src/packaging/test/fixtures/javascript/jsconfig.json b/packages/kit/src/packaging/test/fixtures/javascript/jsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/fixtures/javascript/jsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/tsconfig.json b/packages/kit/src/packaging/test/fixtures/resolve-alias/tsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/fixtures/resolve-alias/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/test/fixtures/typescript/tsconfig.json b/packages/kit/src/packaging/test/fixtures/typescript/tsconfig.json deleted file mode 100644 index 81ff9770cd8a..000000000000 --- a/packages/kit/src/packaging/test/fixtures/typescript/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.svelte-kit/tsconfig.json" -} diff --git a/packages/kit/src/packaging/types.d.ts b/packages/kit/src/packaging/types.d.ts deleted file mode 100644 index d53253a7dba4..000000000000 --- a/packages/kit/src/packaging/types.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -export type File = { - name: string; - dest: string; - base: string; - is_included: boolean; - is_exported: boolean; - is_svelte: boolean; -}; diff --git a/packages/kit/test/apps/amp/package.json b/packages/kit/test/apps/amp/package.json index bdcaa43af4e7..fdc85fc837c0 100644 --- a/packages/kit/test/apps/amp/package.json +++ b/packages/kit/test/apps/amp/package.json @@ -19,7 +19,7 @@ "svelte": "^3.48.0", "svelte-check": "^2.7.1", "typescript": "^4.7.4", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/apps/basics/package.json b/packages/kit/test/apps/basics/package.json index 06a472f7f57d..567a8a1be931 100644 --- a/packages/kit/test/apps/basics/package.json +++ b/packages/kit/test/apps/basics/package.json @@ -18,7 +18,7 @@ "svelte": "^3.48.0", "svelte-check": "^2.7.1", "typescript": "^4.7.4", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/apps/options-2/package.json b/packages/kit/test/apps/options-2/package.json index 096eca6c80a7..63cd01ba2783 100644 --- a/packages/kit/test/apps/options-2/package.json +++ b/packages/kit/test/apps/options-2/package.json @@ -18,7 +18,7 @@ "svelte": "^3.48.0", "svelte-check": "^2.7.1", "typescript": "^4.7.4", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/apps/options/package.json b/packages/kit/test/apps/options/package.json index 5da7c11fc3b9..6850d6f4c2b9 100644 --- a/packages/kit/test/apps/options/package.json +++ b/packages/kit/test/apps/options/package.json @@ -17,7 +17,7 @@ "svelte": "^3.48.0", "svelte-check": "^2.7.1", "typescript": "^4.7.4", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/apps/writes/package.json b/packages/kit/test/apps/writes/package.json index 396e62815efe..6ea72a979ed9 100644 --- a/packages/kit/test/apps/writes/package.json +++ b/packages/kit/test/apps/writes/package.json @@ -18,7 +18,7 @@ "svelte": "^3.48.0", "svelte-check": "^2.7.1", "typescript": "^4.7.4", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/prerendering/basics/package.json b/packages/kit/test/prerendering/basics/package.json index 3c0ad3cca129..95f04e742134 100644 --- a/packages/kit/test/prerendering/basics/package.json +++ b/packages/kit/test/prerendering/basics/package.json @@ -15,7 +15,7 @@ "svelte-check": "^2.7.1", "typescript": "^4.7.4", "uvu": "^0.5.3", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/prerendering/fallback/package.json b/packages/kit/test/prerendering/fallback/package.json index cd2f0c4c7c30..3c3e7aa3869e 100644 --- a/packages/kit/test/prerendering/fallback/package.json +++ b/packages/kit/test/prerendering/fallback/package.json @@ -15,7 +15,7 @@ "svelte-check": "^2.7.1", "typescript": "^4.7.4", "uvu": "^0.5.3", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/prerendering/options/package.json b/packages/kit/test/prerendering/options/package.json index f83b597edf9a..b3a9e2feaf91 100644 --- a/packages/kit/test/prerendering/options/package.json +++ b/packages/kit/test/prerendering/options/package.json @@ -15,7 +15,7 @@ "svelte-check": "^2.7.1", "typescript": "^4.7.4", "uvu": "^0.5.3", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/prerendering/paths-base/package.json b/packages/kit/test/prerendering/paths-base/package.json index 6ad24e692f7a..6c94d7c1f40b 100644 --- a/packages/kit/test/prerendering/paths-base/package.json +++ b/packages/kit/test/prerendering/paths-base/package.json @@ -15,7 +15,7 @@ "svelte-check": "^2.7.1", "typescript": "^4.7.4", "uvu": "^0.5.3", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/test/prerendering/trailing-slash/package.json b/packages/kit/test/prerendering/trailing-slash/package.json index 2fa3e9d82529..77123a00a81e 100644 --- a/packages/kit/test/prerendering/trailing-slash/package.json +++ b/packages/kit/test/prerendering/trailing-slash/package.json @@ -15,7 +15,7 @@ "svelte-check": "^2.7.1", "typescript": "^4.7.4", "uvu": "^0.5.4", - "vite": "^3.0.0" + "vite": "3.0.2" }, "type": "module" } diff --git a/packages/kit/tsconfig.json b/packages/kit/tsconfig.json index 9776a47c3d59..0f0c4abeb6d7 100644 --- a/packages/kit/tsconfig.json +++ b/packages/kit/tsconfig.json @@ -16,6 +16,5 @@ "noUnusedLocals": true, "noUnusedParameters": true }, - "include": ["scripts/**/*", "src/**/*", "types/**/*"], - "exclude": ["src/packaging/test/fixtures/**/*", "src/packaging/test/watch/**/*"] + "include": ["scripts/**/*", "src/**/*", "types/**/*"] } diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index 8070cd969347..d0e9540ce83f 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -109,6 +109,7 @@ export interface Config { extensions?: string[]; kit?: KitConfig; preprocess?: any; + package?: any; [key: string]: any; } @@ -144,12 +145,6 @@ export interface KitConfig { allowed?: string[]; }; outDir?: string; - package?: { - dir?: string; - emitTypes?: boolean; - exports?(filepath: string): boolean; - files?(filepath: string): boolean; - }; paths?: { assets?: string; base?: string; diff --git a/packages/package/.gitignore b/packages/package/.gitignore new file mode 100644 index 000000000000..6fccaba6d050 --- /dev/null +++ b/packages/package/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +/node_modules +/dist +/test/**/build +!/src/core/adapt/fixtures/*/.svelte-kit +!/test/node_modules +/test/apps/basics/test/errors.json +.custom-out-dir + +# these are already ignored by the top level .gitignore +# repeating them here as a faux prettier ignore +.svelte-kit diff --git a/packages/package/README.md b/packages/package/README.md new file mode 100644 index 000000000000..f43876cd1bfa --- /dev/null +++ b/packages/package/README.md @@ -0,0 +1,18 @@ +# The fastest way to build Svelte packages + +Create Svelte packages, build and push them to npm. This is part of the [SvelteKit](https://kit.svelte.dev) framework and CLI. + +The quickest way to get started is via the [create-svelte](https://github.com/sveltejs/kit/tree/master/packages/create-svelte) package: + +```bash +npm create svelte@latest my-app +cd my-app +npm install +npm run dev +``` + +See the [documentation](https://kit.svelte.dev/docs/packaging) to learn more. + +## Changelog + +[The Changelog for this package is available on GitHub](https://github.com/sveltejs/kit/blob/master/packages/package/CHANGELOG.md). diff --git a/packages/package/package.json b/packages/package/package.json new file mode 100644 index 000000000000..052859c0a892 --- /dev/null +++ b/packages/package/package.json @@ -0,0 +1,52 @@ +{ + "name": "@sveltejs/package", + "version": "1.0.0-next.1", + "repository": { + "type": "git", + "url": "https://github.com/sveltejs/kit", + "directory": "packages/package" + }, + "license": "MIT", + "homepage": "https://kit.svelte.dev", + "type": "module", + "dependencies": { + "chokidar": "^3.5.3", + "kleur": "^4.1.4", + "sade": "^1.8.1", + "svelte2tsx": "~0.5.10" + }, + "devDependencies": { + "@types/node": "^16.11.36", + "svelte": "^3.48.0", + "svelte-preprocess": "^4.10.6", + "typescript": "^4.7.4", + "uvu": "^0.5.3" + }, + "peerDependencies": { + "svelte": "^3.44.0" + }, + "bin": { + "svelte-package": "svelte-package.js" + }, + "files": [ + "src", + "types" + ], + "scripts": { + "lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore", + "check": "tsc", + "check:all": "tsc && pnpm -r --filter=\"./**\" check", + "format": "npm run lint -- --write", + "test": "uvu test \"^index.js$\"" + }, + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./types/index.d.ts" + } + }, + "types": "types/index.d.ts", + "engines": { + "node": ">=16.9" + } +} diff --git a/packages/package/src/cli.js b/packages/package/src/cli.js new file mode 100644 index 000000000000..bb33f5058a82 --- /dev/null +++ b/packages/package/src/cli.js @@ -0,0 +1,33 @@ +import colors from 'kleur'; +import sade from 'sade'; +import { load_config } from './config.js'; + +/** @param {Error} error */ +function handle_error(error) { + if (error.name === 'SyntaxError') throw error; + + console.error(colors.bold().red(`> ${error.message}`)); + if (error.stack) { + console.error(colors.gray(error.stack.split('\n').slice(1).join('\n'))); + } + + process.exit(1); +} + +const prog = sade('svelte-package', true).version('__VERSION__'); + +prog + .describe('Create a package') + .option('-w, --watch', 'Rerun when files change', false) + .action(async ({ watch }) => { + try { + const config = await load_config(); + const packaging = await import('./index.js'); + + await (watch ? packaging.watch(config) : packaging.build(config)); + } catch (error) { + handle_error(/** @type {Error} */ (error)); + } + }); + +prog.parse(process.argv, { unknown: (arg) => `Unknown option: ${arg}` }); diff --git a/packages/package/src/config.js b/packages/package/src/config.js new file mode 100644 index 000000000000..3518957ed609 --- /dev/null +++ b/packages/package/src/config.js @@ -0,0 +1,38 @@ +import path from 'path'; +import fs from 'fs'; +import url from 'url'; + +/** + * Loads and validates svelte.config.js + * @param {{ cwd?: string }} options + * @returns {Promise} + */ +export async function load_config({ cwd = process.cwd() } = {}) { + const config_file = path.join(cwd, 'svelte.config.js'); + + if (!fs.existsSync(config_file)) { + return process_config({}, { cwd }); + } + + const config = await import(`${url.pathToFileURL(config_file).href}?ts=${Date.now()}`); + + return process_config(config.default, { cwd }); +} + +/** + * @param {import('types').Config} config + * @returns {import('./types').ValidatedConfig} + */ +function process_config(config, { cwd = process.cwd() } = {}) { + return { + extensions: config.extensions ?? ['.svelte'], + package: { + source: path.resolve(cwd, config.kit?.files?.lib ?? config.package?.source ?? 'src/lib'), + dir: config.package?.dir ?? 'package', + exports: config.package?.exports ?? ((filepath) => !/^_|\/_|\.d\.ts$/.test(filepath)), + files: config.package?.files ?? (() => true), + emitTypes: config.package?.emitTypes ?? true + }, + preprocess: config.preprocess + }; +} diff --git a/packages/package/src/filesystem.js b/packages/package/src/filesystem.js new file mode 100644 index 000000000000..a1edf04d28e9 --- /dev/null +++ b/packages/package/src/filesystem.js @@ -0,0 +1,108 @@ +import fs from 'fs'; +import path from 'path'; + +/** @param {string} dir */ +export function mkdirp(dir) { + try { + fs.mkdirSync(dir, { recursive: true }); + } catch (/** @type {any} */ e) { + if (e.code === 'EEXIST') return; + throw e; + } +} + +/** @param {string} path */ +export function rimraf(path) { + fs.rmSync(path, { force: true, recursive: true }); +} + +/** @param {string} str */ +export function posixify(str) { + return str.replace(/\\/g, '/'); +} + +/** + * Get a list of all files in a directory + * @param {string} cwd - the directory to walk + * @param {boolean} [dirs] - whether to include directories in the result + */ +export function walk(cwd, dirs = false) { + /** @type {string[]} */ + const all_files = []; + + /** @param {string} dir */ + function walk_dir(dir) { + const files = fs.readdirSync(path.join(cwd, dir)); + + for (const file of files) { + const joined = path.join(dir, file); + const stats = fs.statSync(path.join(cwd, joined)); + if (stats.isDirectory()) { + if (dirs) all_files.push(joined); + walk_dir(joined); + } else { + all_files.push(joined); + } + } + } + + return walk_dir(''), all_files; +} + +/** + * @param {string} source + * @param {string} target + * @param {{ + * filter?: (basename: string) => boolean; + * replace?: Record; + * }} opts + */ +export function copy(source, target, opts = {}) { + if (!fs.existsSync(source)) return []; + + /** @type {string[]} */ + const files = []; + + const prefix = posixify(target) + '/'; + + const regex = opts.replace + ? new RegExp(`\\b(${Object.keys(opts.replace).join('|')})\\b`, 'g') + : null; + + /** + * @param {string} from + * @param {string} to + */ + function go(from, to) { + if (opts.filter && !opts.filter(path.basename(from))) return; + + const stats = fs.statSync(from); + + if (stats.isDirectory()) { + fs.readdirSync(from).forEach((file) => { + go(path.join(from, file), path.join(to, file)); + }); + } else { + mkdirp(path.dirname(to)); + + if (opts.replace) { + const data = fs.readFileSync(from, 'utf-8'); + fs.writeFileSync( + to, + data.replace( + /** @type {RegExp} */ (regex), + (_match, key) => /** @type {Record} */ (opts.replace)[key] + ) + ); + } else { + fs.copyFileSync(from, to); + } + + files.push(to === target ? posixify(path.basename(to)) : posixify(to).replace(prefix, '')); + } + } + + go(source, target); + + return files; +} diff --git a/packages/kit/src/packaging/index.js b/packages/package/src/index.js similarity index 87% rename from packages/kit/src/packaging/index.js rename to packages/package/src/index.js index e5e60a60a5c9..d751537bf1cf 100644 --- a/packages/kit/src/packaging/index.js +++ b/packages/package/src/index.js @@ -3,20 +3,19 @@ import { dirname, join, relative } from 'path'; import colors from 'kleur'; import chokidar from 'chokidar'; import { preprocess } from 'svelte/compiler'; -import { copy, mkdirp, rimraf } from '../utils/filesystem.js'; +import { copy, mkdirp, rimraf } from './filesystem.js'; import { analyze, generate_pkg, resolve_lib_alias, scan, strip_lang_tags, write } from './utils.js'; import { emit_dts, transpile_ts } from './typescript.js'; -import { write_tsconfig } from '../core/sync/write_tsconfig.js'; const essential_files = ['README', 'LICENSE', 'CHANGELOG', '.gitignore', '.npmignore']; /** - * @param {import('types').ValidatedConfig} config + * @param {import('./types').ValidatedConfig} config * @param {string} cwd */ export async function build(config, cwd = process.cwd()) { - const { lib } = config.kit.files; - const { dir } = config.kit.package; + const { source: lib } = config.package; + const { dir } = config.package; if (!fs.existsSync(lib)) { throw new Error(`${lib} does not exist`); @@ -25,12 +24,9 @@ export async function build(config, cwd = process.cwd()) { rimraf(dir); mkdirp(dir); - // Make sure generated tsconfig is up-to-date - write_tsconfig(config.kit, cwd); - const files = scan(config); - if (config.kit.package.emitTypes) { + if (config.package.emitTypes) { await emit_dts(config, cwd, files); } @@ -87,17 +83,17 @@ export async function build(config, cwd = process.cwd()) { } /** - * @param {import('types').ValidatedConfig} config + * @param {import('./types').ValidatedConfig} config */ export async function watch(config, cwd = process.cwd()) { await build(config, cwd); - const message = `\nWatching ${relative(cwd, config.kit.files.lib)} for changes...\n`; + const message = `\nWatching ${relative(cwd, config.package.source)} for changes...\n`; console.log(message); - const { lib } = config.kit.files; - const { dir } = config.kit.package; + const { source: lib } = config.package; + const { dir } = config.package; /** @type {Array<{ file: import('./types').File, type: string }>} */ const pending = []; @@ -164,7 +160,7 @@ export async function watch(config, cwd = process.cwd()) { console.log('Updated package.json'); } - if (config.kit.package.emitTypes) { + if (config.package.emitTypes) { await emit_dts(config, cwd, scan(config)); console.log('Updated .d.ts files'); } @@ -187,14 +183,14 @@ export async function watch(config, cwd = process.cwd()) { } /** - * @param {import('types').ValidatedConfig} config + * @param {import('./types').ValidatedConfig} config * @param {import('./types').File} file */ async function process_file(config, file) { if (!file.is_included) return; - const filename = join(config.kit.files.lib, file.name); - const dest = join(config.kit.package.dir, file.dest); + const filename = join(config.package.source, file.name); + const dest = join(config.package.dir, file.dest); if (file.is_svelte || file.name.endsWith('.ts')) { let contents = fs.readFileSync(filename, 'utf-8'); diff --git a/packages/package/src/types.d.ts b/packages/package/src/types.d.ts new file mode 100644 index 000000000000..f08999f8c1b5 --- /dev/null +++ b/packages/package/src/types.d.ts @@ -0,0 +1,27 @@ +import type { PackageConfig } from 'types'; + +export interface File { + name: string; + dest: string; + base: string; + is_included: boolean; + is_exported: boolean; + is_svelte: boolean; +} + +export type RecursiveRequired = { + // Recursive implementation of TypeScript's Required utility type. + // Will recursively continue until it reaches a primitive or Function + [K in keyof T]-?: Extract extends never // If it does not have a Function type + ? RecursiveRequired // recursively continue through. + : T[K]; // Use the exact type for everything else +}; + +export interface ValidatedConfig { + preprocess?: any; + extensions: string[]; + package: RecursiveRequired; + kit?: any; +} + +export type Validator = (input: T, keypath: string) => T; diff --git a/packages/kit/src/packaging/typescript.js b/packages/package/src/typescript.js similarity index 75% rename from packages/kit/src/packaging/typescript.js rename to packages/package/src/typescript.js index c926f29eb2b9..fa75d51c73d6 100644 --- a/packages/kit/src/packaging/typescript.js +++ b/packages/package/src/typescript.js @@ -1,23 +1,27 @@ import * as fs from 'fs'; import * as path from 'path'; import { createRequire } from 'module'; -import { posixify, mkdirp, rimraf, walk } from '../utils/filesystem.js'; +import { posixify, mkdirp, rimraf, walk } from './filesystem.js'; import { resolve_lib_alias, write } from './utils.js'; +import { emitDts } from 'svelte2tsx'; /** - * @param {import('types').ValidatedConfig} config + * Generates d.ts files by invoking TypeScript's "emit d.ts files from input files". + * The files are written to a temporary location and those which should be kept + * are sanitized ($lib alias resolved) and copied over to the destination folder. + * + * @param {import('./types').ValidatedConfig} config * @param {string} cwd * @param {import('./types').File[]} files */ export async function emit_dts(config, cwd, files) { - const tmp = `${config.kit.outDir}/package/types`; + const tmp = `${config.package.dir}/__package_types_tmp__`; rimraf(tmp); mkdirp(tmp); const require = createRequire(import.meta.url); - const emit = await try_load_svelte2tsx(); - await emit({ - libRoot: config.kit.files.lib, + await emitDts({ + libRoot: config.package.source, svelteShimsPath: require.resolve('svelte2tsx/svelte-shims.d.ts'), declarationDir: path.relative(cwd, tmp) }); @@ -50,35 +54,15 @@ export async function emit_dts(config, cwd, files) { if (excluded.has(normalized)) continue; const source = fs.readFileSync(path.join(tmp, normalized), 'utf8'); - write( - path.join(config.kit.package.dir, normalized), - resolve_lib_alias(normalized, source, config) - ); + write(path.join(config.package.dir, normalized), resolve_lib_alias(normalized, source, config)); } -} -async function try_load_svelte2tsx() { - const svelte2tsx = await load(); - const emit_dts = svelte2tsx.emitDts; - if (!emit_dts) { - throw new Error( - 'You need to install svelte2tsx >=0.4.1 if you want to generate type definitions' - ); - } - return emit_dts; - - async function load() { - try { - return await import('svelte2tsx'); - } catch (e) { - throw new Error( - 'You need svelte2tsx and typescript if you want to generate type definitions. Install it through your package manager, or disable generation which is highly discouraged. See https://kit.svelte.dev/docs/packaging' - ); - } - } + rimraf(tmp); } /** + * TS -> JS + * * @param {string} filename * @param {string} source */ diff --git a/packages/kit/src/packaging/utils.js b/packages/package/src/utils.js similarity index 86% rename from packages/kit/src/packaging/utils.js rename to packages/package/src/utils.js index c944beff5764..c2a8fc82030c 100644 --- a/packages/kit/src/packaging/utils.js +++ b/packages/package/src/utils.js @@ -1,6 +1,6 @@ import * as fs from 'fs'; import * as path from 'path'; -import { posixify, mkdirp, walk } from '../utils/filesystem.js'; +import { posixify, mkdirp, walk } from './filesystem.js'; /** * Resolves the `$lib` alias. @@ -12,7 +12,7 @@ import { posixify, mkdirp, walk } from '../utils/filesystem.js'; * * @param {string} file Relative to the lib root * @param {string} content - * @param {import('types').ValidatedConfig} config + * @param {import('./types').ValidatedConfig} config * @returns {string} */ export function resolve_lib_alias(file, content, config) { @@ -26,8 +26,8 @@ export function resolve_lib_alias(file, content, config) { return match; } - const full_path = path.join(config.kit.files.lib, file); - const full_import_path = path.join(config.kit.files.lib, import_path.slice('$lib/'.length)); + const full_path = path.join(config.package.source, file); + const full_import_path = path.join(config.package.source, import_path.slice('$lib/'.length)); let resolved = posixify(path.relative(path.dirname(full_path), full_import_path)); resolved = resolved.startsWith('.') ? resolved : './' + resolved; return match.replace(import_path, resolved); @@ -59,15 +59,15 @@ export function write(file, contents) { } /** - * @param {import('types').ValidatedConfig} config + * @param {import('./types').ValidatedConfig} config * @returns {import('./types').File[]} */ export function scan(config) { - return walk(config.kit.files.lib).map((file) => analyze(config, file)); + return walk(config.package.source).map((file) => analyze(config, file)); } /** - * @param {import('types').ValidatedConfig} config + * @param {import('./types').ValidatedConfig} config * @param {string} file * @returns {import('./types').File} */ @@ -90,8 +90,8 @@ export function analyze(config, file) { name, dest, base, - is_included: config.kit.package.files(name), - is_exported: config.kit.package.exports(name), + is_included: config.package.files(name), + is_exported: config.package.exports(name), is_svelte: !!svelte_extension }; } diff --git a/packages/package/svelte-package.js b/packages/package/svelte-package.js new file mode 100755 index 000000000000..b48389f69625 --- /dev/null +++ b/packages/package/svelte-package.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +import './src/cli.js'; diff --git a/packages/kit/src/packaging/test/errors/duplicate-export/jsconfig.json b/packages/package/test/errors/duplicate-export/jsconfig.json similarity index 100% rename from packages/kit/src/packaging/test/errors/duplicate-export/jsconfig.json rename to packages/package/test/errors/duplicate-export/jsconfig.json diff --git a/packages/kit/src/packaging/test/errors/duplicate-export/package.json b/packages/package/test/errors/duplicate-export/package.json similarity index 100% rename from packages/kit/src/packaging/test/errors/duplicate-export/package.json rename to packages/package/test/errors/duplicate-export/package.json diff --git a/packages/kit/src/packaging/test/errors/duplicate-export/src/lib/utils.ts b/packages/package/test/errors/duplicate-export/src/lib/utils.ts similarity index 100% rename from packages/kit/src/packaging/test/errors/duplicate-export/src/lib/utils.ts rename to packages/package/test/errors/duplicate-export/src/lib/utils.ts diff --git a/packages/kit/src/packaging/test/errors/duplicate-export/src/lib/utils/index.js b/packages/package/test/errors/duplicate-export/src/lib/utils/index.js similarity index 100% rename from packages/kit/src/packaging/test/errors/duplicate-export/src/lib/utils/index.js rename to packages/package/test/errors/duplicate-export/src/lib/utils/index.js diff --git a/packages/kit/src/packaging/test/errors/duplicate-export/svelte.config.js b/packages/package/test/errors/duplicate-export/svelte.config.js similarity index 100% rename from packages/kit/src/packaging/test/errors/duplicate-export/svelte.config.js rename to packages/package/test/errors/duplicate-export/svelte.config.js diff --git a/packages/package/test/errors/duplicate-export/tsconfig.json b/packages/package/test/errors/duplicate-export/tsconfig.json new file mode 100644 index 000000000000..f29fde21bafc --- /dev/null +++ b/packages/package/test/errors/duplicate-export/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "checkJs": true, + "baseUrl": ".", + "paths": { + "$lib/*": ["./src/lib/*"] + } + }, + "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] +} diff --git a/packages/kit/src/packaging/test/errors/no-lib-folder/package.json b/packages/package/test/errors/no-lib-folder/package.json similarity index 100% rename from packages/kit/src/packaging/test/errors/no-lib-folder/package.json rename to packages/package/test/errors/no-lib-folder/package.json diff --git a/packages/kit/src/packaging/test/errors/no-lib-folder/svelte.config.js b/packages/package/test/errors/no-lib-folder/svelte.config.js similarity index 100% rename from packages/kit/src/packaging/test/errors/no-lib-folder/svelte.config.js rename to packages/package/test/errors/no-lib-folder/svelte.config.js diff --git a/packages/package/test/errors/no-lib-folder/tsconfig.json b/packages/package/test/errors/no-lib-folder/tsconfig.json new file mode 100644 index 000000000000..f29fde21bafc --- /dev/null +++ b/packages/package/test/errors/no-lib-folder/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "checkJs": true, + "baseUrl": ".", + "paths": { + "$lib/*": ["./src/lib/*"] + } + }, + "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] +} diff --git a/packages/kit/src/packaging/test/fixtures/assets/expected/kit.png b/packages/package/test/fixtures/assets/expected/kit.png similarity index 100% rename from packages/kit/src/packaging/test/fixtures/assets/expected/kit.png rename to packages/package/test/fixtures/assets/expected/kit.png diff --git a/packages/kit/src/packaging/test/fixtures/assets/expected/package.json b/packages/package/test/fixtures/assets/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/assets/expected/package.json rename to packages/package/test/fixtures/assets/expected/package.json diff --git a/packages/package/test/fixtures/assets/jsconfig.json b/packages/package/test/fixtures/assets/jsconfig.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/packages/package/test/fixtures/assets/jsconfig.json @@ -0,0 +1 @@ +{} diff --git a/packages/kit/src/packaging/test/fixtures/assets/package.json b/packages/package/test/fixtures/assets/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/assets/package.json rename to packages/package/test/fixtures/assets/package.json diff --git a/packages/kit/src/packaging/test/fixtures/assets/src/lib/kit.png b/packages/package/test/fixtures/assets/src/lib/kit.png similarity index 100% rename from packages/kit/src/packaging/test/fixtures/assets/src/lib/kit.png rename to packages/package/test/fixtures/assets/src/lib/kit.png diff --git a/packages/kit/src/packaging/test/fixtures/assets/svelte.config.js b/packages/package/test/fixtures/assets/svelte.config.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/assets/svelte.config.js rename to packages/package/test/fixtures/assets/svelte.config.js diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/Test.svelte b/packages/package/test/fixtures/emitTypes-false/expected/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/Test.svelte rename to packages/package/test/fixtures/emitTypes-false/expected/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/Test2.svelte b/packages/package/test/fixtures/emitTypes-false/expected/Test2.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/Test2.svelte rename to packages/package/test/fixtures/emitTypes-false/expected/Test2.svelte diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/foo.d.ts b/packages/package/test/fixtures/emitTypes-false/expected/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/foo.d.ts rename to packages/package/test/fixtures/emitTypes-false/expected/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/index.js b/packages/package/test/fixtures/emitTypes-false/expected/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/index.js rename to packages/package/test/fixtures/emitTypes-false/expected/index.js diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/package.json b/packages/package/test/fixtures/emitTypes-false/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/package.json rename to packages/package/test/fixtures/emitTypes-false/expected/package.json diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/package.json b/packages/package/test/fixtures/emitTypes-false/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/package.json rename to packages/package/test/fixtures/emitTypes-false/package.json diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/src/lib/Test.svelte b/packages/package/test/fixtures/emitTypes-false/src/lib/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/src/lib/Test.svelte rename to packages/package/test/fixtures/emitTypes-false/src/lib/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/src/lib/Test2.svelte b/packages/package/test/fixtures/emitTypes-false/src/lib/Test2.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/src/lib/Test2.svelte rename to packages/package/test/fixtures/emitTypes-false/src/lib/Test2.svelte diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/src/lib/foo.d.ts b/packages/package/test/fixtures/emitTypes-false/src/lib/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/src/lib/foo.d.ts rename to packages/package/test/fixtures/emitTypes-false/src/lib/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/emitTypes-false/src/lib/index.js b/packages/package/test/fixtures/emitTypes-false/src/lib/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/emitTypes-false/src/lib/index.js rename to packages/package/test/fixtures/emitTypes-false/src/lib/index.js diff --git a/packages/package/test/fixtures/emitTypes-false/svelte.config.js b/packages/package/test/fixtures/emitTypes-false/svelte.config.js new file mode 100644 index 000000000000..ff5361a7a094 --- /dev/null +++ b/packages/package/test/fixtures/emitTypes-false/svelte.config.js @@ -0,0 +1,7 @@ +const config = { + package: { + emitTypes: false + } +}; + +export default config; diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/Test.svelte b/packages/package/test/fixtures/exports-merge/expected/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/Test.svelte rename to packages/package/test/fixtures/exports-merge/expected/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/Test.svelte.d.ts b/packages/package/test/fixtures/exports-merge/expected/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/Test.svelte.d.ts rename to packages/package/test/fixtures/exports-merge/expected/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/hello-world.d.ts b/packages/package/test/fixtures/exports-merge/expected/hello-world.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/hello-world.d.ts rename to packages/package/test/fixtures/exports-merge/expected/hello-world.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/hello-world.js b/packages/package/test/fixtures/exports-merge/expected/hello-world.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/hello-world.js rename to packages/package/test/fixtures/exports-merge/expected/hello-world.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/icons123.d.ts b/packages/package/test/fixtures/exports-merge/expected/icons123.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/icons123.d.ts rename to packages/package/test/fixtures/exports-merge/expected/icons123.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/icons123.js b/packages/package/test/fixtures/exports-merge/expected/icons123.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/icons123.js rename to packages/package/test/fixtures/exports-merge/expected/icons123.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/index.d.ts b/packages/package/test/fixtures/exports-merge/expected/index.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/index.d.ts rename to packages/package/test/fixtures/exports-merge/expected/index.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/index.js b/packages/package/test/fixtures/exports-merge/expected/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/index.js rename to packages/package/test/fixtures/exports-merge/expected/index.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/Test.svelte b/packages/package/test/fixtures/exports-merge/expected/internal/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/Test.svelte rename to packages/package/test/fixtures/exports-merge/expected/internal/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/Test.svelte.d.ts b/packages/package/test/fixtures/exports-merge/expected/internal/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/Test.svelte.d.ts rename to packages/package/test/fixtures/exports-merge/expected/internal/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/_Private.svelte b/packages/package/test/fixtures/exports-merge/expected/internal/_Private.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/_Private.svelte rename to packages/package/test/fixtures/exports-merge/expected/internal/_Private.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/_Private.svelte.d.ts b/packages/package/test/fixtures/exports-merge/expected/internal/_Private.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/_Private.svelte.d.ts rename to packages/package/test/fixtures/exports-merge/expected/internal/_Private.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/constants.d.ts b/packages/package/test/fixtures/exports-merge/expected/internal/constants.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/constants.d.ts rename to packages/package/test/fixtures/exports-merge/expected/internal/constants.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/constants.js b/packages/package/test/fixtures/exports-merge/expected/internal/constants.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/constants.js rename to packages/package/test/fixtures/exports-merge/expected/internal/constants.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/foo.d.ts b/packages/package/test/fixtures/exports-merge/expected/internal/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/internal/foo.d.ts rename to packages/package/test/fixtures/exports-merge/expected/internal/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/package.json b/packages/package/test/fixtures/exports-merge/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/package.json rename to packages/package/test/fixtures/exports-merge/expected/package.json diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/why_underscore.d.ts b/packages/package/test/fixtures/exports-merge/expected/why_underscore.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/why_underscore.d.ts rename to packages/package/test/fixtures/exports-merge/expected/why_underscore.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/expected/why_underscore.js b/packages/package/test/fixtures/exports-merge/expected/why_underscore.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/expected/why_underscore.js rename to packages/package/test/fixtures/exports-merge/expected/why_underscore.js diff --git a/packages/package/test/fixtures/exports-merge/jsconfig.json b/packages/package/test/fixtures/exports-merge/jsconfig.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/packages/package/test/fixtures/exports-merge/jsconfig.json @@ -0,0 +1 @@ +{} diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/package.json b/packages/package/test/fixtures/exports-merge/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/package.json rename to packages/package/test/fixtures/exports-merge/package.json diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/Test.svelte b/packages/package/test/fixtures/exports-merge/src/lib/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/Test.svelte rename to packages/package/test/fixtures/exports-merge/src/lib/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/hello-world.js b/packages/package/test/fixtures/exports-merge/src/lib/hello-world.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/hello-world.js rename to packages/package/test/fixtures/exports-merge/src/lib/hello-world.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/icons123.js b/packages/package/test/fixtures/exports-merge/src/lib/icons123.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/icons123.js rename to packages/package/test/fixtures/exports-merge/src/lib/icons123.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/index.js b/packages/package/test/fixtures/exports-merge/src/lib/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/index.js rename to packages/package/test/fixtures/exports-merge/src/lib/index.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/internal/Test.svelte b/packages/package/test/fixtures/exports-merge/src/lib/internal/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/internal/Test.svelte rename to packages/package/test/fixtures/exports-merge/src/lib/internal/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/internal/_Private.svelte b/packages/package/test/fixtures/exports-merge/src/lib/internal/_Private.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/internal/_Private.svelte rename to packages/package/test/fixtures/exports-merge/src/lib/internal/_Private.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/internal/constants.js b/packages/package/test/fixtures/exports-merge/src/lib/internal/constants.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/internal/constants.js rename to packages/package/test/fixtures/exports-merge/src/lib/internal/constants.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/internal/foo.d.ts b/packages/package/test/fixtures/exports-merge/src/lib/internal/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/internal/foo.d.ts rename to packages/package/test/fixtures/exports-merge/src/lib/internal/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/why_underscore.js b/packages/package/test/fixtures/exports-merge/src/lib/why_underscore.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/src/lib/why_underscore.js rename to packages/package/test/fixtures/exports-merge/src/lib/why_underscore.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-merge/svelte.config.js b/packages/package/test/fixtures/exports-merge/svelte.config.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-merge/svelte.config.js rename to packages/package/test/fixtures/exports-merge/svelte.config.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/expected/Test.svelte b/packages/package/test/fixtures/exports-replace/expected/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/expected/Test.svelte rename to packages/package/test/fixtures/exports-replace/expected/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/expected/Test.svelte.d.ts b/packages/package/test/fixtures/exports-replace/expected/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/expected/Test.svelte.d.ts rename to packages/package/test/fixtures/exports-replace/expected/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/expected/index.d.ts b/packages/package/test/fixtures/exports-replace/expected/index.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/expected/index.d.ts rename to packages/package/test/fixtures/exports-replace/expected/index.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/expected/index.js b/packages/package/test/fixtures/exports-replace/expected/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/expected/index.js rename to packages/package/test/fixtures/exports-replace/expected/index.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/expected/internal/Test.svelte b/packages/package/test/fixtures/exports-replace/expected/internal/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/expected/internal/Test.svelte rename to packages/package/test/fixtures/exports-replace/expected/internal/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/expected/internal/Test.svelte.d.ts b/packages/package/test/fixtures/exports-replace/expected/internal/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/expected/internal/Test.svelte.d.ts rename to packages/package/test/fixtures/exports-replace/expected/internal/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/expected/internal/foo.d.ts b/packages/package/test/fixtures/exports-replace/expected/internal/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/expected/internal/foo.d.ts rename to packages/package/test/fixtures/exports-replace/expected/internal/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/expected/package.json b/packages/package/test/fixtures/exports-replace/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/expected/package.json rename to packages/package/test/fixtures/exports-replace/expected/package.json diff --git a/packages/package/test/fixtures/exports-replace/jsconfig.json b/packages/package/test/fixtures/exports-replace/jsconfig.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/packages/package/test/fixtures/exports-replace/jsconfig.json @@ -0,0 +1 @@ +{} diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/package.json b/packages/package/test/fixtures/exports-replace/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/package.json rename to packages/package/test/fixtures/exports-replace/package.json diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/src/lib/Test.svelte b/packages/package/test/fixtures/exports-replace/src/lib/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/src/lib/Test.svelte rename to packages/package/test/fixtures/exports-replace/src/lib/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/src/lib/index.js b/packages/package/test/fixtures/exports-replace/src/lib/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/src/lib/index.js rename to packages/package/test/fixtures/exports-replace/src/lib/index.js diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/src/lib/internal/Test.svelte b/packages/package/test/fixtures/exports-replace/src/lib/internal/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/src/lib/internal/Test.svelte rename to packages/package/test/fixtures/exports-replace/src/lib/internal/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/exports-replace/src/lib/internal/foo.d.ts b/packages/package/test/fixtures/exports-replace/src/lib/internal/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/exports-replace/src/lib/internal/foo.d.ts rename to packages/package/test/fixtures/exports-replace/src/lib/internal/foo.d.ts diff --git a/packages/package/test/fixtures/exports-replace/svelte.config.js b/packages/package/test/fixtures/exports-replace/svelte.config.js new file mode 100644 index 000000000000..8436b7feae10 --- /dev/null +++ b/packages/package/test/fixtures/exports-replace/svelte.config.js @@ -0,0 +1,7 @@ +const config = { + package: { + exports: () => false + } +}; + +export default config; diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/expected/Test.svelte b/packages/package/test/fixtures/files-exclude/expected/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/expected/Test.svelte rename to packages/package/test/fixtures/files-exclude/expected/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/expected/Test.svelte.d.ts b/packages/package/test/fixtures/files-exclude/expected/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/expected/Test.svelte.d.ts rename to packages/package/test/fixtures/files-exclude/expected/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/expected/index.d.ts b/packages/package/test/fixtures/files-exclude/expected/index.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/expected/index.d.ts rename to packages/package/test/fixtures/files-exclude/expected/index.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/expected/index.js b/packages/package/test/fixtures/files-exclude/expected/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/expected/index.js rename to packages/package/test/fixtures/files-exclude/expected/index.js diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/expected/internal/index.d.ts b/packages/package/test/fixtures/files-exclude/expected/internal/index.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/expected/internal/index.d.ts rename to packages/package/test/fixtures/files-exclude/expected/internal/index.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/expected/internal/index.js b/packages/package/test/fixtures/files-exclude/expected/internal/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/expected/internal/index.js rename to packages/package/test/fixtures/files-exclude/expected/internal/index.js diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/expected/package.json b/packages/package/test/fixtures/files-exclude/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/expected/package.json rename to packages/package/test/fixtures/files-exclude/expected/package.json diff --git a/packages/package/test/fixtures/files-exclude/jsconfig.json b/packages/package/test/fixtures/files-exclude/jsconfig.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/packages/package/test/fixtures/files-exclude/jsconfig.json @@ -0,0 +1 @@ +{} diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/package.json b/packages/package/test/fixtures/files-exclude/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/package.json rename to packages/package/test/fixtures/files-exclude/package.json diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/Test.exclude.svelte b/packages/package/test/fixtures/files-exclude/src/lib/Test.exclude.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/Test.exclude.svelte rename to packages/package/test/fixtures/files-exclude/src/lib/Test.exclude.svelte diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/Test.svelte b/packages/package/test/fixtures/files-exclude/src/lib/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/Test.svelte rename to packages/package/test/fixtures/files-exclude/src/lib/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/check.mjs b/packages/package/test/fixtures/files-exclude/src/lib/check.mjs similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/check.mjs rename to packages/package/test/fixtures/files-exclude/src/lib/check.mjs diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/empty/Test.exclude.svelte b/packages/package/test/fixtures/files-exclude/src/lib/empty/Test.exclude.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/empty/Test.exclude.svelte rename to packages/package/test/fixtures/files-exclude/src/lib/empty/Test.exclude.svelte diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/exclude.js b/packages/package/test/fixtures/files-exclude/src/lib/exclude.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/exclude.js rename to packages/package/test/fixtures/files-exclude/src/lib/exclude.js diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/index.js b/packages/package/test/fixtures/files-exclude/src/lib/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/index.js rename to packages/package/test/fixtures/files-exclude/src/lib/index.js diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/internal/build.mjs b/packages/package/test/fixtures/files-exclude/src/lib/internal/build.mjs similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/internal/build.mjs rename to packages/package/test/fixtures/files-exclude/src/lib/internal/build.mjs diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/internal/exclude.js b/packages/package/test/fixtures/files-exclude/src/lib/internal/exclude.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/internal/exclude.js rename to packages/package/test/fixtures/files-exclude/src/lib/internal/exclude.js diff --git a/packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/internal/index.js b/packages/package/test/fixtures/files-exclude/src/lib/internal/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/files-exclude/src/lib/internal/index.js rename to packages/package/test/fixtures/files-exclude/src/lib/internal/index.js diff --git a/packages/package/test/fixtures/files-exclude/svelte.config.js b/packages/package/test/fixtures/files-exclude/svelte.config.js new file mode 100644 index 000000000000..3f46f0e40ada --- /dev/null +++ b/packages/package/test/fixtures/files-exclude/svelte.config.js @@ -0,0 +1,11 @@ +const config = { + package: { + files(filepath) { + const ext = filepath.slice(filepath.lastIndexOf('.') + 1); + if (ext === 'js' || ext === 'svelte') return !filepath.includes('exclude'); + return ext !== 'mjs'; + } + } +}; + +export default config; diff --git a/packages/kit/src/packaging/test/fixtures/javascript/ReadMe.md b/packages/package/test/fixtures/javascript/ReadMe.md similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/ReadMe.md rename to packages/package/test/fixtures/javascript/ReadMe.md diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/ReadMe.md b/packages/package/test/fixtures/javascript/expected/ReadMe.md similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/ReadMe.md rename to packages/package/test/fixtures/javascript/expected/ReadMe.md diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/Test.svelte b/packages/package/test/fixtures/javascript/expected/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/Test.svelte rename to packages/package/test/fixtures/javascript/expected/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/Test.svelte.d.ts b/packages/package/test/fixtures/javascript/expected/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/Test.svelte.d.ts rename to packages/package/test/fixtures/javascript/expected/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/Test2.svelte b/packages/package/test/fixtures/javascript/expected/Test2.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/Test2.svelte rename to packages/package/test/fixtures/javascript/expected/Test2.svelte diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/Test2.svelte.d.ts b/packages/package/test/fixtures/javascript/expected/Test2.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/Test2.svelte.d.ts rename to packages/package/test/fixtures/javascript/expected/Test2.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/foo.d.ts b/packages/package/test/fixtures/javascript/expected/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/foo.d.ts rename to packages/package/test/fixtures/javascript/expected/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/index.d.ts b/packages/package/test/fixtures/javascript/expected/index.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/index.d.ts rename to packages/package/test/fixtures/javascript/expected/index.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/index.js b/packages/package/test/fixtures/javascript/expected/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/index.js rename to packages/package/test/fixtures/javascript/expected/index.js diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/internal/Test.svelte b/packages/package/test/fixtures/javascript/expected/internal/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/internal/Test.svelte rename to packages/package/test/fixtures/javascript/expected/internal/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/internal/Test.svelte.d.ts b/packages/package/test/fixtures/javascript/expected/internal/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/internal/Test.svelte.d.ts rename to packages/package/test/fixtures/javascript/expected/internal/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/internal/foo.d.ts b/packages/package/test/fixtures/javascript/expected/internal/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/internal/foo.d.ts rename to packages/package/test/fixtures/javascript/expected/internal/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/internal/index.d.ts b/packages/package/test/fixtures/javascript/expected/internal/index.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/internal/index.d.ts rename to packages/package/test/fixtures/javascript/expected/internal/index.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/internal/index.js b/packages/package/test/fixtures/javascript/expected/internal/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/internal/index.js rename to packages/package/test/fixtures/javascript/expected/internal/index.js diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/package.json b/packages/package/test/fixtures/javascript/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/package.json rename to packages/package/test/fixtures/javascript/expected/package.json diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/utils.d.ts b/packages/package/test/fixtures/javascript/expected/utils.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/utils.d.ts rename to packages/package/test/fixtures/javascript/expected/utils.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/expected/utils.js b/packages/package/test/fixtures/javascript/expected/utils.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/expected/utils.js rename to packages/package/test/fixtures/javascript/expected/utils.js diff --git a/packages/package/test/fixtures/javascript/jsconfig.json b/packages/package/test/fixtures/javascript/jsconfig.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/packages/package/test/fixtures/javascript/jsconfig.json @@ -0,0 +1 @@ +{} diff --git a/packages/kit/src/packaging/test/fixtures/javascript/package.json b/packages/package/test/fixtures/javascript/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/package.json rename to packages/package/test/fixtures/javascript/package.json diff --git a/packages/kit/src/packaging/test/fixtures/javascript/src/lib/Test.svelte b/packages/package/test/fixtures/javascript/src/lib/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/src/lib/Test.svelte rename to packages/package/test/fixtures/javascript/src/lib/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/javascript/src/lib/Test2.svelte b/packages/package/test/fixtures/javascript/src/lib/Test2.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/src/lib/Test2.svelte rename to packages/package/test/fixtures/javascript/src/lib/Test2.svelte diff --git a/packages/kit/src/packaging/test/fixtures/javascript/src/lib/foo.d.ts b/packages/package/test/fixtures/javascript/src/lib/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/src/lib/foo.d.ts rename to packages/package/test/fixtures/javascript/src/lib/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/src/lib/index.js b/packages/package/test/fixtures/javascript/src/lib/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/src/lib/index.js rename to packages/package/test/fixtures/javascript/src/lib/index.js diff --git a/packages/kit/src/packaging/test/fixtures/javascript/src/lib/internal/Test.svelte b/packages/package/test/fixtures/javascript/src/lib/internal/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/src/lib/internal/Test.svelte rename to packages/package/test/fixtures/javascript/src/lib/internal/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/javascript/src/lib/internal/foo.d.ts b/packages/package/test/fixtures/javascript/src/lib/internal/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/src/lib/internal/foo.d.ts rename to packages/package/test/fixtures/javascript/src/lib/internal/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/javascript/src/lib/internal/index.js b/packages/package/test/fixtures/javascript/src/lib/internal/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/src/lib/internal/index.js rename to packages/package/test/fixtures/javascript/src/lib/internal/index.js diff --git a/packages/kit/src/packaging/test/fixtures/javascript/src/lib/utils.js b/packages/package/test/fixtures/javascript/src/lib/utils.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/src/lib/utils.js rename to packages/package/test/fixtures/javascript/src/lib/utils.js diff --git a/packages/kit/src/packaging/test/fixtures/javascript/svelte.config.js b/packages/package/test/fixtures/javascript/svelte.config.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/javascript/svelte.config.js rename to packages/package/test/fixtures/javascript/svelte.config.js diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/Test.svelte b/packages/package/test/fixtures/resolve-alias/expected/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/Test.svelte rename to packages/package/test/fixtures/resolve-alias/expected/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/Test.svelte.d.ts b/packages/package/test/fixtures/resolve-alias/expected/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/Test.svelte.d.ts rename to packages/package/test/fixtures/resolve-alias/expected/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/baz.d.ts b/packages/package/test/fixtures/resolve-alias/expected/baz.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/baz.d.ts rename to packages/package/test/fixtures/resolve-alias/expected/baz.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/baz.js b/packages/package/test/fixtures/resolve-alias/expected/baz.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/baz.js rename to packages/package/test/fixtures/resolve-alias/expected/baz.js diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/index.d.ts b/packages/package/test/fixtures/resolve-alias/expected/index.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/index.d.ts rename to packages/package/test/fixtures/resolve-alias/expected/index.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/index.js b/packages/package/test/fixtures/resolve-alias/expected/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/index.js rename to packages/package/test/fixtures/resolve-alias/expected/index.js diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/package.json b/packages/package/test/fixtures/resolve-alias/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/package.json rename to packages/package/test/fixtures/resolve-alias/expected/package.json diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/sub/bar.d.ts b/packages/package/test/fixtures/resolve-alias/expected/sub/bar.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/sub/bar.d.ts rename to packages/package/test/fixtures/resolve-alias/expected/sub/bar.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/sub/bar.js b/packages/package/test/fixtures/resolve-alias/expected/sub/bar.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/sub/bar.js rename to packages/package/test/fixtures/resolve-alias/expected/sub/bar.js diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/sub/foo.d.ts b/packages/package/test/fixtures/resolve-alias/expected/sub/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/sub/foo.d.ts rename to packages/package/test/fixtures/resolve-alias/expected/sub/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/expected/sub/foo.js b/packages/package/test/fixtures/resolve-alias/expected/sub/foo.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/expected/sub/foo.js rename to packages/package/test/fixtures/resolve-alias/expected/sub/foo.js diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/package.json b/packages/package/test/fixtures/resolve-alias/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/package.json rename to packages/package/test/fixtures/resolve-alias/package.json diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/Test.svelte b/packages/package/test/fixtures/resolve-alias/src/lib/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/Test.svelte rename to packages/package/test/fixtures/resolve-alias/src/lib/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/baz.ts b/packages/package/test/fixtures/resolve-alias/src/lib/baz.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/baz.ts rename to packages/package/test/fixtures/resolve-alias/src/lib/baz.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/index.ts b/packages/package/test/fixtures/resolve-alias/src/lib/index.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/index.ts rename to packages/package/test/fixtures/resolve-alias/src/lib/index.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/sub/bar.ts b/packages/package/test/fixtures/resolve-alias/src/lib/sub/bar.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/sub/bar.ts rename to packages/package/test/fixtures/resolve-alias/src/lib/sub/bar.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/sub/foo.ts b/packages/package/test/fixtures/resolve-alias/src/lib/sub/foo.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/src/lib/sub/foo.ts rename to packages/package/test/fixtures/resolve-alias/src/lib/sub/foo.ts diff --git a/packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.js b/packages/package/test/fixtures/resolve-alias/svelte.config.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/resolve-alias/svelte.config.js rename to packages/package/test/fixtures/resolve-alias/svelte.config.js diff --git a/packages/package/test/fixtures/resolve-alias/tsconfig.json b/packages/package/test/fixtures/resolve-alias/tsconfig.json new file mode 100644 index 000000000000..5d4bb5ea3fc1 --- /dev/null +++ b/packages/package/test/fixtures/resolve-alias/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "module": "ESNext", + "target": "ESNext", + "checkJs": true, + "baseUrl": ".", + "paths": { + "$lib/*": ["./src/lib/*"] + } + }, + "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] +} diff --git a/packages/package/test/fixtures/svelte-kit/expected/Test.svelte b/packages/package/test/fixtures/svelte-kit/expected/Test.svelte new file mode 100644 index 000000000000..e60789af6a74 --- /dev/null +++ b/packages/package/test/fixtures/svelte-kit/expected/Test.svelte @@ -0,0 +1,12 @@ + + + diff --git a/packages/package/test/fixtures/svelte-kit/expected/Test.svelte.d.ts b/packages/package/test/fixtures/svelte-kit/expected/Test.svelte.d.ts new file mode 100644 index 000000000000..71bb3d88958e --- /dev/null +++ b/packages/package/test/fixtures/svelte-kit/expected/Test.svelte.d.ts @@ -0,0 +1,40 @@ +/** @typedef {typeof __propDef.props} TestProps */ +/** @typedef {typeof __propDef.events} TestEvents */ +/** @typedef {typeof __propDef.slots} TestSlots */ +export default class Test extends SvelteComponentTyped< + { + astring?: string; + }, + { + event: CustomEvent; + } & { + [evt: string]: CustomEvent; + }, + { + default: { + astring: string; + }; + } +> { + get astring(): string; +} +export type TestProps = typeof __propDef.props; +export type TestEvents = typeof __propDef.events; +export type TestSlots = typeof __propDef.slots; +import { SvelteComponentTyped } from 'svelte'; +declare const __propDef: { + props: { + astring?: string; + }; + events: { + event: CustomEvent; + } & { + [evt: string]: CustomEvent; + }; + slots: { + default: { + astring: string; + }; + }; +}; +export {}; diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/foo.d.ts b/packages/package/test/fixtures/svelte-kit/expected/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/foo.d.ts rename to packages/package/test/fixtures/svelte-kit/expected/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/index.d.ts b/packages/package/test/fixtures/svelte-kit/expected/index.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/index.d.ts rename to packages/package/test/fixtures/svelte-kit/expected/index.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/index.js b/packages/package/test/fixtures/svelte-kit/expected/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/index.js rename to packages/package/test/fixtures/svelte-kit/expected/index.js diff --git a/packages/package/test/fixtures/svelte-kit/expected/package.json b/packages/package/test/fixtures/svelte-kit/expected/package.json new file mode 100644 index 000000000000..9a4640878bf1 --- /dev/null +++ b/packages/package/test/fixtures/svelte-kit/expected/package.json @@ -0,0 +1,13 @@ +{ + "name": "svelte-kit", + "private": true, + "version": "1.0.0", + "type": "module", + "description": "SvelteKit library project", + "exports": { + "./package.json": "./package.json", + "./Test.svelte": "./Test.svelte", + ".": "./index.js" + }, + "svelte": "./index.js" +} \ No newline at end of file diff --git a/packages/package/test/fixtures/svelte-kit/jsconfig.json b/packages/package/test/fixtures/svelte-kit/jsconfig.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/packages/package/test/fixtures/svelte-kit/jsconfig.json @@ -0,0 +1 @@ +{} diff --git a/packages/package/test/fixtures/svelte-kit/package.json b/packages/package/test/fixtures/svelte-kit/package.json new file mode 100644 index 000000000000..318400b23321 --- /dev/null +++ b/packages/package/test/fixtures/svelte-kit/package.json @@ -0,0 +1,7 @@ +{ + "name": "svelte-kit", + "private": true, + "version": "1.0.0", + "type": "module", + "description": "SvelteKit library project" +} diff --git a/packages/package/test/fixtures/svelte-kit/src/kitlib/Test.svelte b/packages/package/test/fixtures/svelte-kit/src/kitlib/Test.svelte new file mode 100644 index 000000000000..e60789af6a74 --- /dev/null +++ b/packages/package/test/fixtures/svelte-kit/src/kitlib/Test.svelte @@ -0,0 +1,12 @@ + + + diff --git a/packages/kit/src/packaging/test/fixtures/typescript/src/lib/foo.d.ts b/packages/package/test/fixtures/svelte-kit/src/kitlib/foo.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/src/lib/foo.d.ts rename to packages/package/test/fixtures/svelte-kit/src/kitlib/foo.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/typescript/src/lib/index.ts b/packages/package/test/fixtures/svelte-kit/src/kitlib/index.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/src/lib/index.ts rename to packages/package/test/fixtures/svelte-kit/src/kitlib/index.js diff --git a/packages/package/test/fixtures/svelte-kit/svelte.config.js b/packages/package/test/fixtures/svelte-kit/svelte.config.js new file mode 100644 index 000000000000..d15b781af0f6 --- /dev/null +++ b/packages/package/test/fixtures/svelte-kit/svelte.config.js @@ -0,0 +1,7 @@ +export default { + kit: { + files: { + lib: 'src/kitlib' + } + } +}; diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/Plain.svelte b/packages/package/test/fixtures/typescript/expected/Plain.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/Plain.svelte rename to packages/package/test/fixtures/typescript/expected/Plain.svelte diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/Plain.svelte.d.ts b/packages/package/test/fixtures/typescript/expected/Plain.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/Plain.svelte.d.ts rename to packages/package/test/fixtures/typescript/expected/Plain.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/Test.svelte b/packages/package/test/fixtures/typescript/expected/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/Test.svelte rename to packages/package/test/fixtures/typescript/expected/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/Test.svelte.d.ts b/packages/package/test/fixtures/typescript/expected/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/Test.svelte.d.ts rename to packages/package/test/fixtures/typescript/expected/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/Test2.svelte b/packages/package/test/fixtures/typescript/expected/Test2.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/Test2.svelte rename to packages/package/test/fixtures/typescript/expected/Test2.svelte diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/Test2.svelte.d.ts b/packages/package/test/fixtures/typescript/expected/Test2.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/Test2.svelte.d.ts rename to packages/package/test/fixtures/typescript/expected/Test2.svelte.d.ts diff --git a/packages/package/test/fixtures/typescript/expected/foo.d.ts b/packages/package/test/fixtures/typescript/expected/foo.d.ts new file mode 100644 index 000000000000..c941ad7b1ce6 --- /dev/null +++ b/packages/package/test/fixtures/typescript/expected/foo.d.ts @@ -0,0 +1 @@ +export type Foo = boolean; diff --git a/packages/package/test/fixtures/typescript/expected/index.d.ts b/packages/package/test/fixtures/typescript/expected/index.d.ts new file mode 100644 index 000000000000..4c44188c3648 --- /dev/null +++ b/packages/package/test/fixtures/typescript/expected/index.d.ts @@ -0,0 +1 @@ +export { default as Test } from './Test.svelte'; diff --git a/packages/package/test/fixtures/typescript/expected/index.js b/packages/package/test/fixtures/typescript/expected/index.js new file mode 100644 index 000000000000..4c44188c3648 --- /dev/null +++ b/packages/package/test/fixtures/typescript/expected/index.js @@ -0,0 +1 @@ +export { default as Test } from './Test.svelte'; diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/package.json b/packages/package/test/fixtures/typescript/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/package.json rename to packages/package/test/fixtures/typescript/expected/package.json diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/utils.d.ts b/packages/package/test/fixtures/typescript/expected/utils.d.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/utils.d.ts rename to packages/package/test/fixtures/typescript/expected/utils.d.ts diff --git a/packages/kit/src/packaging/test/fixtures/typescript/expected/utils.js b/packages/package/test/fixtures/typescript/expected/utils.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/expected/utils.js rename to packages/package/test/fixtures/typescript/expected/utils.js diff --git a/packages/kit/src/packaging/test/fixtures/typescript/package.json b/packages/package/test/fixtures/typescript/package.json similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/package.json rename to packages/package/test/fixtures/typescript/package.json diff --git a/packages/kit/src/packaging/test/fixtures/typescript/src/lib/Plain.svelte b/packages/package/test/fixtures/typescript/src/lib/Plain.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/src/lib/Plain.svelte rename to packages/package/test/fixtures/typescript/src/lib/Plain.svelte diff --git a/packages/kit/src/packaging/test/fixtures/typescript/src/lib/Test.svelte b/packages/package/test/fixtures/typescript/src/lib/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/src/lib/Test.svelte rename to packages/package/test/fixtures/typescript/src/lib/Test.svelte diff --git a/packages/kit/src/packaging/test/fixtures/typescript/src/lib/Test2.svelte b/packages/package/test/fixtures/typescript/src/lib/Test2.svelte similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/src/lib/Test2.svelte rename to packages/package/test/fixtures/typescript/src/lib/Test2.svelte diff --git a/packages/package/test/fixtures/typescript/src/lib/foo.d.ts b/packages/package/test/fixtures/typescript/src/lib/foo.d.ts new file mode 100644 index 000000000000..c941ad7b1ce6 --- /dev/null +++ b/packages/package/test/fixtures/typescript/src/lib/foo.d.ts @@ -0,0 +1 @@ +export type Foo = boolean; diff --git a/packages/package/test/fixtures/typescript/src/lib/index.ts b/packages/package/test/fixtures/typescript/src/lib/index.ts new file mode 100644 index 000000000000..4c44188c3648 --- /dev/null +++ b/packages/package/test/fixtures/typescript/src/lib/index.ts @@ -0,0 +1 @@ +export { default as Test } from './Test.svelte'; diff --git a/packages/kit/src/packaging/test/fixtures/typescript/src/lib/utils.ts b/packages/package/test/fixtures/typescript/src/lib/utils.ts similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/src/lib/utils.ts rename to packages/package/test/fixtures/typescript/src/lib/utils.ts diff --git a/packages/kit/src/packaging/test/fixtures/typescript/svelte.config.js b/packages/package/test/fixtures/typescript/svelte.config.js similarity index 100% rename from packages/kit/src/packaging/test/fixtures/typescript/svelte.config.js rename to packages/package/test/fixtures/typescript/svelte.config.js diff --git a/packages/package/test/fixtures/typescript/tsconfig.json b/packages/package/test/fixtures/typescript/tsconfig.json new file mode 100644 index 000000000000..b7f8a03f204e --- /dev/null +++ b/packages/package/test/fixtures/typescript/tsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext" + } +} diff --git a/packages/kit/src/packaging/test/index.js b/packages/package/test/index.js similarity index 93% rename from packages/kit/src/packaging/test/index.js rename to packages/package/test/index.js index ad792e5d13d1..6a06e24bb1f5 100644 --- a/packages/kit/src/packaging/test/index.js +++ b/packages/package/test/index.js @@ -6,9 +6,9 @@ import prettier from 'prettier'; import { test } from 'uvu'; import * as assert from 'uvu/assert'; -import { build, watch } from '../index.js'; -import { load_config } from '../../core/config/index.js'; -import { rimraf, walk } from '../../utils/filesystem.js'; +import { build, watch } from '../src/index.js'; +import { load_config } from '../src/config.js'; +import { rimraf, walk } from '../src/filesystem.js'; const __filename = fileURLToPath(import.meta.url); const __dirname = join(__filename, '..'); @@ -23,7 +23,7 @@ async function test_make_package(path) { try { const config = await load_config({ cwd }); - config.kit.package.dir = resolve(cwd, config.kit.package.dir); + config.package.dir = resolve(cwd, config.package.dir); await build(config, cwd); const expected_files = walk(ewd, true); @@ -78,7 +78,7 @@ for (const dir of fs.readdirSync(join(__dirname, 'errors'))) { const pwd = join(cwd, 'package'); const config = await load_config({ cwd }); - config.kit.package.dir = resolve(cwd, config.kit.package.dir); + config.package.dir = resolve(cwd, config.package.dir); try { await build(config, cwd); @@ -146,13 +146,17 @@ test('create package and resolves $lib alias', async () => { await test_make_package('resolve-alias'); }); +test('SvelteKit interop', async () => { + await test_make_package('svelte-kit'); +}); + // chokidar doesn't fire events in github actions :shrug: if (!process.env.CI) { test('watches for changes', async () => { const cwd = join(__dirname, 'watch'); const config = await load_config({ cwd }); - config.kit.package.dir = resolve(cwd, config.kit.package.dir); + config.package.dir = resolve(cwd, config.package.dir); const { watcher, ready, settled } = await watch(config, cwd); diff --git a/packages/kit/src/packaging/test/watch/expected/Test.svelte b/packages/package/test/watch/expected/Test.svelte similarity index 100% rename from packages/kit/src/packaging/test/watch/expected/Test.svelte rename to packages/package/test/watch/expected/Test.svelte diff --git a/packages/kit/src/packaging/test/watch/expected/Test.svelte.d.ts b/packages/package/test/watch/expected/Test.svelte.d.ts similarity index 100% rename from packages/kit/src/packaging/test/watch/expected/Test.svelte.d.ts rename to packages/package/test/watch/expected/Test.svelte.d.ts diff --git a/packages/kit/src/packaging/test/watch/expected/a.d.ts b/packages/package/test/watch/expected/a.d.ts similarity index 100% rename from packages/kit/src/packaging/test/watch/expected/a.d.ts rename to packages/package/test/watch/expected/a.d.ts diff --git a/packages/kit/src/packaging/test/watch/expected/a.js b/packages/package/test/watch/expected/a.js similarity index 100% rename from packages/kit/src/packaging/test/watch/expected/a.js rename to packages/package/test/watch/expected/a.js diff --git a/packages/kit/src/packaging/test/watch/expected/b.d.ts b/packages/package/test/watch/expected/b.d.ts similarity index 100% rename from packages/kit/src/packaging/test/watch/expected/b.d.ts rename to packages/package/test/watch/expected/b.d.ts diff --git a/packages/kit/src/packaging/test/watch/expected/b.js b/packages/package/test/watch/expected/b.js similarity index 100% rename from packages/kit/src/packaging/test/watch/expected/b.js rename to packages/package/test/watch/expected/b.js diff --git a/packages/kit/src/packaging/test/watch/expected/index.js b/packages/package/test/watch/expected/index.js similarity index 100% rename from packages/kit/src/packaging/test/watch/expected/index.js rename to packages/package/test/watch/expected/index.js diff --git a/packages/kit/src/packaging/test/watch/expected/package.json b/packages/package/test/watch/expected/package.json similarity index 100% rename from packages/kit/src/packaging/test/watch/expected/package.json rename to packages/package/test/watch/expected/package.json diff --git a/packages/kit/src/packaging/test/watch/package.json b/packages/package/test/watch/package.json similarity index 100% rename from packages/kit/src/packaging/test/watch/package.json rename to packages/package/test/watch/package.json diff --git a/packages/kit/src/packaging/test/watch/src/lib/index.js b/packages/package/test/watch/src/lib/index.js similarity index 100% rename from packages/kit/src/packaging/test/watch/src/lib/index.js rename to packages/package/test/watch/src/lib/index.js diff --git a/packages/kit/src/packaging/test/watch/svelte.config.js b/packages/package/test/watch/svelte.config.js similarity index 100% rename from packages/kit/src/packaging/test/watch/svelte.config.js rename to packages/package/test/watch/svelte.config.js diff --git a/packages/kit/src/packaging/test/watch/tsconfig.json b/packages/package/test/watch/tsconfig.json similarity index 63% rename from packages/kit/src/packaging/test/watch/tsconfig.json rename to packages/package/test/watch/tsconfig.json index 4d654036b474..e08dbd216732 100644 --- a/packages/kit/src/packaging/test/watch/tsconfig.json +++ b/packages/package/test/watch/tsconfig.json @@ -1,8 +1,9 @@ { "compilerOptions": { + "target": "ESNext", + "module": "ESNext", "allowJs": true, "checkJs": true, "newLine": "lf" - }, - "extends": "./.svelte-kit/tsconfig.json" + } } diff --git a/packages/package/tsconfig.json b/packages/package/tsconfig.json new file mode 100644 index 000000000000..50f204450e75 --- /dev/null +++ b/packages/package/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "noEmit": true, + "strict": true, + "target": "es2020", + "module": "es2022", + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "paths": { + // internal use only + "types": ["./types/index"] + } + }, + "include": ["src/**/*", "test/index.js", "types/**/*"], + "exclude": ["src/test/fixtures/**/*", "src/test/watch/**/*"] +} diff --git a/packages/package/types/index.d.ts b/packages/package/types/index.d.ts new file mode 100644 index 000000000000..07670d36b9b1 --- /dev/null +++ b/packages/package/types/index.d.ts @@ -0,0 +1,34 @@ +import type { CompileOptions } from 'svelte/types/compiler/interfaces'; // TODO bump Svelte version, then export from right path + +export interface PackageConfig { + /** + * Path to the files that should be packaged. + * If this is used inside SvelteKit, this is read from `kit.files.lib` if unset. Defaults to `src/lib` otherwise. + */ + source?: string; + /** + * Output directory + */ + dir?: string; + /** + * Whether to emit type definition files. Defaults to `true`. + */ + emitTypes?: boolean; + /** + * Function that determines if the given filepath will be included in the `exports` field + * of the `package.json`. + */ + exports?(filepath: string): boolean; + /** + * Function that determines if the given file is part of the output. + */ + files?(filepath: string): boolean; +} + +export interface Config { + compilerOptions?: CompileOptions; + extensions?: string[]; + kit?: any; + preprocess?: any; + package?: PackageConfig; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e91bea0429f..d13023cd996c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -149,7 +149,7 @@ importers: svelte: ^3.48.0 typescript: ^4.7.4 uvu: ^0.5.3 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../kit '@types/node': 16.11.42 @@ -158,17 +158,17 @@ importers: svelte: 3.48.0 typescript: 4.7.4 uvu: 0.5.4 - vite: 3.0.0 + vite: 3.0.2 packages/adapter-static/test/apps/prerendered: specifiers: '@sveltejs/kit': workspace:* svelte: ^3.48.0 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../../../kit svelte: 3.48.0 - vite: 3.0.0 + vite: 3.0.2 packages/adapter-static/test/apps/spa: specifiers: @@ -176,13 +176,13 @@ importers: '@sveltejs/kit': workspace:* sirv-cli: ^2.0.2 svelte: ^3.48.0 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/adapter-node': link:../../../../adapter-node '@sveltejs/kit': link:../../../../kit sirv-cli: 2.0.2 svelte: 3.48.0 - vite: 3.0.0 + vite: 3.0.2 packages/adapter-vercel: specifiers: @@ -258,7 +258,7 @@ importers: svelte: 3.48.0 svelte-preprocess: 4.10.7_lvfi2wesz6u4l5rfbnetbucfmm typescript: 4.7.4 - vite: 3.0.0 + vite: 3.0.8 packages/create-svelte/templates/skeleton: specifiers: @@ -291,14 +291,13 @@ importers: sirv: ^2.0.2 svelte: ^3.48.0 svelte-preprocess: ^4.10.6 - svelte2tsx: ~0.5.10 tiny-glob: ^0.2.9 typescript: ^4.7.4 undici: ^5.8.1 uvu: ^0.5.3 - vite: ^3.0.0 + vite: 3.0.2 dependencies: - '@sveltejs/vite-plugin-svelte': 1.0.1_svelte@3.48.0+vite@3.0.0 + '@sveltejs/vite-plugin-svelte': 1.0.1_svelte@3.48.0+vite@3.0.2 chokidar: 3.5.3 cookie: 0.5.0 devalue: 2.0.1 @@ -324,10 +323,9 @@ importers: rollup: 2.75.7 svelte: 3.48.0 svelte-preprocess: 4.10.7_lvfi2wesz6u4l5rfbnetbucfmm - svelte2tsx: 0.5.11_lvfi2wesz6u4l5rfbnetbucfmm typescript: 4.7.4 uvu: 0.5.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/apps/amp: specifiers: @@ -338,7 +336,7 @@ importers: svelte: ^3.48.0 svelte-check: ^2.7.1 typescript: ^4.7.4 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/amp': link:../../../../amp '@sveltejs/kit': link:../../.. @@ -347,7 +345,7 @@ importers: svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/apps/basics: specifiers: @@ -357,7 +355,7 @@ importers: svelte: ^3.48.0 svelte-check: ^2.7.1 typescript: ^4.7.4 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../.. cross-env: 7.0.3 @@ -365,7 +363,7 @@ importers: svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/apps/options: specifiers: @@ -374,14 +372,14 @@ importers: svelte: ^3.48.0 svelte-check: ^2.7.1 typescript: ^4.7.4 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../.. cross-env: 7.0.3 svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/apps/options-2: specifiers: @@ -391,7 +389,7 @@ importers: svelte: ^3.48.0 svelte-check: ^2.7.1 typescript: ^4.7.4 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/adapter-node': link:../../../../adapter-node '@sveltejs/kit': link:../../.. @@ -399,7 +397,7 @@ importers: svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/apps/writes: specifiers: @@ -409,7 +407,7 @@ importers: svelte: ^3.48.0 svelte-check: ^2.7.1 typescript: ^4.7.4 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../.. cross-env: 7.0.3 @@ -417,7 +415,7 @@ importers: svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/prerendering/basics: specifiers: @@ -426,14 +424,14 @@ importers: svelte-check: ^2.7.1 typescript: ^4.7.4 uvu: ^0.5.3 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../.. svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 uvu: 0.5.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/prerendering/fallback: specifiers: @@ -442,14 +440,14 @@ importers: svelte-check: ^2.7.1 typescript: ^4.7.4 uvu: ^0.5.3 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../.. svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 uvu: 0.5.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/prerendering/options: specifiers: @@ -458,14 +456,14 @@ importers: svelte-check: ^2.7.1 typescript: ^4.7.4 uvu: ^0.5.3 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../.. svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 uvu: 0.5.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/prerendering/paths-base: specifiers: @@ -474,14 +472,14 @@ importers: svelte-check: ^2.7.1 typescript: ^4.7.4 uvu: ^0.5.3 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../.. svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 uvu: 0.5.4 - vite: 3.0.0 + vite: 3.0.2 packages/kit/test/prerendering/trailing-slash: specifiers: @@ -490,14 +488,14 @@ importers: svelte-check: ^2.7.1 typescript: ^4.7.4 uvu: ^0.5.4 - vite: ^3.0.0 + vite: 3.0.2 devDependencies: '@sveltejs/kit': link:../../.. svelte: 3.48.0 svelte-check: 2.8.0_svelte@3.48.0 typescript: 4.7.4 uvu: 0.5.4 - vite: 3.0.0 + vite: 3.0.2 packages/migrate: specifiers: @@ -520,6 +518,29 @@ importers: prettier: 2.7.1 uvu: 0.5.6 + packages/package: + specifiers: + '@types/node': ^16.11.36 + chokidar: ^3.5.3 + kleur: ^4.1.4 + sade: ^1.8.1 + svelte: ^3.48.0 + svelte-preprocess: ^4.10.6 + svelte2tsx: ~0.5.10 + typescript: ^4.7.4 + uvu: ^0.5.3 + dependencies: + chokidar: 3.5.3 + kleur: 4.1.5 + sade: 1.8.1 + svelte2tsx: 0.5.11_lvfi2wesz6u4l5rfbnetbucfmm + devDependencies: + '@types/node': 16.11.42 + svelte: 3.48.0 + svelte-preprocess: 4.10.7_lvfi2wesz6u4l5rfbnetbucfmm + typescript: 4.7.4 + uvu: 0.5.6 + sites/kit.svelte.dev: specifiers: '@sveltejs/adapter-auto': workspace:* @@ -551,7 +572,7 @@ importers: shiki-twoslash: 3.1.0 svelte: 3.48.0 typescript: 4.7.4 - vite: 3.0.0 + vite: 3.0.8 vite-imagetools: 4.0.4 packages: @@ -974,7 +995,7 @@ packages: golden-fleece: 1.0.9 dev: true - /@sveltejs/vite-plugin-svelte/1.0.1_svelte@3.48.0+vite@3.0.0: + /@sveltejs/vite-plugin-svelte/1.0.1_svelte@3.48.0+vite@3.0.2: resolution: {integrity: sha512-PorCgUounn0VXcpeJu+hOweZODKmGuLHsLomwqSj+p26IwjjGffmYQfVHtiTWq+NqaUuuHWWG7vPge6UFw4Aeg==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -992,7 +1013,7 @@ packages: magic-string: 0.26.2 svelte: 3.48.0 svelte-hmr: 0.14.12_svelte@3.48.0 - vite: 3.0.0 + vite: 3.0.2 transitivePeerDependencies: - supports-color dev: false @@ -1660,7 +1681,7 @@ packages: /dedent-js/1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - dev: true + dev: false /deep-extend/0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} @@ -2727,7 +2748,7 @@ packages: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: tslib: 2.4.0 - dev: true + dev: false /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -2925,7 +2946,7 @@ packages: dependencies: lower-case: 2.0.2 tslib: 2.4.0 - dev: true + dev: false /node-abi/3.22.0: resolution: {integrity: sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==} @@ -3152,7 +3173,7 @@ packages: dependencies: no-case: 3.0.4 tslib: 2.4.0 - dev: true + dev: false /path-exists/3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} @@ -3254,8 +3275,8 @@ packages: trouter: 3.2.0 dev: true - /postcss/8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + /postcss/8.4.16: + resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 @@ -4084,7 +4105,7 @@ packages: pascal-case: 3.1.2 svelte: 3.48.0 typescript: 4.7.4 - dev: true + dev: false /tar-fs/2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} @@ -4194,7 +4215,7 @@ packages: /tslib/2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - dev: true + dev: false /tty-table/4.1.6: resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} @@ -4449,9 +4470,35 @@ packages: magic-string: 0.26.2 dev: true - /vite/3.0.0: - resolution: {integrity: sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==} - engines: {node: '>=14.18.0'} + /vite/3.0.2: + resolution: {integrity: sha512-TAqydxW/w0U5AoL5AsD9DApTvGb2iNbGs3sN4u2VdT1GFkQVUfgUldt+t08TZgi23uIauh1TUOQJALduo9GXqw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + terser: ^5.4.0 + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.14.48 + postcss: 8.4.16 + resolve: 1.22.1 + rollup: 2.75.7 + optionalDependencies: + fsevents: 2.3.2 + + /vite/3.0.8: + resolution: {integrity: sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ==} + engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: less: '*' @@ -4469,11 +4516,12 @@ packages: optional: true dependencies: esbuild: 0.14.48 - postcss: 8.4.14 + postcss: 8.4.16 resolve: 1.22.1 rollup: 2.75.7 optionalDependencies: fsevents: 2.3.2 + dev: true /vscode-oniguruma/1.6.2: resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==}