@zenithbuild/language-server 0.6.1 → 0.6.17

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.
package/package.json CHANGED
@@ -1,37 +1,48 @@
1
1
  {
2
2
  "name": "@zenithbuild/language-server",
3
- "version": "0.6.1",
4
- "description": "Language Server for Zenith Framework",
5
- "main": "./dist/server.js",
6
- "types": "./dist/server.d.ts",
3
+ "version": "0.6.17",
4
+ "description": "Canonical Language Server Protocol implementation for Zenith",
5
+ "license": "MIT",
6
+ "private": false,
7
+ "type": "module",
8
+ "main": "./dist/server.mjs",
9
+ "bin": {
10
+ "zenith-language-server": "bin/zenith-language-server.js"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "bin",
15
+ "README.md",
16
+ "LICENSE",
17
+ "package.json"
18
+ ],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/zenithbuild/framework",
22
+ "directory": "packages/language-server"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/zenithbuild/framework/issues"
26
+ },
27
+ "homepage": "https://github.com/zenithbuild/framework#readme",
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
7
31
  "scripts": {
8
- "build": "npx esbuild src/server.ts --bundle --outdir=dist --platform=node --format=cjs --external:@zenithbuild/compiler --external:vscode-languageserver/node --external:vscode-languageserver-textdocument",
9
- "test": "npm run test:unit",
10
- "test:unit": "bun test test/*.spec.ts",
11
- "dev": "npm run build -- --watch",
12
- "release": "bun run scripts/release.ts",
13
- "release:dry": "bun run scripts/release.ts --dry-run",
14
- "release:patch": "bun run scripts/release.ts --bump=patch",
15
- "release:minor": "bun run scripts/release.ts --bump=minor",
16
- "release:major": "bun run scripts/release.ts --bump=major"
32
+ "build": "rm -rf dist && mkdir -p dist && bun x esbuild src/server.ts --bundle --outfile=dist/server.mjs --format=esm --platform=node --external:@zenithbuild/compiler --external:vscode-languageserver --external:vscode-languageserver/node --external:vscode-languageserver-textdocument",
33
+ "typecheck": "tsc -p tsconfig.json --noEmit",
34
+ "test": "bun test",
35
+ "prepublishOnly": "bun run build"
17
36
  },
18
37
  "dependencies": {
19
- "@zenithbuild/compiler": "^0.6.5",
38
+ "@zenithbuild/compiler": "0.6.17",
20
39
  "vscode-languageserver": "^9.0.1",
21
40
  "vscode-languageserver-textdocument": "^1.0.11"
22
41
  },
23
42
  "devDependencies": {
24
- "@types/node": "^20.0.0",
25
- "esbuild": "^0.19.0",
26
- "typescript": "^5.0.0"
27
- },
28
- "publishConfig": {
29
- "access": "public"
30
- },
31
- "private": false,
32
- "license": "MIT",
33
- "repository": {
34
- "type": "git",
35
- "url": "https://github.com/zenithbuild/zenith-language-server.git"
43
+ "@types/bun": "latest",
44
+ "@types/node": "latest",
45
+ "esbuild": "^0.25.11",
46
+ "typescript": "^5.7.3"
36
47
  }
37
48
  }
@@ -1,261 +0,0 @@
1
- # =============================================================================
2
- # Zenith Automated Release Workflow
3
- # =============================================================================
4
- # This workflow handles automated releases for all Zenith repositories.
5
- #
6
- # TRIGGERS:
7
- # - Push to 'main' branch (analyzes commits for version bump)
8
- # - Manual trigger via workflow_dispatch (with optional dry-run mode)
9
- # - Tag creation (v*) for explicit version releases
10
- #
11
- # FEATURES:
12
- # - Conventional Commits parsing for automatic version determination
13
- # - Automatic CHANGELOG.md generation
14
- # - GitHub Release creation
15
- # - Optional NPM publishing
16
- # - Commits updated files back to repo
17
- # - Dry-run mode for testing
18
- # - Monorepo support (detects changed packages)
19
- #
20
- # REQUIRED SECRETS:
21
- # - NPM_TOKEN: For publishing to NPM (if enabled)
22
- # - GITHUB_TOKEN: Automatically provided by GitHub Actions
23
- # =============================================================================
24
-
25
- name: Release
26
-
27
- on:
28
- push:
29
- branches:
30
- - main
31
- tags:
32
- - 'v*'
33
- paths-ignore:
34
- - '**.md'
35
- - '.github/**'
36
- - '!.github/workflows/release.yml'
37
-
38
- workflow_dispatch:
39
- inputs:
40
- dry_run:
41
- description: 'Dry run mode (no actual release)'
42
- required: false
43
- default: false
44
- type: boolean
45
- package:
46
- description: 'Specific package to release (for monorepo, leave empty for auto-detect)'
47
- required: false
48
- default: ''
49
- type: string
50
- bump_type:
51
- description: 'Force version bump type (leave empty for auto-detect from commits)'
52
- required: false
53
- default: ''
54
- type: choice
55
- options:
56
- - ''
57
- - patch
58
- - minor
59
- - major
60
- publish_npm:
61
- description: 'Publish to NPM'
62
- required: false
63
- default: true
64
- type: boolean
65
-
66
- # Prevent concurrent releases
67
- concurrency:
68
- group: release-${{ github.ref }}
69
- cancel-in-progress: false
70
-
71
- env:
72
- BUN_VERSION: '1.1.38'
73
-
74
- jobs:
75
- # ==========================================================================
76
- # Detect Changes (for monorepo support)
77
- # ==========================================================================
78
- detect-changes:
79
- name: Detect Changed Packages
80
- runs-on: ubuntu-latest
81
- outputs:
82
- packages: ${{ steps.detect.outputs.packages }}
83
- has_changes: ${{ steps.detect.outputs.has_changes }}
84
- steps:
85
- - name: Checkout Repository
86
- uses: actions/checkout@v4
87
- with:
88
- fetch-depth: 0
89
- token: ${{ secrets.GITHUB_TOKEN }}
90
-
91
- - name: Setup Bun
92
- uses: oven-sh/setup-bun@v2
93
- with:
94
- bun-version: ${{ env.BUN_VERSION }}
95
-
96
- - name: Detect Changed Packages
97
- id: detect
98
- run: |
99
- # First, check if this is a single-package repo (package.json in root)
100
- if [ -f "./package.json" ]; then
101
- # Count subdirectories with package.json (excluding node_modules)
102
- SUB_PACKAGES=$(find . -mindepth 2 -name "package.json" -not -path "*/node_modules/*" | wc -l)
103
-
104
- if [ "$SUB_PACKAGES" -eq 0 ]; then
105
- # Single package repo - always release from root
106
- echo "Single package repository detected"
107
- echo "packages=[\".\"]" >> $GITHUB_OUTPUT
108
- echo "has_changes=true" >> $GITHUB_OUTPUT
109
- exit 0
110
- fi
111
- fi
112
-
113
- # Monorepo detection
114
- PACKAGES=$(find . -name "package.json" -not -path "*/node_modules/*" -not -path "*/.git/*" | xargs -I {} dirname {} | sed 's|^\./||' | grep -v "^$" | sort -u)
115
-
116
- # For monorepos, detect which packages changed
117
- CHANGED_PACKAGES="[]"
118
- if [ "${{ github.event.inputs.package }}" != "" ]; then
119
- CHANGED_PACKAGES="[\"${{ github.event.inputs.package }}\"]"
120
- else
121
- # Get changed files since last tag or in the current push
122
- LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
123
- if [ -z "$LAST_TAG" ]; then
124
- CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD 2>/dev/null || git ls-files)
125
- else
126
- CHANGED_FILES=$(git diff --name-only $LAST_TAG HEAD)
127
- fi
128
-
129
- # Match changed files to packages
130
- CHANGED_PKGS=""
131
- for pkg in $PACKAGES; do
132
- MATCHED=false
133
- if [ "$pkg" = "." ]; then
134
- if [ -n "$CHANGED_FILES" ]; then MATCHED=true; fi
135
- elif echo "$CHANGED_FILES" | grep -q "^$pkg/"; then
136
- MATCHED=true
137
- fi
138
-
139
- if [ "$MATCHED" = "true" ]; then
140
- if [ -z "$CHANGED_PKGS" ]; then
141
- CHANGED_PKGS="\"$pkg\""
142
- else
143
- CHANGED_PKGS="$CHANGED_PKGS, \"$pkg\""
144
- fi
145
- fi
146
- done
147
- CHANGED_PACKAGES="[$CHANGED_PKGS]"
148
- fi
149
-
150
- echo "packages=$CHANGED_PACKAGES" >> $GITHUB_OUTPUT
151
- if [ "$CHANGED_PACKAGES" = "[]" ]; then
152
- echo "has_changes=false" >> $GITHUB_OUTPUT
153
- else
154
- echo "has_changes=true" >> $GITHUB_OUTPUT
155
- fi
156
-
157
-
158
- # ==========================================================================
159
- # Release Job
160
- # ==========================================================================
161
- release:
162
- name: Release
163
- needs: detect-changes
164
- if: needs.detect-changes.outputs.has_changes == 'true'
165
- runs-on: ubuntu-latest
166
- permissions:
167
- contents: write
168
- packages: write
169
-
170
- strategy:
171
- fail-fast: false
172
- matrix:
173
- package: ${{ fromJson(needs.detect-changes.outputs.packages) }}
174
-
175
- steps:
176
- - name: Checkout Repository
177
- uses: actions/checkout@v4
178
- with:
179
- fetch-depth: 0
180
- token: ${{ secrets.GITHUB_TOKEN }}
181
-
182
- - name: Setup Bun
183
- uses: oven-sh/setup-bun@v2
184
- with:
185
- bun-version: ${{ env.BUN_VERSION }}
186
-
187
- - name: Configure Git
188
- run: |
189
- git config user.name "github-actions[bot]"
190
- git config user.email "github-actions[bot]@users.noreply.github.com"
191
-
192
- - name: Install Dependencies
193
- working-directory: ${{ matrix.package }}
194
- run: bun install
195
-
196
- - name: Run Release Script
197
- id: release
198
- working-directory: ${{ matrix.package }}
199
- env:
200
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
201
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
202
- DRY_RUN: ${{ github.event.inputs.dry_run || 'false' }}
203
- BUMP_TYPE: ${{ github.event.inputs.bump_type || '' }}
204
- PUBLISH_NPM: ${{ github.event.inputs.publish_npm || 'true' }}
205
- run: |
206
- # Run the Bun release script
207
- bun run scripts/release.ts
208
-
209
- - name: Build Package
210
- if: steps.release.outputs.should_release == 'true'
211
- working-directory: ${{ matrix.package }}
212
- run: |
213
- if bun run build 2>/dev/null; then
214
- echo "Build completed successfully"
215
- else
216
- echo "No build script found or build not required"
217
- fi
218
-
219
- - name: Commit Changes
220
- if: steps.release.outputs.should_release == 'true' && github.event.inputs.dry_run != 'true'
221
- working-directory: ${{ matrix.package }}
222
- run: |
223
- git add CHANGELOG.md package.json
224
- git commit -m "chore(release): v${{ steps.release.outputs.new_version }} [skip ci]" || echo "No changes to commit"
225
- git push
226
-
227
- - name: Create GitHub Release
228
- if: steps.release.outputs.should_release == 'true' && github.event.inputs.dry_run != 'true'
229
- uses: softprops/action-gh-release@v2
230
- with:
231
- tag_name: v${{ steps.release.outputs.new_version }}
232
- name: Release v${{ steps.release.outputs.new_version }}
233
- body_path: ${{ matrix.package }}/RELEASE_NOTES.md
234
- draft: false
235
- prerelease: false
236
- token: ${{ secrets.GITHUB_TOKEN }}
237
-
238
- - name: Publish to NPM
239
- if: steps.release.outputs.should_release == 'true' && github.event.inputs.dry_run != 'true' && (github.event.inputs.publish_npm == 'true' || github.event.inputs.publish_npm == '')
240
- working-directory: ${{ matrix.package }}
241
- run: |
242
- # Check if package is not private
243
- PRIVATE=$(cat package.json | bun -e "console.log(JSON.parse(await Bun.stdin.text()).private || false)")
244
- if [ "$PRIVATE" = "false" ]; then
245
- echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
246
- bun publish --access public || npm publish --access public
247
- else
248
- echo "Package is private, skipping NPM publish"
249
- fi
250
-
251
- - name: Summary
252
- run: |
253
- echo "## Release Summary" >> $GITHUB_STEP_SUMMARY
254
- echo "" >> $GITHUB_STEP_SUMMARY
255
- if [ "${{ github.event.inputs.dry_run }}" = "true" ]; then
256
- echo "⚠️ **DRY RUN MODE** - No actual release was created" >> $GITHUB_STEP_SUMMARY
257
- fi
258
- echo "" >> $GITHUB_STEP_SUMMARY
259
- echo "- **Package**: ${{ matrix.package }}" >> $GITHUB_STEP_SUMMARY
260
- echo "- **Version**: ${{ steps.release.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY
261
- echo "- **Bump Type**: ${{ steps.release.outputs.bump_type }}" >> $GITHUB_STEP_SUMMARY
package/.releaserc.json DELETED
@@ -1,73 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "types": {
4
- "feat": {
5
- "title": "✨ Features",
6
- "bump": "minor",
7
- "description": "New features or functionality"
8
- },
9
- "fix": {
10
- "title": "🐛 Bug Fixes",
11
- "bump": "patch",
12
- "description": "Bug fixes and corrections"
13
- },
14
- "perf": {
15
- "title": "⚡ Performance Improvements",
16
- "bump": "patch",
17
- "description": "Performance optimizations"
18
- },
19
- "refactor": {
20
- "title": "♻️ Code Refactoring",
21
- "bump": "patch",
22
- "description": "Code changes that neither fix bugs nor add features"
23
- },
24
- "docs": {
25
- "title": "📚 Documentation",
26
- "bump": null,
27
- "description": "Documentation only changes"
28
- },
29
- "style": {
30
- "title": "💄 Styles",
31
- "bump": null,
32
- "description": "Code style changes (formatting, whitespace)"
33
- },
34
- "test": {
35
- "title": "✅ Tests",
36
- "bump": null,
37
- "description": "Adding or updating tests"
38
- },
39
- "build": {
40
- "title": "📦 Build System",
41
- "bump": "patch",
42
- "description": "Build system or dependency changes"
43
- },
44
- "ci": {
45
- "title": "🔧 CI Configuration",
46
- "bump": null,
47
- "description": "CI/CD configuration changes"
48
- },
49
- "chore": {
50
- "title": "🔨 Chores",
51
- "bump": null,
52
- "description": "Maintenance tasks and other changes"
53
- },
54
- "revert": {
55
- "title": "⏪ Reverts",
56
- "bump": "patch",
57
- "description": "Reverting previous commits"
58
- }
59
- },
60
- "skipCI": [
61
- "[skip ci]",
62
- "[ci skip]",
63
- "[no ci]",
64
- "chore(release)"
65
- ],
66
- "tagPrefix": "v",
67
- "branches": {
68
- "main": "latest",
69
- "next": "next",
70
- "beta": "beta",
71
- "alpha": "alpha"
72
- }
73
- }
package/CHANGELOG.md DELETED
@@ -1,59 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [0.6.0] - 2026-02-28
9
-
10
- ### Added
11
-
12
- - `zenith.strictDomLints` setting: when `true`, ZEN-DOM-* diagnostics are errors; when `false`, hints
13
- - Diagnostics from compiler JSON warnings (schemaVersion=1 contract)
14
- - Debounce and cancellation for compile requests
15
- - On-save validation
16
- - Code actions for ZEN-DOM-* (querySelector → ref, addEventListener → zenOn)
17
- - Code actions for window/document → zenWindow/zenDocument
18
- - Completions for canonical primitives (ref, signal, state, zenOn, zenMount, etc.)
19
-
20
- ### Changed
21
-
22
- - Requires @zenithbuild/compiler ^0.6.0 (schemaVersion + warnings contract)
23
-
24
- ## [0.2.8] - 2026-01-26
25
-
26
- ### 📝 Other Changes
27
-
28
- - **** ()
29
-
30
- ## [0.2.1] - 2026-01-16
31
-
32
- ### 🐛 Bug Fixes
33
-
34
- - **release**: use appendFileSync for GitHub Actions output (6804490)
35
-
36
- ### 📚 Documentation
37
-
38
- - add comprehensive README and MIT license (deefb03)
39
-
40
- ### 📝 Other Changes
41
-
42
- -
43
- 0ce1eea203f4996a793e69bfcdbd698ed7f2df93 ()
44
- -
45
- d7aa26a1ac00dec9f061e575118040e828ba4be5 ()
46
- -
47
- b31fe125ca8732d21ee90c1ffef39df02bf1c2f0 ()
48
- -
49
- 1871b733741dc023b3bf5089189b89fa32cc7f1f ()
50
- -
51
- ba3addf298e5752e0968e3a97f32ea99c35bfbaa ()
52
- - removed node modules (8709b71)
53
- - accidently uploaded node_modules (fa37f0f)
54
- -
55
- 02f92516f3aa5050189f284cf4c8293bca3e25a8 ()
56
- -
57
- 58acde512541446d1008d0dbb154aee69410be87 ()
58
- - ()
59
-
package/RELEASE_NOTES.md DELETED
@@ -1,33 +0,0 @@
1
- # 🚀 @zenithbuild/language-server v0.2.9
2
-
3
- ## [0.2.9] - 2026-02-15
4
-
5
- ### ✨ Contract Updates
6
-
7
- - Added component script policy diagnostics with configurable mode:
8
- - `zenith.componentScripts = "forbid" | "allow"`.
9
- - Added event binding syntax diagnostics and quick fixes:
10
- - invalid: `onclick="..."`, `@click={...}`
11
- - valid: `on:click={handler}`.
12
- - Added Tailwind v4-compatible CSS import contract diagnostics:
13
- - allow local CSS imports (including `?query`/`#hash` suffixes)
14
- - fail bare CSS package imports and project-root traversal escapes.
15
- - Added workspace-aware project root resolution heuristics.
16
- - Added unit tests for root resolution, CSS suffix/path contracts, component script diagnostics, and event-binding code actions.
17
-
18
-
19
-
20
- ## 📦 Installation
21
-
22
- ```bash
23
- bun add @zenithbuild/language-server@0.2.9
24
- ```
25
-
26
- *or with npm:*
27
-
28
- ```bash
29
- npm install @zenithbuild/language-server@0.2.9
30
- ```
31
-
32
- ---
33
- *Generated by Zenith Automated Release*
@@ -1,39 +0,0 @@
1
- # @zenithbuild/language-server v0.6.0
2
-
3
- ## Summary
4
-
5
- - ZEN-DOM-* diagnostics from compiler JSON; severity flips with `strictDomLints`
6
- - Debounced diagnostics (150ms) + on-save validation; last edit wins
7
- - Code actions for ZEN-DOM-QUERY, ZEN-DOM-LISTENER, ZEN-DOM-WRAPPER + window/document convenience
8
-
9
- ## Breaking Changes
10
-
11
- None.
12
-
13
- ## Key Changes
14
-
15
- - **Diagnostics:** Surface compiler `warnings` as LSP diagnostics; `strictDomLints` setting (warning → error)
16
- - **Debounce:** 150ms idle before validation; immediate validation on save
17
- - **Cancellation:** Only latest validation sends diagnostics
18
- - **Code actions:** Suppress/ref for ZEN-DOM-QUERY; zenOn template for ZEN-DOM-LISTENER; zenWindow/zenDocument for ZEN-DOM-WRAPPER
19
- - **Convenience:** "Replace with zenWindow()" / "Replace with zenDocument()" on identifier selection (no diagnostic required)
20
- - **Completions:** zenMount, zenWindow, zenDocument, zenOn, zenResize, collectRefs, signal, ref; soft suggestions for window/document
21
-
22
- ## Diagnostics / UX Highlights
23
-
24
- | Code | Default | strictDomLints: true |
25
- |------|---------|---------------------|
26
- | ZEN-DOM-QUERY | Warning | Error |
27
- | ZEN-DOM-LISTENER | Warning | Error |
28
- | ZEN-DOM-WRAPPER | Warning | Error |
29
-
30
- ## Upgrade Notes
31
-
32
- Requires `@zenithbuild/compiler` with JSON `schemaVersion` and `warnings` (v0.6.0+).
33
-
34
- ## Verification Checklist
35
-
36
- - [ ] Type `document.querySelector(` → ZEN-DOM-QUERY warning + quick fixes
37
- - [ ] Toggle `zenith.strictDomLints` → severity flips to error
38
- - [ ] Select `window` → "Replace with zenWindow()" code action
39
- - [ ] Rapid typing does not spawn excessive compiler processes