@nx/angular-rspack 20.7.0 → 20.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/lib/config/create-config.d.ts +75 -2
  2. package/dist/lib/config/create-config.d.ts.map +1 -1
  3. package/dist/lib/config/create-config.js +166 -138
  4. package/dist/lib/config/dev-server-config-utils.d.ts.map +1 -1
  5. package/dist/lib/config/dev-server-config-utils.js +3 -7
  6. package/dist/lib/config/entry-points.d.ts +9 -0
  7. package/dist/lib/config/entry-points.d.ts.map +1 -0
  8. package/dist/lib/config/entry-points.js +36 -0
  9. package/dist/lib/config/i18n/create-i18n-options.d.ts +1 -1
  10. package/dist/lib/config/i18n/create-i18n-options.d.ts.map +1 -1
  11. package/dist/lib/config/i18n/create-i18n-options.js +8 -6
  12. package/dist/lib/config/style-config-utils.d.ts +12 -306
  13. package/dist/lib/config/style-config-utils.d.ts.map +1 -1
  14. package/dist/lib/config/style-config-utils.js +180 -93
  15. package/dist/lib/models/angular-rspack-plugin-options.d.ts +39 -1
  16. package/dist/lib/models/angular-rspack-plugin-options.d.ts.map +1 -1
  17. package/dist/lib/models/normalize-options.d.ts +2 -2
  18. package/dist/lib/models/normalize-options.d.ts.map +1 -1
  19. package/dist/lib/models/normalize-options.js +68 -119
  20. package/dist/lib/models/unsupported-options.d.ts +0 -6
  21. package/dist/lib/models/unsupported-options.d.ts.map +1 -1
  22. package/dist/lib/models/unsupported-options.js +0 -6
  23. package/dist/lib/plugins/angular-rspack-plugin.d.ts +2 -2
  24. package/dist/lib/plugins/angular-rspack-plugin.d.ts.map +1 -1
  25. package/dist/lib/plugins/angular-rspack-plugin.js +33 -26
  26. package/dist/lib/plugins/i18n-inline-plugin.d.ts +2 -2
  27. package/dist/lib/plugins/i18n-inline-plugin.d.ts.map +1 -1
  28. package/dist/lib/plugins/i18n-inline-plugin.js +24 -58
  29. package/dist/lib/plugins/index-html-plugin.d.ts +21 -0
  30. package/dist/lib/plugins/index-html-plugin.d.ts.map +1 -0
  31. package/dist/lib/plugins/index-html-plugin.js +114 -0
  32. package/dist/lib/plugins/ng-rspack.d.ts +8 -4
  33. package/dist/lib/plugins/ng-rspack.d.ts.map +1 -1
  34. package/dist/lib/plugins/ng-rspack.js +41 -39
  35. package/dist/lib/utils/find-project-for-path.d.ts +1 -1
  36. package/dist/lib/utils/find-project-for-path.d.ts.map +1 -1
  37. package/dist/lib/utils/find-project-for-path.js +2 -4
  38. package/dist/lib/utils/get-locale-base-href.d.ts +3 -0
  39. package/dist/lib/utils/get-locale-base-href.d.ts.map +1 -0
  40. package/dist/lib/utils/get-locale-base-href.js +17 -0
  41. package/dist/lib/utils/graph.d.ts +3 -0
  42. package/dist/lib/utils/graph.d.ts.map +1 -0
  43. package/dist/lib/utils/graph.js +25 -0
  44. package/dist/lib/utils/i18n.d.ts +4 -0
  45. package/dist/lib/utils/i18n.d.ts.map +1 -0
  46. package/dist/lib/utils/i18n.js +25 -0
  47. package/dist/lib/utils/index-file/add-event-dispatch-contract.d.ts +9 -0
  48. package/dist/lib/utils/index-file/add-event-dispatch-contract.d.ts.map +1 -0
  49. package/dist/lib/utils/index-file/add-event-dispatch-contract.js +27 -0
  50. package/dist/lib/utils/index-file/html-rewriting-stream.d.ts +16 -0
  51. package/dist/lib/utils/index-file/html-rewriting-stream.d.ts.map +1 -0
  52. package/dist/lib/utils/index-file/html-rewriting-stream.js +27 -0
  53. package/dist/lib/utils/misc-helpers.d.ts +6 -0
  54. package/dist/lib/utils/misc-helpers.d.ts.map +1 -0
  55. package/dist/lib/utils/misc-helpers.js +30 -0
  56. package/dist/lib/utils/rspack-diagnostics.d.ts +4 -0
  57. package/dist/lib/utils/rspack-diagnostics.d.ts.map +1 -0
  58. package/dist/lib/utils/rspack-diagnostics.js +10 -0
  59. package/dist/lib/utils/tailwind.d.ts +2 -0
  60. package/dist/lib/utils/tailwind.d.ts.map +1 -0
  61. package/dist/lib/utils/tailwind.js +31 -0
  62. package/dist/lib/utils/url-join.d.ts +9 -0
  63. package/dist/lib/utils/url-join.d.ts.map +1 -0
  64. package/dist/lib/utils/url-join.js +17 -0
  65. package/package.json +23 -6
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.configureI18n = configureI18n;
4
- const tslib_1 = require("tslib");
5
- const devkit_1 = require("@nx/devkit");
6
4
  const private_1 = require("@angular/build/private");
7
- const path = tslib_1.__importStar(require("node:path"));
5
+ const devkit_1 = require("@nx/devkit");
8
6
  const node_module_1 = require("node:module");
9
- const find_project_for_path_1 = require("../../utils/find-project-for-path");
10
7
  const node_path_1 = require("node:path");
8
+ const find_project_for_path_1 = require("../../utils/find-project-for-path");
9
+ const graph_1 = require("../../utils/graph");
11
10
  /**
12
11
  * The base module location used to search for locale specific data.
13
12
  */
@@ -33,7 +32,10 @@ async function getI18nMetadata(projectRoot, i18nMetadata) {
33
32
  }
34
33
  async function tryGetI18nMetadataFromProject(projectRoot) {
35
34
  try {
36
- const graph = await (0, devkit_1.createProjectGraphAsync)();
35
+ const graph = await (0, graph_1.retrieveOrCreateProjectGraph)();
36
+ if (!graph) {
37
+ return undefined;
38
+ }
37
39
  const projectRootMappings = (0, find_project_for_path_1.createProjectRootMappings)(graph.nodes);
38
40
  const root = projectRoot.startsWith(devkit_1.workspaceRoot)
39
41
  ? (0, node_path_1.relative)(devkit_1.workspaceRoot, projectRoot)
@@ -81,7 +83,7 @@ async function configureI18n(projectRoot, options) {
81
83
  }
82
84
  // The trailing slash is required to signal that the path is a directory and not a file.
83
85
  const projectRequire = (0, node_module_1.createRequire)(projectRoot + '/');
84
- const localeResolver = (locale) => projectRequire.resolve(path.join(LOCALE_DATA_BASE_MODULE, locale));
86
+ const localeResolver = (locale) => projectRequire.resolve((0, node_path_1.join)(LOCALE_DATA_BASE_MODULE, locale));
85
87
  // Load locale data and translations (if present)
86
88
  let loader;
87
89
  const usedFormats = new Set();
@@ -1,316 +1,22 @@
1
- import { StylePreprocessorOptions } from '@nx/angular-rspack-compiler';
2
- import { NormalizedAngularRspackPluginOptions, SourceMap } from '../models';
3
- export declare function getIncludePathOptions(includePaths?: string[]): {
4
- less: {
5
- paths?: undefined;
6
- };
7
- sass: {
8
- includePaths?: undefined;
9
- };
10
- } | {
11
- less: {
12
- paths: string[];
13
- };
14
- sass: {
15
- includePaths: string[];
16
- };
17
- };
18
- export declare function getSassLoaderConfig(sassPathOptions?: {
19
- includePaths?: string[];
20
- }, sassOptions?: StylePreprocessorOptions['sass'], sourceMap?: SourceMap): {
21
- test: RegExp;
22
- use: (string | {
23
- loader: string;
24
- options: {
25
- url: boolean;
26
- sourceMap: boolean | undefined;
27
- importLoaders: number;
28
- };
29
- } | {
30
- loader: string;
31
- options: {
32
- sourceMap: true;
33
- url?: undefined;
34
- importLoaders?: undefined;
35
- };
36
- } | {
37
- loader: string;
38
- options: {
39
- fatalDeprecations?: import("sass-embedded").DeprecationOrId[];
40
- futureDeprecations?: import("sass-embedded").DeprecationOrId[];
41
- silenceDeprecations?: import("sass-embedded").DeprecationOrId[];
42
- length: number;
43
- toString(): string;
44
- toLocaleString(): string;
45
- toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string;
46
- pop(): undefined;
47
- push(...items: never[]): number;
48
- concat(...items: ConcatArray<never>[]): never[];
49
- concat(...items: ConcatArray<never>[]): never[];
50
- join(separator?: string): string;
51
- reverse(): never[];
52
- shift(): undefined;
53
- slice(start?: number, end?: number): never[];
54
- sort(compareFn?: ((a: never, b: never) => number) | undefined): never[];
55
- splice(start: number, deleteCount?: number): never[];
56
- splice(start: number, deleteCount: number, ...items: never[]): never[];
57
- unshift(...items: never[]): number;
58
- indexOf(searchElement: never, fromIndex?: number): number;
59
- lastIndexOf(searchElement: never, fromIndex?: number): number;
60
- every<S extends never>(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): this is S[];
61
- every(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean;
62
- some(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean;
63
- forEach(callbackfn: (value: never, index: number, array: never[]) => void, thisArg?: any): void;
64
- map<U>(callbackfn: (value: never, index: number, array: never[]) => U, thisArg?: any): U[];
65
- filter<S extends never>(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): S[];
66
- filter(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): never[];
67
- reduce(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never;
68
- reduce(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never;
69
- reduce<U>(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U;
70
- reduceRight(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never;
71
- reduceRight(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never;
72
- reduceRight<U>(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U;
73
- find<S extends never>(predicate: (value: never, index: number, obj: never[]) => value is S, thisArg?: any): S | undefined;
74
- find(predicate: (value: never, index: number, obj: never[]) => unknown, thisArg?: any): undefined;
75
- findIndex(predicate: (value: never, index: number, obj: never[]) => unknown, thisArg?: any): number;
76
- fill(value: never, start?: number, end?: number): never[];
77
- copyWithin(target: number, start: number, end?: number): never[];
78
- entries(): ArrayIterator<[number, never]>;
79
- keys(): ArrayIterator<number>;
80
- values(): ArrayIterator<never>;
81
- includes(searchElement: never, fromIndex?: number): boolean;
82
- flatMap<U, This = undefined>(callback: (this: This, value: never, index: number, array: never[]) => U | readonly U[], thisArg?: This | undefined): U[];
83
- flat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];
84
- at(index: number): undefined;
85
- [Symbol.iterator](): ArrayIterator<never>;
86
- [Symbol.unscopables]: {
87
- [x: number]: boolean | undefined;
88
- length?: boolean | undefined;
89
- toString?: boolean | undefined;
90
- toLocaleString?: boolean | undefined;
91
- pop?: boolean | undefined;
92
- push?: boolean | undefined;
93
- concat?: boolean | undefined;
94
- join?: boolean | undefined;
95
- reverse?: boolean | undefined;
96
- shift?: boolean | undefined;
97
- slice?: boolean | undefined;
98
- sort?: boolean | undefined;
99
- splice?: boolean | undefined;
100
- unshift?: boolean | undefined;
101
- indexOf?: boolean | undefined;
102
- lastIndexOf?: boolean | undefined;
103
- every?: boolean | undefined;
104
- some?: boolean | undefined;
105
- forEach?: boolean | undefined;
106
- map?: boolean | undefined;
107
- filter?: boolean | undefined;
108
- reduce?: boolean | undefined;
109
- reduceRight?: boolean | undefined;
110
- find?: boolean | undefined;
111
- findIndex?: boolean | undefined;
112
- fill?: boolean | undefined;
113
- copyWithin?: boolean | undefined;
114
- entries?: boolean | undefined;
115
- keys?: boolean | undefined;
116
- values?: boolean | undefined;
117
- includes?: boolean | undefined;
118
- flatMap?: boolean | undefined;
119
- flat?: boolean | undefined;
120
- at?: boolean | undefined;
121
- [Symbol.iterator]?: boolean | undefined;
122
- readonly [Symbol.unscopables]?: boolean | undefined;
123
- };
124
- api: string;
125
- sourceMap: boolean | undefined;
126
- sourceMapIncludeSources: boolean;
127
- implementation: string;
128
- url?: undefined;
129
- importLoaders?: undefined;
130
- } | {
131
- fatalDeprecations?: import("sass-embedded").DeprecationOrId[];
132
- futureDeprecations?: import("sass-embedded").DeprecationOrId[];
133
- silenceDeprecations?: import("sass-embedded").DeprecationOrId[];
134
- includePaths?: string[];
135
- api: string;
136
- sourceMap: boolean | undefined;
137
- sourceMapIncludeSources: boolean;
138
- implementation: string;
139
- url?: undefined;
140
- importLoaders?: undefined;
141
- };
142
- })[];
143
- };
144
- export declare function getLessLoaderConfig(lessPathOptions?: {
145
- paths?: string[];
146
- }, sourceMap?: SourceMap): {
147
- test: RegExp;
148
- use: (string | {
149
- loader: string;
150
- options: {
151
- url: boolean;
152
- sourceMap: boolean | undefined;
153
- importLoaders: number;
154
- };
155
- } | {
156
- loader: string;
157
- options: {
158
- paths?: string[];
159
- sourceMap: boolean | undefined;
160
- javascriptEnabled: boolean;
161
- url?: undefined;
162
- importLoaders?: undefined;
163
- };
164
- })[];
165
- };
1
+ import { type RuleSetUseItem } from '@rspack/core';
2
+ import type { NormalizedAngularRspackPluginOptions } from '../models';
166
3
  /**
167
4
  * Returns an array of style loaders for sass and less. Both loader´s are always returned
168
5
  *
169
6
  * @param stylePreprocessorOptions
170
7
  * @param sourceMap
171
8
  */
172
- export declare function getStyleLoaders(stylePreprocessorOptions?: StylePreprocessorOptions, sourceMap?: SourceMap): ({
173
- test: RegExp;
174
- use: (string | {
175
- loader: string;
176
- options: {
177
- url: boolean;
178
- sourceMap: boolean | undefined;
179
- importLoaders: number;
180
- };
181
- } | {
182
- loader: string;
183
- options: {
184
- sourceMap: true;
185
- url?: undefined;
186
- importLoaders?: undefined;
187
- };
188
- } | {
189
- loader: string;
190
- options: {
191
- fatalDeprecations?: import("sass-embedded").DeprecationOrId[];
192
- futureDeprecations?: import("sass-embedded").DeprecationOrId[];
193
- silenceDeprecations?: import("sass-embedded").DeprecationOrId[];
194
- length: number;
195
- toString(): string;
196
- toLocaleString(): string;
197
- toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string;
198
- pop(): undefined;
199
- push(...items: never[]): number;
200
- concat(...items: ConcatArray<never>[]): never[];
201
- concat(...items: ConcatArray<never>[]): never[];
202
- join(separator?: string): string;
203
- reverse(): never[];
204
- shift(): undefined;
205
- slice(start?: number, end?: number): never[];
206
- sort(compareFn?: ((a: never, b: never) => number) | undefined): never[];
207
- splice(start: number, deleteCount?: number): never[];
208
- splice(start: number, deleteCount: number, ...items: never[]): never[];
209
- unshift(...items: never[]): number;
210
- indexOf(searchElement: never, fromIndex?: number): number;
211
- lastIndexOf(searchElement: never, fromIndex?: number): number;
212
- every<S extends never>(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): this is S[];
213
- every(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean;
214
- some(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean;
215
- forEach(callbackfn: (value: never, index: number, array: never[]) => void, thisArg?: any): void;
216
- map<U>(callbackfn: (value: never, index: number, array: never[]) => U, thisArg?: any): U[];
217
- filter<S extends never>(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): S[];
218
- filter(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): never[];
219
- reduce(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never;
220
- reduce(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never;
221
- reduce<U>(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U;
222
- reduceRight(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never;
223
- reduceRight(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never;
224
- reduceRight<U>(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U;
225
- find<S extends never>(predicate: (value: never, index: number, obj: never[]) => value is S, thisArg?: any): S | undefined;
226
- find(predicate: (value: never, index: number, obj: never[]) => unknown, thisArg?: any): undefined;
227
- findIndex(predicate: (value: never, index: number, obj: never[]) => unknown, thisArg?: any): number;
228
- fill(value: never, start?: number, end?: number): never[];
229
- copyWithin(target: number, start: number, end?: number): never[];
230
- entries(): ArrayIterator<[number, never]>;
231
- keys(): ArrayIterator<number>;
232
- values(): ArrayIterator<never>;
233
- includes(searchElement: never, fromIndex?: number): boolean;
234
- flatMap<U, This = undefined>(callback: (this: This, value: never, index: number, array: never[]) => U | readonly U[], thisArg?: This | undefined): U[];
235
- flat<A, D extends number = 1>(this: A, depth?: D | undefined): FlatArray<A, D>[];
236
- at(index: number): undefined;
237
- [Symbol.iterator](): ArrayIterator<never>;
238
- [Symbol.unscopables]: {
239
- [x: number]: boolean | undefined;
240
- length?: boolean | undefined;
241
- toString?: boolean | undefined;
242
- toLocaleString?: boolean | undefined;
243
- pop?: boolean | undefined;
244
- push?: boolean | undefined;
245
- concat?: boolean | undefined;
246
- join?: boolean | undefined;
247
- reverse?: boolean | undefined;
248
- shift?: boolean | undefined;
249
- slice?: boolean | undefined;
250
- sort?: boolean | undefined;
251
- splice?: boolean | undefined;
252
- unshift?: boolean | undefined;
253
- indexOf?: boolean | undefined;
254
- lastIndexOf?: boolean | undefined;
255
- every?: boolean | undefined;
256
- some?: boolean | undefined;
257
- forEach?: boolean | undefined;
258
- map?: boolean | undefined;
259
- filter?: boolean | undefined;
260
- reduce?: boolean | undefined;
261
- reduceRight?: boolean | undefined;
262
- find?: boolean | undefined;
263
- findIndex?: boolean | undefined;
264
- fill?: boolean | undefined;
265
- copyWithin?: boolean | undefined;
266
- entries?: boolean | undefined;
267
- keys?: boolean | undefined;
268
- values?: boolean | undefined;
269
- includes?: boolean | undefined;
270
- flatMap?: boolean | undefined;
271
- flat?: boolean | undefined;
272
- at?: boolean | undefined;
273
- [Symbol.iterator]?: boolean | undefined;
274
- readonly [Symbol.unscopables]?: boolean | undefined;
275
- };
276
- api: string;
277
- sourceMap: boolean | undefined;
278
- sourceMapIncludeSources: boolean;
279
- implementation: string;
280
- url?: undefined;
281
- importLoaders?: undefined;
282
- } | {
283
- fatalDeprecations?: import("sass-embedded").DeprecationOrId[];
284
- futureDeprecations?: import("sass-embedded").DeprecationOrId[];
285
- silenceDeprecations?: import("sass-embedded").DeprecationOrId[];
286
- includePaths?: string[];
287
- api: string;
288
- sourceMap: boolean | undefined;
289
- sourceMapIncludeSources: boolean;
290
- implementation: string;
291
- url?: undefined;
292
- importLoaders?: undefined;
293
- };
294
- })[];
295
- } | {
9
+ export declare function getStyleLoaders(buildOptions: NormalizedAngularRspackPluginOptions): Promise<{
296
10
  test: RegExp;
297
- use: (string | {
298
- loader: string;
299
- options: {
300
- url: boolean;
301
- sourceMap: boolean | undefined;
302
- importLoaders: number;
303
- };
11
+ rules: ({
12
+ oneOf: {
13
+ use: RuleSetUseItem[];
14
+ resourceQuery: RegExp;
15
+ }[];
16
+ use?: undefined;
304
17
  } | {
305
- loader: string;
306
- options: {
307
- paths?: string[];
308
- sourceMap: boolean | undefined;
309
- javascriptEnabled: boolean;
310
- url?: undefined;
311
- importLoaders?: undefined;
312
- };
18
+ use: RuleSetUseItem[];
19
+ oneOf?: undefined;
313
20
  })[];
314
- })[];
315
- export declare function getStylesEntry(options: NormalizedAngularRspackPluginOptions): string[];
21
+ }[]>;
316
22
  //# sourceMappingURL=style-config-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"style-config-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/config/style-config-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,oCAAoC,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG5E,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE;;;;;;;;;;;;;;EAS5D;AAED,wBAAgB,mBAAmB,CACjC,eAAe,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC7C,WAAW,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAC9C,SAAS,CAAC,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;sEAoH6M,mBAAmB,QAAQ,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAtH/O,MAAM,EAAE;;;;;;;;;EAuC5C;AAED,wBAAgB,mBAAmB,CACjC,eAAe,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EACtC,SAAS,CAAC,EAAE,SAAS;;;;;;;;;;;;oBADO,MAAM,EAAE;;;;;;;EAyBrC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,wBAAwB,CAAC,EAAE,wBAAwB,EACnD,SAAS,CAAC,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;sEAyC6M,mBAAmB,QAAQ,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAtH/O,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;oBA0Cf,MAAM,EAAE;;;;;;;KA8DrC;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,oCAAoC,GAC5C,MAAM,EAAE,CASV"}
1
+ {"version":3,"file":"style-config-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/config/style-config-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,WAAW,CAAC;AAGtE;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,oCAAoC;;;;;;;;;;;;KAsNnD"}
@@ -1,115 +1,202 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getIncludePathOptions = getIncludePathOptions;
4
- exports.getSassLoaderConfig = getSassLoaderConfig;
5
- exports.getLessLoaderConfig = getLessLoaderConfig;
6
3
  exports.getStyleLoaders = getStyleLoaders;
7
- exports.getStylesEntry = getStylesEntry;
4
+ const devkit_1 = require("@nx/devkit");
8
5
  const core_1 = require("@rspack/core");
9
- function getIncludePathOptions(includePaths) {
10
- if (!includePaths || includePaths.length === 0) {
11
- return { less: {}, sass: {} };
6
+ const node_path_1 = require("node:path");
7
+ const tailwind_1 = require("../utils/tailwind");
8
+ /**
9
+ * Returns an array of style loaders for sass and less. Both loader´s are always returned
10
+ *
11
+ * @param stylePreprocessorOptions
12
+ * @param sourceMap
13
+ */
14
+ async function getStyleLoaders(buildOptions) {
15
+ const cssSourceMap = buildOptions.sourceMap.styles;
16
+ const includePaths = buildOptions.stylePreprocessorOptions?.includePaths?.map((p) => (0, node_path_1.resolve)(devkit_1.workspaceRoot, p)) ?? [];
17
+ const extraPostcssPlugins = [];
18
+ // Attempt to setup Tailwind CSS
19
+ // Only load Tailwind CSS plugin if configuration file was found.
20
+ // This acts as a guard to ensure the project actually wants to use Tailwind CSS.
21
+ // The package may be unknowningly present due to a third-party transitive package dependency.
22
+ const tailwindConfigPath = await (0, tailwind_1.findTailwindConfigurationFile)(devkit_1.workspaceRoot, buildOptions.root);
23
+ if (tailwindConfigPath) {
24
+ let tailwindPackagePath;
25
+ try {
26
+ tailwindPackagePath = require.resolve('tailwindcss', {
27
+ paths: [devkit_1.workspaceRoot, buildOptions.root],
28
+ });
29
+ }
30
+ catch {
31
+ const relativeTailwindConfigPath = (0, node_path_1.relative)(devkit_1.workspaceRoot, tailwindConfigPath);
32
+ console.warn(`Tailwind CSS configuration file found (${relativeTailwindConfigPath})` +
33
+ ` but the 'tailwindcss' package is not installed.` +
34
+ ` To enable Tailwind CSS, please install the 'tailwindcss' package.`);
35
+ }
36
+ if (tailwindPackagePath) {
37
+ extraPostcssPlugins.push(require(tailwindPackagePath)({ config: tailwindConfigPath }));
38
+ }
12
39
  }
13
- return {
14
- less: { paths: includePaths },
15
- sass: { includePaths },
40
+ const autoprefixer = require('autoprefixer');
41
+ const postcssOptionsCreator = (inlineSourcemaps) => {
42
+ const optionGenerator = () => ({
43
+ map: inlineSourcemaps
44
+ ? {
45
+ inline: true,
46
+ annotation: false,
47
+ }
48
+ : undefined,
49
+ plugins: [
50
+ ...extraPostcssPlugins,
51
+ autoprefixer({
52
+ ignoreUnknownVersions: true,
53
+ overrideBrowserslist: buildOptions.supportedBrowsers,
54
+ }),
55
+ ],
56
+ });
57
+ // postcss-loader fails when trying to determine configuration files for data URIs
58
+ optionGenerator.config = false;
59
+ return optionGenerator;
16
60
  };
17
- }
18
- function getSassLoaderConfig(sassPathOptions, sassOptions, sourceMap) {
19
- return {
20
- test: /\.?(sa|sc)ss$/,
21
- use: [
22
- core_1.CssExtractRspackPlugin.loader,
23
- {
24
- loader: require.resolve('css-loader'),
25
- options: {
26
- url: false,
27
- sourceMap: sourceMap?.styles,
28
- importLoaders: 1,
29
- },
61
+ let componentsSourceMap = !!cssSourceMap;
62
+ if (cssSourceMap) {
63
+ // TODO: use below once we support optimization granular options
64
+ // if (buildOptions.optimization.styles.minify) {
65
+ if (buildOptions.optimization) {
66
+ // Never use component css sourcemap when style optimizations are on.
67
+ // It will just increase bundle size without offering good debug experience.
68
+ console.warn('Components styles sourcemaps are not generated when styles optimization is enabled.');
69
+ componentsSourceMap = false;
70
+ }
71
+ else if (buildOptions.sourceMap.hidden) {
72
+ // Inline all sourcemap types except hidden ones, which are the same as no sourcemaps
73
+ // for component css.
74
+ console.warn('Components styles sourcemaps are not generated when sourcemaps are hidden.');
75
+ componentsSourceMap = false;
76
+ }
77
+ }
78
+ const postCss = require('postcss');
79
+ const postCssLoaderPath = require.resolve('postcss-loader');
80
+ const componentStyleLoaders = [
81
+ {
82
+ loader: require.resolve('css-loader'),
83
+ options: {
84
+ url: false,
85
+ sourceMap: componentsSourceMap,
86
+ importLoaders: 1,
87
+ exportType: 'string',
88
+ esModule: false,
30
89
  },
31
- ...(sourceMap?.styles
32
- ? [
33
- {
34
- loader: require.resolve('resolve-url-loader'),
35
- options: {
36
- sourceMap: sourceMap?.styles,
37
- },
90
+ },
91
+ {
92
+ loader: postCssLoaderPath,
93
+ options: {
94
+ implementation: postCss,
95
+ postcssOptions: postcssOptionsCreator(componentsSourceMap),
96
+ },
97
+ },
98
+ ];
99
+ const globalStyleLoaders = [
100
+ {
101
+ loader: core_1.CssExtractRspackPlugin.loader,
102
+ },
103
+ {
104
+ loader: require.resolve('css-loader'),
105
+ options: {
106
+ url: false,
107
+ sourceMap: !!cssSourceMap,
108
+ importLoaders: 1,
109
+ },
110
+ },
111
+ {
112
+ loader: postCssLoaderPath,
113
+ options: {
114
+ implementation: postCss,
115
+ postcssOptions: postcssOptionsCreator(false),
116
+ sourceMap: !!cssSourceMap,
117
+ },
118
+ },
119
+ ];
120
+ const styleLanguages = [
121
+ {
122
+ extensions: ['css'],
123
+ use: [],
124
+ },
125
+ {
126
+ extensions: ['scss'],
127
+ use: [
128
+ {
129
+ loader: require.resolve('resolve-url-loader'),
130
+ options: {
131
+ sourceMap: cssSourceMap,
38
132
  },
39
- ]
40
- : []),
41
- {
42
- loader: 'sass-loader',
43
- options: {
44
- api: 'modern-compiler',
45
- sourceMap: sourceMap?.styles,
46
- sourceMapIncludeSources: true,
47
- implementation: require.resolve('sass-embedded'),
48
- ...(sassPathOptions ?? []),
49
- ...(sassOptions ?? {}),
50
133
  },
51
- },
52
- ],
53
- };
54
- }
55
- function getLessLoaderConfig(lessPathOptions, sourceMap) {
56
- return {
57
- test: /\.less$/,
58
- use: [
59
- core_1.CssExtractRspackPlugin.loader,
60
- {
61
- loader: require.resolve('css-loader'),
62
- options: {
63
- url: false,
64
- sourceMap: sourceMap?.styles,
65
- importLoaders: 1,
134
+ {
135
+ loader: require.resolve('sass-loader'),
136
+ options: getSassLoaderOptions(includePaths, buildOptions.stylePreprocessorOptions?.sass),
66
137
  },
67
- },
68
- {
69
- loader: 'less-loader',
70
- options: {
71
- sourceMap: sourceMap?.styles,
72
- javascriptEnabled: true,
73
- ...lessPathOptions,
138
+ ],
139
+ },
140
+ {
141
+ extensions: ['sass'],
142
+ use: [
143
+ {
144
+ loader: require.resolve('resolve-url-loader'),
145
+ options: {
146
+ sourceMap: cssSourceMap,
147
+ },
74
148
  },
75
- },
76
- ],
77
- };
78
- }
79
- /**
80
- * Returns an array of style loaders for sass and less. Both loader´s are always returned
81
- *
82
- * @param stylePreprocessorOptions
83
- * @param sourceMap
84
- */
85
- function getStyleLoaders(stylePreprocessorOptions, sourceMap) {
86
- const { less: lessPathOptions, sass: sassPathOptions } = getIncludePathOptions(stylePreprocessorOptions?.includePaths);
87
- return [
149
+ {
150
+ loader: require.resolve('sass-loader'),
151
+ options: getSassLoaderOptions(includePaths, buildOptions.stylePreprocessorOptions?.sass),
152
+ },
153
+ ],
154
+ },
88
155
  {
89
- test: /\.css$/i,
156
+ extensions: ['less'],
90
157
  use: [
91
- core_1.CssExtractRspackPlugin.loader,
92
158
  {
93
- loader: require.resolve('css-loader'),
159
+ loader: require.resolve('less-loader'),
94
160
  options: {
95
- url: false,
96
- sourceMap: sourceMap?.styles,
97
- importLoaders: 1,
161
+ sourceMap: cssSourceMap,
162
+ lessOptions: {
163
+ javascriptEnabled: true,
164
+ paths: includePaths,
165
+ },
98
166
  },
99
167
  },
100
168
  ],
101
169
  },
102
- getSassLoaderConfig(sassPathOptions, stylePreprocessorOptions?.sass, sourceMap),
103
- getLessLoaderConfig(lessPathOptions, sourceMap),
104
170
  ];
171
+ return styleLanguages.map(({ extensions, use }) => ({
172
+ test: new RegExp(`\\.(?:${extensions.join('|')})$`, 'i'),
173
+ rules: [
174
+ // Setup processing rules for global and component styles
175
+ {
176
+ oneOf: [
177
+ // Global styles are only defined global styles
178
+ {
179
+ use: globalStyleLoaders,
180
+ resourceQuery: /\?ngGlobalStyle/,
181
+ },
182
+ // Component styles are all styles except defined global styles
183
+ {
184
+ use: componentStyleLoaders,
185
+ resourceQuery: /\?ngResource/,
186
+ },
187
+ ],
188
+ },
189
+ { use },
190
+ ],
191
+ }));
105
192
  }
106
- function getStylesEntry(options) {
107
- const styles = options.globalStyles ?? [];
108
- const allStyleEntries = [];
109
- for (const style of styles) {
110
- for (const file of style.files) {
111
- allStyleEntries.push(file);
112
- }
113
- }
114
- return allStyleEntries;
193
+ function getSassLoaderOptions(includePaths, sassOptions) {
194
+ return {
195
+ api: 'modern-compiler',
196
+ sourceMap: true,
197
+ sourceMapIncludeSources: true,
198
+ implementation: require.resolve('sass-embedded'),
199
+ includePaths,
200
+ ...(sassOptions ?? {}),
201
+ };
115
202
  }