@css-modules-kit/core 0.5.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/config.d.ts CHANGED
@@ -11,6 +11,7 @@ export interface CMKConfig {
11
11
  arbitraryExtensions: boolean;
12
12
  namedExports: boolean;
13
13
  prioritizeNamedImports: boolean;
14
+ keyframes: boolean;
14
15
  /**
15
16
  * A root directory to resolve relative path entries in the config file to.
16
17
  * This is an absolute path.
@@ -51,40 +52,14 @@ export interface CMKConfig {
51
52
  basePath: string;
52
53
  configFileName: string;
53
54
  compilerOptions: ts.CompilerOptions;
55
+ /** The directories to watch when watch mode is enabled. */
56
+ wildcardDirectories: {
57
+ fileName: string;
58
+ recursive: boolean;
59
+ }[];
54
60
  /** The diagnostics that occurred while reading the config file. */
55
61
  diagnostics: Diagnostic[];
56
62
  }
57
- /**
58
- * The config loaded from `ts.ParsedCommandLine['raw']`.
59
- * This is unnormalized. Paths are relative, and some options may be omitted.
60
- */
61
- interface UnnormalizedRawConfig {
62
- includes?: string[];
63
- excludes?: string[];
64
- dtsOutDir?: string;
65
- arbitraryExtensions?: boolean;
66
- namedExports?: boolean;
67
- prioritizeNamedImports?: boolean;
68
- }
69
- /**
70
- * The validated data of `ts.ParsedCommandLine['raw']`.
71
- */
72
- interface ParsedRawData {
73
- config: UnnormalizedRawConfig;
74
- diagnostics: Diagnostic[];
75
- }
76
- export declare function findTsConfigFile(project: string): string | undefined;
77
- declare function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile): ParsedRawData;
78
- export { parseRawData as parseRawDataForTest };
79
- /**
80
- * @throws {TsConfigFileNotFoundError}
81
- */
82
- export declare function readTsConfigFile(project: string): {
83
- configFileName: string;
84
- config: UnnormalizedRawConfig;
85
- compilerOptions: ts.CompilerOptions;
86
- diagnostics: Diagnostic[];
87
- };
88
63
  /**
89
64
  * Reads the `tsconfig.json` file and returns the normalized config.
90
65
  * Even if the `tsconfig.json` file contains syntax or semantic errors,
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,mEAAmE;IACnE,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOpE;AAED,iBAAS,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,GAAG,aAAa,CAuE5F;AACD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,CAAC;AAc/C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAgDA;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAiBzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC;IACpC,2DAA2D;IAC3D,mBAAmB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAChE,mEAAmE;IACnE,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AA4JD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAmCzD"}
package/dist/config.js CHANGED
@@ -3,9 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.findTsConfigFile = findTsConfigFile;
7
- exports.parseRawDataForTest = parseRawData;
8
- exports.readTsConfigFile = readTsConfigFile;
9
6
  exports.readConfigFile = readConfigFile;
10
7
  const typescript_1 = __importDefault(require("typescript"));
11
8
  const error_js_1 = require("./error.js");
@@ -20,6 +17,9 @@ function findTsConfigFile(project) {
20
17
  return undefined;
21
18
  return (0, path_js_1.resolve)(configFile);
22
19
  }
20
+ function isTsConfigFileExists(fileName) {
21
+ return typescript_1.default.findConfigFile((0, path_js_1.dirname)(fileName), typescript_1.default.sys.fileExists.bind(typescript_1.default.sys), (0, path_js_1.basename)(fileName)) !== undefined;
22
+ }
23
23
  function parseRawData(raw, tsConfigSourceFile) {
24
24
  const result = {
25
25
  config: {},
@@ -68,6 +68,17 @@ function parseRawData(raw, tsConfigSourceFile) {
68
68
  });
69
69
  }
70
70
  }
71
+ if ('keyframes' in raw.cmkOptions) {
72
+ if (typeof raw.cmkOptions.keyframes === 'boolean') {
73
+ result.config.keyframes = raw.cmkOptions.keyframes;
74
+ }
75
+ else {
76
+ result.diagnostics.push({
77
+ category: 'error',
78
+ text: `\`keyframes\` in ${tsConfigSourceFile.fileName} must be a boolean.`,
79
+ });
80
+ }
81
+ }
71
82
  if ('namedExports' in raw.cmkOptions) {
72
83
  if (typeof raw.cmkOptions.namedExports === 'boolean') {
73
84
  result.config.namedExports = raw.cmkOptions.namedExports;
@@ -95,34 +106,13 @@ function parseRawData(raw, tsConfigSourceFile) {
95
106
  }
96
107
  return result;
97
108
  }
98
- function mergeParsedRawData(base, overrides) {
99
- const result = { config: { ...base.config }, diagnostics: [...base.diagnostics] };
100
- if (overrides.config.includes !== undefined)
101
- result.config.includes = overrides.config.includes;
102
- if (overrides.config.excludes !== undefined)
103
- result.config.excludes = overrides.config.excludes;
104
- if (overrides.config.dtsOutDir !== undefined)
105
- result.config.dtsOutDir = overrides.config.dtsOutDir;
106
- if (overrides.config.arbitraryExtensions !== undefined)
107
- result.config.arbitraryExtensions = overrides.config.arbitraryExtensions;
108
- if (overrides.config.namedExports !== undefined)
109
- result.config.namedExports = overrides.config.namedExports;
110
- result.diagnostics.push(...overrides.diagnostics);
111
- return result;
112
- }
113
- /**
114
- * @throws {TsConfigFileNotFoundError}
115
- */
116
- function readTsConfigFile(project) {
117
- const configFileName = findTsConfigFile(project);
118
- if (!configFileName)
119
- throw new error_js_1.TsConfigFileNotFoundError();
120
- const tsConfigSourceFile = typescript_1.default.readJsonConfigFile(configFileName, typescript_1.default.sys.readFile.bind(typescript_1.default.sys));
109
+ function parseTsConfigFile(fileName) {
110
+ const tsConfigSourceFile = typescript_1.default.readJsonConfigFile(fileName, typescript_1.default.sys.readFile.bind(typescript_1.default.sys));
121
111
  // MEMO: `tsConfigSourceFile.parseDiagnostics` (Internal API) contains a syntax error for `tsconfig.json`.
122
112
  // However, it is ignored so that ts-plugin will work even if `tsconfig.json` is somewhat broken.
123
113
  // Also, this error is reported to the user by `tsc` or `tsserver`.
124
114
  // We discard it since there is no need to report it from css-modules-kit.
125
- const parsedCommandLine = typescript_1.default.parseJsonSourceFileConfigFileContent(tsConfigSourceFile, typescript_1.default.sys, (0, path_js_1.dirname)(configFileName), undefined, configFileName, undefined, [
115
+ const parsedCommandLine = typescript_1.default.parseJsonSourceFileConfigFileContent(tsConfigSourceFile, typescript_1.default.sys, (0, path_js_1.dirname)(fileName), undefined, fileName, undefined, [
126
116
  {
127
117
  extension: 'css',
128
118
  isMixedContent: false,
@@ -130,26 +120,14 @@ function readTsConfigFile(project) {
130
120
  },
131
121
  ]);
132
122
  // Read options from `parsedCommandLine.raw`
133
- let parsedRawData = parseRawData(parsedCommandLine.raw, tsConfigSourceFile);
134
- // The options read from `parsedCommandLine.raw` do not inherit values from the file specified in `extends`.
135
- // So here we read the options from those files and merge them into `parsedRawData`.
136
- if (tsConfigSourceFile.extendedSourceFiles) {
137
- for (const extendedSourceFile of tsConfigSourceFile.extendedSourceFiles) {
138
- let base;
139
- try {
140
- base = readTsConfigFile(extendedSourceFile);
141
- }
142
- catch (error) {
143
- if (error instanceof error_js_1.TsConfigFileNotFoundError)
144
- continue;
145
- throw error;
146
- }
147
- parsedRawData = mergeParsedRawData(base, parsedRawData);
148
- }
149
- }
123
+ const parsedRawData = parseRawData(parsedCommandLine.raw, tsConfigSourceFile);
150
124
  return {
151
- configFileName,
125
+ extendedSourceFiles: tsConfigSourceFile.extendedSourceFiles,
152
126
  compilerOptions: parsedCommandLine.options,
127
+ wildcardDirectories: Object.entries(parsedCommandLine.wildcardDirectories ?? {}).map(([fileName, flags]) => ({
128
+ fileName,
129
+ recursive: (flags & typescript_1.default.WatchDirectoryFlags.Recursive) !== 0,
130
+ })),
153
131
  ...parsedRawData,
154
132
  };
155
133
  }
@@ -162,21 +140,37 @@ function readTsConfigFile(project) {
162
140
  * @throws {TsConfigFileNotFoundError}
163
141
  */
164
142
  function readConfigFile(project) {
165
- const { configFileName, config, compilerOptions, diagnostics } = readTsConfigFile(project);
143
+ const configFileName = findTsConfigFile(project);
144
+ if (!configFileName)
145
+ throw new error_js_1.TsConfigFileNotFoundError();
146
+ const parsedTsConfig = parseTsConfigFile(configFileName);
147
+ // The options read from `parsedCommandLine.raw` do not inherit values from the file specified in `extends`.
148
+ // So here we read the options from those files and merge them into `parsedRawData`.
149
+ if (parsedTsConfig.extendedSourceFiles) {
150
+ for (const extendedSourceFile of parsedTsConfig.extendedSourceFiles) {
151
+ if (isTsConfigFileExists(extendedSourceFile)) {
152
+ const base = parseTsConfigFile(extendedSourceFile);
153
+ parsedTsConfig.config = { ...base.config, ...parsedTsConfig.config };
154
+ parsedTsConfig.diagnostics = [...base.diagnostics, ...parsedTsConfig.diagnostics];
155
+ }
156
+ }
157
+ }
166
158
  const basePath = (0, path_js_1.dirname)(configFileName);
167
159
  return {
168
- // If `include` is not specified, fallback to the default include spec.
160
+ // If `include` is not specified, fallback to the default include spec
169
161
  // ref: https://github.com/microsoft/TypeScript/blob/caf1aee269d1660b4d2a8b555c2d602c97cb28d7/src/compiler/commandLineParser.ts#L3102
170
- includes: (config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => (0, path_js_1.join)(basePath, i)),
171
- excludes: (config.excludes ?? []).map((e) => (0, path_js_1.join)(basePath, e)),
172
- dtsOutDir: (0, path_js_1.join)(basePath, config.dtsOutDir ?? 'generated'),
173
- arbitraryExtensions: config.arbitraryExtensions ?? false,
174
- namedExports: config.namedExports ?? false,
175
- prioritizeNamedImports: config.prioritizeNamedImports ?? false,
162
+ includes: (parsedTsConfig.config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => (0, path_js_1.join)(basePath, i)),
163
+ excludes: (parsedTsConfig.config.excludes ?? []).map((e) => (0, path_js_1.join)(basePath, e)),
164
+ dtsOutDir: (0, path_js_1.join)(basePath, parsedTsConfig.config.dtsOutDir ?? 'generated'),
165
+ arbitraryExtensions: parsedTsConfig.config.arbitraryExtensions ?? false,
166
+ namedExports: parsedTsConfig.config.namedExports ?? false,
167
+ prioritizeNamedImports: parsedTsConfig.config.prioritizeNamedImports ?? false,
168
+ keyframes: parsedTsConfig.config.keyframes ?? true,
176
169
  basePath,
177
170
  configFileName,
178
- compilerOptions,
179
- diagnostics,
171
+ compilerOptions: parsedTsConfig.compilerOptions,
172
+ wildcardDirectories: parsedTsConfig.wildcardDirectories,
173
+ diagnostics: parsedTsConfig.diagnostics,
180
174
  };
181
175
  }
182
176
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAoFA,4CAOC;AA0EwB,2CAAmB;AAiB5C,4CAqDC;AAUD,wCAiBC;AAtQD,4DAA4B;AAC5B,yCAAuD;AACvD,uCAA6D;AAG7D,gIAAgI;AAChI,MAAM,oBAAoB,GAAG,MAAM,CAAC;AA8EpC,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,UAAU,GACd,oBAAE,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,oBAAE,CAAC,cAAc,CAAC,OAAO,EAAE,oBAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAE,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC;QAC7E,CAAC,CAAC,oBAAE,CAAC,cAAc,CAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,EAAE,oBAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAE,CAAC,GAAG,CAAC,EAAE,IAAA,kBAAQ,EAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,GAAY,EAAE,kBAAyC;IAC3E,MAAM,MAAM,GAAkB;QAC5B,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;KAChB,CAAC;IACF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAE3D,2GAA2G;IAC3G,iGAAiG;IAEjG,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,CAAC;QACD,oGAAoG;IACtG,CAAC;IACD,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,CAAC;QACD,oGAAoG;IACtG,CAAC;IACD,IAAI,YAAY,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACzF,IAAI,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACjD,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,oBAAoB,kBAAkB,CAAC,QAAQ,oBAAoB;oBACzE,gIAAgI;iBACjI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,qBAAqB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC5C,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBAC5D,MAAM,CAAC,MAAM,CAAC,mBAAmB,GAAG,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,8BAA8B,kBAAkB,CAAC,QAAQ,qBAAqB;oBACpF,gIAAgI;iBACjI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,cAAc,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrD,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,uBAAuB,kBAAkB,CAAC,QAAQ,qBAAqB;oBAC7E,gIAAgI;iBACjI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,wBAAwB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/C,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;gBAC/D,MAAM,CAAC,MAAM,CAAC,sBAAsB,GAAG,GAAG,CAAC,UAAU,CAAC,sBAAsB,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;oBACtB,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,iCAAiC,kBAAkB,CAAC,QAAQ,qBAAqB;oBACvF,gIAAgI;iBACjI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,SAAS,kBAAkB,CAAC,IAAmB,EAAE,SAAwB;IACvE,MAAM,MAAM,GAAkB,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;IACjG,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;IAChG,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;IAChG,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;IACnG,IAAI,SAAS,CAAC,MAAM,CAAC,mBAAmB,KAAK,SAAS;QACpD,MAAM,CAAC,MAAM,CAAC,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAC3E,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;IAC5G,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAM9C,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,oCAAyB,EAAE,CAAC;IAE3D,MAAM,kBAAkB,GAAG,oBAAE,CAAC,kBAAkB,CAAC,cAAc,EAAE,oBAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,0GAA0G;IAC1G,iGAAiG;IACjG,mEAAmE;IACnE,0EAA0E;IAE1E,MAAM,iBAAiB,GAAG,oBAAE,CAAC,oCAAoC,CAC/D,kBAAkB,EAClB,oBAAE,CAAC,GAAG,EACN,IAAA,iBAAO,EAAC,cAAc,CAAC,EACvB,SAAS,EACT,cAAc,EACd,SAAS,EACT;QACE;YACE,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE,oBAAE,CAAC,UAAU,CAAC,QAAQ;SACnC;KACF,CACF,CAAC;IACF,4CAA4C;IAC5C,IAAI,aAAa,GAAG,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAE5E,4GAA4G;IAC5G,oFAAoF;IACpF,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;QAC3C,KAAK,MAAM,kBAAkB,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;YACxE,IAAI,IAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,IAAI,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,oCAAyB;oBAAE,SAAS;gBACzD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,aAAa,GAAG,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO;QACL,cAAc;QACd,eAAe,EAAE,iBAAiB,CAAC,OAAO;QAC1C,GAAG,aAAa;KACjB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,OAAe;IAC5C,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3F,MAAM,QAAQ,GAAG,IAAA,iBAAO,EAAC,cAAc,CAAC,CAAC;IACzC,OAAO;QACL,uEAAuE;QACvE,qIAAqI;QACrI,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,cAAI,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnF,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,cAAI,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/D,SAAS,EAAE,IAAA,cAAI,EAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,WAAW,CAAC;QAC1D,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,KAAK;QACxD,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,KAAK;QAC1C,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,KAAK;QAC9D,QAAQ;QACR,cAAc;QACd,eAAe;QACf,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAoB1F,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,EAAE,CAAC,UAAU,GAC3D,EAAE,CAAC,UAAU,CAcf;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,sBAAsB,EAClC,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,EAAE,CAAC,UAAU,GAC3D,EAAE,CAAC,sBAAsB,CAY3B;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,EAAE,CAAC,UAAU,CAkB1E"}
1
+ {"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAsB,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAgB9G,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,EAAE,CAAC,UAAU,GAC3D,EAAE,CAAC,UAAU,CAcf;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,sBAAsB,EAClC,aAAa,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,EAAE,CAAC,UAAU,GAC3D,EAAE,CAAC,sBAAsB,CAY3B;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,EAAE,CAAC,UAAU,CAkB1E"}
@@ -14,10 +14,6 @@ function convertErrorCategory(category) {
14
14
  switch (category) {
15
15
  case 'error':
16
16
  return typescript_1.default.DiagnosticCategory.Error;
17
- case 'warning':
18
- return typescript_1.default.DiagnosticCategory.Warning;
19
- case 'suggestion':
20
- return typescript_1.default.DiagnosticCategory.Suggestion;
21
17
  default:
22
18
  throw new Error(`Unknown category: ${String(category)}`);
23
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":";;;;;AAsBA,8CAiBC;AAED,sEAeC;AAED,gDAkBC;AA5ED,4DAA4B;AAI5B,0FAA0F;AAC1F,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C,SAAS,oBAAoB,CAAC,QAA4C;IACxE,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,iBAAiB,CAC/B,UAAsB,EACtB,aAA4D;IAE5D,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,OAAO,6BAA6B,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;YACnD,WAAW,EAAE,UAAU,CAAC,IAAI;YAC5B,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,6BAA6B,CAC3C,UAAkC,EAClC,aAA4D;IAE5D,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,oBAAE,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnH,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;QACnD,WAAW,EAAE,UAAU,CAAC,IAAI;QAC5B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,WAAwB;IACzD,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;IACtC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,WAAW,CAAC,KAAK,YAAY,KAAK,EAAE,CAAC;YACvC,WAAW,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,WAAW,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,oBAAE,CAAC,kBAAkB,CAAC,KAAK;QACrC,WAAW;QACX,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":";;;;;AAkBA,8CAiBC;AAED,sEAeC;AAED,gDAkBC;AAxED,4DAA4B;AAI5B,0FAA0F;AAC1F,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C,SAAS,oBAAoB,CAAC,QAA4B;IACxD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,oBAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;QACrC;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAC/B,UAAsB,EACtB,aAA4D;IAE5D,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,OAAO,6BAA6B,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;YACnD,WAAW,EAAE,UAAU,CAAC,IAAI;YAC5B,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,6BAA6B,CAC3C,UAAkC,EAClC,aAA4D;IAE5D,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,oBAAE,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnH,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;QACnD,WAAW,EAAE,UAAU,CAAC,IAAI;QAC5B,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,WAAwB;IACzD,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;IACtC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,WAAW,CAAC,KAAK,YAAY,KAAK,EAAE,CAAC;YACvC,WAAW,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,WAAW,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,oBAAE,CAAC,kBAAkB,CAAC,KAAK;QACrC,WAAW;QACX,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import type { CSSModule, MatchesPattern, Resolver } from './type.js';
2
2
  export declare const STYLES_EXPORT_NAME = "styles";
3
- export interface CreateDtsHost {
3
+ export interface GenerateDtsHost {
4
4
  resolver: Resolver;
5
5
  matchesPattern: MatchesPattern;
6
6
  }
7
- export interface CreateDtsOptions {
7
+ export interface GenerateDtsOptions {
8
8
  namedExports: boolean;
9
9
  prioritizeNamedImports: boolean;
10
10
  /** Generate .d.ts for ts-plugin */
@@ -29,14 +29,14 @@ interface LinkedCodeMapping extends CodeMapping {
29
29
  /** The length of the second code to be linked. */
30
30
  generatedLengths: number[];
31
31
  }
32
- interface CreateDtsResult {
32
+ interface GenerateDtsResult {
33
33
  text: string;
34
34
  mapping: CodeMapping;
35
35
  linkedCodeMapping: LinkedCodeMapping;
36
36
  }
37
37
  /**
38
- * Create a d.ts file.
38
+ * Generate .d.ts from `CSSModule`.
39
39
  */
40
- export declare function createDts(cssModules: CSSModule, host: CreateDtsHost, options: CreateDtsOptions): CreateDtsResult;
40
+ export declare function generateDts(cssModule: CSSModule, host: GenerateDtsHost, options: GenerateDtsOptions): GenerateDtsResult;
41
41
  export {};
42
- //# sourceMappingURL=dts-creator.d.ts.map
42
+ //# sourceMappingURL=dts-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dts-generator.d.ts","sourceRoot":"","sources":["../src/dts-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAwB,MAAM,WAAW,CAAC;AAG3F,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,iEAAiE;IACjE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,8CAA8C;AAE9C,UAAU,iBAAkB,SAAQ,WAAW;IAC7C,iDAAiD;IACjD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iDAAiD;IACjD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CA8BnB"}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.STYLES_EXPORT_NAME = void 0;
4
- exports.createDts = createDts;
4
+ exports.generateDts = generateDts;
5
5
  const util_js_1 = require("./util.js");
6
6
  exports.STYLES_EXPORT_NAME = 'styles';
7
7
  /**
8
- * Create a d.ts file.
8
+ * Generate .d.ts from `CSSModule`.
9
9
  */
10
- function createDts(cssModules, host, options) {
10
+ function generateDts(cssModule, host, options) {
11
11
  // Exclude invalid tokens
12
- const localTokens = cssModules.localTokens.filter((token) => isValidName(token.name, options));
13
- const tokenImporters = cssModules.tokenImporters
12
+ const localTokens = cssModule.localTokens.filter((token) => isValidName(token.name, options));
13
+ const tokenImporters = cssModule.tokenImporters
14
14
  // Exclude invalid imported tokens
15
15
  .map((tokenImporter) => {
16
16
  if (tokenImporter.type === 'value') {
@@ -26,18 +26,18 @@ function createDts(cssModules, host, options) {
26
26
  })
27
27
  // Exclude token importers for external files
28
28
  .filter((tokenImporter) => {
29
- const resolved = host.resolver(tokenImporter.from, { request: cssModules.fileName });
29
+ const resolved = host.resolver(tokenImporter.from, { request: cssModule.fileName });
30
30
  return resolved !== undefined && host.matchesPattern(resolved);
31
31
  });
32
32
  if (options.namedExports) {
33
- return createNamedExportsDts(localTokens, tokenImporters, options);
33
+ return generateNamedExportsDts(localTokens, tokenImporters, options);
34
34
  }
35
35
  else {
36
- return createDefaultExportDts(localTokens, tokenImporters);
36
+ return generateDefaultExportDts(localTokens, tokenImporters);
37
37
  }
38
38
  }
39
39
  /**
40
- * Create a d.ts file with named exports.
40
+ * Generate a d.ts file with named exports.
41
41
  * @example
42
42
  * If the CSS module file is:
43
43
  * ```css
@@ -58,7 +58,7 @@ function createDts(cssModules, host, options) {
58
58
  * } from './b.module.css';
59
59
  * ```
60
60
  */
61
- function createNamedExportsDts(localTokens, tokenImporters, options) {
61
+ function generateNamedExportsDts(localTokens, tokenImporters, options) {
62
62
  const mapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
63
63
  const linkedCodeMapping = {
64
64
  sourceOffsets: [],
@@ -129,7 +129,7 @@ function createNamedExportsDts(localTokens, tokenImporters, options) {
129
129
  return { text, mapping, linkedCodeMapping };
130
130
  }
131
131
  /**
132
- * Create a d.ts file with a default export.
132
+ * Generate a d.ts file with a default export.
133
133
  * @example
134
134
  * If the CSS module file is:
135
135
  * ```css
@@ -151,7 +151,7 @@ function createNamedExportsDts(localTokens, tokenImporters, options) {
151
151
  * export default styles;
152
152
  * ```
153
153
  */
154
- function createDefaultExportDts(localTokens, tokenImporters) {
154
+ function generateDefaultExportDts(localTokens, tokenImporters) {
155
155
  const mapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
156
156
  const linkedCodeMapping = {
157
157
  sourceOffsets: [],
@@ -219,4 +219,4 @@ function isValidName(name, options) {
219
219
  return false;
220
220
  return true;
221
221
  }
222
- //# sourceMappingURL=dts-creator.js.map
222
+ //# sourceMappingURL=dts-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dts-generator.js","sourceRoot":"","sources":["../src/dts-generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export type { CMKConfig } from './config.js';
2
2
  export { readConfigFile } from './config.js';
3
3
  export { TsConfigFileNotFoundError, SystemError } from './error.js';
4
- export { parseCSSModule, type ParseCSSModuleOptions, type ParseCSSModuleResult } from './parser/css-module-parser.js';
4
+ export { parseCSSModule, type ParseCSSModuleOptions } from './parser/css-module-parser.js';
5
5
  export { parseRule } from './parser/rule-parser.js';
6
6
  export { type Location, type Position, type CSSModule, type Token, type AtImportTokenImporter, type TokenImporter, type AtValueTokenImporter, type AtValueTokenImporterValue, type Resolver, type MatchesPattern, type ExportBuilder, type DiagnosticSourceFile, type Diagnostic, type DiagnosticWithLocation, type DiagnosticCategory, type DiagnosticPosition, } from './type.js';
7
- export { type CreateDtsOptions, createDts, STYLES_EXPORT_NAME } from './dts-creator.js';
7
+ export { type GenerateDtsOptions, generateDts, STYLES_EXPORT_NAME } from './dts-generator.js';
8
8
  export { createResolver } from './resolver.js';
9
9
  export { CSS_MODULE_EXTENSION, getCssModuleFileName, isComponentFileName, isCSSModuleFile, findComponentFile, findComponentFileSync, createMatchesPattern, getFileNamesByPattern, } from './file.js';
10
10
  export { checkCSSModule } from './checker.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertSystemError = exports.convertDiagnosticWithLocation = exports.convertDiagnostic = exports.findUsedTokenNames = exports.isAbsolute = exports.parse = exports.basename = exports.dirname = exports.relative = exports.resolve = exports.join = exports.createExportBuilder = exports.checkCSSModule = exports.getFileNamesByPattern = exports.createMatchesPattern = exports.findComponentFileSync = exports.findComponentFile = exports.isCSSModuleFile = exports.isComponentFileName = exports.getCssModuleFileName = exports.CSS_MODULE_EXTENSION = exports.createResolver = exports.STYLES_EXPORT_NAME = exports.createDts = exports.parseRule = exports.parseCSSModule = exports.SystemError = exports.TsConfigFileNotFoundError = exports.readConfigFile = void 0;
3
+ exports.convertSystemError = exports.convertDiagnosticWithLocation = exports.convertDiagnostic = exports.findUsedTokenNames = exports.isAbsolute = exports.parse = exports.basename = exports.dirname = exports.relative = exports.resolve = exports.join = exports.createExportBuilder = exports.checkCSSModule = exports.getFileNamesByPattern = exports.createMatchesPattern = exports.findComponentFileSync = exports.findComponentFile = exports.isCSSModuleFile = exports.isComponentFileName = exports.getCssModuleFileName = exports.CSS_MODULE_EXTENSION = exports.createResolver = exports.STYLES_EXPORT_NAME = exports.generateDts = exports.parseRule = exports.parseCSSModule = exports.SystemError = exports.TsConfigFileNotFoundError = exports.readConfigFile = void 0;
4
4
  var config_js_1 = require("./config.js");
5
5
  Object.defineProperty(exports, "readConfigFile", { enumerable: true, get: function () { return config_js_1.readConfigFile; } });
6
6
  var error_js_1 = require("./error.js");
@@ -10,9 +10,9 @@ var css_module_parser_js_1 = require("./parser/css-module-parser.js");
10
10
  Object.defineProperty(exports, "parseCSSModule", { enumerable: true, get: function () { return css_module_parser_js_1.parseCSSModule; } });
11
11
  var rule_parser_js_1 = require("./parser/rule-parser.js");
12
12
  Object.defineProperty(exports, "parseRule", { enumerable: true, get: function () { return rule_parser_js_1.parseRule; } });
13
- var dts_creator_js_1 = require("./dts-creator.js");
14
- Object.defineProperty(exports, "createDts", { enumerable: true, get: function () { return dts_creator_js_1.createDts; } });
15
- Object.defineProperty(exports, "STYLES_EXPORT_NAME", { enumerable: true, get: function () { return dts_creator_js_1.STYLES_EXPORT_NAME; } });
13
+ var dts_generator_js_1 = require("./dts-generator.js");
14
+ Object.defineProperty(exports, "generateDts", { enumerable: true, get: function () { return dts_generator_js_1.generateDts; } });
15
+ Object.defineProperty(exports, "STYLES_EXPORT_NAME", { enumerable: true, get: function () { return dts_generator_js_1.STYLES_EXPORT_NAME; } });
16
16
  var resolver_js_1 = require("./resolver.js");
17
17
  Object.defineProperty(exports, "createResolver", { enumerable: true, get: function () { return resolver_js_1.createResolver; } });
18
18
  var file_js_1 = require("./file.js");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,uCAAoE;AAA3D,qHAAA,yBAAyB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC/C,sEAAsH;AAA7G,sHAAA,cAAc,OAAA;AACvB,0DAAoD;AAA3C,2GAAA,SAAS,OAAA;AAmBlB,mDAAwF;AAAxD,2GAAA,SAAS,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAC7D,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,qCASmB;AARjB,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AACpB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,gHAAA,qBAAqB,OAAA;AACrB,+GAAA,oBAAoB,OAAA;AACpB,gHAAA,qBAAqB,OAAA;AAEvB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AACvB,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA;AAC5B,qCAA0F;AAAjF,+FAAA,IAAI,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,qGAAA,UAAU,OAAA;AACtE,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAC3B,iDAAuG;AAA9F,kHAAA,iBAAiB,OAAA;AAAE,8HAAA,6BAA6B,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,uCAAoE;AAA3D,qHAAA,yBAAyB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC/C,sEAA2F;AAAlF,sHAAA,cAAc,OAAA;AACvB,0DAAoD;AAA3C,2GAAA,SAAS,OAAA;AAmBlB,uDAA8F;AAA5D,+GAAA,WAAW,OAAA;AAAE,sHAAA,kBAAkB,OAAA;AACjE,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,qCASmB;AARjB,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AACpB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,gHAAA,qBAAqB,OAAA;AACrB,+GAAA,oBAAoB,OAAA;AACpB,gHAAA,qBAAqB,OAAA;AAEvB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AACvB,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA;AAC5B,qCAA0F;AAAjF,+FAAA,IAAI,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,qGAAA,UAAU,OAAA;AACtE,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAC3B,iDAAuG;AAA9F,kHAAA,iBAAiB,OAAA;AAAE,8HAAA,6BAA6B,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
@@ -1,11 +1,13 @@
1
- import type { CSSModule, DiagnosticWithLocation } from '../type.js';
1
+ import type { CSSModule } from '../type.js';
2
2
  export interface ParseCSSModuleOptions {
3
3
  fileName: string;
4
- safe: boolean;
4
+ /** Whether to include syntax errors from diagnostics */
5
+ includeSyntaxError: boolean;
6
+ keyframes: boolean;
5
7
  }
6
- export interface ParseCSSModuleResult {
7
- cssModule: CSSModule;
8
- diagnostics: DiagnosticWithLocation[];
9
- }
10
- export declare function parseCSSModule(text: string, { fileName, safe }: ParseCSSModuleOptions): ParseCSSModuleResult;
8
+ /**
9
+ * Parse CSS Module text.
10
+ * If a syntax error is detected in the text, it is re-parsed using `postcss-safe-parser`, and `localTokens` are collected as much as possible.
11
+ */
12
+ export declare function parseCSSModule(text: string, { fileName, includeSyntaxError, keyframes }: ParseCSSModuleOptions): CSSModule;
11
13
  //# sourceMappingURL=css-module-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"css-module-parser.d.ts","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EAET,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AAqEpB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACvC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,qBAAqB,GAAG,oBAAoB,CAgC5G"}
1
+ {"version":3,"file":"css-module-parser.d.ts","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,YAAY,CAAC;AAqEpB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB;AACD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE,qBAAqB,GACjE,SAAS,CAmCX"}
@@ -28,7 +28,7 @@ function isRuleNode(node) {
28
28
  /**
29
29
  * Collect tokens from the AST.
30
30
  */
31
- function collectTokens(ast) {
31
+ function collectTokens(ast, keyframes) {
32
32
  const allDiagnostics = [];
33
33
  const localTokens = [];
34
34
  const tokenImporters = [];
@@ -51,7 +51,7 @@ function collectTokens(ast) {
51
51
  tokenImporters.push({ ...atValue, type: 'value' });
52
52
  }
53
53
  }
54
- else if (isAtKeyframesNode(node)) {
54
+ else if (keyframes && isAtKeyframesNode(node)) {
55
55
  const { keyframe, diagnostics } = (0, key_frame_parser_js_1.parseAtKeyframes)(node);
56
56
  allDiagnostics.push(...diagnostics);
57
57
  if (keyframe) {
@@ -68,38 +68,46 @@ function collectTokens(ast) {
68
68
  });
69
69
  return { localTokens, tokenImporters, diagnostics: allDiagnostics };
70
70
  }
71
- function parseCSSModule(text, { fileName, safe }) {
71
+ /**
72
+ * Parse CSS Module text.
73
+ * If a syntax error is detected in the text, it is re-parsed using `postcss-safe-parser`, and `localTokens` are collected as much as possible.
74
+ */
75
+ function parseCSSModule(text, { fileName, includeSyntaxError, keyframes }) {
72
76
  let ast;
73
- const diagnosticSourceFile = { fileName, text };
74
- try {
75
- const parser = safe ? postcss_safe_parser_1.default : postcss_1.parse;
76
- ast = parser(text, { from: fileName });
77
- }
78
- catch (e) {
79
- if (e instanceof postcss_1.CssSyntaxError) {
77
+ const diagnosticFile = { fileName, text };
78
+ const allDiagnostics = [];
79
+ if (includeSyntaxError) {
80
+ try {
81
+ ast = (0, postcss_1.parse)(text, { from: fileName });
82
+ }
83
+ catch (e) {
84
+ if (!(e instanceof postcss_1.CssSyntaxError))
85
+ throw e;
86
+ // If syntax error, try to parse with safe parser. While this incurs a cost
87
+ // due to parsing the file twice, it rarely becomes an issue since files
88
+ // with syntax errors are usually few in number.
89
+ ast = (0, postcss_safe_parser_1.default)(text, { from: fileName });
80
90
  const { line, column, endColumn } = e.input;
81
- return {
82
- cssModule: { fileName, text, localTokens: [], tokenImporters: [] },
83
- diagnostics: [
84
- {
85
- file: diagnosticSourceFile,
86
- start: { line, column },
87
- length: endColumn !== undefined ? endColumn - column : 1,
88
- text: e.reason,
89
- category: 'error',
90
- },
91
- ],
92
- };
91
+ allDiagnostics.push({
92
+ file: diagnosticFile,
93
+ start: { line, column },
94
+ length: endColumn !== undefined ? endColumn - column : 1,
95
+ text: e.reason,
96
+ category: 'error',
97
+ });
93
98
  }
94
- throw e;
95
99
  }
96
- const { localTokens, tokenImporters, diagnostics } = collectTokens(ast);
97
- const cssModule = {
100
+ else {
101
+ ast = (0, postcss_safe_parser_1.default)(text, { from: fileName });
102
+ }
103
+ const { localTokens, tokenImporters, diagnostics } = collectTokens(ast, keyframes);
104
+ allDiagnostics.push(...diagnostics.map((diagnostic) => ({ ...diagnostic, file: diagnosticFile })));
105
+ return {
98
106
  fileName,
99
107
  text,
100
108
  localTokens,
101
109
  tokenImporters,
110
+ diagnostics: allDiagnostics,
102
111
  };
103
- return { cssModule, diagnostics: diagnostics.map((diagnostic) => ({ ...diagnostic, file: diagnosticSourceFile })) };
104
112
  }
105
113
  //# sourceMappingURL=css-module-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"css-module-parser.js","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"css-module-parser.js","sourceRoot":"","sources":["../../src/parser/css-module-parser.ts"],"names":[],"mappings":"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"}
package/dist/type.d.ts CHANGED
@@ -109,6 +109,8 @@ export interface CSSModule {
109
109
  * Token importer is a statement that imports tokens from another file.
110
110
  */
111
111
  tokenImporters: TokenImporter[];
112
+ /** Diagnostics found during parsing. */
113
+ diagnostics: DiagnosticWithLocation[];
112
114
  }
113
115
  export interface ResolverOptions {
114
116
  /** The file that imports the specifier. It is a absolute path. */
@@ -136,7 +138,7 @@ export interface ExportBuilder {
136
138
  build(cssModule: CSSModule): ExportRecord;
137
139
  clearCache(): void;
138
140
  }
139
- export type DiagnosticCategory = 'error' | 'warning';
141
+ export type DiagnosticCategory = 'error';
140
142
  export interface DiagnosticSourceFile {
141
143
  fileName: string;
142
144
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@css-modules-kit/core",
3
3
  "description": "The core of css-modules-kit",
4
- "version": "0.5.1",
4
+ "version": "0.7.0",
5
5
  "type": "commonjs",
6
6
  "sideEffects": false,
7
7
  "repository": {
package/src/config.ts CHANGED
@@ -17,6 +17,7 @@ export interface CMKConfig {
17
17
  arbitraryExtensions: boolean;
18
18
  namedExports: boolean;
19
19
  prioritizeNamedImports: boolean;
20
+ keyframes: boolean;
20
21
  /**
21
22
  * A root directory to resolve relative path entries in the config file to.
22
23
  * This is an absolute path.
@@ -57,6 +58,8 @@ export interface CMKConfig {
57
58
  basePath: string;
58
59
  configFileName: string;
59
60
  compilerOptions: ts.CompilerOptions;
61
+ /** The directories to watch when watch mode is enabled. */
62
+ wildcardDirectories: { fileName: string; recursive: boolean }[];
60
63
  /** The diagnostics that occurred while reading the config file. */
61
64
  diagnostics: Diagnostic[];
62
65
  }
@@ -72,6 +75,7 @@ interface UnnormalizedRawConfig {
72
75
  arbitraryExtensions?: boolean;
73
76
  namedExports?: boolean;
74
77
  prioritizeNamedImports?: boolean;
78
+ keyframes?: boolean;
75
79
  }
76
80
 
77
81
  /**
@@ -82,7 +86,7 @@ interface ParsedRawData {
82
86
  diagnostics: Diagnostic[];
83
87
  }
84
88
 
85
- export function findTsConfigFile(project: string): string | undefined {
89
+ function findTsConfigFile(project: string): string | undefined {
86
90
  const configFile =
87
91
  ts.sys.directoryExists(project) ?
88
92
  ts.findConfigFile(project, ts.sys.fileExists.bind(ts.sys), 'tsconfig.json')
@@ -91,6 +95,10 @@ export function findTsConfigFile(project: string): string | undefined {
91
95
  return resolve(configFile);
92
96
  }
93
97
 
98
+ function isTsConfigFileExists(fileName: string): boolean {
99
+ return ts.findConfigFile(dirname(fileName), ts.sys.fileExists.bind(ts.sys), basename(fileName)) !== undefined;
100
+ }
101
+
94
102
  function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile): ParsedRawData {
95
103
  const result: ParsedRawData = {
96
104
  config: {},
@@ -138,6 +146,16 @@ function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile):
138
146
  });
139
147
  }
140
148
  }
149
+ if ('keyframes' in raw.cmkOptions) {
150
+ if (typeof raw.cmkOptions.keyframes === 'boolean') {
151
+ result.config.keyframes = raw.cmkOptions.keyframes;
152
+ } else {
153
+ result.diagnostics.push({
154
+ category: 'error',
155
+ text: `\`keyframes\` in ${tsConfigSourceFile.fileName} must be a boolean.`,
156
+ });
157
+ }
158
+ }
141
159
  if ('namedExports' in raw.cmkOptions) {
142
160
  if (typeof raw.cmkOptions.namedExports === 'boolean') {
143
161
  result.config.namedExports = raw.cmkOptions.namedExports;
@@ -163,33 +181,9 @@ function parseRawData(raw: unknown, tsConfigSourceFile: ts.TsConfigSourceFile):
163
181
  }
164
182
  return result;
165
183
  }
166
- export { parseRawData as parseRawDataForTest };
167
-
168
- function mergeParsedRawData(base: ParsedRawData, overrides: ParsedRawData): ParsedRawData {
169
- const result: ParsedRawData = { config: { ...base.config }, diagnostics: [...base.diagnostics] };
170
- if (overrides.config.includes !== undefined) result.config.includes = overrides.config.includes;
171
- if (overrides.config.excludes !== undefined) result.config.excludes = overrides.config.excludes;
172
- if (overrides.config.dtsOutDir !== undefined) result.config.dtsOutDir = overrides.config.dtsOutDir;
173
- if (overrides.config.arbitraryExtensions !== undefined)
174
- result.config.arbitraryExtensions = overrides.config.arbitraryExtensions;
175
- if (overrides.config.namedExports !== undefined) result.config.namedExports = overrides.config.namedExports;
176
- result.diagnostics.push(...overrides.diagnostics);
177
- return result;
178
- }
179
184
 
180
- /**
181
- * @throws {TsConfigFileNotFoundError}
182
- */
183
- export function readTsConfigFile(project: string): {
184
- configFileName: string;
185
- config: UnnormalizedRawConfig;
186
- compilerOptions: ts.CompilerOptions;
187
- diagnostics: Diagnostic[];
188
- } {
189
- const configFileName = findTsConfigFile(project);
190
- if (!configFileName) throw new TsConfigFileNotFoundError();
191
-
192
- const tsConfigSourceFile = ts.readJsonConfigFile(configFileName, ts.sys.readFile.bind(ts.sys));
185
+ function parseTsConfigFile(fileName: string) {
186
+ const tsConfigSourceFile = ts.readJsonConfigFile(fileName, ts.sys.readFile.bind(ts.sys));
193
187
  // MEMO: `tsConfigSourceFile.parseDiagnostics` (Internal API) contains a syntax error for `tsconfig.json`.
194
188
  // However, it is ignored so that ts-plugin will work even if `tsconfig.json` is somewhat broken.
195
189
  // Also, this error is reported to the user by `tsc` or `tsserver`.
@@ -198,9 +192,9 @@ export function readTsConfigFile(project: string): {
198
192
  const parsedCommandLine = ts.parseJsonSourceFileConfigFileContent(
199
193
  tsConfigSourceFile,
200
194
  ts.sys,
201
- dirname(configFileName),
195
+ dirname(fileName),
202
196
  undefined,
203
- configFileName,
197
+ fileName,
204
198
  undefined,
205
199
  [
206
200
  {
@@ -211,26 +205,15 @@ export function readTsConfigFile(project: string): {
211
205
  ],
212
206
  );
213
207
  // Read options from `parsedCommandLine.raw`
214
- let parsedRawData = parseRawData(parsedCommandLine.raw, tsConfigSourceFile);
215
-
216
- // The options read from `parsedCommandLine.raw` do not inherit values from the file specified in `extends`.
217
- // So here we read the options from those files and merge them into `parsedRawData`.
218
- if (tsConfigSourceFile.extendedSourceFiles) {
219
- for (const extendedSourceFile of tsConfigSourceFile.extendedSourceFiles) {
220
- let base: ParsedRawData;
221
- try {
222
- base = readTsConfigFile(extendedSourceFile);
223
- } catch (error) {
224
- if (error instanceof TsConfigFileNotFoundError) continue;
225
- throw error;
226
- }
227
- parsedRawData = mergeParsedRawData(base, parsedRawData);
228
- }
229
- }
208
+ const parsedRawData = parseRawData(parsedCommandLine.raw, tsConfigSourceFile);
230
209
 
231
210
  return {
232
- configFileName,
211
+ extendedSourceFiles: tsConfigSourceFile.extendedSourceFiles,
233
212
  compilerOptions: parsedCommandLine.options,
213
+ wildcardDirectories: Object.entries(parsedCommandLine.wildcardDirectories ?? {}).map(([fileName, flags]) => ({
214
+ fileName,
215
+ recursive: (flags & ts.WatchDirectoryFlags.Recursive) !== 0,
216
+ })),
234
217
  ...parsedRawData,
235
218
  };
236
219
  }
@@ -244,20 +227,38 @@ export function readTsConfigFile(project: string): {
244
227
  * @throws {TsConfigFileNotFoundError}
245
228
  */
246
229
  export function readConfigFile(project: string): CMKConfig {
247
- const { configFileName, config, compilerOptions, diagnostics } = readTsConfigFile(project);
230
+ const configFileName = findTsConfigFile(project);
231
+ if (!configFileName) throw new TsConfigFileNotFoundError();
232
+
233
+ const parsedTsConfig = parseTsConfigFile(configFileName);
234
+
235
+ // The options read from `parsedCommandLine.raw` do not inherit values from the file specified in `extends`.
236
+ // So here we read the options from those files and merge them into `parsedRawData`.
237
+ if (parsedTsConfig.extendedSourceFiles) {
238
+ for (const extendedSourceFile of parsedTsConfig.extendedSourceFiles) {
239
+ if (isTsConfigFileExists(extendedSourceFile)) {
240
+ const base = parseTsConfigFile(extendedSourceFile);
241
+ parsedTsConfig.config = { ...base.config, ...parsedTsConfig.config };
242
+ parsedTsConfig.diagnostics = [...base.diagnostics, ...parsedTsConfig.diagnostics];
243
+ }
244
+ }
245
+ }
246
+
248
247
  const basePath = dirname(configFileName);
249
248
  return {
250
- // If `include` is not specified, fallback to the default include spec.
249
+ // If `include` is not specified, fallback to the default include spec
251
250
  // ref: https://github.com/microsoft/TypeScript/blob/caf1aee269d1660b4d2a8b555c2d602c97cb28d7/src/compiler/commandLineParser.ts#L3102
252
- includes: (config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => join(basePath, i)),
253
- excludes: (config.excludes ?? []).map((e) => join(basePath, e)),
254
- dtsOutDir: join(basePath, config.dtsOutDir ?? 'generated'),
255
- arbitraryExtensions: config.arbitraryExtensions ?? false,
256
- namedExports: config.namedExports ?? false,
257
- prioritizeNamedImports: config.prioritizeNamedImports ?? false,
251
+ includes: (parsedTsConfig.config.includes ?? [DEFAULT_INCLUDE_SPEC]).map((i) => join(basePath, i)),
252
+ excludes: (parsedTsConfig.config.excludes ?? []).map((e) => join(basePath, e)),
253
+ dtsOutDir: join(basePath, parsedTsConfig.config.dtsOutDir ?? 'generated'),
254
+ arbitraryExtensions: parsedTsConfig.config.arbitraryExtensions ?? false,
255
+ namedExports: parsedTsConfig.config.namedExports ?? false,
256
+ prioritizeNamedImports: parsedTsConfig.config.prioritizeNamedImports ?? false,
257
+ keyframes: parsedTsConfig.config.keyframes ?? true,
258
258
  basePath,
259
259
  configFileName,
260
- compilerOptions,
261
- diagnostics,
260
+ compilerOptions: parsedTsConfig.compilerOptions,
261
+ wildcardDirectories: parsedTsConfig.wildcardDirectories,
262
+ diagnostics: parsedTsConfig.diagnostics,
262
263
  };
263
264
  }
package/src/diagnostic.ts CHANGED
@@ -1,20 +1,16 @@
1
1
  import ts from 'typescript';
2
2
  import type { SystemError } from './error.js';
3
- import type { Diagnostic, DiagnosticSourceFile, DiagnosticWithLocation } from './type.js';
3
+ import type { Diagnostic, DiagnosticCategory, DiagnosticSourceFile, DiagnosticWithLocation } from './type.js';
4
4
 
5
5
  /** The error code used by tsserver to display the css-modules-kit error in the editor. */
6
6
  const TS_ERROR_CODE = 0;
7
7
 
8
8
  const TS_ERROR_SOURCE = 'css-modules-kit';
9
9
 
10
- function convertErrorCategory(category: 'error' | 'warning' | 'suggestion'): ts.DiagnosticCategory {
10
+ function convertErrorCategory(category: DiagnosticCategory): ts.DiagnosticCategory {
11
11
  switch (category) {
12
12
  case 'error':
13
13
  return ts.DiagnosticCategory.Error;
14
- case 'warning':
15
- return ts.DiagnosticCategory.Warning;
16
- case 'suggestion':
17
- return ts.DiagnosticCategory.Suggestion;
18
14
  default:
19
15
  throw new Error(`Unknown category: ${String(category)}`);
20
16
  }
@@ -3,12 +3,12 @@ import { isValidAsJSIdentifier } from './util.js';
3
3
 
4
4
  export const STYLES_EXPORT_NAME = 'styles';
5
5
 
6
- export interface CreateDtsHost {
6
+ export interface GenerateDtsHost {
7
7
  resolver: Resolver;
8
8
  matchesPattern: MatchesPattern;
9
9
  }
10
10
 
11
- export interface CreateDtsOptions {
11
+ export interface GenerateDtsOptions {
12
12
  namedExports: boolean;
13
13
  prioritizeNamedImports: boolean;
14
14
  /** Generate .d.ts for ts-plugin */
@@ -37,19 +37,23 @@ interface LinkedCodeMapping extends CodeMapping {
37
37
  generatedLengths: number[];
38
38
  }
39
39
 
40
- interface CreateDtsResult {
40
+ interface GenerateDtsResult {
41
41
  text: string;
42
42
  mapping: CodeMapping;
43
43
  linkedCodeMapping: LinkedCodeMapping;
44
44
  }
45
45
 
46
46
  /**
47
- * Create a d.ts file.
47
+ * Generate .d.ts from `CSSModule`.
48
48
  */
49
- export function createDts(cssModules: CSSModule, host: CreateDtsHost, options: CreateDtsOptions): CreateDtsResult {
49
+ export function generateDts(
50
+ cssModule: CSSModule,
51
+ host: GenerateDtsHost,
52
+ options: GenerateDtsOptions,
53
+ ): GenerateDtsResult {
50
54
  // Exclude invalid tokens
51
- const localTokens = cssModules.localTokens.filter((token) => isValidName(token.name, options));
52
- const tokenImporters = cssModules.tokenImporters
55
+ const localTokens = cssModule.localTokens.filter((token) => isValidName(token.name, options));
56
+ const tokenImporters = cssModule.tokenImporters
53
57
  // Exclude invalid imported tokens
54
58
  .map((tokenImporter) => {
55
59
  if (tokenImporter.type === 'value') {
@@ -67,19 +71,19 @@ export function createDts(cssModules: CSSModule, host: CreateDtsHost, options: C
67
71
  })
68
72
  // Exclude token importers for external files
69
73
  .filter((tokenImporter) => {
70
- const resolved = host.resolver(tokenImporter.from, { request: cssModules.fileName });
74
+ const resolved = host.resolver(tokenImporter.from, { request: cssModule.fileName });
71
75
  return resolved !== undefined && host.matchesPattern(resolved);
72
76
  });
73
77
 
74
78
  if (options.namedExports) {
75
- return createNamedExportsDts(localTokens, tokenImporters, options);
79
+ return generateNamedExportsDts(localTokens, tokenImporters, options);
76
80
  } else {
77
- return createDefaultExportDts(localTokens, tokenImporters);
81
+ return generateDefaultExportDts(localTokens, tokenImporters);
78
82
  }
79
83
  }
80
84
 
81
85
  /**
82
- * Create a d.ts file with named exports.
86
+ * Generate a d.ts file with named exports.
83
87
  * @example
84
88
  * If the CSS module file is:
85
89
  * ```css
@@ -100,10 +104,10 @@ export function createDts(cssModules: CSSModule, host: CreateDtsHost, options: C
100
104
  * } from './b.module.css';
101
105
  * ```
102
106
  */
103
- function createNamedExportsDts(
107
+ function generateNamedExportsDts(
104
108
  localTokens: Token[],
105
109
  tokenImporters: TokenImporter[],
106
- options: CreateDtsOptions,
110
+ options: GenerateDtsOptions,
107
111
  ): { text: string; mapping: CodeMapping; linkedCodeMapping: LinkedCodeMapping } {
108
112
  const mapping: CodeMapping = { sourceOffsets: [], lengths: [], generatedOffsets: [] };
109
113
  const linkedCodeMapping: LinkedCodeMapping = {
@@ -176,7 +180,7 @@ function createNamedExportsDts(
176
180
  }
177
181
 
178
182
  /**
179
- * Create a d.ts file with a default export.
183
+ * Generate a d.ts file with a default export.
180
184
  * @example
181
185
  * If the CSS module file is:
182
186
  * ```css
@@ -198,7 +202,7 @@ function createNamedExportsDts(
198
202
  * export default styles;
199
203
  * ```
200
204
  */
201
- function createDefaultExportDts(
205
+ function generateDefaultExportDts(
202
206
  localTokens: Token[],
203
207
  tokenImporters: TokenImporter[],
204
208
  ): { text: string; mapping: CodeMapping; linkedCodeMapping: LinkedCodeMapping } {
@@ -263,7 +267,7 @@ function createDefaultExportDts(
263
267
  return { text, mapping, linkedCodeMapping };
264
268
  }
265
269
 
266
- function isValidName(name: string, options: CreateDtsOptions): boolean {
270
+ function isValidName(name: string, options: GenerateDtsOptions): boolean {
267
271
  if (!isValidAsJSIdentifier(name)) return false;
268
272
  if (name === '__proto__') return false;
269
273
  if (options.namedExports && name === 'default') return false;
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export type { CMKConfig } from './config.js';
2
2
  export { readConfigFile } from './config.js';
3
3
  export { TsConfigFileNotFoundError, SystemError } from './error.js';
4
- export { parseCSSModule, type ParseCSSModuleOptions, type ParseCSSModuleResult } from './parser/css-module-parser.js';
4
+ export { parseCSSModule, type ParseCSSModuleOptions } from './parser/css-module-parser.js';
5
5
  export { parseRule } from './parser/rule-parser.js';
6
6
  export {
7
7
  type Location,
@@ -21,7 +21,7 @@ export {
21
21
  type DiagnosticCategory,
22
22
  type DiagnosticPosition,
23
23
  } from './type.js';
24
- export { type CreateDtsOptions, createDts, STYLES_EXPORT_NAME } from './dts-creator.js';
24
+ export { type GenerateDtsOptions, generateDts, STYLES_EXPORT_NAME } from './dts-generator.js';
25
25
  export { createResolver } from './resolver.js';
26
26
  export {
27
27
  CSS_MODULE_EXTENSION,
@@ -40,7 +40,7 @@ function isRuleNode(node: Node): node is Rule {
40
40
  /**
41
41
  * Collect tokens from the AST.
42
42
  */
43
- function collectTokens(ast: Root) {
43
+ function collectTokens(ast: Root, keyframes: boolean) {
44
44
  const allDiagnostics: DiagnosticWithDetachedLocation[] = [];
45
45
  const localTokens: Token[] = [];
46
46
  const tokenImporters: TokenImporter[] = [];
@@ -59,7 +59,7 @@ function collectTokens(ast: Root) {
59
59
  } else if (atValue.type === 'valueImportDeclaration') {
60
60
  tokenImporters.push({ ...atValue, type: 'value' });
61
61
  }
62
- } else if (isAtKeyframesNode(node)) {
62
+ } else if (keyframes && isAtKeyframesNode(node)) {
63
63
  const { keyframe, diagnostics } = parseAtKeyframes(node);
64
64
  allDiagnostics.push(...diagnostics);
65
65
  if (keyframe) {
@@ -78,44 +78,50 @@ function collectTokens(ast: Root) {
78
78
 
79
79
  export interface ParseCSSModuleOptions {
80
80
  fileName: string;
81
- safe: boolean;
81
+ /** Whether to include syntax errors from diagnostics */
82
+ includeSyntaxError: boolean;
83
+ keyframes: boolean;
82
84
  }
83
-
84
- export interface ParseCSSModuleResult {
85
- cssModule: CSSModule;
86
- diagnostics: DiagnosticWithLocation[];
87
- }
88
-
89
- export function parseCSSModule(text: string, { fileName, safe }: ParseCSSModuleOptions): ParseCSSModuleResult {
85
+ /**
86
+ * Parse CSS Module text.
87
+ * If a syntax error is detected in the text, it is re-parsed using `postcss-safe-parser`, and `localTokens` are collected as much as possible.
88
+ */
89
+ export function parseCSSModule(
90
+ text: string,
91
+ { fileName, includeSyntaxError, keyframes }: ParseCSSModuleOptions,
92
+ ): CSSModule {
90
93
  let ast: Root;
91
- const diagnosticSourceFile = { fileName, text };
92
- try {
93
- const parser = safe ? safeParser : parse;
94
- ast = parser(text, { from: fileName });
95
- } catch (e) {
96
- if (e instanceof CssSyntaxError) {
94
+ const diagnosticFile = { fileName, text };
95
+ const allDiagnostics: DiagnosticWithLocation[] = [];
96
+ if (includeSyntaxError) {
97
+ try {
98
+ ast = parse(text, { from: fileName });
99
+ } catch (e) {
100
+ if (!(e instanceof CssSyntaxError)) throw e;
101
+ // If syntax error, try to parse with safe parser. While this incurs a cost
102
+ // due to parsing the file twice, it rarely becomes an issue since files
103
+ // with syntax errors are usually few in number.
104
+ ast = safeParser(text, { from: fileName });
97
105
  const { line, column, endColumn } = e.input!;
98
- return {
99
- cssModule: { fileName, text, localTokens: [], tokenImporters: [] },
100
- diagnostics: [
101
- {
102
- file: diagnosticSourceFile,
103
- start: { line, column },
104
- length: endColumn !== undefined ? endColumn - column : 1,
105
- text: e.reason,
106
- category: 'error',
107
- },
108
- ],
109
- };
106
+ allDiagnostics.push({
107
+ file: diagnosticFile,
108
+ start: { line, column },
109
+ length: endColumn !== undefined ? endColumn - column : 1,
110
+ text: e.reason,
111
+ category: 'error',
112
+ });
110
113
  }
111
- throw e;
114
+ } else {
115
+ ast = safeParser(text, { from: fileName });
112
116
  }
113
- const { localTokens, tokenImporters, diagnostics } = collectTokens(ast);
114
- const cssModule = {
117
+
118
+ const { localTokens, tokenImporters, diagnostics } = collectTokens(ast, keyframes);
119
+ allDiagnostics.push(...diagnostics.map((diagnostic) => ({ ...diagnostic, file: diagnosticFile })));
120
+ return {
115
121
  fileName,
116
122
  text,
117
123
  localTokens,
118
124
  tokenImporters,
125
+ diagnostics: allDiagnostics,
119
126
  };
120
- return { cssModule, diagnostics: diagnostics.map((diagnostic) => ({ ...diagnostic, file: diagnosticSourceFile })) };
121
127
  }
package/src/type.ts CHANGED
@@ -116,6 +116,8 @@ export interface CSSModule {
116
116
  * Token importer is a statement that imports tokens from another file.
117
117
  */
118
118
  tokenImporters: TokenImporter[];
119
+ /** Diagnostics found during parsing. */
120
+ diagnostics: DiagnosticWithLocation[];
119
121
  }
120
122
 
121
123
  export interface ResolverOptions {
@@ -149,7 +151,7 @@ export interface ExportBuilder {
149
151
  clearCache(): void;
150
152
  }
151
153
 
152
- export type DiagnosticCategory = 'error' | 'warning';
154
+ export type DiagnosticCategory = 'error';
153
155
 
154
156
  export interface DiagnosticSourceFile {
155
157
  fileName: string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"dts-creator.d.ts","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAwB,MAAM,WAAW,CAAC;AAG3F,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,iEAAiE;IACjE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,8CAA8C;AAE9C,UAAU,iBAAkB,SAAQ,WAAW;IAC7C,iDAAiD;IACjD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iDAAiD;IACjD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,GAAG,eAAe,CA8BhH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dts-creator.js","sourceRoot":"","sources":["../src/dts-creator.ts"],"names":[],"mappings":"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"}