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==}