happy-css-modules 0.4.0 → 0.6.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 (102) hide show
  1. package/README.md +172 -53
  2. package/dist/cli.js +45 -11
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cli.test.js +20 -4
  5. package/dist/cli.test.js.map +1 -1
  6. package/dist/emitter/dts.d.ts +3 -4
  7. package/dist/emitter/dts.js +13 -15
  8. package/dist/emitter/dts.js.map +1 -1
  9. package/dist/emitter/dts.test.js +7 -10
  10. package/dist/emitter/dts.test.js.map +1 -1
  11. package/dist/emitter/index.d.ts +6 -15
  12. package/dist/emitter/index.js +18 -13
  13. package/dist/emitter/index.js.map +1 -1
  14. package/dist/emitter/index.test.js +0 -50
  15. package/dist/emitter/index.test.js.map +1 -1
  16. package/dist/emitter/source-map.d.ts +1 -3
  17. package/dist/emitter/source-map.js +2 -3
  18. package/dist/emitter/source-map.js.map +1 -1
  19. package/dist/emitter/source-map.test.js +1 -4
  20. package/dist/emitter/source-map.test.js.map +1 -1
  21. package/dist/index.d.ts +4 -2
  22. package/dist/index.js +3 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/integration-test/go-to-definition.test.js +1 -0
  25. package/dist/integration-test/go-to-definition.test.js.map +1 -1
  26. package/dist/{loader → locator}/index.d.ts +6 -4
  27. package/dist/{loader → locator}/index.js +13 -5
  28. package/dist/locator/index.js.map +1 -0
  29. package/dist/{loader → locator}/index.test.d.ts +0 -0
  30. package/dist/{loader → locator}/index.test.js +100 -14
  31. package/dist/locator/index.test.js.map +1 -0
  32. package/dist/{loader → locator}/postcss.d.ts +5 -1
  33. package/dist/{loader → locator}/postcss.js +26 -30
  34. package/dist/{loader → locator}/postcss.js.map +1 -1
  35. package/dist/{loader → locator}/postcss.test.d.ts +0 -0
  36. package/dist/{loader → locator}/postcss.test.js +0 -0
  37. package/dist/locator/postcss.test.js.map +1 -0
  38. package/dist/resolver/webpack-resolver.d.ts +12 -2
  39. package/dist/resolver/webpack-resolver.js +12 -3
  40. package/dist/resolver/webpack-resolver.js.map +1 -1
  41. package/dist/resolver/webpack-resolver.test.js +43 -7
  42. package/dist/resolver/webpack-resolver.test.js.map +1 -1
  43. package/dist/runner.d.ts +23 -1
  44. package/dist/runner.js +62 -23
  45. package/dist/runner.js.map +1 -1
  46. package/dist/runner.test.js +90 -11
  47. package/dist/runner.test.js.map +1 -1
  48. package/dist/test/util.d.ts +2 -2
  49. package/dist/test/util.js +16 -9
  50. package/dist/test/util.js.map +1 -1
  51. package/dist/transformer/index.d.ts +4 -2
  52. package/dist/transformer/index.js +7 -3
  53. package/dist/transformer/index.js.map +1 -1
  54. package/dist/transformer/index.test.d.ts +1 -0
  55. package/dist/transformer/index.test.js +66 -0
  56. package/dist/transformer/index.test.js.map +1 -0
  57. package/dist/transformer/less-transformer.test.js +14 -14
  58. package/dist/transformer/less-transformer.test.js.map +1 -1
  59. package/dist/transformer/postcss-transformer.d.ts +12 -0
  60. package/dist/transformer/postcss-transformer.js +32 -0
  61. package/dist/transformer/postcss-transformer.js.map +1 -0
  62. package/dist/transformer/postcss-transformer.test.d.ts +1 -0
  63. package/dist/transformer/postcss-transformer.test.js +176 -0
  64. package/dist/transformer/postcss-transformer.test.js.map +1 -0
  65. package/dist/transformer/scss-transformer.js +19 -17
  66. package/dist/transformer/scss-transformer.js.map +1 -1
  67. package/dist/transformer/scss-transformer.test.js +16 -16
  68. package/dist/transformer/scss-transformer.test.js.map +1 -1
  69. package/dist/util.d.ts +2 -0
  70. package/dist/util.js +19 -2
  71. package/dist/util.js.map +1 -1
  72. package/package.json +10 -9
  73. package/src/cli.test.ts +24 -4
  74. package/src/cli.ts +44 -12
  75. package/src/emitter/dts.test.ts +7 -12
  76. package/src/emitter/dts.ts +15 -15
  77. package/src/emitter/index.test.ts +0 -52
  78. package/src/emitter/index.ts +22 -29
  79. package/src/emitter/source-map.test.ts +1 -6
  80. package/src/emitter/source-map.ts +3 -4
  81. package/src/index.ts +9 -2
  82. package/src/integration-test/go-to-definition.test.ts +1 -0
  83. package/src/{loader → locator}/index.test.ts +101 -14
  84. package/src/{loader → locator}/index.ts +16 -8
  85. package/src/{loader → locator}/postcss.test.ts +0 -0
  86. package/src/{loader → locator}/postcss.ts +42 -40
  87. package/src/resolver/webpack-resolver.test.ts +63 -7
  88. package/src/resolver/webpack-resolver.ts +26 -5
  89. package/src/runner.test.ts +103 -11
  90. package/src/runner.ts +83 -25
  91. package/src/test/util.ts +16 -10
  92. package/src/transformer/index.test.ts +71 -0
  93. package/src/transformer/index.ts +12 -4
  94. package/src/transformer/less-transformer.test.ts +14 -14
  95. package/src/transformer/postcss-transformer.test.ts +188 -0
  96. package/src/transformer/postcss-transformer.ts +57 -0
  97. package/src/transformer/scss-transformer.test.ts +16 -16
  98. package/src/transformer/scss-transformer.ts +25 -27
  99. package/src/util.ts +21 -2
  100. package/dist/loader/index.js.map +0 -1
  101. package/dist/loader/index.test.js.map +0 -1
  102. package/dist/loader/postcss.test.js.map +0 -1
@@ -1,14 +1,7 @@
1
- import { type Token } from '../loader/index.js';
1
+ import { type Token } from '../locator/index.js';
2
2
  import { type LocalsConvention } from '../runner.js';
3
3
  export declare function getRelativePath(fromFilePath: string, toFilePath: string): string;
4
4
  export declare function isSubDirectoryFile(fromDirectory: string, toFilePath: string): boolean;
5
- /** The distribution option. */
6
- export declare type DistOptions = {
7
- /** Root directory. It is absolute. */
8
- rootDir: string;
9
- /** The path to the output directory. It is absolute. */
10
- outDir: string;
11
- };
12
5
  export declare type DtsFormatOptions = {
13
6
  localsConvention?: LocalsConvention;
14
7
  };
@@ -18,17 +11,15 @@ export declare type EmitterOptions = {
18
11
  filePath: string;
19
12
  /** The tokens exported by the source file. */
20
13
  tokens: Token[];
21
- /** The distribution option. */
22
- distOptions: DistOptions | undefined;
23
14
  /** Whether to output declaration map (i.e. `/dir/foo.css.d.ts.map`) or not. */
24
15
  emitDeclarationMap: boolean | undefined;
25
16
  /** The options for formatting the type definition. */
26
17
  dtsFormatOptions: DtsFormatOptions | undefined;
27
- /** Silent output. Do not show "files written" messages */
28
- silent: boolean;
29
- /** Working directory path. */
30
- cwd: string;
31
18
  /** Whether the file is from an external library or not. */
32
19
  isExternalFile: (filePath: string) => boolean;
33
20
  };
34
- export declare function emitGeneratedFiles({ filePath, tokens, distOptions, emitDeclarationMap, dtsFormatOptions, silent, cwd, isExternalFile, }: EmitterOptions): Promise<void>;
21
+ export declare function emitGeneratedFiles({ filePath, tokens, emitDeclarationMap, dtsFormatOptions, isExternalFile, }: EmitterOptions): Promise<void>;
22
+ /**
23
+ * Returns true if .d.ts (and .d.ts.map) files are generated for the given file.
24
+ */
25
+ export declare function isGeneratedFilesExist(filePath: string, emitDeclarationMap: boolean | undefined): Promise<boolean>;
@@ -1,5 +1,5 @@
1
1
  import { dirname, isAbsolute, relative } from 'path';
2
- import chalk from 'chalk';
2
+ import { exists } from '../util.js';
3
3
  import { generateDtsContentWithSourceMap, getDtsFilePath } from './dts.js';
4
4
  import { writeFileIfChanged } from './file-system.js';
5
5
  import { generateSourceMappingURLComment, getSourceMapFilePath } from './source-map.js';
@@ -15,28 +15,33 @@ export function getRelativePath(fromFilePath, toFilePath) {
15
15
  export function isSubDirectoryFile(fromDirectory, toFilePath) {
16
16
  return isAbsolute(toFilePath) && toFilePath.startsWith(fromDirectory);
17
17
  }
18
- function outputWriteLog(cwd, filePath) {
19
- console.log('Wrote ' + chalk.green(relative(cwd, filePath)));
20
- }
21
- export async function emitGeneratedFiles({ filePath, tokens, distOptions, emitDeclarationMap, dtsFormatOptions, silent, cwd, isExternalFile, }) {
22
- const dtsFilePath = getDtsFilePath(filePath, distOptions);
23
- const sourceMapFilePath = getSourceMapFilePath(filePath, distOptions);
18
+ export async function emitGeneratedFiles({ filePath, tokens, emitDeclarationMap, dtsFormatOptions, isExternalFile, }) {
19
+ const dtsFilePath = getDtsFilePath(filePath);
20
+ const sourceMapFilePath = getSourceMapFilePath(filePath);
24
21
  const { dtsContent, sourceMap } = generateDtsContentWithSourceMap(filePath, dtsFilePath, sourceMapFilePath, tokens, dtsFormatOptions, isExternalFile);
25
22
  if (emitDeclarationMap) {
26
23
  const sourceMappingURLComment = generateSourceMappingURLComment(dtsFilePath, sourceMapFilePath);
27
24
  await writeFileIfChanged(dtsFilePath, dtsContent + sourceMappingURLComment);
28
- if (!silent)
29
- outputWriteLog(cwd, dtsFilePath);
30
25
  // NOTE: tsserver does not support inline declaration maps. Therefore, sourcemap files must be output.
31
26
  // blocked by: https://github.com/microsoft/TypeScript/issues/38966
32
27
  await writeFileIfChanged(sourceMapFilePath, sourceMap.toString());
33
- if (!silent)
34
- outputWriteLog(cwd, sourceMapFilePath);
35
28
  }
36
29
  else {
37
30
  await writeFileIfChanged(dtsFilePath, dtsContent);
38
- if (!silent)
39
- outputWriteLog(cwd, dtsFilePath);
40
31
  }
41
32
  }
33
+ /**
34
+ * Returns true if .d.ts (and .d.ts.map) files are generated for the given file.
35
+ */
36
+ export async function isGeneratedFilesExist(filePath, emitDeclarationMap) {
37
+ const dtsFilePath = getDtsFilePath(filePath);
38
+ const sourceMapFilePath = getSourceMapFilePath(filePath);
39
+ if (emitDeclarationMap && !(await exists(sourceMapFilePath))) {
40
+ return false;
41
+ }
42
+ if (!(await exists(dtsFilePath))) {
43
+ return false;
44
+ }
45
+ return true;
46
+ }
42
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/emitter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,UAAU,eAAe,CAAC,YAAoB,EAAE,UAAkB;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7D,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,QAAQ,CAAC;KACjB;SAAM;QACL,OAAO,IAAI,GAAG,QAAQ,CAAC;KACxB;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB,EAAE,UAAkB;IAC1E,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,QAAgB;IACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAkCD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,QAAQ,EACR,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,EACN,GAAG,EACH,cAAc,GACC;IACf,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,+BAA+B,CAC/D,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,cAAc,CACf,CAAC;IAEF,IAAI,kBAAkB,EAAE;QACtB,MAAM,uBAAuB,GAAG,+BAA+B,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAChG,MAAM,kBAAkB,CAAC,WAAW,EAAE,UAAU,GAAG,uBAAuB,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM;YAAE,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE9C,sGAAsG;QACtG,mEAAmE;QACnE,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,cAAc,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;KACrD;SAAM;QACL,MAAM,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;KAC/C;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/emitter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,UAAU,eAAe,CAAC,YAAoB,EAAE,UAAkB;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7D,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,QAAQ,CAAC;KACjB;SAAM;QACL,OAAO,IAAI,GAAG,QAAQ,CAAC;KACxB;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB,EAAE,UAAkB;IAC1E,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACxE,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GACC;IACf,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,+BAA+B,CAC/D,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,cAAc,CACf,CAAC;IAEF,IAAI,kBAAkB,EAAE;QACtB,MAAM,uBAAuB,GAAG,+BAA+B,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAChG,MAAM,kBAAkB,CAAC,WAAW,EAAE,UAAU,GAAG,uBAAuB,CAAC,CAAC;QAC5E,sGAAsG;QACtG,mEAAmE;QACnE,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnE;SAAM;QACL,MAAM,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;KACnD;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,kBAAuC;IAEvC,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,kBAAkB,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE;QAC5D,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE;QAChC,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { readFile, stat } from 'fs/promises';
2
2
  import { jest } from '@jest/globals';
3
- import chalk from 'chalk';
4
3
  import { createFixtures, exists, fakeToken, getFixturePath, waitForAsyncTask } from '../test/util.js';
5
4
  import { emitGeneratedFiles, getRelativePath, isSubDirectoryFile } from './index.js';
6
5
  // eslint-disable-next-line @typescript-eslint/no-empty-function
@@ -22,10 +21,8 @@ describe('emitGeneratedFiles', () => {
22
21
  const defaultArgs = {
23
22
  filePath: getFixturePath('/test/1.css'),
24
23
  tokens: [fakeToken({ name: 'foo', originalLocations: [{ start: { line: 1, column: 1 } }] })],
25
- distOptions: undefined,
26
24
  emitDeclarationMap: true,
27
25
  dtsFormatOptions: undefined,
28
- silent: true,
29
26
  cwd: getFixturePath('/test'),
30
27
  isExternalFile: () => false,
31
28
  };
@@ -67,52 +64,5 @@ describe('emitGeneratedFiles', () => {
67
64
  expect(mtimeForDts1).not.toEqual(mtimeForDts3); // not skipped
68
65
  expect(mtimeForSourceMap1).not.toEqual(mtimeForSourceMap3); // not skipped
69
66
  });
70
- test('outputs write log', async () => {
71
- await emitGeneratedFiles({
72
- ...defaultArgs,
73
- filePath: getFixturePath('/test/1.css'),
74
- emitDeclarationMap: true,
75
- silent: false,
76
- });
77
- expect(consoleLogSpy).toHaveBeenCalledTimes(2);
78
- expect(consoleLogSpy).toHaveBeenNthCalledWith(1, `Wrote ${chalk.green('1.css.d.ts')}`);
79
- expect(consoleLogSpy).toHaveBeenNthCalledWith(2, `Wrote ${chalk.green('1.css.d.ts.map')}`);
80
- consoleLogSpy.mockClear();
81
- await emitGeneratedFiles({
82
- ...defaultArgs,
83
- filePath: getFixturePath('/test/2.css'),
84
- emitDeclarationMap: false,
85
- silent: false,
86
- });
87
- expect(consoleLogSpy).toHaveBeenCalledTimes(1);
88
- expect(consoleLogSpy).toHaveBeenNthCalledWith(1, `Wrote ${chalk.green('2.css.d.ts')}`);
89
- consoleLogSpy.mockClear();
90
- await emitGeneratedFiles({
91
- ...defaultArgs,
92
- filePath: getFixturePath('/test/3.css'),
93
- emitDeclarationMap: false,
94
- silent: true,
95
- });
96
- expect(consoleLogSpy).toHaveBeenCalledTimes(0);
97
- });
98
- test('changes working directory by cwd', async () => {
99
- await emitGeneratedFiles({
100
- ...defaultArgs,
101
- filePath: getFixturePath('/test/1.css'),
102
- emitDeclarationMap: false,
103
- silent: false,
104
- cwd: getFixturePath('/test'),
105
- });
106
- await emitGeneratedFiles({
107
- ...defaultArgs,
108
- filePath: getFixturePath('/test/1.css'),
109
- emitDeclarationMap: false,
110
- silent: false,
111
- cwd: getFixturePath('/'),
112
- });
113
- expect(consoleLogSpy).toHaveBeenCalledTimes(2);
114
- expect(consoleLogSpy).toHaveBeenNthCalledWith(1, `Wrote ${chalk.green('1.css.d.ts')}`);
115
- expect(consoleLogSpy).toHaveBeenNthCalledWith(2, `Wrote ${chalk.green('test/1.css.d.ts')}`);
116
- });
117
67
  });
118
68
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/emitter/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/emitter/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErF,gEAAgE;AAChE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAE9E,UAAU,CAAC,GAAG,EAAE;IACd,aAAa,CAAC,SAAS,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC3B,MAAM,CAAC,eAAe,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3E,MAAM,CAAC,eAAe,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnF,MAAM,CAAC,eAAe,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC9B,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,WAAW,GAAG;QAClB,QAAQ,EAAE,cAAc,CAAC,aAAa,CAAC;QACvC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,SAAS;QAC3B,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC;QAC5B,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK;KAC5B,CAAC;IACF,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,kBAAkB,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACtE,wCAAwC;QACxC,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CACxE,MAAM,CAAC,gBAAgB,CAAC,uCAAuC,CAAC,CACjE,CAAC;QACF,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,kBAAkB,CAAC,EAAE,GAAG,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACtE,4CAA4C;QAC5C,MAAM,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CACxE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,qCAAqC,CAAC,CACnE,CAAC;QACF,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrG,MAAM,kBAAkB,CAAC,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5E,MAAM,kBAAkB,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEtF,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACpD,MAAM,kBAAkB,CAAC,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5E,MAAM,kBAAkB,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtF,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;QACtD,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU;QAElE,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;QACpD,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrG,MAAM,kBAAkB,CAAC,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5E,MAAM,kBAAkB,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtF,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc;QAC9D,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,9 +1,7 @@
1
- import { type DistOptions } from './index.js';
2
1
  /**
3
2
  * Get .d.ts.map file path.
4
3
  * @param filePath The path to the source file (i.e. `foo.css`). It is absolute.
5
- * @param distOptions The distribution option.
6
4
  * @returns The path to the .d.ts.map file. It is absolute.
7
5
  */
8
- export declare function getSourceMapFilePath(filePath: string, distOptions: DistOptions | undefined): string;
6
+ export declare function getSourceMapFilePath(filePath: string): string;
9
7
  export declare function generateSourceMappingURLComment(dtsFilePath: string, sourceMapFilePath: string): string;
@@ -4,11 +4,10 @@ import { getRelativePath } from './index.js';
4
4
  /**
5
5
  * Get .d.ts.map file path.
6
6
  * @param filePath The path to the source file (i.e. `foo.css`). It is absolute.
7
- * @param distOptions The distribution option.
8
7
  * @returns The path to the .d.ts.map file. It is absolute.
9
8
  */
10
- export function getSourceMapFilePath(filePath, distOptions) {
11
- return getDtsFilePath(filePath, distOptions) + '.map';
9
+ export function getSourceMapFilePath(filePath) {
10
+ return getDtsFilePath(filePath) + '.map';
12
11
  }
13
12
  export function generateSourceMappingURLComment(dtsFilePath, sourceMapFilePath) {
14
13
  return `//# sourceMappingURL=${getRelativePath(dtsFilePath, sourceMapFilePath)}` + EOL;
@@ -1 +1 @@
1
- {"version":3,"file":"source-map.js","sourceRoot":"","sources":["../../src/emitter/source-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAoB,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,WAAoC;IACzF,OAAO,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAAmB,EAAE,iBAAyB;IAC5F,OAAO,wBAAwB,eAAe,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,GAAG,GAAG,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"source-map.js","sourceRoot":"","sources":["../../src/emitter/source-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAAmB,EAAE,iBAAyB;IAC5F,OAAO,wBAAwB,eAAe,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,GAAG,GAAG,CAAC;AACzF,CAAC"}
@@ -1,10 +1,7 @@
1
1
  import { EOL } from 'os';
2
2
  import { getSourceMapFilePath, generateSourceMappingURLComment } from './source-map.js';
3
3
  test('getSourceMapFilePath', () => {
4
- expect(getSourceMapFilePath('/app/src/dir/1.css', undefined)).toBe('/app/src/dir/1.css.d.ts.map');
5
- expect(getSourceMapFilePath('/app/src/dir/1.css', { rootDir: '/app', outDir: '/app/dist' })).toBe('/app/dist/src/dir/1.css.d.ts.map');
6
- expect(() => getSourceMapFilePath('/tmp/src/dir/1.css', { rootDir: '/app', outDir: '/app/dist' })).toThrow();
7
- expect(() => getSourceMapFilePath('/app/src/dir/1.css', { rootDir: '/app', outDir: '/tmp/dist' })).toThrow();
4
+ expect(getSourceMapFilePath('/app/src/dir/1.css')).toBe('/app/src/dir/1.css.d.ts.map');
8
5
  });
9
6
  test('generateSourceMappingURLComment', () => {
10
7
  expect(generateSourceMappingURLComment('/app/src/dir/1.css.d.ts', '/app/src/dir/1.css.d.ts.map')).toBe('//# sourceMappingURL=./1.css.d.ts.map' + EOL);
@@ -1 +1 @@
1
- {"version":3,"file":"source-map.test.js","sourceRoot":"","sources":["../../src/emitter/source-map.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAExF,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAChC,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAClG,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/F,kCAAkC,CACnC,CAAC;IACF,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7G,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC/G,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC3C,MAAM,CAAC,+BAA+B,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,CACpG,uCAAuC,GAAG,GAAG,CAC9C,CAAC;IACF,MAAM,CAAC,+BAA+B,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC,CAAC,IAAI,CACtG,6CAA6C,GAAG,GAAG,CACpD,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"source-map.test.js","sourceRoot":"","sources":["../../src/emitter/source-map.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAExF,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAChC,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACzF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC3C,MAAM,CAAC,+BAA+B,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,CACpG,uCAAuC,GAAG,GAAG,CAC9C,CAAC;IACF,MAAM,CAAC,+BAA+B,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC,CAAC,IAAI,CACtG,6CAA6C,GAAG,GAAG,CACpD,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { parseArgv } from './cli.js';
2
- export { run } from './runner.js';
3
- export { type Transformer } from './transformer/index.js';
2
+ export { run, type LocalsConvention } from './runner.js';
3
+ export { type Transformer, type TransformerOptions, type TransformResult, createDefaultTransformer, } from './transformer/index.js';
4
+ export { type Resolver, type ResolverOptions, createDefaultResolver } from './resolver/index.js';
5
+ export { Locator, type LocatorOptions, type LoadResult, type Token, type Location } from './locator/index.js';
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
1
  export { parseArgv } from './cli.js';
2
2
  export { run } from './runner.js';
3
+ export { createDefaultTransformer, } from './transformer/index.js';
4
+ export { createDefaultResolver } from './resolver/index.js';
5
+ export { Locator } from './locator/index.js';
3
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,GAAG,EAAyB,MAAM,aAAa,CAAC;AACzD,OAAO,EAIL,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAuC,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,OAAO,EAAmE,MAAM,oBAAoB,CAAC"}
@@ -8,6 +8,7 @@ const defaultOptions = {
8
8
  silent: true,
9
9
  declarationMap: true,
10
10
  cwd: getFixturePath('/'),
11
+ cache: false,
11
12
  };
12
13
  afterAll(async () => {
13
14
  await server.exit();
@@ -1 +1 @@
1
- {"version":3,"file":"go-to-definition.test.js","sourceRoot":"","sources":["../../src/integration-test/go-to-definition.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"go-to-definition.test.js","sourceRoot":"","sources":["../../src/integration-test/go-to-definition.test.ts"],"names":[],"mappings":"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"}
@@ -9,14 +9,14 @@ export declare type Token = {
9
9
  /** The original locations of the token in the source file. */
10
10
  originalLocations: Location[];
11
11
  };
12
- /** The result of `Loader#load`. */
12
+ /** The result of `Locator#load`. */
13
13
  export declare type LoadResult = {
14
14
  /** The path of the file imported from the source file with `@import` or `composes`. */
15
15
  dependencies: string[];
16
16
  /** The tokens exported by the source file. */
17
17
  tokens: Token[];
18
18
  };
19
- export declare type LoaderOptions = {
19
+ export declare type LocatorOptions = {
20
20
  /** The function to transform source code. */
21
21
  transformer?: Transformer | undefined;
22
22
  /** The function to resolve the path of the imported file. */
@@ -25,11 +25,12 @@ export declare type LoaderOptions = {
25
25
  /** The resolver that throws an exception if resolving fails. */
26
26
  export declare type StrictlyResolver = (...args: Parameters<Resolver>) => Promise<string>;
27
27
  /** This class collects information on tokens exported from CSS Modules files. */
28
- export declare class Loader {
28
+ export declare class Locator {
29
29
  private readonly cache;
30
30
  private readonly transformer;
31
31
  private readonly resolver;
32
- constructor(options?: LoaderOptions);
32
+ private loading;
33
+ constructor(options?: LocatorOptions);
33
34
  /** Returns `true` if the cache is outdated. */
34
35
  private isCacheOutdated;
35
36
  /**
@@ -39,4 +40,5 @@ export declare class Loader {
39
40
  private readCSS;
40
41
  /** Returns information about the tokens exported from the CSS Modules file. */
41
42
  load(filePath: string): Promise<LoadResult>;
43
+ private _load;
42
44
  }
@@ -23,9 +23,10 @@ function normalizeTokens(tokens) {
23
23
  }));
24
24
  }
25
25
  /** This class collects information on tokens exported from CSS Modules files. */
26
- export class Loader {
26
+ export class Locator {
27
27
  constructor(options) {
28
28
  this.cache = new Map();
29
+ this.loading = false;
29
30
  this.transformer = options?.transformer ?? createDefaultTransformer();
30
31
  this.resolver = async (specifier, resolverOptions) => {
31
32
  const resolver = options?.resolver ?? createDefaultResolver();
@@ -86,8 +87,15 @@ export class Loader {
86
87
  }
87
88
  /** Returns information about the tokens exported from the CSS Modules file. */
88
89
  async load(filePath) {
89
- // NOTE: Loader does not support concurrent calls.
90
- // TODO: Throw an error if called concurrently.
90
+ if (this.loading)
91
+ throw new Error('Cannot call `Locator#load` concurrently.');
92
+ this.loading = true;
93
+ const result = await this._load(filePath).finally(() => {
94
+ this.loading = false;
95
+ });
96
+ return result;
97
+ }
98
+ async _load(filePath) {
91
99
  if (!(await this.isCacheOutdated(filePath))) {
92
100
  const cacheEntry = this.cache.get(filePath);
93
101
  return cacheEntry.result;
@@ -108,7 +116,7 @@ export class Loader {
108
116
  if (isIgnoredSpecifier(importedSheetPath))
109
117
  continue;
110
118
  const from = await this.resolver(importedSheetPath, { request: filePath });
111
- const result = await this.load(from);
119
+ const result = await this._load(from);
112
120
  const externalTokens = result.tokens;
113
121
  dependencies.push(from, ...result.dependencies);
114
122
  tokens.push(...externalTokens);
@@ -133,7 +141,7 @@ export class Loader {
133
141
  if (isIgnoredSpecifier(declarationDetail.from))
134
142
  continue;
135
143
  const from = await this.resolver(declarationDetail.from, { request: filePath });
136
- const result = await this.load(from);
144
+ const result = await this._load(from);
137
145
  const externalTokens = result.tokens.filter((token) => declarationDetail.tokenNames.includes(token.name));
138
146
  dependencies.push(from, ...result.dependencies);
139
147
  tokens.push(...externalTokens);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAoB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EAEb,mCAAmC,EACnC,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAiB,MAAM,cAAc,CAAC;AAE3D;;;GAGG;AACH,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,OAAO,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC7E,CAAC;AAuBD,SAAS,eAAe,CAAC,MAAe;IACtC,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAsB,CAAC;IACnE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,4BAA4B,CAAC,GAAG,CAC9B,KAAK,CAAC,IAAI,EACV,QAAQ,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC3G,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CACzB,CACF,CAAC;KACH;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI;QACJ,iBAAiB;KAClB,CAAC,CAAC,CAAC;AACN,CAAC;AAYD,iFAAiF;AACjF,MAAM,OAAO,OAAO;IAMlB,YAAY,OAAwB;QALnB,UAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;QAGpD,YAAO,GAAG,KAAK,CAAC;QAGtB,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,wBAAwB,EAAE,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE;YACnD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAC5D,IAAI,QAAQ,KAAK,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,SAAS,eAAe,CAAC,OAAO,IAAI,CAAC,CAAC;YAC7G,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC;IAED,+CAA+C;IACvC,KAAK,CAAC,eAAe,CAAC,QAAgB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAEvC,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACtC,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;SACxC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,OAAO,CACnB,QAAgB;QAKhB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC5G,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QACvE,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,YAAY,EAAE,MAAM,CAAC,YAAY;iBAC9B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC;gBACxC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvF,OAAO,GAAG,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,4EAA4E;gBAC5E,wGAAwG;gBACxG,kEAAkE;gBAClE,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CAAC;SACL,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,IAAI,CAAC,QAAgB;QACzB,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACrD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,QAAgB;QAClC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAC7C,OAAO,UAAU,CAAC,MAAM,CAAC;SAC1B;QAED,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAErD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEhE,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAEhH,oDAAoD;QACpD,yDAAyD;QACzD,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAE9E,oCAAoC;QACpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,iBAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,iBAAiB;gBAAE,SAAS;YACjC,IAAI,kBAAkB,CAAC,iBAAiB,CAAC;gBAAE,SAAS;YACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;SAChC;QAED,kFAAkF;QAClF,KAAK,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,cAAc,EAAE;YACpD,0GAA0G;YAC1G,sFAAsF;YACtF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;gBAAE,SAAS;YAE7D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAElE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,aAAa,CAAC,KAAK;gBACzB,iBAAiB,EAAE,CAAC,gBAAgB,CAAC;aACtC,CAAC,CAAC;SACJ;QAED,iDAAiD;QACjD,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE;YACtD,MAAM,iBAAiB,GAAG,mCAAmC,CAAC,mBAAmB,CAAC,CAAC;YACnF,IAAI,CAAC,iBAAiB;gBAAE,SAAS;YACjC,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAAE,SAAS;YACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1G,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;SAChC;QAED,MAAM,MAAM,GAAe;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC;YACpE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
File without changes
@@ -1,6 +1,8 @@
1
1
  import fs, { readFile, writeFile } from 'fs/promises';
2
+ import { randomUUID } from 'node:crypto';
2
3
  import { jest } from '@jest/globals';
3
4
  import dedent from 'dedent';
5
+ import { createDefaultTransformer } from '../index.js';
4
6
  import { createFixtures, FIXTURE_DIR_PATH, getFixturePath } from '../test/util.js';
5
7
  import { sleepSync } from '../util.js';
6
8
  const readFileSpy = jest.spyOn(fs, 'readFile');
@@ -11,9 +13,9 @@ jest.unstable_mockModule('fs/promises', () => ({
11
13
  }));
12
14
  // After the mock of fs/promises is complete, . /index.js after the mock of fs/promises is complete.
13
15
  // ref: https://www.coolcomputerclub.com/posts/jest-hoist-await/
14
- const { Loader } = await import('./index.js');
16
+ const { Locator } = await import('./index.js');
15
17
  // NOTE: ../test/util.js depends on . /index.js, so it must also be imported dynamically...
16
- const loader = new Loader();
18
+ const locator = new Locator();
17
19
  afterEach(() => {
18
20
  readFileSpy.mockClear();
19
21
  });
@@ -24,7 +26,7 @@ test('basic', async () => {
24
26
  .b {}
25
27
  `,
26
28
  });
27
- const result = await loader.load(getFixturePath('/test/1.css'));
29
+ const result = await locator.load(getFixturePath('/test/1.css'));
28
30
  expect(result).toMatchInlineSnapshot(`
29
31
  {
30
32
  dependencies: [],
@@ -69,7 +71,7 @@ test('tracks other files when `@import` is present', async () => {
69
71
  .d {}
70
72
  `,
71
73
  });
72
- const result = await loader.load(getFixturePath('/test/1.css'));
74
+ const result = await locator.load(getFixturePath('/test/1.css'));
73
75
  expect(result).toMatchInlineSnapshot(`
74
76
  {
75
77
  dependencies: [
@@ -128,7 +130,7 @@ test('tracks other files when `composes` is present', async () => {
128
130
  .e {}
129
131
  `,
130
132
  });
131
- const result = await loader.load(getFixturePath('/test/1.css'));
133
+ const result = await locator.load(getFixturePath('/test/1.css'));
132
134
  expect(result).toMatchInlineSnapshot(`
133
135
  {
134
136
  dependencies: ["<fixtures>/test/2.css", "<fixtures>/test/3.css", "<fixtures>/test/4.css"],
@@ -191,7 +193,7 @@ test('normalizes tokens', async () => {
191
193
  .c {}
192
194
  `,
193
195
  });
194
- const result = await loader.load(getFixturePath('/test/1.css'));
196
+ const result = await locator.load(getFixturePath('/test/1.css'));
195
197
  expect(result).toMatchInlineSnapshot(`
196
198
  {
197
199
  dependencies: ["<fixtures>/test/2.css", "<fixtures>/test/3.css"],
@@ -239,7 +241,7 @@ test.failing('returns the result from the cache when the file has not been modif
239
241
  .d {}
240
242
  `,
241
243
  });
242
- await loader.load(getFixturePath('/test/1.css'));
244
+ await locator.load(getFixturePath('/test/1.css'));
243
245
  expect(readFileSpy).toHaveBeenCalledTimes(3);
244
246
  expect(readFileSpy).toHaveBeenNthCalledWith(1, '/test/1.css', 'utf-8');
245
247
  expect(readFileSpy).toHaveBeenNthCalledWith(2, '/test/2.css', 'utf-8');
@@ -249,15 +251,15 @@ test.failing('returns the result from the cache when the file has not been modif
249
251
  sleepSync(1); // wait for the file system to update the mtime
250
252
  await writeFile(getFixturePath('/test/2.css'), await readFile(getFixturePath('/test/2.css'), 'utf-8'));
251
253
  // `3.css` is not updated, so the cache is used. Therefore, `readFile` is not called.
252
- await loader.load(getFixturePath('/test/3.css'));
254
+ await locator.load(getFixturePath('/test/3.css'));
253
255
  expect(readFileSpy).toHaveBeenCalledTimes(0);
254
256
  // `1.css` is not updated, but dependencies are updated, so the cache is used. Therefore, `readFile` is called.
255
- await loader.load(getFixturePath('/test/1.css'));
257
+ await locator.load(getFixturePath('/test/1.css'));
256
258
  expect(readFileSpy).toHaveBeenCalledTimes(2);
257
259
  expect(readFileSpy).toHaveBeenNthCalledWith(1, '/test/1.css', 'utf-8');
258
260
  expect(readFileSpy).toHaveBeenNthCalledWith(2, '/test/2.css', 'utf-8');
259
261
  // ``2.css` is updated, but the cache is already available because it was updated in the previous step. Therefore, `readFile` is not called.
260
- await loader.load(getFixturePath('/test/2.css'));
262
+ await locator.load(getFixturePath('/test/2.css'));
261
263
  expect(readFileSpy).toHaveBeenCalledTimes(2);
262
264
  });
263
265
  test('ignores the composition of non-existent tokens', async () => {
@@ -275,7 +277,7 @@ test('ignores the composition of non-existent tokens', async () => {
275
277
  .b {}
276
278
  `,
277
279
  });
278
- const result = await loader.load(getFixturePath('/test/1.css'));
280
+ const result = await locator.load(getFixturePath('/test/1.css'));
279
281
  expect(result.tokens.map((t) => t.name)).toStrictEqual(['a', 'b']);
280
282
  });
281
283
  test('throws error the composition of non-existent file', async () => {
@@ -289,13 +291,89 @@ test('throws error the composition of non-existent file', async () => {
289
291
  `,
290
292
  });
291
293
  await expect(async () => {
292
- await loader.load(getFixturePath('/test/1.css')).catch((e) => {
294
+ await locator.load(getFixturePath('/test/1.css')).catch((e) => {
293
295
  e.message = e.message.replace(FIXTURE_DIR_PATH, '<fixtures>');
294
296
  throw e;
295
297
  });
296
298
  }).rejects.toThrowError(`Could not resolve './2.css' in '<fixtures>/test/1.css'`);
297
299
  });
298
- test.todo('supports sourcemap file and inline sourcemap');
300
+ describe('supports sourcemap', () => {
301
+ test('restores original locations from sourcemap', async () => {
302
+ const transformer = createDefaultTransformer();
303
+ const locator = new Locator({ transformer });
304
+ createFixtures({
305
+ '/test/1.scss': dedent `
306
+ .nesting {
307
+ dummy: '';
308
+ .nesting_child {
309
+ dummy: '';
310
+ }
311
+ }
312
+ `,
313
+ });
314
+ const result = await locator.load(getFixturePath('/test/1.scss'));
315
+ expect(result).toMatchInlineSnapshot(`
316
+ {
317
+ dependencies: [],
318
+ tokens: [
319
+ {
320
+ name: "nesting",
321
+ originalLocations: [
322
+ { filePath: "<fixtures>/test/1.scss", start: { line: 1, column: 1 }, end: { line: 1, column: 8 } },
323
+ { filePath: "<fixtures>/test/1.scss", start: { line: 3, column: 3 }, end: { line: 3, column: 10 } },
324
+ ],
325
+ },
326
+ {
327
+ name: "nesting_child",
328
+ originalLocations: [
329
+ { filePath: "<fixtures>/test/1.scss", start: { line: 3, column: 3 }, end: { line: 3, column: 16 } },
330
+ ],
331
+ },
332
+ ],
333
+ }
334
+ `);
335
+ });
336
+ test('treats originalLocation as empty if sourcemap is broken', async () => {
337
+ const uuid = randomUUID();
338
+ createFixtures({
339
+ [`/${uuid}/postcss.config.js`]: dedent `
340
+ module.exports = {
341
+ plugins: [],
342
+ };
343
+ `,
344
+ '/test/1.css': dedent `
345
+ .selector_list_a_1, .selector_list_a_2 {}
346
+ /* In postcss, including newlines in the selector list breaks the sourcemap. */
347
+ .selector_list_b_1,
348
+ .selector_list_b_2 {}
349
+ `,
350
+ });
351
+ const transformer = createDefaultTransformer({ postcssConfig: getFixturePath(`/${uuid}/postcss.config.js`) });
352
+ const locator = new Locator({ transformer });
353
+ const result = await locator.load(getFixturePath('/test/1.css'));
354
+ expect(result).toMatchInlineSnapshot(`
355
+ {
356
+ dependencies: [],
357
+ tokens: [
358
+ {
359
+ name: "selector_list_a_1",
360
+ originalLocations: [
361
+ { filePath: "<fixtures>/test/1.css", start: { line: 1, column: 1 }, end: { line: 1, column: 18 } },
362
+ ],
363
+ },
364
+ {
365
+ name: "selector_list_a_2",
366
+ originalLocations: [
367
+ { filePath: "<fixtures>/test/1.css", start: { line: 1, column: 1 }, end: { line: 1, column: 18 } },
368
+ ],
369
+ },
370
+ { name: "selector_list_b_1", originalLocations: [{}] },
371
+ { name: "selector_list_b_2", originalLocations: [{}] },
372
+ ],
373
+ }
374
+ `);
375
+ });
376
+ });
299
377
  test('ignores http(s) protocol file', async () => {
300
378
  createFixtures({
301
379
  '/test/1.css': dedent `
@@ -303,7 +381,15 @@ test('ignores http(s) protocol file', async () => {
303
381
  @import 'https://example.com/path/https.css';
304
382
  `,
305
383
  });
306
- const result = await loader.load(getFixturePath('/test/1.css'));
384
+ const result = await locator.load(getFixturePath('/test/1.css'));
307
385
  expect(result.dependencies).toStrictEqual([]);
308
386
  });
387
+ test('block concurrent calls to load method', async () => {
388
+ createFixtures({
389
+ '/test/1.css': `.a {}`,
390
+ });
391
+ await expect(async () => {
392
+ await Promise.all([locator.load(getFixturePath('/test/1.css')), locator.load(getFixturePath('/test/1.css'))]);
393
+ }).rejects.toThrowError('Cannot call `Locator#load` concurrently.');
394
+ });
309
395
  //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/locator/index.test.ts"],"names":[],"mappings":"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"}