diff --git a/.vscode/launch.json b/.vscode/launch.json index 97ad8d08213..49d3780bb4e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -20,7 +20,7 @@ "runtimeExecutable": "${execPath}", "args": [ "--disable-extensions", - "--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/npm/vscode-ng-language-service/vsix_sandbox" + "--extensionDevelopmentPath=${workspaceFolder}/dist/bin/vscode-ng-language-service/development_package" ], "preLaunchTask": "VSCE: package" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 81f30a583c9..60a294f9d2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1305,12 +1305,9 @@ importers: vscode-ng-language-service: dependencies: '@angular/language-service': - specifier: 21.0.0-next.7 - version: 21.0.0-next.7 + specifier: workspace:* + version: link:../packages/language-service devDependencies: - '@angular/core': - specifier: 21.0.0-next.7 - version: 21.0.0-next.7(@angular/compiler@21.0.0-next.7) '@types/jasmine': specifier: ~5.1.9 version: 5.1.9 @@ -1382,7 +1379,7 @@ importers: dependencies: '@angular/common': specifier: 21.0.0-next.7 - version: 21.0.0-next.7(@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7))(rxjs@7.8.2) + version: 21.0.0-next.7(@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2))(rxjs@7.8.2) '@angular/compiler': specifier: 21.0.0-next.7 version: 21.0.0-next.7 @@ -1391,7 +1388,7 @@ importers: version: 21.0.0-next.7(@angular/compiler@21.0.0-next.7)(typescript@5.9.3) '@angular/core': specifier: 21.0.0-next.7 - version: 21.0.0-next.7(@angular/compiler@21.0.0-next.7) + version: 21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2) rxjs: specifier: 7.8.2 version: 7.8.2 @@ -1406,8 +1403,8 @@ importers: vscode-ng-language-service/server: dependencies: '@angular/language-service': - specifier: 21.0.0-next.7 - version: 21.0.0-next.7 + specifier: workspace:* + version: link:../../packages/language-service typescript: specifier: 5.9.3 version: 5.9.3 @@ -1753,6 +1750,7 @@ packages: engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: '@angular/compiler': 21.0.0-next.7 + rxjs: ^6.5.3 || ^7.4.0 peerDependenciesMeta: '@angular/compiler': optional: true @@ -1761,10 +1759,6 @@ packages: resolution: {tarball: https://codeload.github.com/angular/domino/tar.gz/93e720f143d0296dd2726ffbcf4fc12283363a7b} version: 2.1.6 - '@angular/language-service@21.0.0-next.7': - resolution: {integrity: sha512-aDX+5D+UX/qaakZQM32Z71Iks9TDWaqjYNlMiVePUQSFPh2UZvQ/1a6+iYdhW4rJ7mKOwICIVuIvHlVkGGQ8nw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/material@21.0.0-next.8': resolution: {integrity: sha512-lTv37cioGdq9ko6jESvQ1LiKRX35ozg4cqF8XWs0CGwOt6s9gphntf4zypTEIR1kk/qlHM1Y/2KCew3VYkWUaQ==} peerDependencies: @@ -13583,9 +13577,9 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@21.0.0-next.7(@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7))(rxjs@7.8.2)': + '@angular/common@21.0.0-next.7(@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2))(rxjs@7.8.2)': dependencies: - '@angular/core': 21.0.0-next.7(@angular/compiler@21.0.0-next.7) + '@angular/core': 21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2) rxjs: 7.8.2 tslib: 2.8.1 @@ -13623,7 +13617,7 @@ snapshots: optionalDependencies: '@angular/compiler': link:packages/compiler - '@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7)': + '@angular/core@21.0.0-next.7(@angular/compiler@21.0.0-next.7)(rxjs@7.8.2)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 @@ -13633,8 +13627,6 @@ snapshots: '@angular/domino@https://codeload.github.com/angular/domino/tar.gz/93e720f143d0296dd2726ffbcf4fc12283363a7b': {} - '@angular/language-service@21.0.0-next.7': {} - '@angular/material@21.0.0-next.8(@angular/cdk@21.0.0-next.8(@angular/common@packages+common)(@angular/core@packages+core)(rxjs@7.8.2))(@angular/common@packages+common)(@angular/core@packages+core)(@angular/forms@packages+forms)(@angular/platform-browser@packages+platform-browser)(rxjs@7.8.2)': dependencies: '@angular/cdk': 21.0.0-next.8(@angular/common@packages+common)(@angular/core@packages+core)(rxjs@7.8.2) diff --git a/vscode-ng-language-service/BUILD.bazel b/vscode-ng-language-service/BUILD.bazel index d3115048b80..82b2211635d 100644 --- a/vscode-ng-language-service/BUILD.bazel +++ b/vscode-ng-language-service/BUILD.bazel @@ -23,9 +23,10 @@ expand_template_rule( name = "package_json_expanded", out = "package_expanded.json", stamp_substitutions = { - "0.0.0-PLACEHOLDER": "{{BUILD_SCM_VERSION}}", + "workspace:*": "{{STABLE_PROJECT_VERSION}}", }, substitutions = { + "workspace:*": "0.0.0", "../dist/bin/vscode-ng-language-service/client/src/extension.js": "./index", }, template = "package.json", @@ -34,12 +35,12 @@ expand_template_rule( npm_package( name = "vsix_sandbox", srcs = [ - "package_expanded.json", - "angular.png", "CHANGELOG.md", "README.md", + "angular.png", + "package_expanded.json", "//vscode-ng-language-service/client:index.js", - "//vscode-ng-language-service/server:npm_files", + "//vscode-ng-language-service/server:npm_package", "//vscode-ng-language-service/syntaxes:npm_files", # Transitive closure of npm deps that are marked as "external" in esbuild needed for vsce; # this set was determined manually by running `bazel build //:vsix` and burning down missing packages. @@ -56,7 +57,7 @@ npm_package( ], replace_prefixes = { "package_expanded.json": "package.json", - "server/package_expanded.json": "server/package.json", + "server/npm_package/": "server/", "client/": "", "syntaxes/src/": "syntaxes/", }, @@ -82,16 +83,14 @@ vsce_bin.vsce( ) npm_package( - name = "npm", + name = "development_package", srcs = [ ":vsix", ":vsix_sandbox", ], - data = [ - "//vscode-ng-language-service:node_modules/@angular/language-service", - ], root_paths = [ - "vsix_sandbox", + "vscode-ng-language-service/vsix_sandbox", + "vscode-ng-language-service", ], - visibility = ["//vscode-ng-language-service/integration:__subpackages__"], + visibility = ["//vscode-ng-language-service/integration/e2e:__subpackages__"], ) diff --git a/vscode-ng-language-service/common/resolver.ts b/vscode-ng-language-service/common/resolver.ts index 8ab64515b4e..d04d9edb370 100644 --- a/vscode-ng-language-service/common/resolver.ts +++ b/vscode-ng-language-service/common/resolver.ts @@ -70,7 +70,8 @@ export class Version { } isVersionZero() { - return this.versionStr === '0.0.0'; + // Handle both `0.0.0`, `0.0.0-PLACEHOLDER` and similar + return this.major === 0 && this.minor === 0 && this.patch === 0; } toString(): string { diff --git a/vscode-ng-language-service/integration/e2e/BUILD.bazel b/vscode-ng-language-service/integration/e2e/BUILD.bazel index 29b7c515529..1bbb44c75d9 100644 --- a/vscode-ng-language-service/integration/e2e/BUILD.bazel +++ b/vscode-ng-language-service/integration/e2e/BUILD.bazel @@ -30,7 +30,7 @@ js_test( name = "test", data = [ ":e2e", - "//vscode-ng-language-service:npm", + "//vscode-ng-language-service:development_package", ], entry_point = ":index.js", env = { diff --git a/vscode-ng-language-service/integration/e2e/index.ts b/vscode-ng-language-service/integration/e2e/index.ts index 5416776b367..04cbd501447 100644 --- a/vscode-ng-language-service/integration/e2e/index.ts +++ b/vscode-ng-language-service/integration/e2e/index.ts @@ -9,7 +9,7 @@ import {mkdtemp} from 'node:fs/promises'; import Xvfb from 'xvfb'; async function main() { - const EXT_DEVELOPMENT_PATH = join(PACKAGE_ROOT, 'npm/vscode-ng-language-service/vsix_sandbox'); + const EXT_DEVELOPMENT_PATH = join(PACKAGE_ROOT, 'development_package'); const EXT_TESTS_PATH = join(PACKAGE_ROOT, 'integration', 'e2e', 'jasmine'); const xvfb = new Xvfb(); diff --git a/vscode-ng-language-service/package.json b/vscode-ng-language-service/package.json index d0bd6a2dccd..98ffe18d883 100644 --- a/vscode-ng-language-service/package.json +++ b/vscode-ng-language-service/package.json @@ -2,7 +2,8 @@ "name": "ng-template", "displayName": "Angular Language Service", "description": "Editor services for Angular templates", - "version": "20.2.2", + "version": "0.0.0", + "private": true, "publisher": "Angular", "icon": "angular.png", "license": "MIT", @@ -246,7 +247,7 @@ "scripts": { "build:syntaxes": "bazel run //vscode-ng-language-service/syntaxes:syntaxes", "watch": "ibazel build //vscode-ng-language-service/client/src //vscode-ng-language-service/server/src", - "package": "bazel build //vscode-ng-language-service:npm --config=release", + "package": "bazel build //vscode-ng-language-service:development_package --config=release", "test": "bazel test --test_tag_filters=unit_test //vscode-ng-language-service/...", "test:watch": "ibazel test --test_tag_filters=unit_test //vscode-ng-language-service/...", "test:lsp": "bazel test --test_output=streamed //vscode-ng-language-service/integration/lsp:test", @@ -257,10 +258,9 @@ "test:inspect-syntaxes": "bazel run --config=debug //vscode-ng-language-service/syntaxes/test:test" }, "dependencies": { - "@angular/language-service": "21.0.0-next.7" + "@angular/language-service": "workspace:*" }, "devDependencies": { - "@angular/core": "21.0.0-next.7", "@types/jasmine": "~5.1.9", "@types/jasmine-reporters": "~2.5.3", "@types/node": "^24.5.2", diff --git a/vscode-ng-language-service/server/BUILD.bazel b/vscode-ng-language-service/server/BUILD.bazel index e50910a5e8c..79fa4183303 100644 --- a/vscode-ng-language-service/server/BUILD.bazel +++ b/vscode-ng-language-service/server/BUILD.bazel @@ -1,5 +1,6 @@ load("@aspect_bazel_lib//lib:expand_template.bzl", "expand_template_rule") load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild") +load("@aspect_rules_js//npm:defs.bzl", "npm_package") load("@aspect_rules_ts//ts:defs.bzl", "ts_config") load("@npm//:defs.bzl", "npm_link_all_packages") @@ -73,21 +74,27 @@ expand_template_rule( name = "package_json_expanded", out = "package_expanded.json", stamp_substitutions = { - "0.0.0-PLACEHOLDER": "{{BUILD_SCM_VERSION}}", + "0.0.0-PLACEHOLDER": "{{STABLE_PROJECT_VERSION}}", + "workspace:*": "{{STABLE_PROJECT_VERSION}}", }, substitutions = { + "0.0.0-PLACEHOLDER": "0.0.0", + "workspace:*": "0.0.0", "../../dist/bin/vscode-ng-language-service/server/src/server.js": "./index.js", }, template = "package.json", ) -filegroup( - name = "npm_files", +npm_package( + name = "npm_package", srcs = [ "README.md", "bin/ngserver", "index.js", "package_expanded.json", ], + replace_prefixes = { + "package_expanded.json": "package.json", + }, visibility = ["//vscode-ng-language-service:__pkg__"], ) diff --git a/vscode-ng-language-service/server/package.json b/vscode-ng-language-service/server/package.json index 620269c049c..1438d77b175 100644 --- a/vscode-ng-language-service/server/package.json +++ b/vscode-ng-language-service/server/package.json @@ -17,7 +17,7 @@ "ngserver": "./bin/ngserver" }, "dependencies": { - "@angular/language-service": "21.0.0-next.7", + "@angular/language-service": "workspace:*", "typescript": "5.9.3" }, "devDependencies": {