@servicetitan/startup 23.4.0 → 23.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.
Files changed (36) hide show
  1. package/dist/cli/utils/tcm.d.ts.map +1 -1
  2. package/dist/cli/utils/tcm.js +2 -3
  3. package/dist/cli/utils/tcm.js.map +1 -1
  4. package/dist/webpack/__mocks__/file-rules.d.ts.map +1 -1
  5. package/dist/webpack/__mocks__/file-rules.js +49 -1
  6. package/dist/webpack/__mocks__/file-rules.js.map +1 -1
  7. package/dist/webpack/configs/rules/image-rules.js +1 -1
  8. package/dist/webpack/configs/rules/image-rules.js.map +1 -1
  9. package/dist/webpack/configs/rules/index.d.ts +1 -0
  10. package/dist/webpack/configs/rules/index.d.ts.map +1 -1
  11. package/dist/webpack/configs/rules/index.js +1 -0
  12. package/dist/webpack/configs/rules/index.js.map +1 -1
  13. package/dist/webpack/configs/rules/svg-rules.d.ts +4 -0
  14. package/dist/webpack/configs/rules/svg-rules.d.ts.map +1 -0
  15. package/dist/webpack/configs/rules/svg-rules.js +60 -0
  16. package/dist/webpack/configs/rules/svg-rules.js.map +1 -0
  17. package/dist/webpack/configs/rules-config.d.ts.map +1 -1
  18. package/dist/webpack/configs/rules-config.js +1 -0
  19. package/dist/webpack/configs/rules-config.js.map +1 -1
  20. package/dist/webpack/create-webpack-config.js +2 -5
  21. package/dist/webpack/create-webpack-config.js.map +1 -1
  22. package/package.json +9 -8
  23. package/src/cli/utils/tcm.ts +2 -3
  24. package/src/webpack/__mocks__/file-rules.ts +50 -1
  25. package/src/webpack/configs/rules/image-rules.ts +1 -1
  26. package/src/webpack/configs/rules/index.ts +1 -0
  27. package/src/webpack/configs/rules/svg-rules.ts +60 -0
  28. package/src/webpack/configs/rules-config.ts +11 -1
  29. package/src/webpack/create-webpack-config.ts +1 -1
  30. package/template-react18/packages/application/package.json +1 -1
  31. package/template-react18/packages/feature-a/package.json +1 -1
  32. package/template-react18/packages/feature-b/package.json +1 -1
  33. package/template-react18/packages/feature-c/package.json +1 -1
  34. package/tsconfig/base.json +2 -1
  35. package/tsconfig/types.d.ts +24 -0
  36. package/tsconfig.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tcm.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/tcm.ts"],"names":[],"mappings":"AA2DA,wBAAsB,GAAG,kBAIxB;AAED,wBAAsB,QAAQ,kBAE7B"}
1
+ {"version":3,"file":"tcm.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/tcm.ts"],"names":[],"mappings":"AA0DA,wBAAsB,GAAG,kBAIxB;AAED,wBAAsB,QAAQ,kBAE7B"}
@@ -13,8 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.tcmWatch = exports.tcm = void 0;
16
- const util_1 = __importDefault(require("util"));
17
- const glob_1 = __importDefault(require("glob"));
16
+ const glob_1 = require("glob");
18
17
  const chokidar_1 = __importDefault(require("chokidar"));
19
18
  const typed_css_modules_1 = __importDefault(require("typed-css-modules"));
20
19
  const utils_1 = require("../../utils");
@@ -48,7 +47,7 @@ function run({ watch } = {}) {
48
47
  }
49
48
  });
50
49
  if (!watch) {
51
- const files = yield util_1.default.promisify(glob_1.default)(filesPattern);
50
+ const files = yield (0, glob_1.glob)(filesPattern);
52
51
  yield Promise.all(files.map(writeFile));
53
52
  }
54
53
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"tcm.js","sourceRoot":"","sources":["../../../src/cli/utils/tcm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gDAAwB;AACxB,wDAAgC;AAEhC,0EAA2C;AAE3C,uCAA8C;AAC9C,wBAA8D;AAM9D,SAAe,OAAO,CAAC,QAAgB;;QACnC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,IAAA,cAAW,EAAC,QAAQ,CAAC,CAAC;SAChC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,IAAA,cAAW,EAAC,QAAQ,CAAC,CAAC;SAChC;IACL,CAAC;CAAA;AAED,SAAe,GAAG,CAAC,EAAE,KAAK,KAAiB,EAAE;;QACzC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,GAAE,CAAC;QAEhC,MAAM,YAAY,GAAG,GAAG,MAAM,iBAAiB,kBAAe,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7F,MAAM,OAAO,GAAG,IAAI,2BAAU,CAAC;YAC3B,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAO,QAAgB,EAAE,EAAE;YACzC,IAAI;gBACA,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACzE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;aAC7B;YAAC,OAAO,KAAK,EAAE;gBACZ,WAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5B;QACL,CAAC,CAAA,CAAC;QAEF,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,KAAK,GAAG,MAAM,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,CAAC,YAAY,CAAC,CAAC;YAEvD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;SAC3C;aAAM;YACH,WAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC;YAE1C,MAAM,OAAO,GAAG,kBAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEhC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE;gBACjC,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;CAAA;AAED,SAAsB,GAAG;;QACrB,WAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAExE,MAAM,GAAG,EAAE,CAAC;IAChB,CAAC;CAAA;AAJD,kBAIC;AAED,SAAsB,QAAQ;;QAC1B,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;CAAA;AAFD,4BAEC"}
1
+ {"version":3,"file":"tcm.js","sourceRoot":"","sources":["../../../src/cli/utils/tcm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAA4B;AAC5B,wDAAgC;AAEhC,0EAA2C;AAE3C,uCAA8C;AAC9C,wBAA8D;AAM9D,SAAe,OAAO,CAAC,QAAgB;;QACnC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,IAAA,cAAW,EAAC,QAAQ,CAAC,CAAC;SAChC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,IAAA,cAAW,EAAC,QAAQ,CAAC,CAAC;SAChC;IACL,CAAC;CAAA;AAED,SAAe,GAAG,CAAC,EAAE,KAAK,KAAiB,EAAE;;QACzC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,GAAE,CAAC;QAEhC,MAAM,YAAY,GAAG,GAAG,MAAM,iBAAiB,kBAAe,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7F,MAAM,OAAO,GAAG,IAAI,2BAAU,CAAC;YAC3B,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAO,QAAgB,EAAE,EAAE;YACzC,IAAI;gBACA,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBACzE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;aAC7B;YAAC,OAAO,KAAK,EAAE;gBACZ,WAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5B;QACL,CAAC,CAAA,CAAC;QAEF,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,KAAK,GAAG,MAAM,IAAA,WAAI,EAAC,YAAY,CAAC,CAAC;YAEvC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;SAC3C;aAAM;YACH,WAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC;YAE1C,MAAM,OAAO,GAAG,kBAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEhC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE;gBACjC,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;CAAA;AAED,SAAsB,GAAG;;QACrB,WAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAExE,MAAM,GAAG,EAAE,CAAC;IAChB,CAAC;CAAA;AAJD,kBAIC;AAED,SAAsB,QAAQ;;QAC1B,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;CAAA;AAFD,4BAEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-rules.d.ts","sourceRoot":"","sources":["../../../src/webpack/__mocks__/file-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA0BjD,CAAC"}
1
+ {"version":3,"file":"file-rules.d.ts","sourceRoot":"","sources":["../../../src/webpack/__mocks__/file-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAqBtC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAwDjD,CAAC"}
@@ -1,6 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fileRules = void 0;
4
+ const svgLibrariesRegEx = /node_modules\/(@servicetitan\/anvil2)/;
5
+ const SVGRLoader = {
6
+ loader: '@svgr/webpack',
7
+ options: {
8
+ svgoConfig: {
9
+ plugins: [
10
+ {
11
+ name: 'preset-default',
12
+ params: {
13
+ overrides: {
14
+ removeViewBox: false,
15
+ },
16
+ },
17
+ },
18
+ ],
19
+ },
20
+ },
21
+ };
4
22
  exports.fileRules = {
5
23
  '.js': {
6
24
  test: /\.js$/,
@@ -13,7 +31,7 @@ exports.fileRules = {
13
31
  use: { loader: 'worker-loader' },
14
32
  },
15
33
  'images': {
16
- test: /\.(png|svg|jpg|jpeg|gif)$/i,
34
+ test: /\.(png|jpg|jpeg|gif)$/i,
17
35
  type: 'asset',
18
36
  generator: { filename: 'images/[contenthash][ext][query]' },
19
37
  },
@@ -22,6 +40,36 @@ exports.fileRules = {
22
40
  type: 'asset/resource',
23
41
  generator: { filename: 'fonts/[contenthash][ext][query]' },
24
42
  },
43
+ 'svg': {
44
+ test: /\.svg$/i,
45
+ exclude: svgLibrariesRegEx,
46
+ resourceQuery: { not: [/component/] },
47
+ type: 'asset',
48
+ generator: {
49
+ filename: 'images/[contenthash][ext][query]',
50
+ },
51
+ },
52
+ 'svgComponent': {
53
+ test: /\.svg$/i,
54
+ exclude: svgLibrariesRegEx,
55
+ resourceQuery: /component/,
56
+ use: [SVGRLoader],
57
+ },
58
+ 'svgAnvil2': {
59
+ test: /\.svg$/i,
60
+ include: svgLibrariesRegEx,
61
+ resourceQuery: { not: [/asset/] },
62
+ use: [SVGRLoader],
63
+ },
64
+ 'svgAnvil2Asset': {
65
+ test: /\.svg$/i,
66
+ include: svgLibrariesRegEx,
67
+ resourceQuery: /asset/,
68
+ type: 'asset',
69
+ generator: {
70
+ filename: 'images/[contenthash][ext][query]',
71
+ },
72
+ },
25
73
  '.tsx': {
26
74
  test: /\.tsx?$/,
27
75
  exclude: /node_modules/,
@@ -1 +1 @@
1
- {"version":3,"file":"file-rules.js","sourceRoot":"","sources":["../../../src/webpack/__mocks__/file-rules.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAgC;IAClD,KAAK,EAAE;QACH,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,mBAAmB;KAC9B;IACD,YAAY,EAAE;QACV,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;KACnC;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,EAAE,QAAQ,EAAE,kCAAkC,EAAE;KAC9D;IACD,OAAO,EAAE;QACL,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,EAAE,QAAQ,EAAE,iCAAiC,EAAE;KAC7D;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;KACnE;CACJ,CAAC"}
1
+ {"version":3,"file":"file-rules.js","sourceRoot":"","sources":["../../../src/webpack/__mocks__/file-rules.ts"],"names":[],"mappings":";;;AAEA,MAAM,iBAAiB,GAAG,uCAAuC,CAAC;AAClE,MAAM,UAAU,GAAG;IACf,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE;QACL,UAAU,EAAE;YACR,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,gBAAgB;oBACtB,MAAM,EAAE;wBACJ,SAAS,EAAE;4BACP,aAAa,EAAE,KAAK;yBACvB;qBACJ;iBACJ;aACJ;SACJ;KACJ;CACJ,CAAC;AAEW,QAAA,SAAS,GAAgC;IAClD,KAAK,EAAE;QACH,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,mBAAmB;KAC9B;IACD,YAAY,EAAE;QACV,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;KACnC;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,EAAE,QAAQ,EAAE,kCAAkC,EAAE;KAC9D;IACD,OAAO,EAAE;QACL,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,EAAE,QAAQ,EAAE,iCAAiC,EAAE;KAC7D;IACD,KAAK,EAAE;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iBAAiB;QAC1B,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE;QACrC,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACP,QAAQ,EAAE,kCAAkC;SAC/C;KACJ;IACD,cAAc,EAAE;QACZ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iBAAiB;QAC1B,aAAa,EAAE,WAAW;QAC1B,GAAG,EAAE,CAAC,UAAU,CAAC;KACpB;IACD,WAAW,EAAE;QACT,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iBAAiB;QAC1B,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;QACjC,GAAG,EAAE,CAAC,UAAU,CAAC;KACpB;IACD,gBAAgB,EAAE;QACd,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iBAAiB;QAC1B,aAAa,EAAE,OAAO;QACtB,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACP,QAAQ,EAAE,kCAAkC;SAC/C;KACJ;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;KACnE;CACJ,CAAC"}
@@ -4,7 +4,7 @@ exports.imageRules = void 0;
4
4
  function imageRules(_) {
5
5
  return [
6
6
  {
7
- test: /\.(png|svg|jpg|jpeg|gif)$/i,
7
+ test: /\.(png|jpg|jpeg|gif)$/i,
8
8
  type: 'asset',
9
9
  generator: {
10
10
  filename: 'images/[contenthash][ext][query]',
@@ -1 +1 @@
1
- {"version":3,"file":"image-rules.js","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/image-rules.ts"],"names":[],"mappings":";;;AAGA,SAAgB,UAAU,CAAC,CAAU;IACjC,OAAO;QACH;YACI,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,OAAO;YACb,SAAS,EAAE;gBACP,QAAQ,EAAE,kCAAkC;aAC/C;SACJ;KACJ,CAAC;AACN,CAAC;AAVD,gCAUC"}
1
+ {"version":3,"file":"image-rules.js","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/image-rules.ts"],"names":[],"mappings":";;;AAGA,SAAgB,UAAU,CAAC,CAAU;IACjC,OAAO;QACH;YACI,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,OAAO;YACb,SAAS,EAAE;gBACP,QAAQ,EAAE,kCAAkC;aAC/C;SACJ;KACJ,CAAC;AACN,CAAC;AAVD,gCAUC"}
@@ -4,5 +4,6 @@ export * from './image-rules';
4
4
  export * from './js-rules';
5
5
  export * from './less-rules';
6
6
  export * from './scss-rules';
7
+ export * from './svg-rules';
7
8
  export * from './tsx-rules';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -20,5 +20,6 @@ __exportStar(require("./image-rules"), exports);
20
20
  __exportStar(require("./js-rules"), exports);
21
21
  __exportStar(require("./less-rules"), exports);
22
22
  __exportStar(require("./scss-rules"), exports);
23
+ __exportStar(require("./svg-rules"), exports);
23
24
  __exportStar(require("./tsx-rules"), exports);
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,+CAA6B;AAC7B,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,+CAA6B;AAC7B,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,8CAA4B"}
@@ -0,0 +1,4 @@
1
+ import { RuleSetRule } from 'webpack';
2
+ import { Context } from '../types';
3
+ export declare function svgRules(_: Context): RuleSetRule[];
4
+ //# sourceMappingURL=svg-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-rules.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/svg-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,CAwDlD"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.svgRules = void 0;
4
+ function svgRules(_) {
5
+ const librariesToDefaultToSVGR = ['@servicetitan/anvil2'];
6
+ const librariesRegEx = new RegExp(`node_modules/(${librariesToDefaultToSVGR.join('|')})`);
7
+ const SVGRLoader = {
8
+ loader: '@svgr/webpack',
9
+ options: {
10
+ svgoConfig: {
11
+ plugins: [
12
+ {
13
+ name: 'preset-default',
14
+ params: {
15
+ overrides: {
16
+ removeViewBox: false,
17
+ },
18
+ },
19
+ },
20
+ ],
21
+ },
22
+ },
23
+ };
24
+ return [
25
+ // SVGs not from Anvil 2: *.svg?component -> SVGRLoader, *.svg -> asset
26
+ {
27
+ test: /\.svg$/i,
28
+ exclude: librariesRegEx,
29
+ resourceQuery: { not: [/component/] },
30
+ type: 'asset',
31
+ generator: {
32
+ filename: 'images/[contenthash][ext][query]',
33
+ },
34
+ },
35
+ {
36
+ test: /\.svg$/i,
37
+ exclude: librariesRegEx,
38
+ resourceQuery: /component/,
39
+ use: [SVGRLoader],
40
+ },
41
+ // SVGs from Anvil 2: *.svg?asset -> asset, *.svg -> SVGRLoader
42
+ {
43
+ test: /\.svg$/i,
44
+ include: librariesRegEx,
45
+ resourceQuery: { not: [/asset/] },
46
+ use: [SVGRLoader],
47
+ },
48
+ {
49
+ test: /\.svg$/i,
50
+ include: librariesRegEx,
51
+ resourceQuery: /asset/,
52
+ type: 'asset',
53
+ generator: {
54
+ filename: 'images/[contenthash][ext][query]',
55
+ },
56
+ },
57
+ ];
58
+ }
59
+ exports.svgRules = svgRules;
60
+ //# sourceMappingURL=svg-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-rules.js","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/svg-rules.ts"],"names":[],"mappings":";;;AAGA,SAAgB,QAAQ,CAAC,CAAU;IAC/B,MAAM,wBAAwB,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,iBAAiB,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE1F,MAAM,UAAU,GAAG;QACf,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE;YACL,UAAU,EAAE;gBACR,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE;4BACJ,SAAS,EAAE;gCACP,aAAa,EAAE,KAAK;6BACvB;yBACJ;qBACJ;iBACJ;aACJ;SACJ;KACJ,CAAC;IAEF,OAAO;QACH,uEAAuE;QACvE;YACI,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE;YACrC,IAAI,EAAE,OAAO;YACb,SAAS,EAAE;gBACP,QAAQ,EAAE,kCAAkC;aAC/C;SACJ;QACD;YACI,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,WAAW;YAC1B,GAAG,EAAE,CAAC,UAAU,CAAC;SACpB;QACD,+DAA+D;QAC/D;YACI,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;YACjC,GAAG,EAAE,CAAC,UAAU,CAAC;SACpB;QACD;YACI,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,OAAO;YACtB,IAAI,EAAE,OAAO;YACb,SAAS,EAAE;gBACP,QAAQ,EAAE,kCAAkC;aAC/C;SACJ;KACJ,CAAC;AACN,CAAC;AAxDD,4BAwDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules-config.d.ts","sourceRoot":"","sources":["../../../src/webpack/configs/rules-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,SAAS,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE7C,aAAK,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5D,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAclE"}
1
+ {"version":3,"file":"rules-config.d.ts","sourceRoot":"","sources":["../../../src/webpack/configs/rules-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,SAAS,CAAC;AAYrD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE7C,aAAK,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC5D,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAelE"}
@@ -9,6 +9,7 @@ function rulesConfig(context, _) {
9
9
  rules_1.imageRules,
10
10
  rules_1.fontRules,
11
11
  rules_1.tsxRules,
12
+ rules_1.svgRules,
12
13
  sharedDependenciesRules,
13
14
  ].flatMap(fn => fn(context));
14
15
  if (!context.isCustomStyleRules) {
@@ -1 +1 @@
1
- {"version":3,"file":"rules-config.js","sourceRoot":"","sources":["../../../src/webpack/configs/rules-config.ts"],"names":[],"mappings":";;;AACA,oCAA8C;AAC9C,mCAAmG;AAQnG,SAAgB,WAAW,CAAC,OAAgB,EAAE,CAAY;IACtD,MAAM,KAAK,GAAW;QAClB,eAAO;QACP,kBAAU;QACV,iBAAS;QACT,gBAAQ;QACR,uBAAuB;KAC1B,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7B,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAS,EAAE,iBAAS,EAAE,gBAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAC9E;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAdD,kCAcC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC7C,MAAM,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IACnE,IAAI,CAAC,0BAA0B,EAAE;QAC7B,OAAO,EAAE,CAAC;KACb;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,EAAE,IAAA,0BAAkB,EAAC,UAAU,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC;QACnD,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;KACjC,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"rules-config.js","sourceRoot":"","sources":["../../../src/webpack/configs/rules-config.ts"],"names":[],"mappings":";;;AACA,oCAA8C;AAC9C,mCASiB;AAQjB,SAAgB,WAAW,CAAC,OAAgB,EAAE,CAAY;IACtD,MAAM,KAAK,GAAW;QAClB,eAAO;QACP,kBAAU;QACV,iBAAS;QACT,gBAAQ;QACR,gBAAQ;QACR,uBAAuB;KAC1B,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7B,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAS,EAAE,iBAAS,EAAE,gBAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAC9E;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAfD,kCAeC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC7C,MAAM,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IACnE,IAAI,CAAC,0BAA0B,EAAE;QAC7B,OAAO,EAAE,CAAC;KACb;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,EAAE,IAAA,0BAAkB,EAAC,UAAU,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC;QACnD,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;KACjC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.createWebpackConfig = void 0;
7
- const webpack_merge_1 = __importDefault(require("webpack-merge"));
4
+ const webpack_merge_1 = require("webpack-merge");
8
5
  const yargs_1 = require("yargs");
9
6
  const utils_1 = require("../cli/utils");
10
7
  const utils_2 = require("../utils");
@@ -22,7 +19,7 @@ function createWebpackConfig(overrides, options = {}) {
22
19
  if (context.isWebComponent && isCalledFromCustomWebpackConfigFile()) {
23
20
  throw new Error('You cannot call createWebpackConfig in a custom webpack config file in a web component (MFE) project. Export webpack configuration itself as a default export from the config file instead.');
24
21
  }
25
- const result = (0, webpack_merge_1.default)([
22
+ const result = (0, webpack_merge_1.merge)([
26
23
  configs_1.cacheConfig,
27
24
  configs_1.devServerConfig,
28
25
  configs_1.devtoolConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"create-webpack-config.js","sourceRoot":"","sources":["../../src/webpack/create-webpack-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-webpack-config.js","sourceRoot":"","sources":["../../src/webpack/create-webpack-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/startup",
3
- "version": "23.4.0",
3
+ "version": "23.5.0",
4
4
  "description": "",
5
5
  "homepage": "https://docs.st.dev/docs/frontend/startup",
6
6
  "repository": {
@@ -35,13 +35,14 @@
35
35
  "@types/yargs": "~17.0.24"
36
36
  },
37
37
  "dependencies": {
38
- "@babel/preset-env": "~7.24.3",
38
+ "@babel/preset-env": "~7.24.4",
39
39
  "@jest/core": "~29.7.0",
40
40
  "@jest/types": "~29.6.3",
41
41
  "@lerna/exec": "~5.6.2",
42
- "@servicetitan/eslint-config": "23.4.0",
43
- "@servicetitan/stylelint-config": "23.4.0",
44
- "@swc/core": "1.4.11",
42
+ "@servicetitan/eslint-config": "23.5.0",
43
+ "@servicetitan/stylelint-config": "23.5.0",
44
+ "@svgr/webpack": "^8.1.0",
45
+ "@swc/core": "1.5.0",
45
46
  "@types/debug": "^4.1.12",
46
47
  "@types/jest": "~29.5.12",
47
48
  "chalk": "~4.1.2",
@@ -54,7 +55,7 @@
54
55
  "eslint": "~8.57.0",
55
56
  "execa": "~5.1.1",
56
57
  "fork-ts-checker-webpack-plugin": "~9.0.2",
57
- "glob": "~7.2.0",
58
+ "glob": "~10.3.12",
58
59
  "html-webpack-plugin": "~5.6.0",
59
60
  "identity-obj-proxy": "~3.0.0",
60
61
  "jest": "~29.7.0",
@@ -65,7 +66,7 @@
65
66
  "less": "~4.2.0",
66
67
  "less-loader": "~12.2.0",
67
68
  "less-plugin-npm-import": "~2.1.0",
68
- "memfs": "~4.8.0",
69
+ "memfs": "~4.9.1",
69
70
  "mini-css-extract-plugin": "~2.7.6",
70
71
  "moment": "^2.30.1",
71
72
  "moment-locales-webpack-plugin": "~1.2.0",
@@ -100,5 +101,5 @@
100
101
  "cli": {
101
102
  "webpack": false
102
103
  },
103
- "gitHead": "94612136ff4d645bc38ae6b13fffad2ab0358666"
104
+ "gitHead": "fa1290f233700757bd3504849eea54c7d8e04af5"
104
105
  }
@@ -1,5 +1,4 @@
1
- import util from 'util';
2
- import glob from 'glob';
1
+ import { glob } from 'glob';
3
2
  import chokidar from 'chokidar';
4
3
 
5
4
  import DtsCreator from 'typed-css-modules';
@@ -41,7 +40,7 @@ async function run({ watch }: RunOptions = {}) {
41
40
  };
42
41
 
43
42
  if (!watch) {
44
- const files = await util.promisify(glob)(filesPattern);
43
+ const files = await glob(filesPattern);
45
44
 
46
45
  await Promise.all(files.map(writeFile));
47
46
  } else {
@@ -1,5 +1,24 @@
1
1
  import { RuleSetRule } from 'webpack';
2
2
 
3
+ const svgLibrariesRegEx = /node_modules\/(@servicetitan\/anvil2)/;
4
+ const SVGRLoader = {
5
+ loader: '@svgr/webpack',
6
+ options: {
7
+ svgoConfig: {
8
+ plugins: [
9
+ {
10
+ name: 'preset-default',
11
+ params: {
12
+ overrides: {
13
+ removeViewBox: false,
14
+ },
15
+ },
16
+ },
17
+ ],
18
+ },
19
+ },
20
+ };
21
+
3
22
  export const fileRules: Record<string, RuleSetRule> = {
4
23
  '.js': {
5
24
  test: /\.js$/,
@@ -12,7 +31,7 @@ export const fileRules: Record<string, RuleSetRule> = {
12
31
  use: { loader: 'worker-loader' },
13
32
  },
14
33
  'images': {
15
- test: /\.(png|svg|jpg|jpeg|gif)$/i,
34
+ test: /\.(png|jpg|jpeg|gif)$/i,
16
35
  type: 'asset',
17
36
  generator: { filename: 'images/[contenthash][ext][query]' },
18
37
  },
@@ -21,6 +40,36 @@ export const fileRules: Record<string, RuleSetRule> = {
21
40
  type: 'asset/resource',
22
41
  generator: { filename: 'fonts/[contenthash][ext][query]' },
23
42
  },
43
+ 'svg': {
44
+ test: /\.svg$/i,
45
+ exclude: svgLibrariesRegEx,
46
+ resourceQuery: { not: [/component/] },
47
+ type: 'asset',
48
+ generator: {
49
+ filename: 'images/[contenthash][ext][query]',
50
+ },
51
+ },
52
+ 'svgComponent': {
53
+ test: /\.svg$/i,
54
+ exclude: svgLibrariesRegEx,
55
+ resourceQuery: /component/,
56
+ use: [SVGRLoader],
57
+ },
58
+ 'svgAnvil2': {
59
+ test: /\.svg$/i,
60
+ include: svgLibrariesRegEx,
61
+ resourceQuery: { not: [/asset/] },
62
+ use: [SVGRLoader],
63
+ },
64
+ 'svgAnvil2Asset': {
65
+ test: /\.svg$/i,
66
+ include: svgLibrariesRegEx,
67
+ resourceQuery: /asset/,
68
+ type: 'asset',
69
+ generator: {
70
+ filename: 'images/[contenthash][ext][query]',
71
+ },
72
+ },
24
73
  '.tsx': {
25
74
  test: /\.tsx?$/,
26
75
  exclude: /node_modules/,
@@ -4,7 +4,7 @@ import { Context } from '../types';
4
4
  export function imageRules(_: Context): RuleSetRule[] {
5
5
  return [
6
6
  {
7
- test: /\.(png|svg|jpg|jpeg|gif)$/i,
7
+ test: /\.(png|jpg|jpeg|gif)$/i,
8
8
  type: 'asset',
9
9
  generator: {
10
10
  filename: 'images/[contenthash][ext][query]',
@@ -4,4 +4,5 @@ export * from './image-rules';
4
4
  export * from './js-rules';
5
5
  export * from './less-rules';
6
6
  export * from './scss-rules';
7
+ export * from './svg-rules';
7
8
  export * from './tsx-rules';
@@ -0,0 +1,60 @@
1
+ import { RuleSetRule } from 'webpack';
2
+ import { Context } from '../types';
3
+
4
+ export function svgRules(_: Context): RuleSetRule[] {
5
+ const librariesToDefaultToSVGR = ['@servicetitan/anvil2'];
6
+ const librariesRegEx = new RegExp(`node_modules/(${librariesToDefaultToSVGR.join('|')})`);
7
+
8
+ const SVGRLoader = {
9
+ loader: '@svgr/webpack',
10
+ options: {
11
+ svgoConfig: {
12
+ plugins: [
13
+ {
14
+ name: 'preset-default',
15
+ params: {
16
+ overrides: {
17
+ removeViewBox: false,
18
+ },
19
+ },
20
+ },
21
+ ],
22
+ },
23
+ },
24
+ };
25
+
26
+ return [
27
+ // SVGs not from Anvil 2: *.svg?component -> SVGRLoader, *.svg -> asset
28
+ {
29
+ test: /\.svg$/i,
30
+ exclude: librariesRegEx,
31
+ resourceQuery: { not: [/component/] }, // exclude *.svg?component
32
+ type: 'asset',
33
+ generator: {
34
+ filename: 'images/[contenthash][ext][query]',
35
+ },
36
+ },
37
+ {
38
+ test: /\.svg$/i,
39
+ exclude: librariesRegEx,
40
+ resourceQuery: /component/, // *.svg?component
41
+ use: [SVGRLoader],
42
+ },
43
+ // SVGs from Anvil 2: *.svg?asset -> asset, *.svg -> SVGRLoader
44
+ {
45
+ test: /\.svg$/i,
46
+ include: librariesRegEx,
47
+ resourceQuery: { not: [/asset/] }, // exclude *.svg?asset
48
+ use: [SVGRLoader],
49
+ },
50
+ {
51
+ test: /\.svg$/i,
52
+ include: librariesRegEx,
53
+ resourceQuery: /asset/, // *.svg?asset
54
+ type: 'asset',
55
+ generator: {
56
+ filename: 'images/[contenthash][ext][query]',
57
+ },
58
+ },
59
+ ];
60
+ }
@@ -1,6 +1,15 @@
1
1
  import { Configuration, RuleSetRule } from 'webpack';
2
2
  import { getModuleEntryPath } from '../utils';
3
- import { cssRules, fontRules, imageRules, jsRules, lessRules, scssRules, tsxRules } from './rules';
3
+ import {
4
+ cssRules,
5
+ fontRules,
6
+ imageRules,
7
+ jsRules,
8
+ lessRules,
9
+ scssRules,
10
+ svgRules,
11
+ tsxRules,
12
+ } from './rules';
4
13
  import { Context, Overrides } from './types';
5
14
 
6
15
  type Config = NonNullable<Configuration['module']>['rules'];
@@ -14,6 +23,7 @@ export function rulesConfig(context: Context, _: Overrides): Result {
14
23
  imageRules,
15
24
  fontRules,
16
25
  tsxRules,
26
+ svgRules,
17
27
  sharedDependenciesRules,
18
28
  ].flatMap(fn => fn(context));
19
29
 
@@ -1,5 +1,5 @@
1
1
  import { Configuration } from 'webpack';
2
- import merge from 'webpack-merge';
2
+ import { merge } from 'webpack-merge';
3
3
  import { argv, Arguments } from 'yargs';
4
4
 
5
5
  import { webpackDevConfigFileName, webpackProdConfigFileName } from '../cli/utils';
@@ -29,7 +29,7 @@
29
29
  "@testing-library/react": "^14.2.1",
30
30
  "@testing-library/react-hooks": "^8.0.1",
31
31
  "@types/react": "^18.2.55",
32
- "@types/react-dom": "^18.2.19",
32
+ "@types/react-dom": "^18.3.0",
33
33
  "@types/react-router-dom": "^5.3.2"
34
34
  }
35
35
  }
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/react": "^18.2.55",
14
- "@types/react-dom": "^18.2.19"
14
+ "@types/react-dom": "^18.3.0"
15
15
  },
16
16
  "cli": {
17
17
  "webpack": false
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/react": "^18.2.55",
14
- "@types/react-dom": "^18.2.19"
14
+ "@types/react-dom": "^18.3.0"
15
15
  },
16
16
  "cli": {
17
17
  "webpack": false
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/react": "^18.2.55",
14
- "@types/react-dom": "^18.2.19"
14
+ "@types/react-dom": "^18.3.0"
15
15
  },
16
16
  "cli": {
17
17
  "webpack": false
@@ -17,5 +17,6 @@
17
17
  "emitDecoratorMetadata": true,
18
18
  "forceConsistentCasingInFileNames": true,
19
19
  "resolveJsonModule": true
20
- }
20
+ },
21
+ "files": ["./types.d.ts"]
21
22
  }
@@ -0,0 +1,24 @@
1
+ /* eslint-disable @servicetitan/react/no-qualified-type */
2
+ /* eslint-disable import/no-default-export */
3
+
4
+ declare module '*.svg' {
5
+ const content: string;
6
+ export default content;
7
+ }
8
+
9
+ declare module '*.svg?asset' {
10
+ const content: string;
11
+ export default content;
12
+ }
13
+
14
+ declare module '*.svg?component' {
15
+ interface SvgComponent extends React.FC<React.SVGAttributes<SVGElement>> {}
16
+ const ReactComponent: SvgComponent;
17
+ export default ReactComponent;
18
+ }
19
+
20
+ declare module '@servicetitan/anvil2/*.svg' {
21
+ interface SvgComponent extends React.FC<React.SVGAttributes<SVGElement>> {}
22
+ const ReactComponent: SvgComponent;
23
+ export default ReactComponent;
24
+ }
package/tsconfig.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
- "extends": "@servicetitan/startup/tsconfig/base",
2
+ "extends": "./tsconfig/base",
3
3
  "compilerOptions": {
4
4
  "module": "commonjs",
5
5
  "outDir": "dist",
6
6
  "rootDir": "src"
7
7
  },
8
- "include": ["src/**/*"],
8
+ "include": ["src/**/*", "tsconfig/types.d.ts"],
9
9
  "references": [
10
10
  { "path": "../eslint-config/tsconfig.build.json" },
11
11
  { "path": "../stylelint-config/tsconfig.build.json" }