@nimbus-ds/webpack 1.5.0-rc.4 → 1.5.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/CHANGELOG.md +6 -0
- package/dist/plugins/UseClientInjectionPlugin.d.ts +8 -0
- package/dist/plugins/UseClientInjectionPlugin.js +37 -1
- package/dist/plugins/UseClientInjectionPlugin.js.map +1 -1
- package/dist/utils/helpers.js +1 -1
- package/dist/utils/helpers.js.map +1 -1
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
This package is intended for internal use in generating builds of each design system package. It contains all the necessary settings and dependencies to optimize the creation of our builds.
|
|
4
4
|
|
|
5
|
+
## 2025-03-18 `1.5.0`
|
|
6
|
+
|
|
7
|
+
#### 🎉 New features
|
|
8
|
+
|
|
9
|
+
- Adds new plugins and base configuration in order to support Server Components and Modular Imports, improving and optimizing Tree Shaking for our clients. ([#276](https://github.com/TiendaNube/nimbus-design-system/pull/276) by [@joacotornello](https://github.com/joacotornello))
|
|
10
|
+
|
|
5
11
|
## 2023-09-26 `1.2.0`
|
|
6
12
|
|
|
7
13
|
#### 🎉 New features
|
|
@@ -15,6 +15,14 @@ declare class UseClientInjectionPlugin {
|
|
|
15
15
|
private options;
|
|
16
16
|
private shouldInject;
|
|
17
17
|
constructor(options?: UseClientInjectionPluginOptions);
|
|
18
|
+
/**
|
|
19
|
+
* Returns the first non-empty, non-comment line of the file.
|
|
20
|
+
* It skips:
|
|
21
|
+
* - Lines that are empty.
|
|
22
|
+
* - Lines starting with // (or ///).
|
|
23
|
+
* - Lines that are part of a block comment.
|
|
24
|
+
*/
|
|
25
|
+
private getFirstNonCommentLine;
|
|
18
26
|
apply(compiler: Compiler): void;
|
|
19
27
|
}
|
|
20
28
|
export { UseClientInjectionPlugin };
|
|
@@ -13,6 +13,42 @@ class UseClientInjectionPlugin {
|
|
|
13
13
|
constructor(options = {}) {
|
|
14
14
|
this.options = options;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Returns the first non-empty, non-comment line of the file.
|
|
18
|
+
* It skips:
|
|
19
|
+
* - Lines that are empty.
|
|
20
|
+
* - Lines starting with // (or ///).
|
|
21
|
+
* - Lines that are part of a block comment.
|
|
22
|
+
*/
|
|
23
|
+
getFirstNonCommentLine(content) {
|
|
24
|
+
const lines = content.split(/\r?\n/);
|
|
25
|
+
let insideBlockComment = false;
|
|
26
|
+
for (let i = 0; i < lines.length; i++) {
|
|
27
|
+
const trimmed = lines[i].trim();
|
|
28
|
+
if (insideBlockComment) {
|
|
29
|
+
if (trimmed.endsWith("*/")) {
|
|
30
|
+
insideBlockComment = false;
|
|
31
|
+
}
|
|
32
|
+
// move to the next iteration implicitly
|
|
33
|
+
}
|
|
34
|
+
else if (trimmed.startsWith("/*")) {
|
|
35
|
+
if (!trimmed.endsWith("*/")) {
|
|
36
|
+
insideBlockComment = true;
|
|
37
|
+
}
|
|
38
|
+
// skip this line as it's a block comment
|
|
39
|
+
}
|
|
40
|
+
else if (trimmed.startsWith("//")) {
|
|
41
|
+
// skip single-line comments
|
|
42
|
+
}
|
|
43
|
+
else if (trimmed === "") {
|
|
44
|
+
// skip empty lines
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return trimmed;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
16
52
|
apply(compiler) {
|
|
17
53
|
const sourceFilePath = this.options.sourceFile
|
|
18
54
|
? path_1.default.resolve(compiler.context, this.options.sourceFile)
|
|
@@ -21,7 +57,7 @@ class UseClientInjectionPlugin {
|
|
|
21
57
|
if ((0, fs_1.existsSync)(sourceFilePath)) {
|
|
22
58
|
try {
|
|
23
59
|
const fileContent = (0, fs_1.readFileSync)(sourceFilePath, "utf8");
|
|
24
|
-
const firstLine =
|
|
60
|
+
const firstLine = this.getFirstNonCommentLine(fileContent);
|
|
25
61
|
if (firstLine === `"use client";` || firstLine === `'use client';`) {
|
|
26
62
|
this.shouldInject = true;
|
|
27
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseClientInjectionPlugin.js","sourceRoot":"","sources":["../../src/plugins/UseClientInjectionPlugin.ts"],"names":[],"mappings":";;;;AACA,2BAA8C;AAC9C,wDAAwB;AAYxB;;GAEG;AACH,MAAM,wBAAwB;IACpB,OAAO,CAAkC;IAEzC,YAAY,GAAG,KAAK,CAAC,CAAC,6CAA6C;IAE3E,YAAY,UAA2C,EAAE;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU;YAC5C,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACzD,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEnD,mFAAmF;QACnF,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE;YAC9B,IAAI;gBACF,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBACzD,MAAM,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"UseClientInjectionPlugin.js","sourceRoot":"","sources":["../../src/plugins/UseClientInjectionPlugin.ts"],"names":[],"mappings":";;;;AACA,2BAA8C;AAC9C,wDAAwB;AAYxB;;GAEG;AACH,MAAM,wBAAwB;IACpB,OAAO,CAAkC;IAEzC,YAAY,GAAG,KAAK,CAAC,CAAC,6CAA6C;IAE3E,YAAY,UAA2C,EAAE;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACK,sBAAsB,CAAC,OAAe;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEhC,IAAI,kBAAkB,EAAE;gBACtB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC1B,kBAAkB,GAAG,KAAK,CAAC;iBAC5B;gBACD,wCAAwC;aACzC;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC3B,kBAAkB,GAAG,IAAI,CAAC;iBAC3B;gBACD,yCAAyC;aAC1C;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACnC,4BAA4B;aAC7B;iBAAM,IAAI,OAAO,KAAK,EAAE,EAAE;gBACzB,mBAAmB;aACpB;iBAAM;gBACL,OAAO,OAAO,CAAC;aAChB;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU;YAC5C,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACzD,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEnD,mFAAmF;QACnF,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE;YAC9B,IAAI;gBACF,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBACzD,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;gBAC3D,IAAI,SAAS,KAAK,eAAe,IAAI,SAAS,KAAK,eAAe,EAAE;oBAClE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC1B;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,iBAAiB,cAAc,GAAG,EAAE,GAAG,CAAC,CAAC;aACxD;SACF;QAED,8DAA8D;QAC9D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAC1B,0BAA0B,EAC1B,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtB,OAAO,QAAQ,EAAE,CAAC;aACnB;YAED,mEAAmE;YACnE,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;YAE/C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACpD,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC7B,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;oBAE/D,IACE,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC;wBACnC,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EACnC;wBACA,MAAM,GAAG,kBAAkB,MAAM,EAAE,CAAC;wBAEpC,qHAAqH;wBACrH,sHAAsH;wBACtH,6CAA6C;wBAC7C,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;wBACtD,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;qBACvD;iBACF;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,QAAQ,EAAE,CAAC;QACpB,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAEQ,4DAAwB"}
|
package/dist/utils/helpers.js
CHANGED
|
@@ -44,7 +44,7 @@ const getComponentsPackageExports = (baseDir, folders) => {
|
|
|
44
44
|
entryFile = tempFilePath; // override entry to use the temp file
|
|
45
45
|
extraCommands.push(`&& rm ${tempFilePath}`); // Cleanup the temp file after running the DTS command
|
|
46
46
|
}
|
|
47
|
-
// 3. Build the webpack entry
|
|
47
|
+
// 3. Build the webpack entry, with relative path.
|
|
48
48
|
webpackEntries[componentName] = entryFile;
|
|
49
49
|
// 4. Prepare the DTS bundle generator command for this component, removing the temp file after running it for cleanup
|
|
50
50
|
const dtsCommand = `node ${constants_1.rootDir}/node_modules/.bin/dts-bundle-generator -o ./dist/${componentName}/index.d.ts ${entryFile} ${extraCommands.join("")}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,2BAAsE;AACtE,2CAAsC;AAE/B,MAAM,gBAAgB,GAAG,CAC9B,KAKG,EACH,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAPjB,QAAA,gBAAgB,oBAOC;AAE9B;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAC5D,OAAO;KACJ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;IACd,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,OAAO,IAAA,gBAAW,EAAC,UAAU,CAAC;SAC3B,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,yBAAyB;SAC1E,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CACxB,IAAA,aAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAC1D,CAAC;AACN,CAAC,CAAC;KACD,IAAI,EAAE,CAAC;AAEL,MAAM,2BAA2B,GAAG,CACzC,OAAe,EACf,OAAiB,EACjB,EAAE;IACF,MAAM,cAAc,GAClB,EAAE,CAAC;IACL,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEvD,gCAAgC;IAChC,aAAa,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACtC,MAAM,aAAa,GAAG,cAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEvD,IAAI,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE3D,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,uFAAuF;QACvF,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE;YAC7B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAC5B,YAAY,EACZ,KAAK,EACL,sBAAsB,CACvB,CAAC;YAEF,iEAAiE;YACjE,MAAM,WAAW,GAAG;;;KAGrB,CAAC;YACA,IAAA,kBAAa,EAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAEjD,SAAS,GAAG,YAAY,CAAC,CAAC,sCAAsC;YAEhE,aAAa,CAAC,IAAI,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC,CAAC,sDAAsD;SACpG;QAED,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,2BAAsE;AACtE,2CAAsC;AAE/B,MAAM,gBAAgB,GAAG,CAC9B,KAKG,EACH,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAPjB,QAAA,gBAAgB,oBAOC;AAE9B;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAC5D,OAAO;KACJ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;IACd,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,OAAO,IAAA,gBAAW,EAAC,UAAU,CAAC;SAC3B,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,yBAAyB;SAC1E,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CACxB,IAAA,aAAQ,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAC1D,CAAC;AACN,CAAC,CAAC;KACD,IAAI,EAAE,CAAC;AAEL,MAAM,2BAA2B,GAAG,CACzC,OAAe,EACf,OAAiB,EACjB,EAAE;IACF,MAAM,cAAc,GAClB,EAAE,CAAC;IACL,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEvD,gCAAgC;IAChC,aAAa,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACtC,MAAM,aAAa,GAAG,cAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEvD,IAAI,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE3D,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,uFAAuF;QACvF,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE;YAC7B,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAC5B,YAAY,EACZ,KAAK,EACL,sBAAsB,CACvB,CAAC;YAEF,iEAAiE;YACjE,MAAM,WAAW,GAAG;;;KAGrB,CAAC;YACA,IAAA,kBAAa,EAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAEjD,SAAS,GAAG,YAAY,CAAC,CAAC,sCAAsC;YAEhE,aAAa,CAAC,IAAI,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC,CAAC,sDAAsD;SACpG;QAED,kDAAkD;QAClD,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;QAE1C,sHAAsH;QACtH,MAAM,UAAU,GAAG,QAAQ,mBAAO,qDAAqD,aAAa,eAAe,SAAS,IAAI,aAAa,CAAC,IAAI,CAChJ,EAAE,CACH,EAAE,CAAC;QACJ,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7B,kDAAkD;QAClD,cAAc,CAAC,KAAK,aAAa,EAAE,CAAC,GAAG;YACrC,MAAM,EAAE,UAAU,aAAa,WAAW;YAC1C,OAAO,EAAE,UAAU,aAAa,WAAW;SAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AACzD,CAAC,CAAC;AAzDW,QAAA,2BAA2B,+BAyDtC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nimbus-ds/webpack",
|
|
3
|
-
"version": "1.5.0
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -33,6 +33,5 @@
|
|
|
33
33
|
"webpack": "^5.76.0",
|
|
34
34
|
"webpack-merge": "^5.8.0",
|
|
35
35
|
"webpack-shell-plugin-next": "^2.3.1"
|
|
36
|
-
}
|
|
37
|
-
"stableVersion": "1.4.0"
|
|
36
|
+
}
|
|
38
37
|
}
|