@pierre/theme 0.0.24 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,6 +56,12 @@ jobs:
56
56
  cache: 'npm'
57
57
  registry-url: 'https://registry.npmjs.org'
58
58
 
59
+ - name: Install dependencies
60
+ run: npm ci
61
+
62
+ - name: Build theme
63
+ run: npm run build
64
+
59
65
  - name: Publish to npm
60
66
  env:
61
67
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -44,6 +44,20 @@ jobs:
44
44
  fi
45
45
  echo "✅ All theme files generated successfully"
46
46
 
47
+ - name: Verify ESM wrapper modules exist
48
+ run: |
49
+ for theme in pierre-dark pierre-light pierre-dark-vibrant pierre-light-vibrant; do
50
+ if [ ! -f "dist/${theme}.mjs" ]; then
51
+ echo "❌ dist/${theme}.mjs not generated"
52
+ exit 1
53
+ fi
54
+ done
55
+ if [ ! -f "dist/index.mjs" ]; then
56
+ echo "❌ dist/index.mjs not generated"
57
+ exit 1
58
+ fi
59
+ echo "✅ All ESM wrapper modules generated successfully"
60
+
47
61
  - name: Check file sizes
48
62
  run: |
49
63
  light_size=$(wc -c < themes/pierre-light.json)
package/.vscodeignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /package-lock.json
8
8
  /src/
9
9
  /build/
10
+ /dist/
package/README.md CHANGED
@@ -11,6 +11,30 @@ OPEN POSITIONS: [Systems Engineer](https://pierre.computer/careers/systems-engin
11
11
 
12
12
  ~~~
13
13
 
14
- Overview:
15
- - Light and dark themes for Visual Studio Code, Cursor, Zed, and Shiki.
14
+ Overview:
15
+ - Light and dark themes for Visual Studio Code, Cursor, Zed, and Shiki.
16
16
  - Built for [Diffs.com](https://diffs.com)
17
+
18
+ ~~~
19
+
20
+ Usage:
21
+
22
+ VS Code / Cursor:
23
+ 1. Install "Pierre Theme" from the Extensions marketplace
24
+ 2. Cmd+Shift+P > "Color Theme" > select Pierre Light or Pierre Dark
25
+
26
+ Shiki / npm:
27
+ npm install @pierre/theme
28
+
29
+ import pierreDark from '@pierre/theme/pierre-dark'
30
+ import pierreLight from '@pierre/theme/pierre-light'
31
+
32
+ Available themes:
33
+ - @pierre/theme/pierre-dark
34
+ - @pierre/theme/pierre-light
35
+ - @pierre/theme/pierre-dark-vibrant (Display P3)
36
+ - @pierre/theme/pierre-light-vibrant (Display P3)
37
+
38
+ Zed:
39
+ Install "Pierre" from the Zed extension registry
40
+ ```
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pierre/theme",
3
3
  "displayName": "Pierre Theme",
4
4
  "description": "Pierre theme for Shiki, VS Code, and more",
5
- "version": "0.0.24",
5
+ "version": "0.0.25",
6
6
  "publisher": "pierrecomputer",
7
7
  "icon": "icon.png",
8
8
  "galleryBanner": {
@@ -47,7 +47,8 @@
47
47
  "build": "ts-node src/build.ts",
48
48
  "test": "npm run build && ts-node src/test.ts",
49
49
  "start": "nodemon --watch src --ext ts --exec npm run build",
50
- "package": "ts-node src/package-vsix.ts"
50
+ "package": "ts-node src/package-vsix.ts",
51
+ "prepublishOnly": "npm run build"
51
52
  },
52
53
  "devDependencies": {
53
54
  "@vscode/vsce": "^3.2.2",
@@ -55,6 +56,15 @@
55
56
  "ts-node": "^10.9.2",
56
57
  "typescript": "^5.9.3"
57
58
  },
59
+ "sideEffects": false,
60
+ "exports": {
61
+ ".": "./dist/index.mjs",
62
+ "./pierre-dark": "./dist/pierre-dark.mjs",
63
+ "./pierre-light": "./dist/pierre-light.mjs",
64
+ "./pierre-dark-vibrant": "./dist/pierre-dark-vibrant.mjs",
65
+ "./pierre-light-vibrant": "./dist/pierre-light-vibrant.mjs",
66
+ "./themes/*": "./themes/*"
67
+ },
58
68
  "publishConfig": {
59
69
  "access": "public"
60
70
  }
package/src/build.ts CHANGED
@@ -37,3 +37,24 @@ const zedTheme = makeZedThemeFamily("Pierre", "pierrecomputer", [
37
37
 
38
38
  writeFileSync("zed/themes/pierre.json", JSON.stringify(zedTheme, null, 2), "utf8");
39
39
  console.log("Wrote zed/themes/pierre.json");
40
+
41
+ // ============================================
42
+ // ESM wrapper modules (for npm / Shiki consumers)
43
+ // ============================================
44
+ mkdirSync("dist", { recursive: true });
45
+
46
+ const themeNames: string[] = [];
47
+
48
+ for (const { file, theme } of vscodeThemes) {
49
+ const name = file.replace("themes/", "").replace(".json", "");
50
+ themeNames.push(name);
51
+ const json = JSON.stringify(theme);
52
+ const escaped = json.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
53
+ const mjs = `export default Object.freeze(JSON.parse('${escaped}'))\n`;
54
+ writeFileSync(`dist/${name}.mjs`, mjs, "utf8");
55
+ console.log("Wrote", `dist/${name}.mjs`);
56
+ }
57
+
58
+ const indexMjs = `export const themeNames = ${JSON.stringify(themeNames)}\n`;
59
+ writeFileSync("dist/index.mjs", indexMjs, "utf8");
60
+ console.log("Wrote dist/index.mjs");
@@ -1,7 +1,7 @@
1
1
  id = "pierre-theme"
2
2
  name = "Pierre"
3
3
  description = "A warm, orange-accented color theme with light and dark variants"
4
- version = "0.0.24"
4
+ version = "0.0.25"
5
5
  schema_version = 1
6
6
  authors = ["pierrecomputer"]
7
7
  repository = "https://github.com/pierrecomputer/pierre-theme"