@css-modules-kit/ts-plugin 0.6.0 → 0.8.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.
Files changed (46) hide show
  1. package/README.md +53 -20
  2. package/dist/{index.js → index.cjs} +15 -9
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/{index.d.ts → index.d.cts} +1 -1
  5. package/dist/index.d.cts.map +1 -0
  6. package/dist/language-plugin.d.ts +3 -6
  7. package/dist/language-plugin.d.ts.map +1 -1
  8. package/dist/language-plugin.js +19 -29
  9. package/dist/language-plugin.js.map +1 -1
  10. package/dist/language-service/feature/code-fix.js +14 -21
  11. package/dist/language-service/feature/code-fix.js.map +1 -1
  12. package/dist/language-service/feature/completion.js +15 -22
  13. package/dist/language-service/feature/completion.js.map +1 -1
  14. package/dist/language-service/feature/definition-and-bound-span.js +4 -7
  15. package/dist/language-service/feature/definition-and-bound-span.js.map +1 -1
  16. package/dist/language-service/feature/refactor.js +10 -15
  17. package/dist/language-service/feature/refactor.js.map +1 -1
  18. package/dist/language-service/feature/semantic-diagnostic.d.ts.map +1 -1
  19. package/dist/language-service/feature/semantic-diagnostic.js +13 -10
  20. package/dist/language-service/feature/semantic-diagnostic.js.map +1 -1
  21. package/dist/language-service/feature/syntactic-diagnostic.js +6 -9
  22. package/dist/language-service/feature/syntactic-diagnostic.js.map +1 -1
  23. package/dist/language-service/proxy.js +20 -23
  24. package/dist/language-service/proxy.js.map +1 -1
  25. package/dist/protocol-handler/documentLink.js +6 -9
  26. package/dist/protocol-handler/documentLink.js.map +1 -1
  27. package/dist/protocol-handler/rename.js +5 -11
  28. package/dist/protocol-handler/rename.js.map +1 -1
  29. package/dist/protocol-handler/renameInfo.js +5 -11
  30. package/dist/protocol-handler/renameInfo.js.map +1 -1
  31. package/dist/type.js +1 -2
  32. package/dist/util.d.ts +0 -3
  33. package/dist/util.d.ts.map +1 -1
  34. package/dist/util.js +9 -35
  35. package/dist/util.js.map +1 -1
  36. package/package.json +6 -6
  37. package/src/{index.ts → index.cts} +15 -8
  38. package/src/language-plugin.ts +10 -20
  39. package/src/language-service/feature/definition-and-bound-span.ts +1 -1
  40. package/src/language-service/feature/semantic-diagnostic.ts +8 -2
  41. package/src/language-service/feature/syntactic-diagnostic.ts +1 -1
  42. package/src/language-service/proxy.ts +1 -1
  43. package/src/protocol-handler/documentLink.ts +1 -1
  44. package/src/util.ts +0 -18
  45. package/dist/index.d.ts.map +0 -1
  46. package/dist/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/semantic-diagnostic.ts"],"names":[],"mappings":";;AAOA,wDA2BC;AAjCD,gDAA0E;AAG1E,iEAA2E;AAE3E,sCAAsC;AACtC,SAAgB,sBAAsB,CACpC,QAA0B,EAC1B,eAAmC,EACnC,aAA4B,EAC5B,QAAkB,EAClB,cAA8B,EAC9B,YAAqD,EACrD,MAAiB;IAEjB,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,iCAAY,CAAC,CAAC,SAAS,CAAC;YAEtD,qDAAqD;YACrD,aAAa,CAAC,UAAU,EAAE,CAAC;YAE3B,MAAM,WAAW,GAAG,IAAA,qBAAc,EAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC7G,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAG,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;YAC1E,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,wBAAiB,EAAC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YACvG,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"semantic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/semantic-diagnostic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,sCAAsC;AACtC,MAAM,UAAU,sBAAsB,CACpC,QAA0B,EAC1B,eAAmC,EACnC,aAA4B,EAC5B,QAAkB,EAClB,cAA8B,EAC9B,YAAqD,EACrD,MAAiB;IAEjB,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAE5C,qDAAqD;YACrD,aAAa,CAAC,UAAU,EAAE,CAAC;YAE3B,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,EAAE;gBAC5C,MAAM;gBACN,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9C,cAAc;gBACd,QAAQ;gBACR,YAAY;aACb,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAG,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;YAC1E,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YACvG,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
@@ -1,18 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSyntacticDiagnostics = getSyntacticDiagnostics;
4
- const core_1 = require("@css-modules-kit/core");
5
- const language_plugin_js_1 = require("../../language-plugin.js");
6
- function getSyntacticDiagnostics(language, languageService) {
1
+ import { convertDiagnosticWithLocation } from '@css-modules-kit/core';
2
+ import { CMK_DATA_KEY, isCSSModuleScript } from '../../language-plugin.js';
3
+ export function getSyntacticDiagnostics(language, languageService) {
7
4
  return (...args) => {
8
5
  const [fileName] = args;
9
6
  const prior = languageService.getSyntacticDiagnostics(...args);
10
7
  const script = language.scripts.get(fileName);
11
- if ((0, language_plugin_js_1.isCSSModuleScript)(script)) {
8
+ if (isCSSModuleScript(script)) {
12
9
  const virtualCode = script.generated.root;
13
- const diagnostics = virtualCode[language_plugin_js_1.CMK_DATA_KEY].syntacticDiagnostics;
10
+ const diagnostics = virtualCode[CMK_DATA_KEY].diagnostics;
14
11
  const sourceFile = languageService.getProgram().getSourceFile(fileName);
15
- const tsDiagnostics = diagnostics.map((diagnostic) => (0, core_1.convertDiagnosticWithLocation)(diagnostic, () => sourceFile));
12
+ const tsDiagnostics = diagnostics.map((diagnostic) => convertDiagnosticWithLocation(diagnostic, () => sourceFile));
16
13
  prior.push(...tsDiagnostics);
17
14
  }
18
15
  return prior;
@@ -1 +1 @@
1
- {"version":3,"file":"syntactic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/syntactic-diagnostic.ts"],"names":[],"mappings":";;AAKA,0DAmBC;AAxBD,gDAAsE;AAGtE,iEAA2E;AAE3E,SAAgB,uBAAuB,CACrC,QAA0B,EAC1B,eAAmC;IAEnC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,iCAAY,CAAC,CAAC,oBAAoB,CAAC;YACnE,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAG,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;YAC1E,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACnD,IAAA,oCAA6B,EAAC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAC5D,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"syntactic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/syntactic-diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,UAAU,uBAAuB,CACrC,QAA0B,EAC1B,eAAmC;IAEnC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;YAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAG,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;YAC1E,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACnD,6BAA6B,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAC5D,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
@@ -1,16 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.proxyLanguageService = proxyLanguageService;
4
- const core_1 = require("@css-modules-kit/core");
5
- const language_plugin_js_1 = require("../language-plugin.js");
6
- const code_fix_js_1 = require("./feature/code-fix.js");
7
- const completion_js_1 = require("./feature/completion.js");
8
- const definition_and_bound_span_js_1 = require("./feature/definition-and-bound-span.js");
9
- const refactor_js_1 = require("./feature/refactor.js");
10
- const semantic_diagnostic_js_1 = require("./feature/semantic-diagnostic.js");
11
- const syntactic_diagnostic_js_1 = require("./feature/syntactic-diagnostic.js");
1
+ import { createExportBuilder } from '@css-modules-kit/core';
2
+ import { CMK_DATA_KEY, isCSSModuleScript } from '../language-plugin.js';
3
+ import { getCodeFixesAtPosition } from './feature/code-fix.js';
4
+ import { getCompletionEntryDetails, getCompletionsAtPosition } from './feature/completion.js';
5
+ import { getDefinitionAndBoundSpan } from './feature/definition-and-bound-span.js';
6
+ import { getApplicableRefactors, getEditsForRefactor } from './feature/refactor.js';
7
+ import { getSemanticDiagnostics } from './feature/semantic-diagnostic.js';
8
+ import { getSyntacticDiagnostics } from './feature/syntactic-diagnostic.js';
12
9
  // eslint-disable-next-line max-params
13
- function proxyLanguageService(language, languageService, project, resolver, matchesPattern, config) {
10
+ export function proxyLanguageService(language, languageService, project, resolver, matchesPattern, config) {
14
11
  const proxy = Object.create(null);
15
12
  for (const k of Object.keys(languageService)) {
16
13
  const x = languageService[k];
@@ -20,20 +17,20 @@ function proxyLanguageService(language, languageService, project, resolver, matc
20
17
  }
21
18
  const getCSSModule = (path) => {
22
19
  const script = language.scripts.get(path);
23
- if ((0, language_plugin_js_1.isCSSModuleScript)(script)) {
24
- return script.generated.root[language_plugin_js_1.CMK_DATA_KEY].cssModule;
20
+ if (isCSSModuleScript(script)) {
21
+ return script.generated.root[CMK_DATA_KEY];
25
22
  }
26
23
  return undefined;
27
24
  };
28
- const exportBuilder = (0, core_1.createExportBuilder)({ getCSSModule, resolver, matchesPattern });
29
- proxy.getSyntacticDiagnostics = (0, syntactic_diagnostic_js_1.getSyntacticDiagnostics)(language, languageService);
30
- proxy.getSemanticDiagnostics = (0, semantic_diagnostic_js_1.getSemanticDiagnostics)(language, languageService, exportBuilder, resolver, matchesPattern, getCSSModule, config);
31
- proxy.getApplicableRefactors = (0, refactor_js_1.getApplicableRefactors)(languageService, project);
32
- proxy.getEditsForRefactor = (0, refactor_js_1.getEditsForRefactor)(languageService);
33
- proxy.getCompletionsAtPosition = (0, completion_js_1.getCompletionsAtPosition)(languageService, config);
34
- proxy.getCompletionEntryDetails = (0, completion_js_1.getCompletionEntryDetails)(languageService, resolver, config);
35
- proxy.getCodeFixesAtPosition = (0, code_fix_js_1.getCodeFixesAtPosition)(language, languageService, project, resolver, config);
36
- proxy.getDefinitionAndBoundSpan = (0, definition_and_bound_span_js_1.getDefinitionAndBoundSpan)(language, languageService);
25
+ const exportBuilder = createExportBuilder({ getCSSModule, resolver, matchesPattern });
26
+ proxy.getSyntacticDiagnostics = getSyntacticDiagnostics(language, languageService);
27
+ proxy.getSemanticDiagnostics = getSemanticDiagnostics(language, languageService, exportBuilder, resolver, matchesPattern, getCSSModule, config);
28
+ proxy.getApplicableRefactors = getApplicableRefactors(languageService, project);
29
+ proxy.getEditsForRefactor = getEditsForRefactor(languageService);
30
+ proxy.getCompletionsAtPosition = getCompletionsAtPosition(languageService, config);
31
+ proxy.getCompletionEntryDetails = getCompletionEntryDetails(languageService, resolver, config);
32
+ proxy.getCodeFixesAtPosition = getCodeFixesAtPosition(language, languageService, project, resolver, config);
33
+ proxy.getDefinitionAndBoundSpan = getDefinitionAndBoundSpan(language, languageService);
37
34
  return proxy;
38
35
  }
39
36
  //# sourceMappingURL=proxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/language-service/proxy.ts"],"names":[],"mappings":";;AAaA,oDA4CC;AAxDD,gDAAgG;AAGhG,8DAAwE;AACxE,uDAA+D;AAC/D,2DAA8F;AAC9F,yFAAmF;AACnF,uDAAoF;AACpF,6EAA0E;AAC1E,+EAA4E;AAE5E,sCAAsC;AACtC,SAAgB,oBAAoB,CAClC,QAA0B,EAC1B,eAAmC,EACnC,OAA0B,EAC1B,QAAkB,EAClB,cAA8B,EAC9B,MAAiB;IAEjB,MAAM,KAAK,GAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAiC,EAAE,CAAC;QAC7E,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;QAC9B,yEAAyE;QACzE,mEAAmE;QACnE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAY,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,0BAAmB,EAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAEtF,KAAK,CAAC,uBAAuB,GAAG,IAAA,iDAAuB,EAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACnF,KAAK,CAAC,sBAAsB,GAAG,IAAA,+CAAsB,EACnD,QAAQ,EACR,eAAe,EACf,aAAa,EACb,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,MAAM,CACP,CAAC;IACF,KAAK,CAAC,sBAAsB,GAAG,IAAA,oCAAsB,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAChF,KAAK,CAAC,mBAAmB,GAAG,IAAA,iCAAmB,EAAC,eAAe,CAAC,CAAC;IACjE,KAAK,CAAC,wBAAwB,GAAG,IAAA,wCAAwB,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACnF,KAAK,CAAC,yBAAyB,GAAG,IAAA,yCAAyB,EAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/F,KAAK,CAAC,sBAAsB,GAAG,IAAA,oCAAsB,EAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5G,KAAK,CAAC,yBAAyB,GAAG,IAAA,wDAAyB,EAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEvF,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/language-service/proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAsC,MAAM,uBAAuB,CAAC;AAGhG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,sCAAsC;AACtC,MAAM,UAAU,oBAAoB,CAClC,QAA0B,EAC1B,eAAmC,EACnC,OAA0B,EAC1B,QAAkB,EAClB,cAA8B,EAC9B,MAAiB;IAEjB,MAAM,KAAK,GAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAiC,EAAE,CAAC;QAC7E,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;QAC9B,yEAAyE;QACzE,mEAAmE;QACnE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAEtF,KAAK,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACnF,KAAK,CAAC,sBAAsB,GAAG,sBAAsB,CACnD,QAAQ,EACR,eAAe,EACf,aAAa,EACb,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,MAAM,CACP,CAAC;IACF,KAAK,CAAC,sBAAsB,GAAG,sBAAsB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAChF,KAAK,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjE,KAAK,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACnF,KAAK,CAAC,yBAAyB,GAAG,yBAAyB,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/F,KAAK,CAAC,sBAAsB,GAAG,sBAAsB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5G,KAAK,CAAC,yBAAyB,GAAG,yBAAyB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEvF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDocumentLinkHandler = createDocumentLinkHandler;
4
- const language_plugin_js_1 = require("../language-plugin.js");
5
- const util_js_1 = require("../util.js");
6
- function createDocumentLinkHandler(projectService, projectToLanguage, resolver) {
1
+ import { CMK_DATA_KEY, isCSSModuleScript } from '../language-plugin.js';
2
+ import { getConfiguredProjectForFile } from '../util.js';
3
+ export function createDocumentLinkHandler(projectService, projectToLanguage, resolver) {
7
4
  return (request) => {
8
5
  const { fileName } = request.arguments;
9
- const project = (0, util_js_1.getConfiguredProjectForFile)(projectService, fileName);
6
+ const project = getConfiguredProjectForFile(projectService, fileName);
10
7
  if (!project)
11
8
  return {};
12
9
  const language = projectToLanguage.get(project);
@@ -14,8 +11,8 @@ function createDocumentLinkHandler(projectService, projectToLanguage, resolver)
14
11
  return {};
15
12
  const script = language.scripts.get(fileName);
16
13
  const links = [];
17
- if ((0, language_plugin_js_1.isCSSModuleScript)(script)) {
18
- const { tokenImporters } = script.generated.root[language_plugin_js_1.CMK_DATA_KEY].cssModule;
14
+ if (isCSSModuleScript(script)) {
15
+ const { tokenImporters } = script.generated.root[CMK_DATA_KEY];
19
16
  for (const { from, fromLoc } of tokenImporters) {
20
17
  const resolved = resolver(from, { request: fileName });
21
18
  if (!resolved)
@@ -1 +1 @@
1
- {"version":3,"file":"documentLink.js","sourceRoot":"","sources":["../../src/protocol-handler/documentLink.ts"],"names":[],"mappings":";;AAWA,8DA0BC;AAlCD,8DAAwE;AAMxE,wCAAyD;AAEzD,SAAgB,yBAAyB,CACvC,cAAwC,EACxC,iBAA+D,EAC/D,QAAkB;IAElB,OAAO,CAAC,OAAyC,EAA4C,EAAE;QAC7F,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,MAAM,OAAO,GAAG,IAAA,qCAA2B,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAY,CAAC,CAAC,SAAS,CAAC;YACzE,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,cAAc,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;iBAC7F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"documentLink.js","sourceRoot":"","sources":["../../src/protocol-handler/documentLink.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAMxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,UAAU,yBAAyB,CACvC,cAAwC,EACxC,iBAA+D,EAC/D,QAAkB;IAElB,OAAO,CAAC,OAAyC,EAA4C,EAAE;QAC7F,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,cAAc,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;iBAC7F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,19 +1,13 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createRenameHandler = createRenameHandler;
7
- const typescript_1 = __importDefault(require("typescript"));
8
- const util_js_1 = require("../util.js");
9
- function createRenameHandler(projectService) {
1
+ import ts from 'typescript';
2
+ import { getConfiguredProjectForFile } from '../util.js';
3
+ export function createRenameHandler(projectService) {
10
4
  return (request) => {
11
5
  const { fileName, position } = request.arguments;
12
- const project = (0, util_js_1.getConfiguredProjectForFile)(projectService, fileName);
6
+ const project = getConfiguredProjectForFile(projectService, fileName);
13
7
  if (!project)
14
8
  return {};
15
9
  const languageService = project.getLanguageService();
16
- const preference = project.projectService.getPreferences(typescript_1.default.server.toNormalizedPath(fileName));
10
+ const preference = project.projectService.getPreferences(ts.server.toNormalizedPath(fileName));
17
11
  const result = languageService.findRenameLocations(fileName, position, false, false, preference);
18
12
  return { response: { result } };
19
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/protocol-handler/rename.ts"],"names":[],"mappings":";;;;;AAIA,kDAUC;AAdD,4DAA4B;AAE5B,wCAAyD;AAEzD,SAAgB,mBAAmB,CAAC,cAAwC;IAC1E,OAAO,CAAC,OAAmC,EAAsC,EAAE;QACjF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACjD,MAAM,OAAO,GAAG,IAAA,qCAA2B,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,oBAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACjG,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/protocol-handler/rename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,UAAU,mBAAmB,CAAC,cAAwC;IAC1E,OAAO,CAAC,OAAmC,EAAsC,EAAE;QACjF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACjD,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACjG,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,19 +1,13 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createRenameInfoHandler = createRenameInfoHandler;
7
- const typescript_1 = __importDefault(require("typescript"));
8
- const util_js_1 = require("../util.js");
9
- function createRenameInfoHandler(projectService) {
1
+ import ts from 'typescript';
2
+ import { getConfiguredProjectForFile } from '../util.js';
3
+ export function createRenameInfoHandler(projectService) {
10
4
  return (request) => {
11
5
  const { fileName, position } = request.arguments;
12
- const project = (0, util_js_1.getConfiguredProjectForFile)(projectService, fileName);
6
+ const project = getConfiguredProjectForFile(projectService, fileName);
13
7
  if (!project)
14
8
  return {};
15
9
  const languageService = project.getLanguageService();
16
- const preference = project.projectService.getPreferences(typescript_1.default.server.toNormalizedPath(fileName));
10
+ const preference = project.projectService.getPreferences(ts.server.toNormalizedPath(fileName));
17
11
  const result = languageService.getRenameInfo(fileName, position, preference);
18
12
  return { response: { result } };
19
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"renameInfo.js","sourceRoot":"","sources":["../../src/protocol-handler/renameInfo.ts"],"names":[],"mappings":";;;;;AAIA,0DAUC;AAdD,4DAA4B;AAE5B,wCAAyD;AAEzD,SAAgB,uBAAuB,CAAC,cAAwC;IAC9E,OAAO,CAAC,OAAuC,EAA0C,EAAE;QACzF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACjD,MAAM,OAAO,GAAG,IAAA,qCAA2B,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,oBAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC7E,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"renameInfo.js","sourceRoot":"","sources":["../../src/protocol-handler/renameInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,UAAU,uBAAuB,CAAC,cAAwC;IAC9E,OAAO,CAAC,OAAuC,EAA0C,EAAE;QACzF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACjD,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC7E,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
package/dist/type.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=type.js.map
package/dist/util.d.ts CHANGED
@@ -1,8 +1,5 @@
1
1
  import { type CMKConfig, type Resolver } from '@css-modules-kit/core';
2
2
  import ts from 'typescript';
3
- /** The error code used by tsserver to display the css-modules-kit error in the editor. */
4
- export declare const TS_ERROR_CODE_FOR_CMK_ERROR = 0;
5
- export declare function convertErrorCategory(category: 'error' | 'warning' | 'suggestion'): ts.DiagnosticCategory;
6
3
  export declare function createPreferencesForCompletion<T extends ts.UserPreferences>(preferences: T, config: CMKConfig): T;
7
4
  /**
8
5
  * Convert default imports to namespace imports for CSS modules.
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,KAAK,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,0FAA0F;AAG1F,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,EAAE,CAAC,kBAAkB,CAWxG;AAED,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,CAOjH;AACD;;;GAGG;AACH,wBAAgB,uCAAuC,CACrD,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAC/C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAoBN;AAED,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EACxC,QAAQ,EAAE,MAAM,GACf,EAAE,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,CAIzC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,KAAK,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,CAOjH;AACD;;;GAGG;AACH,wBAAgB,uCAAuC,CACrD,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAC/C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAoBN;AAED,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EACxC,QAAQ,EAAE,MAAM,GACf,EAAE,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,CAIzC"}
package/dist/util.js CHANGED
@@ -1,32 +1,6 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TS_ERROR_CODE_FOR_CMK_ERROR = void 0;
7
- exports.convertErrorCategory = convertErrorCategory;
8
- exports.createPreferencesForCompletion = createPreferencesForCompletion;
9
- exports.convertDefaultImportsToNamespaceImports = convertDefaultImportsToNamespaceImports;
10
- exports.getConfiguredProjectForFile = getConfiguredProjectForFile;
11
- const core_1 = require("@css-modules-kit/core");
12
- const typescript_1 = __importDefault(require("typescript"));
13
- /** The error code used by tsserver to display the css-modules-kit error in the editor. */
14
- // NOTE: Use any other number than 1002 or later, as they are reserved by TypeScript's built-in errors.
15
- // ref: https://github.com/microsoft/TypeScript/blob/220706eb0320ff46fad8bf80a5e99db624ee7dfb/src/compiler/diagnosticMessages.json
16
- exports.TS_ERROR_CODE_FOR_CMK_ERROR = 0;
17
- function convertErrorCategory(category) {
18
- switch (category) {
19
- case 'error':
20
- return typescript_1.default.DiagnosticCategory.Error;
21
- case 'warning':
22
- return typescript_1.default.DiagnosticCategory.Warning;
23
- case 'suggestion':
24
- return typescript_1.default.DiagnosticCategory.Suggestion;
25
- default:
26
- throw new Error(`Unknown category: ${String(category)}`);
27
- }
28
- }
29
- function createPreferencesForCompletion(preferences, config) {
1
+ import { isCSSModuleFile, STYLES_EXPORT_NAME } from '@css-modules-kit/core';
2
+ import ts from 'typescript';
3
+ export function createPreferencesForCompletion(preferences, config) {
30
4
  // By default, files in `generated/` are included in the completion candidates.
31
5
  // To exclude them, we add the `dtsOutDir` to the `autoImportFileExcludePatterns`.
32
6
  return {
@@ -38,7 +12,7 @@ function createPreferencesForCompletion(preferences, config) {
38
12
  * Convert default imports to namespace imports for CSS modules.
39
13
  * For example, convert `import styles from './styles.module.css'` to `import * as styles from './styles.module.css'`.
40
14
  */
41
- function convertDefaultImportsToNamespaceImports(codeFixes, fileName, resolver) {
15
+ export function convertDefaultImportsToNamespaceImports(codeFixes, fileName, resolver) {
42
16
  for (const codeFix of codeFixes) {
43
17
  if ('fixName' in codeFix && codeFix.fixName !== 'import')
44
18
  continue;
@@ -48,19 +22,19 @@ function convertDefaultImportsToNamespaceImports(codeFixes, fileName, resolver)
48
22
  continue;
49
23
  const specifier = match[1];
50
24
  const resolved = resolver(specifier, { request: fileName });
51
- if (!resolved || !(0, core_1.isCSSModuleFile)(resolved))
25
+ if (!resolved || !isCSSModuleFile(resolved))
52
26
  continue;
53
27
  // If the specifier is a CSS module, convert the import to a namespace import.
54
28
  for (const change of codeFix.changes) {
55
29
  for (const textChange of change.textChanges) {
56
- textChange.newText = textChange.newText.replace(`import ${core_1.STYLES_EXPORT_NAME} from`, `import * as ${core_1.STYLES_EXPORT_NAME} from`);
30
+ textChange.newText = textChange.newText.replace(`import ${STYLES_EXPORT_NAME} from`, `import * as ${STYLES_EXPORT_NAME} from`);
57
31
  }
58
32
  }
59
33
  }
60
34
  }
61
- function getConfiguredProjectForFile(projectService, fileName) {
62
- const project = projectService.getDefaultProjectForFile(typescript_1.default.server.toNormalizedPath(fileName), false);
63
- if (!project || project.projectKind !== typescript_1.default.server.ProjectKind.Configured)
35
+ export function getConfiguredProjectForFile(projectService, fileName) {
36
+ const project = projectService.getDefaultProjectForFile(ts.server.toNormalizedPath(fileName), false);
37
+ if (!project || project.projectKind !== ts.server.ProjectKind.Configured)
64
38
  return;
65
39
  return project;
66
40
  }
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAQA,oDAWC;AAED,wEAOC;AAKD,0FAwBC;AAED,kEAOC;AAlED,gDAA2G;AAC3G,4DAA4B;AAE5B,0FAA0F;AAC1F,uGAAuG;AACvG,kIAAkI;AACrH,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAE7C,SAAgB,oBAAoB,CAAC,QAA4C;IAC/E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,oBAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;QACrC,KAAK,SAAS;YACZ,OAAO,oBAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC;QACvC,KAAK,YAAY;YACf,OAAO,oBAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC;QAC1C;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAgB,8BAA8B,CAA+B,WAAc,EAAE,MAAiB;IAC5G,+EAA+E;IAC/E,kFAAkF;IAClF,OAAO;QACL,GAAG,WAAW;QACd,6BAA6B,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,6BAA6B,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;KACxG,CAAC;AACJ,CAAC;AACD;;;GAGG;AACH,SAAgB,uCAAuC,CACrD,SAA+C,EAC/C,QAAgB,EAChB,QAAkB;IAElB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;YAAE,SAAS;QACnE,8DAA8D;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,sBAAe,EAAC,QAAQ,CAAC;YAAE,SAAS;QAEtD,8EAA8E;QAC9E,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAC7C,UAAU,yBAAkB,OAAO,EACnC,eAAe,yBAAkB,OAAO,CACzC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,2BAA2B,CACzC,cAAwC,EACxC,QAAgB;IAEhB,MAAM,OAAO,GAAG,cAAc,CAAC,wBAAwB,CAAC,oBAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,oBAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;QAAE,OAAO;IACjF,OAAO,OAAsC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,eAAe,EAAiB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,UAAU,8BAA8B,CAA+B,WAAc,EAAE,MAAiB;IAC5G,+EAA+E;IAC/E,kFAAkF;IAClF,OAAO;QACL,GAAG,WAAW;QACd,6BAA6B,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,6BAA6B,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;KACxG,CAAC;AACJ,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,uCAAuC,CACrD,SAA+C,EAC/C,QAAgB,EAChB,QAAkB;IAElB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;YAAE,SAAS;QACnE,8DAA8D;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEtD,8EAA8E;QAC9E,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAC7C,UAAU,kBAAkB,OAAO,EACnC,eAAe,kBAAkB,OAAO,CACzC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,cAAwC,EACxC,QAAgB;IAEhB,MAAM,OAAO,GAAG,cAAc,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;QAAE,OAAO;IACjF,OAAO,OAAsC,CAAC;AAChD,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@css-modules-kit/ts-plugin",
3
3
  "description": "A TypeScript Language Service Plugin for CSS Modules",
4
- "version": "0.6.0",
5
- "type": "commonjs",
4
+ "version": "0.8.0",
5
+ "type": "module",
6
6
  "sideEffects": false,
7
7
  "repository": {
8
8
  "type": "git",
@@ -12,7 +12,7 @@
12
12
  "author": "mizdra <pp.mizdra@gmail.com>",
13
13
  "license": "MIT",
14
14
  "private": false,
15
- "main": "./dist/index.js",
15
+ "main": "./dist/index.cjs",
16
16
  "scripts": {
17
17
  "build": "tsc -b tsconfig.build.json"
18
18
  },
@@ -25,8 +25,8 @@
25
25
  },
26
26
  "exports": {
27
27
  ".": {
28
- "types": "./dist/index.d.ts",
29
- "default": "./dist/index.js"
28
+ "types": "./dist/index.d.cts",
29
+ "default": "./dist/index.cjs"
30
30
  },
31
31
  "./type": {
32
32
  "types": "./dist/type.d.ts",
@@ -49,7 +49,7 @@
49
49
  "dependencies": {
50
50
  "@volar/language-core": "^2.4.23",
51
51
  "@volar/typescript": "^2.4.23",
52
- "@css-modules-kit/core": "^0.6.0"
52
+ "@css-modules-kit/core": "^0.8.0"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "typescript": ">=5.6.3"
@@ -40,17 +40,24 @@ const plugin = createLanguageServicePlugin((ts, info) => {
40
40
  }
41
41
  }
42
42
 
43
- // tsserver should report a “Cannot find module” error for import statements in CSS Modules that
43
+ if (config.enabled === false) {
44
+ return { languagePlugins: [] };
45
+ }
46
+
47
+ // tsserver should report a "Cannot find module" error for import statements in CSS Modules that
44
48
  // do not exist. However, if `dtsOutDir` is included in `rootDirs` and old .d.ts files remain
45
49
  // in `dtsOutDir`, the error will not be reported. Therefore, remove `dtsOutDir` from `rootDirs`.
46
50
  const getCompilationSettings = info.languageServiceHost.getCompilationSettings.bind(info.languageServiceHost);
47
51
  info.languageServiceHost.getCompilationSettings = () => {
48
- const settings = { ...getCompilationSettings() };
49
- if (settings.rootDirs) {
50
- // TODO: If the `dtsOutDir` is not in `rootDirs`, warn the user.
51
- settings.rootDirs = settings.rootDirs.filter((dir) => dir !== config.dtsOutDir);
52
- }
53
- return settings;
52
+ const settings = getCompilationSettings();
53
+ return new Proxy(settings, {
54
+ get(target, prop, receiver) {
55
+ if (prop === 'rootDirs' && target.rootDirs) {
56
+ return target.rootDirs.filter((dir) => dir !== config.dtsOutDir);
57
+ }
58
+ return Reflect.get(target, prop, receiver);
59
+ },
60
+ });
54
61
  };
55
62
 
56
63
  const moduleResolutionCache = info.languageServiceHost.getModuleResolutionCache?.();
@@ -58,7 +65,7 @@ const plugin = createLanguageServicePlugin((ts, info) => {
58
65
  const matchesPattern = createMatchesPattern(config);
59
66
 
60
67
  return {
61
- languagePlugins: [createCSSLanguagePlugin(resolver, matchesPattern, config)],
68
+ languagePlugins: [createCSSLanguagePlugin(matchesPattern, config)],
62
69
  setup: (language) => {
63
70
  projectToLanguage.set(info.project, language);
64
71
  info.languageService = proxyLanguageService(
@@ -1,5 +1,5 @@
1
- import type { CMKConfig, CSSModule, DiagnosticWithLocation, MatchesPattern, Resolver } from '@css-modules-kit/core';
2
- import { createDts, parseCSSModule } from '@css-modules-kit/core';
1
+ import type { CMKConfig, CSSModule, MatchesPattern } from '@css-modules-kit/core';
2
+ import { generateDts, parseCSSModule } from '@css-modules-kit/core';
3
3
  import type { LanguagePlugin, SourceScript, VirtualCode } from '@volar/language-core';
4
4
  import type {} from '@volar/typescript';
5
5
  import ts from 'typescript';
@@ -9,10 +9,7 @@ export const LANGUAGE_ID = 'css';
9
9
  export const CMK_DATA_KEY = Symbol('css-modules-kit-data');
10
10
 
11
11
  interface CSSModuleVirtualCode extends VirtualCode {
12
- [CMK_DATA_KEY]: {
13
- cssModule: CSSModule;
14
- syntacticDiagnostics: DiagnosticWithLocation[];
15
- };
12
+ [CMK_DATA_KEY]: CSSModule;
16
13
  }
17
14
 
18
15
  export interface CSSModuleScript extends SourceScript<string> {
@@ -22,7 +19,6 @@ export interface CSSModuleScript extends SourceScript<string> {
22
19
  }
23
20
 
24
21
  export function createCSSLanguagePlugin(
25
- resolver: Resolver,
26
22
  matchesPattern: MatchesPattern,
27
23
  config: CMKConfig,
28
24
  ): LanguagePlugin<string, VirtualCode> {
@@ -47,19 +43,16 @@ export function createCSSLanguagePlugin(
47
43
 
48
44
  const length = snapshot.getLength();
49
45
  const cssModuleCode = snapshot.getText(0, length);
50
- const { cssModule, diagnostics } = parseCSSModule(cssModuleCode, {
46
+ const cssModule = parseCSSModule(cssModuleCode, {
51
47
  fileName: scriptId,
52
- // The CSS in the process of being written in an editor often contains invalid syntax.
53
- // So, ts-plugin uses a fault-tolerant Parser to parse CSS.
54
- safe: true,
48
+ // NOTE: The standard CSS Language Server reports invalid syntax errors.
49
+ // Therefore, if ts-plugin also reports it, the same error is reported twice.
50
+ // To avoid this, ts-plugin does not report invalid syntax errors.
51
+ includeSyntaxError: false,
55
52
  keyframes: config.keyframes,
56
53
  });
57
54
  // eslint-disable-next-line prefer-const
58
- let { text, mapping, linkedCodeMapping } = createDts(
59
- cssModule,
60
- { resolver, matchesPattern },
61
- { ...config, forTsPlugin: true },
62
- );
55
+ let { text, mapping, linkedCodeMapping } = generateDts(cssModule, { ...config, forTsPlugin: true });
63
56
  return {
64
57
  id: 'main',
65
58
  languageId: 'typescript',
@@ -72,10 +65,7 @@ export function createCSSLanguagePlugin(
72
65
  mappings: [{ ...mapping, data: { navigation: true } }],
73
66
  // `linkedCodeMappings` are required to support "Go to Definition" and renaming for the imported tokens
74
67
  linkedCodeMappings: [{ ...linkedCodeMapping, data: undefined }],
75
- [CMK_DATA_KEY]: {
76
- cssModule,
77
- syntacticDiagnostics: diagnostics,
78
- },
68
+ [CMK_DATA_KEY]: cssModule,
79
69
  };
80
70
  },
81
71
  typescript: {
@@ -13,7 +13,7 @@ export function getDefinitionAndBoundSpan(
13
13
  for (const def of result.definitions) {
14
14
  const script = language.scripts.get(def.fileName);
15
15
  if (isCSSModuleScript(script)) {
16
- const cssModule = script.generated.root[CMK_DATA_KEY].cssModule;
16
+ const cssModule = script.generated.root[CMK_DATA_KEY];
17
17
  const token = cssModule.localTokens.find((t) => t.name === def.name);
18
18
  if (token?.declarationLoc) {
19
19
  def.contextSpan = {
@@ -20,12 +20,18 @@ export function getSemanticDiagnostics(
20
20
  const script = language.scripts.get(fileName);
21
21
  if (isCSSModuleScript(script)) {
22
22
  const virtualCode = script.generated.root;
23
- const cssModule = virtualCode[CMK_DATA_KEY].cssModule;
23
+ const cssModule = virtualCode[CMK_DATA_KEY];
24
24
 
25
25
  // Clear cache to update export records for all files
26
26
  exportBuilder.clearCache();
27
27
 
28
- const diagnostics = checkCSSModule(cssModule, config, exportBuilder, matchesPattern, resolver, getCSSModule);
28
+ const diagnostics = checkCSSModule(cssModule, {
29
+ config,
30
+ getExportRecord: (m) => exportBuilder.build(m),
31
+ matchesPattern,
32
+ resolver,
33
+ getCSSModule,
34
+ });
29
35
  const sourceFile = languageService.getProgram()!.getSourceFile(fileName)!;
30
36
  const tsDiagnostics = diagnostics.map((diagnostic) => convertDiagnostic(diagnostic, () => sourceFile));
31
37
  prior.push(...tsDiagnostics);
@@ -13,7 +13,7 @@ export function getSyntacticDiagnostics(
13
13
  const script = language.scripts.get(fileName);
14
14
  if (isCSSModuleScript(script)) {
15
15
  const virtualCode = script.generated.root;
16
- const diagnostics = virtualCode[CMK_DATA_KEY].syntacticDiagnostics;
16
+ const diagnostics = virtualCode[CMK_DATA_KEY].diagnostics;
17
17
  const sourceFile = languageService.getProgram()!.getSourceFile(fileName)!;
18
18
  const tsDiagnostics = diagnostics.map((diagnostic) =>
19
19
  convertDiagnosticWithLocation(diagnostic, () => sourceFile),
@@ -31,7 +31,7 @@ export function proxyLanguageService(
31
31
  const getCSSModule = (path: string) => {
32
32
  const script = language.scripts.get(path);
33
33
  if (isCSSModuleScript(script)) {
34
- return script.generated.root[CMK_DATA_KEY].cssModule;
34
+ return script.generated.root[CMK_DATA_KEY];
35
35
  }
36
36
  return undefined;
37
37
  };
@@ -23,7 +23,7 @@ export function createDocumentLinkHandler(
23
23
  const script = language.scripts.get(fileName);
24
24
  const links: DocumentLink[] = [];
25
25
  if (isCSSModuleScript(script)) {
26
- const { tokenImporters } = script.generated.root[CMK_DATA_KEY].cssModule;
26
+ const { tokenImporters } = script.generated.root[CMK_DATA_KEY];
27
27
  for (const { from, fromLoc } of tokenImporters) {
28
28
  const resolved = resolver(from, { request: fileName });
29
29
  if (!resolved) continue;
package/src/util.ts CHANGED
@@ -1,24 +1,6 @@
1
1
  import { type CMKConfig, isCSSModuleFile, type Resolver, STYLES_EXPORT_NAME } from '@css-modules-kit/core';
2
2
  import ts from 'typescript';
3
3
 
4
- /** The error code used by tsserver to display the css-modules-kit error in the editor. */
5
- // NOTE: Use any other number than 1002 or later, as they are reserved by TypeScript's built-in errors.
6
- // ref: https://github.com/microsoft/TypeScript/blob/220706eb0320ff46fad8bf80a5e99db624ee7dfb/src/compiler/diagnosticMessages.json
7
- export const TS_ERROR_CODE_FOR_CMK_ERROR = 0;
8
-
9
- export function convertErrorCategory(category: 'error' | 'warning' | 'suggestion'): ts.DiagnosticCategory {
10
- switch (category) {
11
- case 'error':
12
- return ts.DiagnosticCategory.Error;
13
- case 'warning':
14
- return ts.DiagnosticCategory.Warning;
15
- case 'suggestion':
16
- return ts.DiagnosticCategory.Suggestion;
17
- default:
18
- throw new Error(`Unknown category: ${String(category)}`);
19
- }
20
- }
21
-
22
4
  export function createPreferencesForCompletion<T extends ts.UserPreferences>(preferences: T, config: CMKConfig): T {
23
5
  // By default, files in `generated/` are included in the completion candidates.
24
6
  // To exclude them, we add the `dtsOutDir` to the `autoImportFileExcludePatterns`.
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AASjC,QAAA,MAAM,MAAM,+BA+FV,CAAC;AAEH,SAAS,MAAM,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,gDAA6F;AAC7F,gDAAkE;AAElE,oHAA8G;AAE9G,6DAA+D;AAC/D,0DAAmE;AACnE,wEAA+E;AAC/E,4DAAmE;AACnE,oEAA2E;AAE3E,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAuC,CAAC;AAE7E,MAAM,MAAM,GAAG,IAAA,4DAA2B,EAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;IACtD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QACxG,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,MAAiB,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACvD,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CACrC,4DAA4D,MAAM,CAAC,cAAc,GAAG,CACrF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uDAAuD;QACvD,IAAI,KAAK,YAAY,gCAAyB,EAAE,CAAC;YAC/C,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,GAAG,8DAA8D,CAAC;YACzE,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,GAAG,IAAI,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC9B,GAAG,IAAI,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,6FAA6F;IAC7F,iGAAiG;IACjG,MAAM,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9G,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,GAAG,GAAG,EAAE;QACrD,MAAM,QAAQ,GAAG,EAAE,GAAG,sBAAsB,EAAE,EAAE,CAAC;QACjD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,gEAAgE;YAChE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,EAAE,CAAC;IACpF,MAAM,QAAQ,GAAG,IAAA,qBAAc,EAAC,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,IAAA,2BAAoB,EAAC,MAAM,CAAC,CAAC;IAEpD,OAAO;QACL,eAAe,EAAE,CAAC,IAAA,4CAAuB,EAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAC5E,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClB,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,IAAA,+BAAoB,EACzC,QAAQ,EACR,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR,cAAc,EACd,MAAM,CACP,CAAC;YACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,mEAAmE;gBACnE,2EAA2E;gBAE3E,kGAAkG;gBAClG,+CAA+C;gBAC/C,EAAE;gBACF,iGAAiG;gBACjG,4FAA4F;gBAC5F,sEAAsE;gBACtE,EAAE;gBACF,uCAAuC;gBACvC,kEAAkE;gBAClE,2DAA2D;gBAC3D,IAAI,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,IAAA,+BAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC7G,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC7B,6BAA6B,EAC7B,IAAA,uCAAuB,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CACrD,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC7B,+BAA+B,EAC/B,IAAA,2CAAyB,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CACpF,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CACrC,kHAAkH,CACnH,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,uFAAuF;gBACvF,oGAAoG;gBACpG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CACrC,6GAA6G,CAC9G,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,iBAAS,MAAM,CAAC"}