Skip to content

Commit a5f8b9b

Browse files
authored
PIE-605: enforce dist-only publish surfaces in pie-elements-ng
2 parents 64b4f8f + 7049ee0 commit a5f8b9b

77 files changed

Lines changed: 642 additions & 272 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/PUBLISHING.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,16 @@ For each selected package, any local workspace dependency from `dependencies` or
6060

6161
This prevents publishing an element whose npm install later fails in the PIE builder because a workspace dependency was never published. If the preflight fails, add the missing package to `--packages` or publish that dependency first.
6262

63-
When a selected target is a Svelte element package under `packages/elements-svelte`, the same publish command also checks the package surface before publishing. It rejects Svelte runtime dependencies leaking to hosts, source-path exports, `src` in the packed tarball, test artifacts in the packed tarball, real Svelte imports in built JS, and runtime `customElements.define(...)` calls.
63+
All publishable packages use a dist-only public API. Package `exports`, `main`, `module`, `types`, CDN fields, and packed source-bearing files must resolve to generated `dist` artifacts only. Raw source (`src`, root `.ts`/`.tsx`, `.svelte`, `.svelte.ts`, and `development` conditions that point at source) is not a supported package API.
64+
65+
Debuggability comes from generated sourcemaps, not from importable source files. TypeScript builds must emit sourcemaps with inline source content, and package validation rejects `.js.map` files that require unpacked source files to be present in the npm tarball.
66+
67+
The shared publish command used by CI and local targeted publishes runs:
68+
69+
- `bun run check:publish-surface`
70+
- `bun run check:sourcemaps`
71+
72+
These checks reject source-path exports, `src` in packed tarballs, raw Svelte/TypeScript package surfaces, missing sourcemap source content, and stale generated maps.
6473

6574
## Dist-Tag Backfill Runbook
6675

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,14 @@
4848
"test:iife:e2e:orchestrated": "bun run --cwd apps/element-demo test:e2e:iife:suite:orchestrated",
4949
"test:iife:once-server": "node scripts/run-iife-suite.mjs",
5050
"lint": "biome check . && node scripts/verify-no-svelte-custom-element-tag.mjs",
51+
"lint:all": "bun run lint && bun run check:publish-surface && bun run check:sourcemaps",
5152
"lint:fix": "biome check --write .",
5253
"format": "biome format --write .",
5354
"changeset": "changeset",
5455
"changeset:plan": "node ./scripts/create-package-changeset.mjs",
5556
"version": "changeset version",
5657
"release": "bun run release:publish",
57-
"release:publish": "bun run build && bun run verify:runtime-support && bun run cli verify:controllers && node ./scripts/changeset-publish-resolved-workspaces.mjs",
58+
"release:publish": "bun run build && bun run verify:runtime-support && bun run cli verify:controllers && bun run check:publish-surface && bun run check:sourcemaps && node ./scripts/changeset-publish-resolved-workspaces.mjs",
5859
"release:manual": "bun run release:publish",
5960
"release:publish:packages": "node ./scripts/release-publish-selective.mjs",
6061
"release:publish:packages:env-token": "sh ./scripts/publish-with-env-token.sh",
@@ -87,6 +88,8 @@
8788
"verify:no-local-paths": "node scripts/check-no-local-paths.mjs",
8889
"verify:svelte-custom-element-tags": "node scripts/verify-no-svelte-custom-element-tag.mjs",
8990
"verify:runtime-support": "node scripts/verify-runtime-support-exports.mjs",
91+
"check:publish-surface": "bun ./scripts/check-publish-surface.mjs",
92+
"check:sourcemaps": "bun ./scripts/check-sourcemap-sources.mjs",
9093
"verify:dependency-integrity": "bun run cli verify:dependency-integrity",
9194
"evals": "turbo run test:evals",
9295
"evals:ui": "turbo run test:evals:ui",

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"dist"
1616
],
1717
"scripts": {
18-
"build": "tsc",
18+
"build": "rm -rf dist tsconfig.tsbuildinfo && tsc",
1919
"dev": "tsc --watch",
2020
"test": "vitest run",
2121
"test:watch": "vitest",

packages/element-theme-daisyui/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
"exports": {
99
".": {
1010
"types": "./dist/index.d.ts",
11-
"development": "./src/index.ts",
1211
"default": "./dist/pie-element-theme-daisyui.js"
1312
}
1413
},

packages/element-theme/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
"exports": {
99
".": {
1010
"types": "./dist/index.d.ts",
11-
"development": "./src/index.ts",
1211
"default": "./dist/pie-element-theme.js"
1312
}
1413
},

packages/elements-react/categorize/package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,22 @@
3030
},
3131
"exports": {
3232
".": {
33-
"development": "./src/index.ts",
3433
"types": "./dist/index.d.ts",
3534
"default": "./dist/index.js"
3635
},
3736
"./delivery": {
38-
"development": "./src/delivery/index.ts",
3937
"types": "./dist/delivery/index.d.ts",
4038
"default": "./dist/delivery/index.js"
4139
},
4240
"./author": {
43-
"development": "./src/author/index.ts",
4441
"types": "./dist/author/index.d.ts",
4542
"default": "./dist/author/index.js"
4643
},
4744
"./controller": {
48-
"development": "./src/controller/index.ts",
45+
"types": "./dist/controller/index.d.ts",
46+
"default": "./dist/controller/index.js"
47+
},
48+
"./controller.js": {
4949
"types": "./dist/controller/index.d.ts",
5050
"default": "./dist/controller/index.js"
5151
}
@@ -54,8 +54,7 @@
5454
"main": "./dist/index.js",
5555
"types": "./dist/index.d.ts",
5656
"files": [
57-
"dist",
58-
"src"
57+
"dist"
5958
],
6059
"sideEffects": false,
6160
"devDependencies": {

packages/elements-react/charting/package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@
2626
},
2727
"exports": {
2828
".": {
29-
"development": "./src/index.ts",
3029
"types": "./dist/index.d.ts",
3130
"default": "./dist/index.js"
3231
},
3332
"./delivery": {
34-
"development": "./src/delivery/index.ts",
3533
"types": "./dist/delivery/index.d.ts",
3634
"default": "./dist/delivery/index.js"
3735
},
3836
"./author": {
39-
"development": "./src/author/index.ts",
4037
"types": "./dist/author/index.d.ts",
4138
"default": "./dist/author/index.js"
4239
},
4340
"./controller": {
44-
"development": "./src/controller/index.ts",
41+
"types": "./dist/controller/index.d.ts",
42+
"default": "./dist/controller/index.js"
43+
},
44+
"./controller.js": {
4545
"types": "./dist/controller/index.d.ts",
4646
"default": "./dist/controller/index.js"
4747
}
@@ -50,8 +50,7 @@
5050
"main": "./dist/index.js",
5151
"types": "./dist/index.d.ts",
5252
"files": [
53-
"dist",
54-
"src"
53+
"dist"
5554
],
5655
"sideEffects": false,
5756
"devDependencies": {

packages/elements-react/complex-rubric/package.json

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,27 +25,26 @@
2525
},
2626
"exports": {
2727
".": {
28-
"development": "./src/index.ts",
2928
"types": "./dist/index.d.ts",
3029
"default": "./dist/index.js"
3130
},
3231
"./delivery": {
33-
"development": "./src/delivery/index.ts",
3432
"types": "./dist/delivery/index.d.ts",
3533
"default": "./dist/delivery/index.js"
3634
},
3735
"./author": {
38-
"development": "./src/author/index.ts",
3936
"types": "./dist/author/index.d.ts",
4037
"default": "./dist/author/index.js"
4138
},
4239
"./controller": {
43-
"development": "./src/controller/index.ts",
40+
"types": "./dist/controller/index.d.ts",
41+
"default": "./dist/controller/index.js"
42+
},
43+
"./controller.js": {
4444
"types": "./dist/controller/index.d.ts",
4545
"default": "./dist/controller/index.js"
4646
},
4747
"./print": {
48-
"development": "./src/print/index.ts",
4948
"types": "./dist/print/index.d.ts",
5049
"default": "./dist/print/index.js"
5150
}
@@ -54,8 +53,7 @@
5453
"main": "./dist/index.js",
5554
"types": "./dist/index.d.ts",
5655
"files": [
57-
"dist",
58-
"src"
56+
"dist"
5957
],
6058
"sideEffects": false,
6159
"devDependencies": {

packages/elements-react/drag-in-the-blank/package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,22 @@
2828
},
2929
"exports": {
3030
".": {
31-
"development": "./src/index.ts",
3231
"types": "./dist/index.d.ts",
3332
"default": "./dist/index.js"
3433
},
3534
"./delivery": {
36-
"development": "./src/delivery/index.ts",
3735
"types": "./dist/delivery/index.d.ts",
3836
"default": "./dist/delivery/index.js"
3937
},
4038
"./author": {
41-
"development": "./src/author/index.tsx",
4239
"types": "./dist/author/index.d.ts",
4340
"default": "./dist/author/index.js"
4441
},
4542
"./controller": {
46-
"development": "./src/controller/index.ts",
43+
"types": "./dist/controller/index.d.ts",
44+
"default": "./dist/controller/index.js"
45+
},
46+
"./controller.js": {
4747
"types": "./dist/controller/index.d.ts",
4848
"default": "./dist/controller/index.js"
4949
}
@@ -52,8 +52,7 @@
5252
"main": "./dist/index.js",
5353
"types": "./dist/index.d.ts",
5454
"files": [
55-
"dist",
56-
"src"
55+
"dist"
5756
],
5857
"sideEffects": false,
5958
"devDependencies": {

packages/elements-react/drawing-response/package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,22 @@
2828
},
2929
"exports": {
3030
".": {
31-
"development": "./src/index.ts",
3231
"types": "./dist/index.d.ts",
3332
"default": "./dist/index.js"
3433
},
3534
"./delivery": {
36-
"development": "./src/delivery/index.ts",
3735
"types": "./dist/delivery/index.d.ts",
3836
"default": "./dist/delivery/index.js"
3937
},
4038
"./author": {
41-
"development": "./src/author/index.ts",
4239
"types": "./dist/author/index.d.ts",
4340
"default": "./dist/author/index.js"
4441
},
4542
"./controller": {
46-
"development": "./src/controller/index.ts",
43+
"types": "./dist/controller/index.d.ts",
44+
"default": "./dist/controller/index.js"
45+
},
46+
"./controller.js": {
4747
"types": "./dist/controller/index.d.ts",
4848
"default": "./dist/controller/index.js"
4949
}
@@ -52,8 +52,7 @@
5252
"main": "./dist/index.js",
5353
"types": "./dist/index.d.ts",
5454
"files": [
55-
"dist",
56-
"src"
55+
"dist"
5756
],
5857
"sideEffects": false,
5958
"devDependencies": {

0 commit comments

Comments
 (0)