@lipemat/js-boilerplate-shared 0.1.1 → 0.2.1

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.
@@ -6,12 +6,14 @@ function readJsonFile(filePath) {
6
6
  const workingDirectory = realpathSync(process.cwd());
7
7
  const defaults = {
8
8
  brotliFiles: true,
9
+ cssEnums: true,
9
10
  cssTsFiles: true,
10
11
  css_folder: './css/dist/',
11
12
  jsPath: './js',
12
13
  mainCssFileName: 'front-end',
13
14
  packageDirectory: workingDirectory,
14
15
  pcssWatch: ['pcss', 'template-parts'],
16
+ phpWatch: ['/'],
15
17
  shortCssClasses: true,
16
18
  theme_path: './',
17
19
  url: 'http://localhost',
@@ -1 +1 @@
1
- {"version":3,"file":"package-config.js","sourceRoot":"","sources":["package-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAEnD,SAAS,YAAY,CAAK,QAAgB;IACzC,OAAO,IAAI,CAAC,KAAK,CAAE,YAAY,CAAE,QAAQ,EAAE,MAAM,CAAE,CAAO,CAAC;AAC5D,CAAC;AAqDD,MAAM,gBAAgB,GAAG,YAAY,CAAE,OAAO,CAAC,GAAG,EAAE,CAAE,CAAC;AACvD,MAAM,QAAQ,GAA2B;IACxC,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,MAAM;IACd,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,gBAAgB;IAClC,SAAS,EAAE,CAAE,MAAM,EAAE,gBAAgB,CAAE;IACvC,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,IAAI;IAChB,GAAG,EAAE,kBAAkB;CACvB,CAAC;AAEF,IAAI,aAAa,GAAkB,YAAY,CAAiB,OAAO,CAAE,gBAAgB,EAAE,cAAc,CAAE,CAAE,CAAC;AAC9G,aAAa,GAAG,EAAC,GAAG,QAAQ,EAAE,GAAG,aAAa,EAAC,CAAC;AAChD,aAAa,CAAC,gBAAgB,GAAG,aAAa,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAE,aAAa,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,GAAG,CAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAExI,IAAI,CAAC;IACJ,MAAM,WAAW,GAAG,YAAY,CAA0B,OAAO,CAAE,gBAAgB,EAAE,qBAAqB,CAAE,CAAE,CAAC;IAC/G,aAAa,GAAG,EAAC,GAAG,aAAa,EAAE,GAAG,WAAW,EAAC,CAAC;AACpD,CAAC;AAAC,MAAM,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC/B,OAAO,EAAC,GAAG,aAAa,EAAE,GAAG,aAAa,EAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,IAAI,aAAa,GAA2B,EAAE,CAAC;AAE/C,MAAM,UAAU,mBAAmB,CAAE,SAAiC;IACrE,aAAa,GAAG,SAAS,CAAC;AAC3B,CAAC;AACD,MAAM,UAAU,kBAAkB;IACjC,aAAa,GAAG,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"package-config.js","sourceRoot":"","sources":["package-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAEnD,SAAS,YAAY,CAAK,QAAgB;IACzC,OAAO,IAAI,CAAC,KAAK,CAAE,YAAY,CAAE,QAAQ,EAAE,MAAM,CAAE,CAAO,CAAC;AAC5D,CAAC;AAsDD,MAAM,gBAAgB,GAAG,YAAY,CAAE,OAAO,CAAC,GAAG,EAAE,CAAE,CAAC;AACvD,MAAM,QAAQ,GAA2B;IACxC,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,MAAM;IACd,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,gBAAgB;IAClC,SAAS,EAAE,CAAE,MAAM,EAAE,gBAAgB,CAAE;IACvC,QAAQ,EAAE,CAAE,GAAG,CAAE;IACjB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,IAAI;IAChB,GAAG,EAAE,kBAAkB;CACvB,CAAC;AAEF,IAAI,aAAa,GAAkB,YAAY,CAAiB,OAAO,CAAE,gBAAgB,EAAE,cAAc,CAAE,CAAE,CAAC;AAC9G,aAAa,GAAG,EAAC,GAAG,QAAQ,EAAE,GAAG,aAAa,EAAC,CAAC;AAChD,aAAa,CAAC,gBAAgB,GAAG,aAAa,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAE,aAAa,CAAC,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,GAAG,CAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAExI,IAAI,CAAC;IACJ,MAAM,WAAW,GAAG,YAAY,CAA0B,OAAO,CAAE,gBAAgB,EAAE,qBAAqB,CAAE,CAAE,CAAC;IAC/G,aAAa,GAAG,EAAC,GAAG,aAAa,EAAE,GAAG,WAAW,EAAC,CAAC;AACpD,CAAC;AAAC,MAAM,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC/B,OAAO,EAAC,GAAG,aAAa,EAAE,GAAG,aAAa,EAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,IAAI,aAAa,GAA2B,EAAE,CAAC;AAE/C,MAAM,UAAU,mBAAmB,CAAE,SAAiC;IACrE,aAAa,GAAG,SAAS,CAAC;AAC3B,CAAC;AACD,MAAM,UAAU,kBAAkB;IACjC,aAAa,GAAG,EAAE,CAAC;AACpB,CAAC"}
@@ -25,6 +25,7 @@ export interface PackageConfig {
25
25
  packageDirectory: string;
26
26
  packageManager?: string;
27
27
  pcssWatch: string[];
28
+ phpWatch: string[];
28
29
  resolutions?: Dependencies;
29
30
  scripts: Partial<Scripts>;
30
31
  theme_path: string;
@@ -59,12 +60,14 @@ export interface Scripts {
59
60
  const workingDirectory = realpathSync( process.cwd() );
60
61
  const defaults: Partial<PackageConfig> = {
61
62
  brotliFiles: true,
63
+ cssEnums: true,
62
64
  cssTsFiles: true,
63
65
  css_folder: './css/dist/',
64
66
  jsPath: './js',
65
67
  mainCssFileName: 'front-end',
66
68
  packageDirectory: workingDirectory,
67
69
  pcssWatch: [ 'pcss', 'template-parts' ],
70
+ phpWatch: [ '/' ],
68
71
  shortCssClasses: true,
69
72
  theme_path: './',
70
73
  url: 'http://localhost',
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Adds a trailing slash to a URL if it doesn't already have one.
3
+ */
4
+ export function addTrailingSlash(url) {
5
+ const trimmedURL = url.trim();
6
+ if ('' === trimmedURL) {
7
+ return url;
8
+ }
9
+ return normalizePath(url.replace(/\/?$/, '/'));
10
+ }
11
+ /**
12
+ * Adds a leading slash to a URL if it doesn't already have one.
13
+ */
14
+ export function addLeadingSlash(url) {
15
+ const trimmedURL = url.trim();
16
+ if ('' === trimmedURL) {
17
+ return url;
18
+ }
19
+ return normalizePath(url.replace(/^\/?/, '/'));
20
+ }
21
+ /**
22
+ * Removes a leading slash from a URL if it has one.
23
+ */
24
+ export function removeLeadingSlash(url) {
25
+ const trimmedURL = url.trim();
26
+ if ('' === trimmedURL) {
27
+ return url;
28
+ }
29
+ return normalizePath(url.replace(/^\//, ''));
30
+ }
31
+ /**
32
+ * Removes a trailing slash from a URL if it has one.
33
+ *
34
+ */
35
+ export function removeTrailingSlash(url) {
36
+ const trimmedURL = url.trim();
37
+ if ('' === trimmedURL) {
38
+ return url;
39
+ }
40
+ return normalizePath(url.replace(/\/$/, ''));
41
+ }
42
+ /**
43
+ * Normalize path separators by replacing backslashes with forward slashes.
44
+ *
45
+ * Replace Windows backslashes with forward slashes.
46
+ */
47
+ export function normalizePath(path) {
48
+ return path.replace(/\\/g, '/');
49
+ }
50
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["string.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAE,GAAW;IAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAK,EAAE,KAAK,UAAU,EAAG,CAAC;QACzB,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,CAAE,GAAG,CAAC,OAAO,CAAE,MAAM,EAAE,GAAG,CAAE,CAAE,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAE,GAAW;IAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAK,EAAE,KAAK,UAAU,EAAG,CAAC;QACzB,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,CAAE,GAAG,CAAC,OAAO,CAAE,MAAM,EAAE,GAAG,CAAE,CAAE,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAE,GAAW;IAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAK,EAAE,KAAK,UAAU,EAAG,CAAC;QACzB,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,CAAE,GAAG,CAAC,OAAO,CAAE,KAAK,EAAE,EAAE,CAAE,CAAE,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAE,GAAW;IAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAK,EAAE,KAAK,UAAU,EAAG,CAAC;QACzB,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,CAAE,GAAG,CAAC,OAAO,CAAE,KAAK,EAAE,EAAE,CAAE,CAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAE,IAAY;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAE,KAAK,EAAE,GAAG,CAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Adds a trailing slash to a URL if it doesn't already have one.
3
+ */
4
+ export function addTrailingSlash( url: string ): string {
5
+ const trimmedURL = url.trim();
6
+ if ( '' === trimmedURL ) {
7
+ return url;
8
+ }
9
+ return normalizePath( url.replace( /\/?$/, '/' ) );
10
+ }
11
+
12
+ /**
13
+ * Adds a leading slash to a URL if it doesn't already have one.
14
+ */
15
+ export function addLeadingSlash( url: string ): string {
16
+ const trimmedURL = url.trim();
17
+ if ( '' === trimmedURL ) {
18
+ return url;
19
+ }
20
+ return normalizePath( url.replace( /^\/?/, '/' ) );
21
+ }
22
+
23
+ /**
24
+ * Removes a leading slash from a URL if it has one.
25
+ */
26
+ export function removeLeadingSlash( url: string ): string {
27
+ const trimmedURL = url.trim();
28
+ if ( '' === trimmedURL ) {
29
+ return url;
30
+ }
31
+ return normalizePath( url.replace( /^\//, '' ) );
32
+ }
33
+
34
+ /**
35
+ * Removes a trailing slash from a URL if it has one.
36
+ *
37
+ */
38
+ export function removeTrailingSlash( url: string ): string {
39
+ const trimmedURL = url.trim();
40
+ if ( '' === trimmedURL ) {
41
+ return url;
42
+ }
43
+ return normalizePath( url.replace( /\/$/, '' ) );
44
+ }
45
+
46
+ /**
47
+ * Normalize path separators by replacing backslashes with forward slashes.
48
+ *
49
+ * Replace Windows backslashes with forward slashes.
50
+ */
51
+ export function normalizePath( path: string ): string {
52
+ return path.replace( /\\/g, '/' );
53
+ }
@@ -72,11 +72,16 @@ const wpExports = [
72
72
  wp: 'wp',
73
73
  react: 'React',
74
74
  'react-dom': 'ReactDOM',
75
+ /**
76
+ * To allow React Fast Refresh (HMR) to work in WP 6.0+ we must
77
+ * externalize fast refresh or dequeue `wp-react-refresh-runtime`.
78
+ *
79
+ * @see \wp_register_development_scripts
80
+ */
75
81
  'react-refresh/runtime': 'ReactRefreshRuntime',
76
82
  jquery: 'jQuery',
77
83
  tinymce: 'tinymce',
78
84
  moment: 'moment',
79
- 'react/jsx-runtime': 'ReactJSXRuntime',
80
85
  backbone: 'Backbone',
81
86
  });
82
87
  export default wpExports;
@@ -1 +1 @@
1
- {"version":3,"file":"wp-externals.js","sourceRoot":"","sources":["wp-externals.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,CAAE,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,WAAW,EAAE,CAAE,KAAK,EAAE,MAAM,EAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAE,CAAC;AAEzH;;;;;GAKG;AACH,MAAM,SAAS,GAAiC;IAC/C,MAAM;IACN,aAAa;IACb,WAAW;IACX,OAAO;IACP,MAAM;IACN,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,oCAAoC;IACpC,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,SAAS;IACT,WAAW;IACX,MAAM;IACN,eAAe;IACf,MAAM;IACN,YAAY;IACZ,KAAK;IACL,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,SAAS;IACT,aAAa;IACb,OAAO;IACP,eAAe;IACf,MAAM;IACN,kBAAkB;IAClB,oBAAoB;IACpB,UAAU;IACV,sBAAsB;IACtB,aAAa;IACb,SAAS;IACT,KAAK;IACL,SAAS;IACT,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,WAAW;IACX,oBAAoB;IACpB,WAAW;IACX,YAAY;IACZ,KAAK;IACL,OAAO;IACP,UAAU;IACV,SAAS;IACT,WAAW;CACX,CAAC,MAAM,CACP,CAAE,SAAS,EAAE,IAAI,EAAG,EAAE,CAAC,CAAE;IACxB,GAAG,SAAS;IACZ,CAAE,cAAc,IAAI,EAAE,CAAE,EAAE,cAAc,aAAa,CAAE,IAAI,CAAE,EAAE;CAC/D,CAAE,EACH;IACC,MAAM,EAAE,QAAQ;IAChB,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,UAAU;IACvB,uBAAuB,EAAE,qBAAqB;IAC9C,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,mBAAmB,EAAE,iBAAiB;IACtC,QAAQ,EAAE,UAAU;CACpB,CACD,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"wp-externals.js","sourceRoot":"","sources":["wp-externals.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,CAAE,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,WAAW,EAAE,CAAE,KAAK,EAAE,MAAM,EAAG,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAE,CAAC;AAEzH;;;;;GAKG;AACH,MAAM,SAAS,GAAiC;IAC/C,MAAM;IACN,aAAa;IACb,WAAW;IACX,OAAO;IACP,MAAM;IACN,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,oCAAoC;IACpC,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,SAAS;IACT,WAAW;IACX,MAAM;IACN,eAAe;IACf,MAAM;IACN,YAAY;IACZ,KAAK;IACL,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,SAAS;IACT,aAAa;IACb,OAAO;IACP,eAAe;IACf,MAAM;IACN,kBAAkB;IAClB,oBAAoB;IACpB,UAAU;IACV,sBAAsB;IACtB,aAAa;IACb,SAAS;IACT,KAAK;IACL,SAAS;IACT,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,WAAW;IACX,oBAAoB;IACpB,WAAW;IACX,YAAY;IACZ,KAAK;IACL,OAAO;IACP,UAAU;IACV,SAAS;IACT,WAAW;CACX,CAAC,MAAM,CACP,CAAE,SAAS,EAAE,IAAI,EAAG,EAAE,CAAC,CAAE;IACxB,GAAG,SAAS;IACZ,CAAE,cAAc,IAAI,EAAE,CAAE,EAAE,cAAc,aAAa,CAAE,IAAI,CAAE,EAAE;CAC/D,CAAE,EACH;IACC,MAAM,EAAE,QAAQ;IAChB,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,UAAU;IACvB;;;;;OAKG;IACH,uBAAuB,EAAE,qBAAqB;IAC9C,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACpB,CACD,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -75,11 +75,16 @@ const wpExports: { [ name: string ]: string } = [
75
75
  wp: 'wp',
76
76
  react: 'React',
77
77
  'react-dom': 'ReactDOM',
78
+ /**
79
+ * To allow React Fast Refresh (HMR) to work in WP 6.0+ we must
80
+ * externalize fast refresh or dequeue `wp-react-refresh-runtime`.
81
+ *
82
+ * @see \wp_register_development_scripts
83
+ */
78
84
  'react-refresh/runtime': 'ReactRefreshRuntime',
79
85
  jquery: 'jQuery',
80
86
  tinymce: 'tinymce',
81
87
  moment: 'moment',
82
- 'react/jsx-runtime': 'ReactJSXRuntime',
83
88
  backbone: 'Backbone',
84
89
  },
85
90
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lipemat/js-boilerplate-shared",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "license": "MIT",
5
5
  "description": "Shared utilities for all @lipemat boilerplate packages",
6
6
  "engines": {
package/lib/package.json DELETED
@@ -1,114 +0,0 @@
1
- {
2
- "name": "@lipemat/js-boilerplate",
3
- "version": "11.0.0-alpha.0",
4
- "description": "Dependencies and scripts for a no config JavaScript app",
5
- "author": "Mat Lipe",
6
- "license": "MIT",
7
- "jsPath": "./",
8
- "type": "module",
9
- "engines": {
10
- "node": ">=22.21.1"
11
- },
12
- "bugs": {
13
- "url": "https://github.com/lipemat/js-boilerplate/issues"
14
- },
15
- "homepage": "https://github.com/lipemat/js-boilerplate#readme",
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://github.com/lipemat/js-boilerplate.git"
19
- },
20
- "sideEffects": false,
21
- "keywords": [
22
- "boilerplate",
23
- "ES6",
24
- "no-config"
25
- ],
26
- "files": [
27
- "tsconfig.json",
28
- "bin/",
29
- "config/",
30
- "helpers/",
31
- "lib/",
32
- "scripts/",
33
- "types/"
34
- ],
35
- "bin": {
36
- "lipemat-js-boilerplate": "bin/lipemat-js-boilerplate.js"
37
- },
38
- "scripts": {
39
- "browserslist": "lipemat-js-boilerplate browserslist",
40
- "build": "tsc --project ./bin",
41
- "prepublishOnly": "yarn run build",
42
- "test": "NODE_OPTIONS=--experimental-vm-modules jest --config=jest/jest.config.ts",
43
- "validate-ts": "tsc --noEmit",
44
- "watch": "tsc --project ./bin --watch"
45
- },
46
- "dependencies": {
47
- "@babel/core": "^7.24.7",
48
- "@babel/preset-env": "^7.24.7",
49
- "@babel/preset-react": "^7.24.7",
50
- "@babel/preset-typescript": "^7.24.7",
51
- "@csstools/postcss-global-data": "2.0.0",
52
- "@lipemat/js-boilerplate-shared": "link:../js-boilerplate-shared",
53
- "@pmmmwh/react-refresh-webpack-plugin": "^0.6.1",
54
- "@statoscope/webpack-plugin": "^5.29.0",
55
- "@types/babel__preset-env": "^7.9.6",
56
- "@types/clean-css": "^4.2.11",
57
- "@types/postcss-load-config": "^3.0.1",
58
- "@types/postcss-preset-env": "^7.7.0",
59
- "@wordpress/browserslist-config": "^6.19.0",
60
- "babel-jest": "^30.2.0",
61
- "babel-loader": "^10.0.0",
62
- "browserslist": "^4.28.1",
63
- "chalk": "^4.0",
64
- "clean-css": "^5.3.3",
65
- "clean-webpack-plugin": "^4.0.0",
66
- "compression-webpack-plugin": "^10.0.0",
67
- "core-js": "^3.33.1",
68
- "cross-spawn": "^7.0.6",
69
- "css-loader": "6.7.1",
70
- "fork-ts-checker-webpack-plugin": "^7.2.13",
71
- "html-webpack-plugin": "^5.5.0",
72
- "identity-obj-proxy": "^3.0.0",
73
- "jest-environment-jsdom": "^30.2.0",
74
- "mini-css-extract-plugin": "^2.9.2",
75
- "minimist": "^1.2.8",
76
- "postcss": "^8.4.47",
77
- "postcss-color-mod-function": "^4.1.1",
78
- "postcss-custom-media": "^8.0.1",
79
- "postcss-import": "^15.1.0",
80
- "postcss-loader": "^8.1.1",
81
- "postcss-nested": "^5.0.6",
82
- "postcss-preset-env": "^7.8.3",
83
- "postcss-scss": "^4.0.4",
84
- "postcss-sort-media-queries": "^5.2.0",
85
- "react-refresh": "^0.17.0",
86
- "style-loader": "^3.3.1",
87
- "ts-node": "^10.9.1",
88
- "typescript": "^5.9.3",
89
- "webpack": "^5.101.0",
90
- "webpack-assets-manifest": "^6.2.1",
91
- "webpack-cli": "^6.0.1",
92
- "webpack-dev-server": "^5.2.2",
93
- "webpack-subresource-integrity": "^5.1.0"
94
- },
95
- "devDependencies": {
96
- "@jest/globals": "^30.2.0",
97
- "@lipemat/eslint-config": "^5.1.4",
98
- "@types/jest": "^29.5.3",
99
- "@types/minimist": "^1",
100
- "@types/node": "^22.19.3",
101
- "@types/react": "^18.2.64",
102
- "chokidar": "^3.5.3",
103
- "eslint": "^9",
104
- "glob": "^11.1.0",
105
- "jest": "^30.2.0",
106
- "memfs": "^3.5.3",
107
- "react": "^18.2.0",
108
- "setimmediate": "^1.0.5"
109
- },
110
- "resolutions": {
111
- "type-fest": "^4.41.0"
112
- },
113
- "packageManager": "yarn@4.12.0"
114
- }