@workleap/swc-configs 2.2.3 → 2.2.5

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 (50) hide show
  1. package/CHANGELOG.md +22 -10
  2. package/README.md +2 -2
  3. package/dist/applyTransformers.d.ts +4 -7
  4. package/dist/applyTransformers.js +47 -4
  5. package/dist/applyTransformers.js.map +1 -0
  6. package/dist/applyTransformers.mjs +9 -1
  7. package/dist/applyTransformers.mjs.map +1 -0
  8. package/dist/browserslistToSwc.d.ts +4 -7
  9. package/dist/browserslistToSwc.js +187 -67
  10. package/dist/browserslistToSwc.js.map +1 -0
  11. package/dist/browserslistToSwc.mjs +140 -1
  12. package/dist/browserslistToSwc.mjs.map +1 -0
  13. package/dist/build.d.ts +6 -9
  14. package/dist/build.js +94 -53
  15. package/dist/build.js.map +1 -0
  16. package/dist/build.mjs +54 -2
  17. package/dist/build.mjs.map +1 -0
  18. package/dist/dev.d.ts +6 -9
  19. package/dist/dev.js +92 -52
  20. package/dist/dev.js.map +1 -0
  21. package/dist/dev.mjs +52 -2
  22. package/dist/dev.mjs.map +1 -0
  23. package/dist/index.d.ts +7 -7
  24. package/dist/index.js +120 -222
  25. package/dist/index.js.map +1 -0
  26. package/dist/index.mjs +13 -5
  27. package/dist/index.mjs.map +1 -0
  28. package/dist/jest.d.ts +6 -9
  29. package/dist/jest.js +84 -44
  30. package/dist/jest.js.map +1 -0
  31. package/dist/jest.mjs +44 -2
  32. package/dist/jest.mjs.map +1 -0
  33. package/package.json +24 -24
  34. package/src/applyTransformers.ts +11 -0
  35. package/src/browserslistToSwc.ts +155 -0
  36. package/src/build.ts +64 -0
  37. package/src/dev.ts +64 -0
  38. package/src/index.ts +9 -0
  39. package/src/jest.ts +58 -0
  40. package/dist/applyTransformers.d.mts +0 -9
  41. package/dist/browserslistToSwc.d.mts +0 -9
  42. package/dist/build.d.mts +0 -12
  43. package/dist/chunk-3UBBOKDF.mjs +0 -6
  44. package/dist/chunk-G3VHSALI.mjs +0 -53
  45. package/dist/chunk-JXCM6TQ3.mjs +0 -45
  46. package/dist/chunk-MGMFB3UY.mjs +0 -73
  47. package/dist/chunk-OLWWFWTT.mjs +0 -54
  48. package/dist/dev.d.mts +0 -13
  49. package/dist/index.d.mts +0 -7
  50. package/dist/jest.d.mts +0 -13
package/CHANGELOG.md CHANGED
@@ -1,61 +1,73 @@
1
1
  # @workleap/swc-configs
2
2
 
3
+ ## 2.2.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#242](https://github.com/workleap/wl-web-configs/pull/242) [`e165cb4`](https://github.com/workleap/wl-web-configs/commit/e165cb447e699e19f06d41532216e36c09d7b945) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated dependencies.
8
+
9
+ ## 2.2.4
10
+
11
+ ### Patch Changes
12
+
13
+ - [#230](https://github.com/workleap/wl-web-configs/pull/230) [`0a4279c`](https://github.com/workleap/wl-web-configs/commit/0a4279c40b7c2ea76c7e1884a8e2fd744ca9b7c1) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Packages now includes the source codes and sourcemap.
14
+
3
15
  ## 2.2.3
4
16
 
5
17
  ### Patch Changes
6
18
 
7
- - [#186](https://github.com/gsoft-inc/wl-web-configs/pull/186) [`997054e`](https://github.com/gsoft-inc/wl-web-configs/commit/997054eb66118e5897ce686a446d98ac7ea6abd6) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Loosen the dependencies version.
19
+ - [#186](https://github.com/workleap/wl-web-configs/pull/186) [`997054e`](https://github.com/workleap/wl-web-configs/commit/997054eb66118e5897ce686a446d98ac7ea6abd6) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Loosen the dependencies version.
8
20
 
9
21
  ## 2.2.2
10
22
 
11
23
  ### Patch Changes
12
24
 
13
- - [#179](https://github.com/gsoft-inc/wl-web-configs/pull/179) [`61d3721`](https://github.com/gsoft-inc/wl-web-configs/commit/61d37216198083ba78cd4b1480e38c8d772a6119) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated dependencies.
25
+ - [#179](https://github.com/workleap/wl-web-configs/pull/179) [`61d3721`](https://github.com/workleap/wl-web-configs/commit/61d37216198083ba78cd4b1480e38c8d772a6119) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated dependencies.
14
26
 
15
27
  ## 2.2.1
16
28
 
17
29
  ### Patch Changes
18
30
 
19
- - [#177](https://github.com/gsoft-inc/wl-web-configs/pull/177) [`8936ce6`](https://github.com/gsoft-inc/wl-web-configs/commit/8936ce677cad205caba2f13a71f5c9208f1dd5e6) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated packages dependencies.
31
+ - [#177](https://github.com/workleap/wl-web-configs/pull/177) [`8936ce6`](https://github.com/workleap/wl-web-configs/commit/8936ce677cad205caba2f13a71f5c9208f1dd5e6) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated packages dependencies.
20
32
 
21
33
  ## 2.2.0
22
34
 
23
35
  ### Minor Changes
24
36
 
25
- - [#173](https://github.com/gsoft-inc/wl-web-configs/pull/173) [`65df9e7`](https://github.com/gsoft-inc/wl-web-configs/commit/65df9e7bd00bf631c0769d9abe90a5029f5187a0) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Added the `baseUrl` and `paths` predefined options.
37
+ - [#173](https://github.com/workleap/wl-web-configs/pull/173) [`65df9e7`](https://github.com/workleap/wl-web-configs/commit/65df9e7bd00bf631c0769d9abe90a5029f5187a0) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Added the `baseUrl` and `paths` predefined options.
26
38
 
27
39
  ## 2.1.2
28
40
 
29
41
  ### Patch Changes
30
42
 
31
- - [#143](https://github.com/gsoft-inc/wl-web-configs/pull/143) [`334088f`](https://github.com/gsoft-inc/wl-web-configs/commit/334088fac63aad6cc245ee3300da076e5c201287) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated to SWC 1.3.85
43
+ - [#143](https://github.com/workleap/wl-web-configs/pull/143) [`334088f`](https://github.com/workleap/wl-web-configs/commit/334088fac63aad6cc245ee3300da076e5c201287) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated to SWC 1.3.85
32
44
 
33
45
  ## 2.1.1
34
46
 
35
47
  ### Patch Changes
36
48
 
37
- - [#120](https://github.com/gsoft-inc/wl-web-configs/pull/120) [`0e66000`](https://github.com/gsoft-inc/wl-web-configs/commit/0e66000b2028cad9c606d3523e3bcf540e6350e2) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated configs
49
+ - [#120](https://github.com/workleap/wl-web-configs/pull/120) [`0e66000`](https://github.com/workleap/wl-web-configs/commit/0e66000b2028cad9c606d3523e3bcf540e6350e2) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated configs
38
50
 
39
51
  ## 2.1.0
40
52
 
41
53
  ### Minor Changes
42
54
 
43
- - [#106](https://github.com/gsoft-inc/wl-web-configs/pull/106) [`a747302`](https://github.com/gsoft-inc/wl-web-configs/commit/a74730233d78c71e45bcd8911a706630d359a67c) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Fixed SWC targets and support TS 5.2
55
+ - [#106](https://github.com/workleap/wl-web-configs/pull/106) [`a747302`](https://github.com/workleap/wl-web-configs/commit/a74730233d78c71e45bcd8911a706630d359a67c) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Fixed SWC targets and support TS 5.2
44
56
 
45
57
  ## 2.0.0
46
58
 
47
59
  ### Major Changes
48
60
 
49
- - [#98](https://github.com/gsoft-inc/wl-web-configs/pull/98) [`56ca32e`](https://github.com/gsoft-inc/wl-web-configs/commit/56ca32ee3194c51210aacc5189f3ebbec5a4a7b6) Thanks [@patricklafrance](https://github.com/patricklafrance)! - New start, every package has a major version bump
61
+ - [#98](https://github.com/workleap/wl-web-configs/pull/98) [`56ca32e`](https://github.com/workleap/wl-web-configs/commit/56ca32ee3194c51210aacc5189f3ebbec5a4a7b6) Thanks [@patricklafrance](https://github.com/patricklafrance)! - New start, every package has a major version bump
50
62
 
51
63
  ## 1.0.1
52
64
 
53
65
  ### Patch Changes
54
66
 
55
- - [#92](https://github.com/gsoft-inc/wl-web-configs/pull/92) [`66e8f10`](https://github.com/gsoft-inc/wl-web-configs/commit/66e8f1033a987523c65fe9e61f53dac6d2e38777) Thanks [@ofrogon](https://github.com/ofrogon)! - Migrate project from GitHub organization
67
+ - [#92](https://github.com/workleap/wl-web-configs/pull/92) [`66e8f10`](https://github.com/workleap/wl-web-configs/commit/66e8f1033a987523c65fe9e61f53dac6d2e38777) Thanks [@ofrogon](https://github.com/ofrogon)! - Migrate project from GitHub organization
56
68
 
57
69
  ## 1.0.0
58
70
 
59
71
  ### Major Changes
60
72
 
61
- - [#85](https://github.com/gsoft-inc/wl-web-configs/pull/85) [`bad2df7`](https://github.com/gsoft-inc/wl-web-configs/commit/bad2df75593fb70d431d73bdced653b157c50caa) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated TSUP configuration and added a new SWC config package
73
+ - [#85](https://github.com/workleap/wl-web-configs/pull/85) [`bad2df7`](https://github.com/workleap/wl-web-configs/commit/bad2df75593fb70d431d73bdced653b157c50caa) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated TSUP configuration and added a new SWC config package
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  ## Usage
7
7
 
8
- View the [user's documentation](https://gsoft-inc.github.io/wl-web-configs/).
8
+ View the [user's documentation](https://workleap.github.io/wl-web-configs/).
9
9
 
10
10
  ## 🤝 Contributing
11
11
 
@@ -21,4 +21,4 @@ Once all our projects use ESM, CJS support can be removed.
21
21
 
22
22
  ## License
23
23
 
24
- Copyright © 2023, Workleap. This code is licensed under the Apache License, Version 2.0. You may obtain a copy of this license at https://github.com/gsoft-inc/workleap-license/blob/master/LICENSE.
24
+ Copyright © 2023, Workleap. This code is licensed under the Apache License, Version 2.0. You may obtain a copy of this license at https://github.com/workleap/workleap-license/blob/master/LICENSE.
@@ -1,9 +1,6 @@
1
- import { Config } from '@swc/core';
2
-
3
- interface SwcConfigTransformerContext {
1
+ import type { Config as SwcConfig } from "@swc/core";
2
+ export interface SwcConfigTransformerContext {
4
3
  environment: "dev" | "build" | "jest";
5
4
  }
6
- type SwcConfigTransformer = (config: Config, context: SwcConfigTransformerContext) => Config;
7
- declare function applyTransformers(config: Config, transformers: SwcConfigTransformer[], context: SwcConfigTransformerContext): Config;
8
-
9
- export { type SwcConfigTransformer, type SwcConfigTransformerContext, applyTransformers };
5
+ export type SwcConfigTransformer = (config: SwcConfig, context: SwcConfigTransformerContext) => SwcConfig;
6
+ export declare function applyTransformers(config: SwcConfig, transformers: SwcConfigTransformer[], context: SwcConfigTransformerContext): SwcConfig;
@@ -1,8 +1,51 @@
1
- 'use strict';
1
+ "use strict";
2
+ const __rslib_import_meta_url__ = /*#__PURE__*/ (function () {
3
+ return typeof document === 'undefined'
4
+ ? new (require('url'.replace('', '')).URL)('file:' + __filename).href
5
+ : (document.currentScript && document.currentScript.src) ||
6
+ new URL('main.js', document.baseURI).href;
7
+ })();
8
+ ;
9
+ // The require scope
10
+ var __webpack_require__ = {};
2
11
 
3
- // src/applyTransformers.ts
12
+ /************************************************************************/
13
+ // webpack/runtime/define_property_getters
14
+ (() => {
15
+ __webpack_require__.d = (exports, definition) => {
16
+ for(var key in definition) {
17
+ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
18
+ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
19
+ }
20
+ }
21
+ };
22
+ })();
23
+ // webpack/runtime/has_own_property
24
+ (() => {
25
+ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
26
+ })();
27
+ // webpack/runtime/make_namespace_object
28
+ (() => {
29
+ // define __esModule on exports
30
+ __webpack_require__.r = (exports) => {
31
+ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
32
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
33
+ }
34
+ Object.defineProperty(exports, '__esModule', { value: true });
35
+ };
36
+ })();
37
+ /************************************************************************/
38
+ var __webpack_exports__ = {};
39
+ __webpack_require__.r(__webpack_exports__);
40
+ __webpack_require__.d(__webpack_exports__, {
41
+ applyTransformers: () => (applyTransformers)
42
+ });
4
43
  function applyTransformers(config, transformers, context) {
5
- return transformers.reduce((acc, transformer) => transformer(acc, context), config);
44
+ return transformers.reduce((acc, transformer)=>transformer(acc, context), config);
6
45
  }
7
46
 
8
- exports.applyTransformers = applyTransformers;
47
+ var __webpack_export_target__ = exports;
48
+ for(var __webpack_i__ in __webpack_exports__) __webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
49
+ if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', { value: true });
50
+
51
+ //# sourceMappingURL=applyTransformers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyTransformers.js","sources":["webpack://@workleap/swc-configs/./src/applyTransformers.ts"],"sourcesContent":["import type { Config as SwcConfig } from \"@swc/core\";\n\nexport interface SwcConfigTransformerContext {\n environment: \"dev\" | \"build\" | \"jest\";\n}\n\nexport type SwcConfigTransformer = (config: SwcConfig, context: SwcConfigTransformerContext) => SwcConfig;\n\nexport function applyTransformers(config: SwcConfig, transformers: SwcConfigTransformer[], context: SwcConfigTransformerContext) {\n return transformers.reduce((acc, transformer) => transformer(acc, context), config);\n}\n"],"names":["applyTransformers","config","transformers","context","acc","transformer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,SAASA,kBAAkBC,MAAiB,EAAEC,YAAoC,EAAEC,OAAoC;IAC3H,OAAOD,aAAa,MAAM,CAAC,CAACE,KAAKC,cAAgBA,YAAYD,KAAKD,UAAUF;AAChF"}
@@ -1 +1,9 @@
1
- export { applyTransformers } from './chunk-3UBBOKDF.mjs';
1
+
2
+ ;// CONCATENATED MODULE: ./src/applyTransformers.ts?__rslib_entry__
3
+ function applyTransformers(config, transformers, context) {
4
+ return transformers.reduce((acc, transformer)=>transformer(acc, context), config);
5
+ }
6
+
7
+ export { applyTransformers };
8
+
9
+ //# sourceMappingURL=applyTransformers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyTransformers.mjs","sources":["webpack://@workleap/swc-configs/./src/applyTransformers.ts"],"sourcesContent":["import type { Config as SwcConfig } from \"@swc/core\";\n\nexport interface SwcConfigTransformerContext {\n environment: \"dev\" | \"build\" | \"jest\";\n}\n\nexport type SwcConfigTransformer = (config: SwcConfig, context: SwcConfigTransformerContext) => SwcConfig;\n\nexport function applyTransformers(config: SwcConfig, transformers: SwcConfigTransformer[], context: SwcConfigTransformerContext) {\n return transformers.reduce((acc, transformer) => transformer(acc, context), config);\n}\n"],"names":["applyTransformers","config","transformers","context","acc","transformer"],"mappings":";;AAQO,SAASA,kBAAkBC,MAAiB,EAAEC,YAAoC,EAAEC,OAAoC;IAC3H,OAAOD,aAAa,MAAM,CAAC,CAACE,KAAKC,cAAgBA,YAAYD,KAAKD,UAAUF;AAChF"}
@@ -1,9 +1,6 @@
1
- import browserslist from 'browserslist';
2
-
3
- declare function createSwcTargetsFromBrowserslistEntries(entries: string[]): Record<keyof readonly ["ie", "edge", "firefox", "chrome", "safari", "opera", "ios", "android", "op_mob", "and_chr", "and_ff", "ie_mob", "samsung"], string>;
4
- interface BrowserslistToSwcOptions extends Omit<browserslist.Options, "path"> {
1
+ import browserslist from "browserslist";
2
+ export declare function createSwcTargetsFromBrowserslistEntries(entries: string[]): Record<keyof readonly ["ie", "edge", "firefox", "chrome", "safari", "opera", "ios", "android", "op_mob", "and_chr", "and_ff", "ie_mob", "samsung"], string>;
3
+ export interface BrowserslistToSwcOptions extends Omit<browserslist.Options, "path"> {
5
4
  queries?: string | string[];
6
5
  }
7
- declare function browserslistToSwc(options?: BrowserslistToSwcOptions): Record<keyof readonly ["ie", "edge", "firefox", "chrome", "safari", "opera", "ios", "android", "op_mob", "and_chr", "and_ff", "ie_mob", "samsung"], string>;
8
-
9
- export { type BrowserslistToSwcOptions, browserslistToSwc, createSwcTargetsFromBrowserslistEntries };
6
+ export declare function browserslistToSwc(options?: BrowserslistToSwcOptions): Record<keyof readonly ["ie", "edge", "firefox", "chrome", "safari", "opera", "ios", "android", "op_mob", "and_chr", "and_ff", "ie_mob", "samsung"], string>;
@@ -1,80 +1,200 @@
1
- 'use strict';
1
+ "use strict";
2
+ const __rslib_import_meta_url__ = /*#__PURE__*/ (function () {
3
+ return typeof document === 'undefined'
4
+ ? new (require('url'.replace('', '')).URL)('file:' + __filename).href
5
+ : (document.currentScript && document.currentScript.src) ||
6
+ new URL('main.js', document.baseURI).href;
7
+ })();
8
+ ;
9
+ // The require scope
10
+ var __webpack_require__ = {};
2
11
 
3
- var browserslist = require('browserslist');
12
+ /************************************************************************/
13
+ // webpack/runtime/compat_get_default_export
14
+ (() => {
15
+ // getDefaultExport function for compatibility with non-ESM modules
16
+ __webpack_require__.n = (module) => {
17
+ var getter = module && module.__esModule ?
18
+ () => (module['default']) :
19
+ () => (module);
20
+ __webpack_require__.d(getter, { a: getter });
21
+ return getter;
22
+ };
23
+
24
+ })();
25
+ // webpack/runtime/define_property_getters
26
+ (() => {
27
+ __webpack_require__.d = (exports, definition) => {
28
+ for(var key in definition) {
29
+ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
30
+ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
31
+ }
32
+ }
33
+ };
34
+ })();
35
+ // webpack/runtime/has_own_property
36
+ (() => {
37
+ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
38
+ })();
39
+ // webpack/runtime/make_namespace_object
40
+ (() => {
41
+ // define __esModule on exports
42
+ __webpack_require__.r = (exports) => {
43
+ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
44
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
45
+ }
46
+ Object.defineProperty(exports, '__esModule', { value: true });
47
+ };
48
+ })();
49
+ /************************************************************************/
50
+ var __webpack_exports__ = {};
51
+ // ESM COMPAT FLAG
52
+ __webpack_require__.r(__webpack_exports__);
4
53
 
5
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
54
+ // EXPORTS
55
+ __webpack_require__.d(__webpack_exports__, {
56
+ browserslistToSwc: () => (/* binding */ browserslistToSwc),
57
+ createSwcTargetsFromBrowserslistEntries: () => (/* binding */ createSwcTargetsFromBrowserslistEntries)
58
+ });
6
59
 
7
- var browserslist__default = /*#__PURE__*/_interopDefault(browserslist);
60
+ ;// CONCATENATED MODULE: external "browserslist"
61
+ const external_browserslist_namespaceObject = require("browserslist");
62
+ var external_browserslist_default = /*#__PURE__*/__webpack_require__.n(external_browserslist_namespaceObject);
63
+ ;// CONCATENATED MODULE: ./src/browserslistToSwc.ts?__rslib_entry__
64
+ // Inspired by https://github.com/marcofugaro/browserslist-to-esbuild/blob/main/src/index.js.
65
+ //
66
+ // This function exist because browserslist-rs (which is used under the hood by SWC) doesn't support browserslist "extends" syntax: https://github.com/browserslist/browserslist-rs#limitations.
67
+ // Therefore, we must parse ourself the ".browserslistrc" file to extract the browser entries and transform them into valid SWC "env.targets".
68
+ //
69
+ // The function will convert an array of browserslist entries from:
70
+ //
71
+ // ['and_chr 115', 'and_ff 115', 'and_qq 13.1',
72
+ // 'and_uc 15.5', 'android 115', 'baidu 13.18',
73
+ // 'bb 10', 'bb 7', 'chrome 116',
74
+ // 'chrome 115', 'chrome 114', 'chrome 113',
75
+ // 'chrome 112', 'chrome 111', 'chrome 110',
76
+ // 'chrome 109', 'chrome 108', 'chrome 107',
77
+ // 'edge 115', 'edge 114', 'edge 113',
78
+ // 'edge 112', 'edge 111', 'edge 110',
79
+ // 'edge 109', 'edge 108', 'edge 107',
80
+ // 'edge 106', 'firefox 116', 'firefox 115',
81
+ // 'firefox 114', 'firefox 113', 'firefox 112',
82
+ // 'firefox 111', 'firefox 110', 'firefox 109',
83
+ // 'firefox 108', 'firefox 107', 'ie 11',
84
+ // 'ie 10', 'ie 9', 'ie 8',
85
+ // 'ie 7', 'ie 6', 'ie 5.5',
86
+ // 'ie_mob 11', 'ie_mob 10', 'ios_saf 16.5',
87
+ // 'ios_saf 16.4', 'ios_saf 16.3', 'ios_saf 16.2',
88
+ // 'ios_saf 16.1', 'ios_saf 16.0', 'ios_saf 15.6-15.7',
89
+ // 'ios_saf 15.5', 'ios_saf 15.4', 'ios_saf 15.2-15.3',
90
+ // 'kaios 3.0-3.1', 'kaios 2.5', 'op_mini all',
91
+ // 'op_mob 73', 'opera 101', 'opera 100',
92
+ // 'opera 99', 'opera 98', 'opera 97',
93
+ // 'opera 96', 'opera 95', 'opera 94',
94
+ // 'opera 93', 'opera 92', 'safari 16.5',
95
+ // 'safari 16.4', 'safari 16.3', 'safari 16.2',
96
+ // 'safari 16.1', 'safari 16.0', 'safari 15.6',
97
+ // 'safari 15.5', 'safari 15.4', 'safari 15.2-15.3',
98
+ // 'samsung 21', 'samsung 20', 'samsung 19.0',
99
+ // 'samsung 18.0', 'samsung 17.0', 'samsung 16.0',
100
+ // 'samsung 15.0', 'samsung 14.0', 'samsung 13.0',
101
+ // 'samsung 12.0']
102
+ //
103
+ // To an object literal of SWC "env.targets":
104
+ //
105
+ // {
106
+ // chrome: '107',
107
+ // firefox: '107',
108
+ // android: '115',
109
+ // edge: '106',
110
+ // ie: '5.5',
111
+ // opera: '73',
112
+ // safari: '15.2',
113
+ // samsung: '12'
114
+ // }
8
115
 
9
- // src/browserslistToSwc.ts
10
- var SwcSupportedBrowsers = [
11
- "ie",
12
- "edge",
13
- "firefox",
14
- "chrome",
15
- "safari",
16
- "opera",
17
- "ios",
18
- "android",
19
- "op_mob",
20
- "and_chr",
21
- "and_ff",
22
- "ie_mob",
23
- "samsung"
116
+ // Original browserslist-rs supported browsers (https://github.com/browserslist/browserslist-rs/blob/99a3244fc8c0e631a80a9cae5c41dca6c5a2aae5/build.rs#L10)
117
+ // minus the browsers that are discarted by SWC (https://github.com/swc-project/swc/blob/main/crates/preset_env_base/src/lib.rs#L105).
118
+ const SwcSupportedBrowsers = [
119
+ "ie",
120
+ "edge",
121
+ "firefox",
122
+ "chrome",
123
+ "safari",
124
+ "opera",
125
+ "ios",
126
+ "android",
127
+ "op_mob",
128
+ "and_chr",
129
+ "and_ff",
130
+ "ie_mob",
131
+ "samsung"
24
132
  ];
25
- var SwcMobileBrowserAliases = {
26
- "and_chr": "chrome",
27
- "and_ff": "firefox",
28
- "ie_mob": "ie",
29
- "ios_saf": "ios",
30
- "op_mob": "opera"
133
+ // SWC browsers aliases (https://github.com/swc-project/swc/blob/main/crates/preset_env_base/src/lib.rs#L90).
134
+ const SwcMobileBrowserAliases = {
135
+ "and_chr": "chrome",
136
+ "and_ff": "firefox",
137
+ "ie_mob": "ie",
138
+ "ios_saf": "ios",
139
+ "op_mob": "opera"
31
140
  };
32
141
  function parseBrowserslistEntry(entry) {
33
- const values = entry.split(" ");
34
- let browser = values[0];
35
- let version = values[1];
36
- if (SwcMobileBrowserAliases[browser]) {
37
- browser = SwcMobileBrowserAliases[browser];
38
- }
39
- if (version.includes("-")) {
40
- version = version.slice(0, version.indexOf("-"));
41
- }
42
- if (version.endsWith(".0")) {
43
- version = version.slice(0, -2);
44
- }
45
- return {
46
- browser,
47
- version
48
- };
49
- }
50
- function createSwcTargetsFromBrowserslistEntries(entries) {
51
- return entries.reduce((acc, x) => {
52
- const { browser, version } = parseBrowserslistEntry(x);
53
- if (SwcSupportedBrowsers.indexOf(browser) === -1) {
54
- return acc;
142
+ // "chrome 11" --> ["chrome", "11"]
143
+ const values = entry.split(" ");
144
+ let browser = values[0];
145
+ let version = values[1];
146
+ // "and_chr" --> "chrome"
147
+ if (SwcMobileBrowserAliases[browser]) {
148
+ browser = SwcMobileBrowserAliases[browser];
149
+ }
150
+ // "11.0-12.0" --> "11.0"
151
+ if (version.includes("-")) {
152
+ version = version.slice(0, version.indexOf("-"));
55
153
  }
56
- const _browser = browser;
57
- if (acc[_browser]) {
58
- if (parseFloat(acc[_browser]) > parseFloat(version)) {
59
- acc[_browser] = version;
60
- }
61
- } else {
62
- acc[_browser] = version;
154
+ // "11.0" --> "11"
155
+ if (version.endsWith(".0")) {
156
+ version = version.slice(0, -2);
63
157
  }
64
- return acc;
65
- }, {});
158
+ return {
159
+ browser,
160
+ version
161
+ };
162
+ }
163
+ function createSwcTargetsFromBrowserslistEntries(entries) {
164
+ return entries.reduce((acc, x)=>{
165
+ const { browser, version } = parseBrowserslistEntry(x);
166
+ // Exclude browsers that are not supported by SWC.
167
+ if (SwcSupportedBrowsers.indexOf(browser) === -1) {
168
+ return acc;
169
+ }
170
+ // Let's make TS happy as we are now certain that the browser is part
171
+ // of the supported browsers list.
172
+ const _browser = browser;
173
+ // SWC "env.targets" only support a single entry per target (browser).
174
+ // Therefore, we loop through the browser versions to keep only the oldest one.
175
+ if (acc[_browser]) {
176
+ if (parseFloat(acc[_browser]) > parseFloat(version)) {
177
+ acc[_browser] = version;
178
+ }
179
+ } else {
180
+ acc[_browser] = version;
181
+ }
182
+ return acc;
183
+ }, {});
66
184
  }
67
185
  function browserslistToSwc(options = {}) {
68
- const {
69
- queries,
70
- ...browserlistsOptions
71
- } = options;
72
- const entries = browserslist__default.default(queries, {
73
- path: "./browserslistrc",
74
- ...browserlistsOptions
75
- });
76
- return createSwcTargetsFromBrowserslistEntries(entries);
186
+ const { queries, ...browserlistsOptions } = options;
187
+ // Will return the entries matching the "queries" prop when provided, otherwise,
188
+ // the function will load the closest ".browserslistrc" file.
189
+ const entries = external_browserslist_default()(queries, {
190
+ path: "./browserslistrc",
191
+ ...browserlistsOptions
192
+ });
193
+ return createSwcTargetsFromBrowserslistEntries(entries);
77
194
  }
78
195
 
79
- exports.browserslistToSwc = browserslistToSwc;
80
- exports.createSwcTargetsFromBrowserslistEntries = createSwcTargetsFromBrowserslistEntries;
196
+ var __webpack_export_target__ = exports;
197
+ for(var __webpack_i__ in __webpack_exports__) __webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
198
+ if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', { value: true });
199
+
200
+ //# sourceMappingURL=browserslistToSwc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserslistToSwc.js","sources":["webpack://@workleap/swc-configs/./src/browserslistToSwc.ts"],"sourcesContent":["// Inspired by https://github.com/marcofugaro/browserslist-to-esbuild/blob/main/src/index.js.\n//\n// This function exist because browserslist-rs (which is used under the hood by SWC) doesn't support browserslist \"extends\" syntax: https://github.com/browserslist/browserslist-rs#limitations.\n// Therefore, we must parse ourself the \".browserslistrc\" file to extract the browser entries and transform them into valid SWC \"env.targets\".\n//\n// The function will convert an array of browserslist entries from:\n//\n// ['and_chr 115', 'and_ff 115', 'and_qq 13.1',\n// 'and_uc 15.5', 'android 115', 'baidu 13.18',\n// 'bb 10', 'bb 7', 'chrome 116',\n// 'chrome 115', 'chrome 114', 'chrome 113',\n// 'chrome 112', 'chrome 111', 'chrome 110',\n// 'chrome 109', 'chrome 108', 'chrome 107',\n// 'edge 115', 'edge 114', 'edge 113',\n// 'edge 112', 'edge 111', 'edge 110',\n// 'edge 109', 'edge 108', 'edge 107',\n// 'edge 106', 'firefox 116', 'firefox 115',\n// 'firefox 114', 'firefox 113', 'firefox 112',\n// 'firefox 111', 'firefox 110', 'firefox 109',\n// 'firefox 108', 'firefox 107', 'ie 11',\n// 'ie 10', 'ie 9', 'ie 8',\n// 'ie 7', 'ie 6', 'ie 5.5',\n// 'ie_mob 11', 'ie_mob 10', 'ios_saf 16.5',\n// 'ios_saf 16.4', 'ios_saf 16.3', 'ios_saf 16.2',\n// 'ios_saf 16.1', 'ios_saf 16.0', 'ios_saf 15.6-15.7',\n// 'ios_saf 15.5', 'ios_saf 15.4', 'ios_saf 15.2-15.3',\n// 'kaios 3.0-3.1', 'kaios 2.5', 'op_mini all',\n// 'op_mob 73', 'opera 101', 'opera 100',\n// 'opera 99', 'opera 98', 'opera 97',\n// 'opera 96', 'opera 95', 'opera 94',\n// 'opera 93', 'opera 92', 'safari 16.5',\n// 'safari 16.4', 'safari 16.3', 'safari 16.2',\n// 'safari 16.1', 'safari 16.0', 'safari 15.6',\n// 'safari 15.5', 'safari 15.4', 'safari 15.2-15.3',\n// 'samsung 21', 'samsung 20', 'samsung 19.0',\n// 'samsung 18.0', 'samsung 17.0', 'samsung 16.0',\n// 'samsung 15.0', 'samsung 14.0', 'samsung 13.0',\n// 'samsung 12.0']\n//\n// To an object literal of SWC \"env.targets\":\n//\n// {\n// chrome: '107',\n// firefox: '107',\n// android: '115',\n// edge: '106',\n// ie: '5.5',\n// opera: '73',\n// safari: '15.2',\n// samsung: '12'\n// }\n\nimport browserslist from \"browserslist\";\n\n// Original browserslist-rs supported browsers (https://github.com/browserslist/browserslist-rs/blob/99a3244fc8c0e631a80a9cae5c41dca6c5a2aae5/build.rs#L10)\n// minus the browsers that are discarted by SWC (https://github.com/swc-project/swc/blob/main/crates/preset_env_base/src/lib.rs#L105).\nconst SwcSupportedBrowsers = [\n \"ie\",\n \"edge\",\n \"firefox\",\n \"chrome\",\n \"safari\",\n \"opera\",\n \"ios\",\n \"android\",\n \"op_mob\",\n \"and_chr\",\n \"and_ff\",\n \"ie_mob\",\n \"samsung\"\n] as const;\n\n// SWC browsers aliases (https://github.com/swc-project/swc/blob/main/crates/preset_env_base/src/lib.rs#L90).\nconst SwcMobileBrowserAliases: Record<string, string> = {\n \"and_chr\": \"chrome\",\n \"and_ff\": \"firefox\",\n \"ie_mob\": \"ie\",\n \"ios_saf\": \"ios\",\n \"op_mob\": \"opera\"\n};\n\nfunction parseBrowserslistEntry(entry: string) {\n // \"chrome 11\" --> [\"chrome\", \"11\"]\n const values = entry.split(\" \");\n\n let browser = values[0];\n let version = values[1];\n\n // \"and_chr\" --> \"chrome\"\n if (SwcMobileBrowserAliases[browser]) {\n browser = SwcMobileBrowserAliases[browser];\n }\n\n // \"11.0-12.0\" --> \"11.0\"\n if (version.includes(\"-\")) {\n version = version.slice(0, version.indexOf(\"-\"));\n }\n\n // \"11.0\" --> \"11\"\n if (version.endsWith(\".0\")) {\n version = version.slice(0, -2);\n }\n\n return {\n browser,\n version\n };\n}\n\nexport function createSwcTargetsFromBrowserslistEntries(entries: string[]) {\n return entries.reduce((acc, x: string) => {\n const { browser, version } = parseBrowserslistEntry(x);\n\n // Exclude browsers that are not supported by SWC.\n if (((SwcSupportedBrowsers as unknown) as string[]).indexOf(browser) === -1) {\n return acc;\n }\n\n // Let's make TS happy as we are now certain that the browser is part\n // of the supported browsers list.\n const _browser = browser as keyof typeof SwcSupportedBrowsers;\n\n // SWC \"env.targets\" only support a single entry per target (browser).\n // Therefore, we loop through the browser versions to keep only the oldest one.\n if (acc[_browser]) {\n if (parseFloat(acc[_browser]) > parseFloat(version)) {\n acc[_browser] = version;\n }\n } else {\n acc[_browser] = version;\n }\n\n return acc;\n }, {} as Record<keyof typeof SwcSupportedBrowsers, string>);\n}\n\nexport interface BrowserslistToSwcOptions extends Omit<browserslist.Options, \"path\"> {\n queries?: string | string[];\n}\n\nexport function browserslistToSwc(options: BrowserslistToSwcOptions = {}) {\n const {\n queries,\n ...browserlistsOptions\n } = options;\n\n // Will return the entries matching the \"queries\" prop when provided, otherwise,\n // the function will load the closest \".browserslistrc\" file.\n const entries = browserslist(queries, {\n path: \"./browserslistrc\",\n ...browserlistsOptions\n });\n\n return createSwcTargetsFromBrowserslistEntries(entries);\n}\n"],"names":["browserslist","SwcSupportedBrowsers","SwcMobileBrowserAliases","parseBrowserslistEntry","entry","values","browser","version","createSwcTargetsFromBrowserslistEntries","entries","acc","x","_browser","parseFloat","browserslistToSwc","options","queries","browserlistsOptions"],"mappings":"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"}