@zenithbuild/language-server 0.6.0 → 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/README.md +8 -39
- package/bin/zenith-language-server.js +2 -0
- package/dist/server.mjs +597 -0
- package/package.json +37 -26
- package/.github/workflows/release.yml +0 -261
- package/.releaserc.json +0 -73
- package/CHANGELOG.md +0 -59
- package/RELEASE_NOTES.md +0 -33
- package/RELEASE_NOTES_v0.6.0.md +0 -39
- package/scripts/release.ts +0 -571
- package/src/code-actions.ts +0 -219
- package/src/contracts.ts +0 -100
- package/src/diagnostics.ts +0 -603
- package/src/imports.ts +0 -207
- package/src/metadata/core-imports.ts +0 -163
- package/src/metadata/directive-metadata.ts +0 -109
- package/src/metadata/plugin-imports.ts +0 -116
- package/src/project.ts +0 -283
- package/src/router.ts +0 -180
- package/src/server.ts +0 -937
- package/src/settings.ts +0 -18
- package/src/types/zenith-compiler.d.ts +0 -3
- package/test/contracts.spec.ts +0 -37
- package/test/diagnostics.spec.ts +0 -120
- package/test/fixtures/content-plugin.zen +0 -77
- package/test/fixtures/core-only.zen +0 -59
- package/test/fixtures/no-plugins.zen +0 -115
- package/test/fixtures/router-enabled.zen +0 -76
- package/test/project-root.spec.ts +0 -44
- package/tsconfig.json +0 -25
- package/tsconfig.test.json +0 -25
package/package.json
CHANGED
|
@@ -1,37 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenithbuild/language-server",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "Language Server for Zenith
|
|
5
|
-
"
|
|
6
|
-
"
|
|
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": "
|
|
9
|
-
"
|
|
10
|
-
"test
|
|
11
|
-
"
|
|
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": "
|
|
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/
|
|
25
|
-
"
|
|
26
|
-
"
|
|
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*
|
package/RELEASE_NOTES_v0.6.0.md
DELETED
|
@@ -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
|