@stylelint/language-server 1.0.0
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/LICENSE +22 -0
- package/README.md +39 -0
- package/bin/stylelint-language-server.mjs +25 -0
- package/build/di/container.d.ts +12 -0
- package/build/di/container.js +76 -0
- package/build/di/container.js.map +1 -0
- package/build/di/hooks.d.ts +16 -0
- package/build/di/hooks.js +25 -0
- package/build/di/hooks.js.map +1 -0
- package/build/di/index.d.ts +7 -0
- package/build/di/index.js +8 -0
- package/build/di/index.js.map +1 -0
- package/build/di/inject.d.ts +48 -0
- package/build/di/inject.js +55 -0
- package/build/di/inject.js.map +1 -0
- package/build/di/module.d.ts +51 -0
- package/build/di/module.js +93 -0
- package/build/di/module.js.map +1 -0
- package/build/di/runtime/application.d.ts +17 -0
- package/build/di/runtime/application.js +209 -0
- package/build/di/runtime/application.js.map +1 -0
- package/build/di/runtime/decorators.d.ts +14 -0
- package/build/di/runtime/decorators.js +26 -0
- package/build/di/runtime/decorators.js.map +1 -0
- package/build/di/runtime/index.d.ts +3 -0
- package/build/di/runtime/index.js +4 -0
- package/build/di/runtime/index.js.map +1 -0
- package/build/di/runtime/symbols.d.ts +1 -0
- package/build/di/runtime/symbols.js +2 -0
- package/build/di/runtime/symbols.js.map +1 -0
- package/build/di/runtime/types.d.ts +20 -0
- package/build/di/runtime/types.js +2 -0
- package/build/di/runtime/types.js.map +1 -0
- package/build/di/tokens.d.ts +8 -0
- package/build/di/tokens.js +7 -0
- package/build/di/tokens.js.map +1 -0
- package/build/di/types.d.ts +16 -0
- package/build/di/types.js +2 -0
- package/build/di/types.js.map +1 -0
- package/build/server/config/default-options.d.ts +2 -0
- package/build/server/config/default-options.js +29 -0
- package/build/server/config/default-options.js.map +1 -0
- package/build/server/decorators.d.ts +121 -0
- package/build/server/decorators.js +272 -0
- package/build/server/decorators.js.map +1 -0
- package/build/server/index.d.ts +2 -0
- package/build/server/index.js +3 -0
- package/build/server/index.js.map +1 -0
- package/build/server/modules/documents.module.d.ts +1 -0
- package/build/server/modules/documents.module.js +12 -0
- package/build/server/modules/documents.module.js.map +1 -0
- package/build/server/modules/index.d.ts +6 -0
- package/build/server/modules/index.js +7 -0
- package/build/server/modules/index.js.map +1 -0
- package/build/server/modules/infrastructure.module.d.ts +1 -0
- package/build/server/modules/infrastructure.module.js +7 -0
- package/build/server/modules/infrastructure.module.js.map +1 -0
- package/build/server/modules/lsp.module.d.ts +1 -0
- package/build/server/modules/lsp.module.js +18 -0
- package/build/server/modules/lsp.module.js.map +1 -0
- package/build/server/modules/platform.module.d.ts +4 -0
- package/build/server/modules/platform.module.js +33 -0
- package/build/server/modules/platform.module.js.map +1 -0
- package/build/server/modules/stylelint-runtime.module.d.ts +1 -0
- package/build/server/modules/stylelint-runtime.module.js +19 -0
- package/build/server/modules/stylelint-runtime.module.js.map +1 -0
- package/build/server/modules/workspace.module.d.ts +1 -0
- package/build/server/modules/workspace.module.js +7 -0
- package/build/server/modules/workspace.module.js.map +1 -0
- package/build/server/runtime/application.d.ts +19 -0
- package/build/server/runtime/application.js +22 -0
- package/build/server/runtime/application.js.map +1 -0
- package/build/server/runtime/language-server-feature.d.ts +13 -0
- package/build/server/runtime/language-server-feature.js +142 -0
- package/build/server/runtime/language-server-feature.js.map +1 -0
- package/build/server/runtime/lsp-service-runtime.d.ts +15 -0
- package/build/server/runtime/lsp-service-runtime.js +133 -0
- package/build/server/runtime/lsp-service-runtime.js.map +1 -0
- package/build/server/server.d.ts +13 -0
- package/build/server/server.js +38 -0
- package/build/server/server.js.map +1 -0
- package/build/server/server.module.d.ts +1 -0
- package/build/server/server.module.js +13 -0
- package/build/server/server.module.js.map +1 -0
- package/build/server/services/documents/document-diagnostics.service.d.ts +15 -0
- package/build/server/services/documents/document-diagnostics.service.js +88 -0
- package/build/server/services/documents/document-diagnostics.service.js.map +1 -0
- package/build/server/services/documents/document-fixes.service.d.ts +14 -0
- package/build/server/services/documents/document-fixes.service.js +94 -0
- package/build/server/services/documents/document-fixes.service.js.map +1 -0
- package/build/server/services/documents/index.d.ts +2 -0
- package/build/server/services/documents/index.js +3 -0
- package/build/server/services/documents/index.js.map +1 -0
- package/build/server/services/index.d.ts +5 -0
- package/build/server/services/index.js +6 -0
- package/build/server/services/index.js.map +1 -0
- package/build/server/services/infrastructure/command.service.d.ts +22 -0
- package/build/server/services/infrastructure/command.service.js +151 -0
- package/build/server/services/infrastructure/command.service.js.map +1 -0
- package/build/server/services/infrastructure/index.d.ts +4 -0
- package/build/server/services/infrastructure/index.js +5 -0
- package/build/server/services/infrastructure/index.js.map +1 -0
- package/build/server/services/infrastructure/logging.service.d.ts +6 -0
- package/build/server/services/infrastructure/logging.service.js +4 -0
- package/build/server/services/infrastructure/logging.service.js.map +1 -0
- package/build/server/services/infrastructure/notification.service.d.ts +24 -0
- package/build/server/services/infrastructure/notification.service.js +142 -0
- package/build/server/services/infrastructure/notification.service.js.map +1 -0
- package/build/server/services/infrastructure/winston-logging.service.d.ts +10 -0
- package/build/server/services/infrastructure/winston-logging.service.js +48 -0
- package/build/server/services/infrastructure/winston-logging.service.js.map +1 -0
- package/build/server/services/lsp/auto-fix.service.d.ts +15 -0
- package/build/server/services/lsp/auto-fix.service.js +142 -0
- package/build/server/services/lsp/auto-fix.service.js.map +1 -0
- package/build/server/services/lsp/code-actions/code-action.service.d.ts +18 -0
- package/build/server/services/lsp/code-actions/code-action.service.js +288 -0
- package/build/server/services/lsp/code-actions/code-action.service.js.map +1 -0
- package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.d.ts +11 -0
- package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.js +72 -0
- package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.js.map +1 -0
- package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.d.ts +12 -0
- package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.js +80 -0
- package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.js.map +1 -0
- package/build/server/services/lsp/code-actions/index.d.ts +3 -0
- package/build/server/services/lsp/code-actions/index.js +4 -0
- package/build/server/services/lsp/code-actions/index.js.map +1 -0
- package/build/server/services/lsp/completion.service.d.ts +12 -0
- package/build/server/services/lsp/completion.service.js +183 -0
- package/build/server/services/lsp/completion.service.js.map +1 -0
- package/build/server/services/lsp/empty-config-warning.service.d.ts +17 -0
- package/build/server/services/lsp/empty-config-warning.service.js +149 -0
- package/build/server/services/lsp/empty-config-warning.service.js.map +1 -0
- package/build/server/services/lsp/formatter.service.d.ts +16 -0
- package/build/server/services/lsp/formatter.service.js +215 -0
- package/build/server/services/lsp/formatter.service.js.map +1 -0
- package/build/server/services/lsp/index.d.ts +8 -0
- package/build/server/services/lsp/index.js +9 -0
- package/build/server/services/lsp/index.js.map +1 -0
- package/build/server/services/lsp/old-stylelint-warning.service.d.ts +13 -0
- package/build/server/services/lsp/old-stylelint-warning.service.js +186 -0
- package/build/server/services/lsp/old-stylelint-warning.service.js.map +1 -0
- package/build/server/services/lsp/validator.service.d.ts +19 -0
- package/build/server/services/lsp/validator.service.js +273 -0
- package/build/server/services/lsp/validator.service.js.map +1 -0
- package/build/server/services/lsp/workspace-activity.service.d.ts +10 -0
- package/build/server/services/lsp/workspace-activity.service.js +76 -0
- package/build/server/services/lsp/workspace-activity.service.js.map +1 -0
- package/build/server/services/services.module.d.ts +1 -0
- package/build/server/services/services.module.js +19 -0
- package/build/server/services/services.module.js.map +1 -0
- package/build/server/services/stylelint-runtime/global-path-resolver.service.d.ts +38 -0
- package/build/server/services/stylelint-runtime/global-path-resolver.service.js +223 -0
- package/build/server/services/stylelint-runtime/global-path-resolver.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/index.d.ts +11 -0
- package/build/server/services/stylelint-runtime/index.js +12 -0
- package/build/server/services/stylelint-runtime/index.js.map +1 -0
- package/build/server/services/stylelint-runtime/package-root-cache.service.d.ts +9 -0
- package/build/server/services/stylelint-runtime/package-root-cache.service.js +141 -0
- package/build/server/services/stylelint-runtime/package-root-cache.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/package-root.service.d.ts +8 -0
- package/build/server/services/stylelint-runtime/package-root.service.js +119 -0
- package/build/server/services/stylelint-runtime/package-root.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.d.ts +16 -0
- package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.js +195 -0
- package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/process-runner.service.d.ts +30 -0
- package/build/server/services/stylelint-runtime/process-runner.service.js +149 -0
- package/build/server/services/stylelint-runtime/process-runner.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/stylelint-options.service.d.ts +12 -0
- package/build/server/services/stylelint-runtime/stylelint-options.service.js +185 -0
- package/build/server/services/stylelint-runtime/stylelint-options.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/stylelint-runner.service.d.ts +42 -0
- package/build/server/services/stylelint-runtime/stylelint-runner.service.js +478 -0
- package/build/server/services/stylelint-runtime/stylelint-runner.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/worker-environment.service.d.ts +17 -0
- package/build/server/services/stylelint-runtime/worker-environment.service.js +135 -0
- package/build/server/services/stylelint-runtime/worker-environment.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/worker-process.service.d.ts +8 -0
- package/build/server/services/stylelint-runtime/worker-process.service.js +66 -0
- package/build/server/services/stylelint-runtime/worker-process.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/worker-registry.service.d.ts +19 -0
- package/build/server/services/stylelint-runtime/worker-registry.service.js +289 -0
- package/build/server/services/stylelint-runtime/worker-registry.service.js.map +1 -0
- package/build/server/services/stylelint-runtime/workspace-stylelint.service.d.ts +37 -0
- package/build/server/services/stylelint-runtime/workspace-stylelint.service.js +185 -0
- package/build/server/services/stylelint-runtime/workspace-stylelint.service.js.map +1 -0
- package/build/server/services/workspace/index.d.ts +2 -0
- package/build/server/services/workspace/index.js +3 -0
- package/build/server/services/workspace/index.js.map +1 -0
- package/build/server/services/workspace/workspace-folder.service.d.ts +18 -0
- package/build/server/services/workspace/workspace-folder.service.js +101 -0
- package/build/server/services/workspace/workspace-folder.service.js.map +1 -0
- package/build/server/services/workspace/workspace-options.service.d.ts +12 -0
- package/build/server/services/workspace/workspace-options.service.js +125 -0
- package/build/server/services/workspace/workspace-options.service.js.map +1 -0
- package/build/server/stylelint/disable-metadata-lookup-table.d.ts +20 -0
- package/build/server/stylelint/disable-metadata-lookup-table.js +68 -0
- package/build/server/stylelint/disable-metadata-lookup-table.js.map +1 -0
- package/build/server/stylelint/formatting-options-to-rules.d.ts +12 -0
- package/build/server/stylelint/formatting-options-to-rules.js +19 -0
- package/build/server/stylelint/formatting-options-to-rules.js.map +1 -0
- package/build/server/stylelint/get-disable-diagnostic-rule.d.ts +7 -0
- package/build/server/stylelint/get-disable-diagnostic-rule.js +22 -0
- package/build/server/stylelint/get-disable-diagnostic-rule.js.map +1 -0
- package/build/server/stylelint/index.d.ts +7 -0
- package/build/server/stylelint/index.js +8 -0
- package/build/server/stylelint/index.js.map +1 -0
- package/build/server/stylelint/is-disable-report-rule.d.ts +6 -0
- package/build/server/stylelint/is-disable-report-rule.js +17 -0
- package/build/server/stylelint/is-disable-report-rule.js.map +1 -0
- package/build/server/stylelint/load-stylelint.d.ts +23 -0
- package/build/server/stylelint/load-stylelint.js +173 -0
- package/build/server/stylelint/load-stylelint.js.map +1 -0
- package/build/server/stylelint/process-linter-result.d.ts +32 -0
- package/build/server/stylelint/process-linter-result.js +129 -0
- package/build/server/stylelint/process-linter-result.js.map +1 -0
- package/build/server/stylelint/types.d.ts +143 -0
- package/build/server/stylelint/types.js +47 -0
- package/build/server/stylelint/types.js.map +1 -0
- package/build/server/stylelint/warning-to-diagnostic.d.ts +46 -0
- package/build/server/stylelint/warning-to-diagnostic.js +143 -0
- package/build/server/stylelint/warning-to-diagnostic.js.map +1 -0
- package/build/server/tokens.d.ts +20 -0
- package/build/server/tokens.js +16 -0
- package/build/server/tokens.js.map +1 -0
- package/build/server/types.d.ts +74 -0
- package/build/server/types.js +18 -0
- package/build/server/types.js.map +1 -0
- package/build/server/utils/documents/create-text-edits.d.ts +10 -0
- package/build/server/utils/documents/create-text-edits.js +31 -0
- package/build/server/utils/documents/create-text-edits.js.map +1 -0
- package/build/server/utils/documents/get-disable-type.d.ts +26 -0
- package/build/server/utils/documents/get-disable-type.js +32 -0
- package/build/server/utils/documents/get-disable-type.js.map +1 -0
- package/build/server/utils/documents/get-edit-info.d.ts +14 -0
- package/build/server/utils/documents/get-edit-info.js +31 -0
- package/build/server/utils/documents/get-edit-info.js.map +1 -0
- package/build/server/utils/documents/get-fixes.d.ts +12 -0
- package/build/server/utils/documents/get-fixes.js +18 -0
- package/build/server/utils/documents/get-fixes.js.map +1 -0
- package/build/server/utils/documents/index.d.ts +4 -0
- package/build/server/utils/documents/index.js +5 -0
- package/build/server/utils/documents/index.js.map +1 -0
- package/build/server/utils/errors.d.ts +10 -0
- package/build/server/utils/errors.js +89 -0
- package/build/server/utils/errors.js.map +1 -0
- package/build/server/utils/fs.d.ts +4 -0
- package/build/server/utils/fs.js +11 -0
- package/build/server/utils/fs.js.map +1 -0
- package/build/server/utils/functions/get-first-return-value.d.ts +11 -0
- package/build/server/utils/functions/get-first-return-value.js +28 -0
- package/build/server/utils/functions/get-first-return-value.js.map +1 -0
- package/build/server/utils/functions/index.d.ts +2 -0
- package/build/server/utils/functions/index.js +3 -0
- package/build/server/utils/functions/index.js.map +1 -0
- package/build/server/utils/functions/lazy-call.d.ts +12 -0
- package/build/server/utils/functions/lazy-call.js +33 -0
- package/build/server/utils/functions/lazy-call.js.map +1 -0
- package/build/server/utils/index.d.ts +11 -0
- package/build/server/utils/index.js +12 -0
- package/build/server/utils/index.js.map +1 -0
- package/build/server/utils/iterables.d.ts +8 -0
- package/build/server/utils/iterables.js +15 -0
- package/build/server/utils/iterables.js.map +1 -0
- package/build/server/utils/logging/error-formatter.d.ts +7 -0
- package/build/server/utils/logging/error-formatter.js +14 -0
- package/build/server/utils/logging/error-formatter.js.map +1 -0
- package/build/server/utils/logging/get-log-function.d.ts +8 -0
- package/build/server/utils/logging/get-log-function.js +11 -0
- package/build/server/utils/logging/get-log-function.js.map +1 -0
- package/build/server/utils/logging/index.d.ts +4 -0
- package/build/server/utils/logging/index.js +5 -0
- package/build/server/utils/logging/index.js.map +1 -0
- package/build/server/utils/logging/language-server-formatter.d.ts +19 -0
- package/build/server/utils/logging/language-server-formatter.js +55 -0
- package/build/server/utils/logging/language-server-formatter.js.map +1 -0
- package/build/server/utils/logging/language-server-transport.d.ts +19 -0
- package/build/server/utils/logging/language-server-transport.js +39 -0
- package/build/server/utils/logging/language-server-transport.js.map +1 -0
- package/build/server/utils/lsp/create-disable-completion-item.d.ts +7 -0
- package/build/server/utils/lsp/create-disable-completion-item.js +32 -0
- package/build/server/utils/lsp/create-disable-completion-item.js.map +1 -0
- package/build/server/utils/lsp/display-error.d.ts +7 -0
- package/build/server/utils/lsp/display-error.js +24 -0
- package/build/server/utils/lsp/display-error.js.map +1 -0
- package/build/server/utils/lsp/index.d.ts +4 -0
- package/build/server/utils/lsp/index.js +5 -0
- package/build/server/utils/lsp/index.js.map +1 -0
- package/build/server/utils/lsp/rule-code-actions-collection.d.ts +29 -0
- package/build/server/utils/lsp/rule-code-actions-collection.js +61 -0
- package/build/server/utils/lsp/rule-code-actions-collection.js.map +1 -0
- package/build/server/utils/lsp/types.d.ts +22 -0
- package/build/server/utils/lsp/types.js +2 -0
- package/build/server/utils/lsp/types.js.map +1 -0
- package/build/server/utils/objects/index.d.ts +3 -0
- package/build/server/utils/objects/index.js +4 -0
- package/build/server/utils/objects/index.js.map +1 -0
- package/build/server/utils/objects/is-object.d.ts +8 -0
- package/build/server/utils/objects/is-object.js +13 -0
- package/build/server/utils/objects/is-object.js.map +1 -0
- package/build/server/utils/objects/merge-assign.d.ts +8 -0
- package/build/server/utils/objects/merge-assign.js +38 -0
- package/build/server/utils/objects/merge-assign.js.map +1 -0
- package/build/server/utils/objects/merge-options-with-defaults.d.ts +5 -0
- package/build/server/utils/objects/merge-options-with-defaults.js +56 -0
- package/build/server/utils/objects/merge-options-with-defaults.js.map +1 -0
- package/build/server/utils/sets.d.ts +6 -0
- package/build/server/utils/sets.js +22 -0
- package/build/server/utils/sets.js.map +1 -0
- package/build/server/utils/strings.d.ts +12 -0
- package/build/server/utils/strings.js +20 -0
- package/build/server/utils/strings.js.map +1 -0
- package/build/server/utils/types.d.ts +27 -0
- package/build/server/utils/types.js +2 -0
- package/build/server/utils/types.js.map +1 -0
- package/build/server/worker/types.d.ts +63 -0
- package/build/server/worker/types.js +2 -0
- package/build/server/worker/types.js.map +1 -0
- package/build/server/worker/worker-entry.d.ts +1 -0
- package/build/server/worker/worker-entry.js +320 -0
- package/build/server/worker/worker-entry.js.map +1 -0
- package/build/server/worker/worker-logging.service.d.ts +18 -0
- package/build/server/worker/worker-logging.service.js +61 -0
- package/build/server/worker/worker-logging.service.js.map +1 -0
- package/build/server/worker/worker-process.d.ts +54 -0
- package/build/server/worker/worker-process.js +266 -0
- package/build/server/worker/worker-process.js.map +1 -0
- package/build/shared/log-level.d.ts +5 -0
- package/build/shared/log-level.js +11 -0
- package/build/shared/log-level.js.map +1 -0
- package/build/shared/types.d.ts +9 -0
- package/build/shared/types.js +3 -0
- package/build/shared/types.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import fs from 'node:fs/promises';
|
|
36
|
+
import path from 'node:path';
|
|
37
|
+
import process from 'node:process';
|
|
38
|
+
import { inject } from '../../../di/index.js';
|
|
39
|
+
import { normalizeFsPath } from '../../utils/index.js';
|
|
40
|
+
import { FsPromisesModuleToken, PathModuleToken } from '../../tokens.js';
|
|
41
|
+
const pnpRegisterFilenames = ['.pnp.cjs', '.pnp.js'];
|
|
42
|
+
const pnpLoaderFilename = '.pnp.loader.mjs';
|
|
43
|
+
const pnpConfigFilenames = new Set([...pnpRegisterFilenames, pnpLoaderFilename]);
|
|
44
|
+
export const resolvePnPConfigKey = (config) => `${config?.registerPath ?? ''}|${config?.loaderPath ?? ''}`;
|
|
45
|
+
let PnPConfigurationCacheService = (() => {
|
|
46
|
+
let _classDecorators = [inject({
|
|
47
|
+
inject: [FsPromisesModuleToken, PathModuleToken],
|
|
48
|
+
})];
|
|
49
|
+
let _classDescriptor;
|
|
50
|
+
let _classExtraInitializers = [];
|
|
51
|
+
let _classThis;
|
|
52
|
+
var PnPConfigurationCacheService = class {
|
|
53
|
+
static { _classThis = this; }
|
|
54
|
+
static {
|
|
55
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
56
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
57
|
+
PnPConfigurationCacheService = _classThis = _classDescriptor.value;
|
|
58
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
59
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
60
|
+
}
|
|
61
|
+
#fs;
|
|
62
|
+
#path;
|
|
63
|
+
#cache = new Map();
|
|
64
|
+
constructor(fsModule, pathModule) {
|
|
65
|
+
this.#fs = fsModule ?? fs;
|
|
66
|
+
this.#path = pathModule ?? path;
|
|
67
|
+
}
|
|
68
|
+
async findConfiguration(codeFilename) {
|
|
69
|
+
if (!codeFilename) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
let currentDir = this.#path.dirname(codeFilename);
|
|
73
|
+
const visitedKeys = [];
|
|
74
|
+
while (true) {
|
|
75
|
+
const cacheKey = this.#normalizeCachePath(currentDir);
|
|
76
|
+
visitedKeys.push(cacheKey);
|
|
77
|
+
const cached = this.#cache.get(cacheKey);
|
|
78
|
+
if (cached !== undefined) {
|
|
79
|
+
if (cached) {
|
|
80
|
+
this.#populateCache(visitedKeys, cached);
|
|
81
|
+
return cached;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const config = await this.#readPnPConfiguration(currentDir);
|
|
86
|
+
if (config) {
|
|
87
|
+
this.#cache.set(cacheKey, config);
|
|
88
|
+
this.#populateCache(visitedKeys, config);
|
|
89
|
+
return config;
|
|
90
|
+
}
|
|
91
|
+
this.#cache.set(cacheKey, null);
|
|
92
|
+
}
|
|
93
|
+
const parent = this.#path.dirname(currentDir);
|
|
94
|
+
if (parent === currentDir) {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
currentDir = parent;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
invalidateForFile(filePath) {
|
|
101
|
+
if (!filePath) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const baseName = this.#path.basename(filePath);
|
|
105
|
+
if (!pnpConfigFilenames.has(baseName)) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.#invalidatePnPConfigCache(this.#path.dirname(filePath));
|
|
109
|
+
}
|
|
110
|
+
clearForWorkspace(workspaceFolder) {
|
|
111
|
+
this.#deleteCacheEntriesWithinPath(workspaceFolder);
|
|
112
|
+
}
|
|
113
|
+
clear() {
|
|
114
|
+
this.#cache.clear();
|
|
115
|
+
}
|
|
116
|
+
resolveConfigKey(config) {
|
|
117
|
+
return resolvePnPConfigKey(config);
|
|
118
|
+
}
|
|
119
|
+
async #readPnPConfiguration(directory) {
|
|
120
|
+
for (const filename of pnpRegisterFilenames) {
|
|
121
|
+
const registerPath = await this.#statIfFile(this.#path.join(directory, filename));
|
|
122
|
+
if (registerPath) {
|
|
123
|
+
const loaderPath = await this.#statIfFile(this.#path.join(directory, pnpLoaderFilename));
|
|
124
|
+
return { registerPath, loaderPath };
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
async #statIfFile(filePath) {
|
|
130
|
+
try {
|
|
131
|
+
const stats = await this.#fs.stat(filePath);
|
|
132
|
+
if (stats.isFile()) {
|
|
133
|
+
return filePath;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// ignore
|
|
138
|
+
}
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
#populateCache(visitedKeys, config) {
|
|
142
|
+
for (const key of visitedKeys) {
|
|
143
|
+
this.#cache.set(key, config);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
#invalidatePnPConfigCache(directory) {
|
|
147
|
+
const normalizedDir = this.#normalizeCachePath(directory);
|
|
148
|
+
for (const [key, value] of this.#cache.entries()) {
|
|
149
|
+
const matchesKey = this.#isWithinNormalizedPath(normalizedDir, key);
|
|
150
|
+
const matchesConfig = value ? this.#pnpConfigMatchesDirectory(value, normalizedDir) : false;
|
|
151
|
+
if (matchesKey || matchesConfig) {
|
|
152
|
+
this.#cache.delete(key);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
#pnpConfigMatchesDirectory(config, normalizedDir) {
|
|
157
|
+
if (config.registerPath) {
|
|
158
|
+
const registerDir = this.#normalizeCachePath(this.#path.dirname(config.registerPath));
|
|
159
|
+
if (this.#isWithinNormalizedPath(normalizedDir, registerDir)) {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (config.loaderPath) {
|
|
164
|
+
const loaderDir = this.#normalizeCachePath(this.#path.dirname(config.loaderPath));
|
|
165
|
+
if (this.#isWithinNormalizedPath(normalizedDir, loaderDir)) {
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
#deleteCacheEntriesWithinPath(rootPath) {
|
|
172
|
+
const normalizedRoot = this.#normalizeCachePath(rootPath);
|
|
173
|
+
for (const key of this.#cache.keys()) {
|
|
174
|
+
if (this.#isWithinNormalizedPath(normalizedRoot, key)) {
|
|
175
|
+
this.#cache.delete(key);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
#normalizeCachePath(value) {
|
|
180
|
+
const absolute = this.#path.isAbsolute(value) ? value : this.#path.resolve(value);
|
|
181
|
+
return normalizeFsPath(absolute) ?? absolute;
|
|
182
|
+
}
|
|
183
|
+
#isWithinNormalizedPath(normalizedRoot, candidateNormalized) {
|
|
184
|
+
const comparableRoot = process.platform === 'win32' ? normalizedRoot.toLowerCase() : normalizedRoot;
|
|
185
|
+
const comparableCandidate = process.platform === 'win32' ? candidateNormalized.toLowerCase() : candidateNormalized;
|
|
186
|
+
if (comparableCandidate === comparableRoot) {
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
return comparableCandidate.startsWith(`${comparableRoot}${path.sep}`);
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
return PnPConfigurationCacheService = _classThis;
|
|
193
|
+
})();
|
|
194
|
+
export { PnPConfigurationCacheService };
|
|
195
|
+
//# sourceMappingURL=pnp-configuration-cache.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pnp-configuration-cache.service.js","sourceRoot":"","sources":["../../../../src/server/services/stylelint-runtime/pnp-configuration-cache.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import cp, { type SpawnOptionsWithoutStdio } from 'node:child_process';
|
|
2
|
+
import readline from 'node:readline';
|
|
3
|
+
/**
|
|
4
|
+
* Executes processes and searches their stdout for matching lines.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ProcessRunnerService {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(childProcessModule?: Pick<typeof cp, 'spawn'>, readlineModule?: Pick<typeof readline, 'createInterface'>);
|
|
9
|
+
/**
|
|
10
|
+
* Runs a process and returns the output as read by the given matcher. The
|
|
11
|
+
* matcher is called for each line of the output with the line. The promise
|
|
12
|
+
* returned by this function is resolved to the first value returned by the
|
|
13
|
+
* matcher once the process has exited.
|
|
14
|
+
*
|
|
15
|
+
* If the matcher returns `undefined`, the line is ignored.
|
|
16
|
+
*
|
|
17
|
+
* If the matcher never returns a value, the promise is resolved to `undefined`.
|
|
18
|
+
*
|
|
19
|
+
* If the matcher throws an error, the promise is rejected with the error and
|
|
20
|
+
* an attempt is made to kill the process.
|
|
21
|
+
*
|
|
22
|
+
* If the process exits with a non-zero exit code or if the child process API
|
|
23
|
+
* emits an error, the promise is rejected with the exit code or error.
|
|
24
|
+
* @param command Shell command or path to executable
|
|
25
|
+
* @param args Arguments to pass to the command
|
|
26
|
+
* @param options Options to pass to the spawner
|
|
27
|
+
* @param matcher Function to match the output line
|
|
28
|
+
*/
|
|
29
|
+
runFindLine<T>(command: string, args: string[], options: SpawnOptionsWithoutStdio | undefined, matcher: (line: string) => T | undefined): Promise<T | undefined>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import cp from 'node:child_process';
|
|
36
|
+
import readline from 'node:readline';
|
|
37
|
+
import { inject } from '../../../di/index.js';
|
|
38
|
+
import { ChildProcessModuleToken, ReadlineModuleToken } from '../../tokens.js';
|
|
39
|
+
/**
|
|
40
|
+
* Executes processes and searches their stdout for matching lines.
|
|
41
|
+
*/
|
|
42
|
+
let ProcessRunnerService = (() => {
|
|
43
|
+
let _classDecorators = [inject({
|
|
44
|
+
inject: [ChildProcessModuleToken, ReadlineModuleToken],
|
|
45
|
+
})];
|
|
46
|
+
let _classDescriptor;
|
|
47
|
+
let _classExtraInitializers = [];
|
|
48
|
+
let _classThis;
|
|
49
|
+
var ProcessRunnerService = class {
|
|
50
|
+
static { _classThis = this; }
|
|
51
|
+
static {
|
|
52
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
53
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
54
|
+
ProcessRunnerService = _classThis = _classDescriptor.value;
|
|
55
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
56
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
57
|
+
}
|
|
58
|
+
#childProcess;
|
|
59
|
+
#readline;
|
|
60
|
+
constructor(childProcessModule, readlineModule) {
|
|
61
|
+
this.#childProcess = childProcessModule ?? cp;
|
|
62
|
+
this.#readline = readlineModule ?? readline;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Runs a process and returns the output as read by the given matcher. The
|
|
66
|
+
* matcher is called for each line of the output with the line. The promise
|
|
67
|
+
* returned by this function is resolved to the first value returned by the
|
|
68
|
+
* matcher once the process has exited.
|
|
69
|
+
*
|
|
70
|
+
* If the matcher returns `undefined`, the line is ignored.
|
|
71
|
+
*
|
|
72
|
+
* If the matcher never returns a value, the promise is resolved to `undefined`.
|
|
73
|
+
*
|
|
74
|
+
* If the matcher throws an error, the promise is rejected with the error and
|
|
75
|
+
* an attempt is made to kill the process.
|
|
76
|
+
*
|
|
77
|
+
* If the process exits with a non-zero exit code or if the child process API
|
|
78
|
+
* emits an error, the promise is rejected with the exit code or error.
|
|
79
|
+
* @param command Shell command or path to executable
|
|
80
|
+
* @param args Arguments to pass to the command
|
|
81
|
+
* @param options Options to pass to the spawner
|
|
82
|
+
* @param matcher Function to match the output line
|
|
83
|
+
*/
|
|
84
|
+
async runFindLine(command, args, options, matcher) {
|
|
85
|
+
return await new Promise((resolve, reject) => {
|
|
86
|
+
const childProcess = this.#childProcess.spawn(command, args, options);
|
|
87
|
+
const stdoutReader = this.#readline.createInterface({ input: childProcess.stdout });
|
|
88
|
+
let returnValue;
|
|
89
|
+
let exitCode;
|
|
90
|
+
let resolved = false;
|
|
91
|
+
let streamClosed = false;
|
|
92
|
+
const resolveOrRejectIfNeeded = () => {
|
|
93
|
+
if (resolved || exitCode === undefined || !streamClosed) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
resolved = true;
|
|
97
|
+
if (exitCode === 0) {
|
|
98
|
+
resolve(returnValue);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
reject(new Error(`Command "${command}" exited with code ${exitCode}.`));
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const handleError = (error) => {
|
|
105
|
+
resolved = true;
|
|
106
|
+
childProcess.removeAllListeners();
|
|
107
|
+
stdoutReader.close();
|
|
108
|
+
try {
|
|
109
|
+
childProcess.kill();
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// ignore
|
|
113
|
+
}
|
|
114
|
+
reject(error); // eslint-disable-line @typescript-eslint/prefer-promise-reject-errors
|
|
115
|
+
};
|
|
116
|
+
stdoutReader.on('line', (line) => {
|
|
117
|
+
if (resolved || returnValue !== undefined) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
const matched = matcher(line);
|
|
122
|
+
if (matched !== undefined) {
|
|
123
|
+
returnValue = matched;
|
|
124
|
+
}
|
|
125
|
+
resolveOrRejectIfNeeded();
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
handleError(error);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
stdoutReader.on('close', () => {
|
|
132
|
+
if (resolved) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
streamClosed = true;
|
|
136
|
+
resolveOrRejectIfNeeded();
|
|
137
|
+
});
|
|
138
|
+
childProcess.on('error', handleError);
|
|
139
|
+
childProcess.on('exit', (code, signal) => {
|
|
140
|
+
exitCode = code ?? signal;
|
|
141
|
+
resolveOrRejectIfNeeded();
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
return ProcessRunnerService = _classThis;
|
|
147
|
+
})();
|
|
148
|
+
export { ProcessRunnerService };
|
|
149
|
+
//# sourceMappingURL=process-runner.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-runner.service.js","sourceRoot":"","sources":["../../../../src/server/services/stylelint-runtime/process-runner.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import pathIsInside from 'path-is-inside';
|
|
3
|
+
import type stylelint from 'stylelint';
|
|
4
|
+
import { URI } from 'vscode-uri';
|
|
5
|
+
import { normalizeFsPath } from '../../utils/index.js';
|
|
6
|
+
import type { RunnerOptions } from '../../stylelint/types.js';
|
|
7
|
+
import { PackageRootService } from './package-root.service.js';
|
|
8
|
+
export declare class StylelintOptionsService {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(pathModule: typeof path, pathIsInsideFn: typeof pathIsInside, uriModule: typeof URI, packageRootFinder: PackageRootService, normalizeFsPathFn: typeof normalizeFsPath);
|
|
11
|
+
build(uri: string, workspaceFolder?: string, baseOptions?: Partial<stylelint.LinterOptions>, runnerOptions?: RunnerOptions): Promise<Partial<stylelint.LinterOptions>>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { inject } from '../../../di/index.js';
|
|
36
|
+
import { NormalizeFsPathToken, PathIsInsideToken, PathModuleToken, UriModuleToken, } from '../../tokens.js';
|
|
37
|
+
import { PackageRootService } from './package-root.service.js';
|
|
38
|
+
let StylelintOptionsService = (() => {
|
|
39
|
+
let _classDecorators = [inject({
|
|
40
|
+
inject: [
|
|
41
|
+
PathModuleToken,
|
|
42
|
+
PathIsInsideToken,
|
|
43
|
+
UriModuleToken,
|
|
44
|
+
PackageRootService,
|
|
45
|
+
NormalizeFsPathToken,
|
|
46
|
+
],
|
|
47
|
+
})];
|
|
48
|
+
let _classDescriptor;
|
|
49
|
+
let _classExtraInitializers = [];
|
|
50
|
+
let _classThis;
|
|
51
|
+
var StylelintOptionsService = class {
|
|
52
|
+
static { _classThis = this; }
|
|
53
|
+
static {
|
|
54
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
55
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
56
|
+
StylelintOptionsService = _classThis = _classDescriptor.value;
|
|
57
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
58
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
59
|
+
}
|
|
60
|
+
#path;
|
|
61
|
+
#pathIsInside;
|
|
62
|
+
#uri;
|
|
63
|
+
#packageRootFinder;
|
|
64
|
+
#normalizeFsPath;
|
|
65
|
+
constructor(pathModule, pathIsInsideFn, uriModule, packageRootFinder, normalizeFsPathFn) {
|
|
66
|
+
this.#path = pathModule;
|
|
67
|
+
this.#pathIsInside = pathIsInsideFn;
|
|
68
|
+
this.#uri = uriModule;
|
|
69
|
+
this.#packageRootFinder = packageRootFinder;
|
|
70
|
+
this.#normalizeFsPath = normalizeFsPathFn;
|
|
71
|
+
}
|
|
72
|
+
async build(uri, workspaceFolder, baseOptions = {}, runnerOptions = {}) {
|
|
73
|
+
const { config, configFile, configBasedir, customSyntax, ignoreDisables, ignorePath, reportDescriptionlessDisables, reportNeedlessDisables, reportInvalidScopeDisables, } = runnerOptions;
|
|
74
|
+
const runnerOptionsProvided = Object.keys(runnerOptions).length > 0;
|
|
75
|
+
const pathModule = this.#path;
|
|
76
|
+
const options = {
|
|
77
|
+
...baseOptions,
|
|
78
|
+
config: config ?? baseOptions.config,
|
|
79
|
+
configFile: this.#resolvePathTemplate(configFile, workspaceFolder) ?? baseOptions.configFile,
|
|
80
|
+
configBasedir: this.#resolveConfigBasedir(configBasedir, workspaceFolder, baseOptions.configBasedir),
|
|
81
|
+
customSyntax: this.#resolvePathTemplate(customSyntax, workspaceFolder) ?? baseOptions.customSyntax,
|
|
82
|
+
ignoreDisables: ignoreDisables ?? baseOptions.ignoreDisables,
|
|
83
|
+
ignorePath: this.#resolvePathTemplate(ignorePath, workspaceFolder) ?? baseOptions.ignorePath,
|
|
84
|
+
reportDescriptionlessDisables: reportDescriptionlessDisables ?? baseOptions.reportDescriptionlessDisables,
|
|
85
|
+
reportNeedlessDisables: reportNeedlessDisables ?? baseOptions.reportNeedlessDisables,
|
|
86
|
+
reportInvalidScopeDisables: reportInvalidScopeDisables ?? baseOptions.reportInvalidScopeDisables,
|
|
87
|
+
};
|
|
88
|
+
const documentPath = this.#uri.parse(uri).fsPath;
|
|
89
|
+
const normalizedDocumentPath = documentPath ? this.#normalizeFsPath(documentPath) : undefined;
|
|
90
|
+
const normalizedWorkspaceFolder = workspaceFolder
|
|
91
|
+
? this.#normalizeFsPath(workspaceFolder)
|
|
92
|
+
: undefined;
|
|
93
|
+
const packageRoot = normalizedDocumentPath
|
|
94
|
+
? await this.#packageRootFinder.find(normalizedDocumentPath)
|
|
95
|
+
: undefined;
|
|
96
|
+
const normalizedPackageRoot = packageRoot ? this.#normalizeFsPath(packageRoot) : undefined;
|
|
97
|
+
const normalizedDocumentDir = normalizedDocumentPath
|
|
98
|
+
? pathModule.dirname(normalizedDocumentPath)
|
|
99
|
+
: undefined;
|
|
100
|
+
const packageWithinWorkspace = Boolean(normalizedPackageRoot &&
|
|
101
|
+
normalizedWorkspaceFolder &&
|
|
102
|
+
this.#pathIsInside(normalizedPackageRoot, normalizedWorkspaceFolder));
|
|
103
|
+
const documentInWorkspace = Boolean(normalizedDocumentPath &&
|
|
104
|
+
normalizedWorkspaceFolder &&
|
|
105
|
+
this.#pathIsInside(normalizedDocumentPath, normalizedWorkspaceFolder));
|
|
106
|
+
// Working directory selection rules:
|
|
107
|
+
//
|
|
108
|
+
// - If caller provided cwd and the document is inside the workspace,
|
|
109
|
+
// keep the caller's cwd.
|
|
110
|
+
// - If caller provided cwd and the document is outside the workspace,
|
|
111
|
+
// prefer the package root if it exists and is not inside the
|
|
112
|
+
// workspace, otherwise use the workspace folder if given.
|
|
113
|
+
// - If caller did not provide cwd, prefer the package root.
|
|
114
|
+
// - If no package root is found, use the workspace folder when
|
|
115
|
+
// available.
|
|
116
|
+
// - Fall back to the document directory as a last resort.
|
|
117
|
+
//
|
|
118
|
+
// This ensures that linting is done relative to the correct context,
|
|
119
|
+
// which in turn makes sure that .stylelintignore and local configs
|
|
120
|
+
// work as expected in monorepos and packages otherwise deeper in the
|
|
121
|
+
// workspace tree.
|
|
122
|
+
const cwd = (() => {
|
|
123
|
+
if (options.cwd && runnerOptionsProvided) {
|
|
124
|
+
return options.cwd;
|
|
125
|
+
}
|
|
126
|
+
if (options.cwd) {
|
|
127
|
+
if (documentInWorkspace) {
|
|
128
|
+
return options.cwd;
|
|
129
|
+
}
|
|
130
|
+
if (normalizedPackageRoot && !packageWithinWorkspace) {
|
|
131
|
+
return normalizedPackageRoot;
|
|
132
|
+
}
|
|
133
|
+
return normalizedWorkspaceFolder ?? normalizedPackageRoot ?? normalizedDocumentDir;
|
|
134
|
+
}
|
|
135
|
+
if (!documentInWorkspace && normalizedPackageRoot && !packageWithinWorkspace) {
|
|
136
|
+
return normalizedPackageRoot;
|
|
137
|
+
}
|
|
138
|
+
const preferredPackageRoot = normalizedPackageRoot && (!normalizedWorkspaceFolder || packageWithinWorkspace)
|
|
139
|
+
? normalizedPackageRoot
|
|
140
|
+
: undefined;
|
|
141
|
+
return preferredPackageRoot ?? normalizedWorkspaceFolder ?? normalizedDocumentDir;
|
|
142
|
+
})();
|
|
143
|
+
if (cwd) {
|
|
144
|
+
const absoluteCwd = this.#path.isAbsolute(cwd) ? cwd : this.#path.resolve(cwd);
|
|
145
|
+
options.cwd = this.#normalizeDriveCase(absoluteCwd);
|
|
146
|
+
}
|
|
147
|
+
return options;
|
|
148
|
+
}
|
|
149
|
+
// Workaround for Stylelint treating paths as case-sensitive on Windows
|
|
150
|
+
// If the drive letter is lowercase, we need to convert it to uppercase
|
|
151
|
+
// See https://github.com/stylelint/stylelint/issues/5594
|
|
152
|
+
// TODO: Remove once fixed upstream
|
|
153
|
+
#normalizeDriveCase(value) {
|
|
154
|
+
if (this.#path.sep !== '\\') {
|
|
155
|
+
return value;
|
|
156
|
+
}
|
|
157
|
+
return value.replace(/^[a-z]:/, (match) => match.toUpperCase());
|
|
158
|
+
}
|
|
159
|
+
#resolvePathTemplate(value, workspaceFolder) {
|
|
160
|
+
if (!value) {
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
if (!workspaceFolder) {
|
|
164
|
+
return value;
|
|
165
|
+
}
|
|
166
|
+
return value.replace(/\$\{workspaceFolder\}/gu, workspaceFolder);
|
|
167
|
+
}
|
|
168
|
+
#resolveConfigBasedir(value, workspaceFolder, fallback) {
|
|
169
|
+
if (!value) {
|
|
170
|
+
return fallback;
|
|
171
|
+
}
|
|
172
|
+
const pathModule = this.#path;
|
|
173
|
+
if (pathModule.isAbsolute(value)) {
|
|
174
|
+
return value;
|
|
175
|
+
}
|
|
176
|
+
if (!workspaceFolder) {
|
|
177
|
+
return value.replace(/^\.\//u, '');
|
|
178
|
+
}
|
|
179
|
+
return pathModule.join(workspaceFolder, value);
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
return StylelintOptionsService = _classThis;
|
|
183
|
+
})();
|
|
184
|
+
export { StylelintOptionsService };
|
|
185
|
+
//# sourceMappingURL=stylelint-options.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stylelint-options.service.js","sourceRoot":"","sources":["../../../../src/server/services/stylelint-runtime/stylelint-options.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type fs from 'fs/promises';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import type stylelint from 'stylelint';
|
|
5
|
+
import type { Connection } from 'vscode-languageserver';
|
|
6
|
+
import * as LSP from 'vscode-languageserver-protocol';
|
|
7
|
+
import type { TextDocument } from 'vscode-languageserver-textdocument';
|
|
8
|
+
import { URI } from 'vscode-uri';
|
|
9
|
+
import { type LintDiagnostics, type MultiFileLintDiagnostics, type RunnerOptions, type StylelintResolutionResult } from '../../stylelint/types.js';
|
|
10
|
+
import { LoggingService } from '../infrastructure/logging.service.js';
|
|
11
|
+
import { PackageRootService } from './package-root.service.js';
|
|
12
|
+
import { StylelintOptionsService } from './stylelint-options.service.js';
|
|
13
|
+
import { WorkspaceFolderService } from '../workspace/workspace-folder.service.js';
|
|
14
|
+
import { WorkspaceStylelintService } from './workspace-stylelint.service.js';
|
|
15
|
+
/**
|
|
16
|
+
* Runs Stylelint in VS Code.
|
|
17
|
+
*/
|
|
18
|
+
export declare class StylelintRunnerService {
|
|
19
|
+
#private;
|
|
20
|
+
constructor(osModule: typeof os, pathModule: typeof path, uriModule: typeof URI, fsModule: Pick<typeof fs, 'glob'>, connection: Connection, loggingService: LoggingService, workspaceService: WorkspaceStylelintService, workspaceFolderService: WorkspaceFolderService, optionsBuilder: StylelintOptionsService, packageRootFinder: PackageRootService);
|
|
21
|
+
/**
|
|
22
|
+
* Lints the given document using Stylelint. The linting result is then
|
|
23
|
+
* converted to LSP diagnostics and returned.
|
|
24
|
+
* @param document
|
|
25
|
+
* @param linterOptions
|
|
26
|
+
* @param extensionOptions
|
|
27
|
+
*/
|
|
28
|
+
lintDocument(document: TextDocument, linterOptions?: stylelint.LinterOptions, runnerOptions?: RunnerOptions): Promise<LintDiagnostics>;
|
|
29
|
+
/**
|
|
30
|
+
* Lint all files in a workspace folder.
|
|
31
|
+
* @param workspaceFolder Absolute path to the workspace folder.
|
|
32
|
+
* @param runnerOptions Extension options derived from settings.
|
|
33
|
+
*/
|
|
34
|
+
lintWorkspaceFolder(workspaceFolder: string, runnerOptions?: RunnerOptions): Promise<MultiFileLintDiagnostics>;
|
|
35
|
+
resolve(document: TextDocument, runnerOptions?: RunnerOptions): Promise<StylelintResolutionResult | undefined>;
|
|
36
|
+
resolveConfig(document: TextDocument, runnerOptions?: RunnerOptions): Promise<stylelint.Config | undefined>;
|
|
37
|
+
handleDocumentOpened(document: TextDocument): Promise<void>;
|
|
38
|
+
notifyWorkspaceActivity(workspaceFolder: string): void;
|
|
39
|
+
handleWatchedFilesChanged(changes: LSP.FileEvent[]): void;
|
|
40
|
+
disposeWorkspace(workspaceFolder: string): void;
|
|
41
|
+
dispose(): void;
|
|
42
|
+
}
|