@servicetitan/startup 36.2.0 → 36.3.0-far-1776.2

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 (116) hide show
  1. package/dist/cli/commands/get-command.d.ts +4 -0
  2. package/dist/cli/commands/get-command.d.ts.map +1 -0
  3. package/dist/cli/commands/get-command.js +68 -0
  4. package/dist/cli/commands/get-command.js.map +1 -0
  5. package/dist/cli/commands/index.d.ts +15 -0
  6. package/dist/cli/commands/index.d.ts.map +1 -0
  7. package/dist/cli/commands/index.js +32 -0
  8. package/dist/cli/commands/index.js.map +1 -0
  9. package/dist/cli/commands/mfe-check.d.ts.map +1 -1
  10. package/dist/cli/commands/mfe-check.js +5 -1
  11. package/dist/cli/commands/mfe-check.js.map +1 -1
  12. package/dist/cli/commands/run-task.test.d.ts +2 -0
  13. package/dist/cli/commands/run-task.test.d.ts.map +1 -0
  14. package/dist/cli/commands/run-task.test.js +65 -0
  15. package/dist/cli/commands/run-task.test.js.map +1 -0
  16. package/dist/cypress-config/index.d.ts +2 -0
  17. package/dist/cypress-config/index.d.ts.map +1 -0
  18. package/dist/cypress-config/index.js +20 -0
  19. package/dist/cypress-config/index.js.map +1 -0
  20. package/dist/cypress-config/webpack-config.d.ts +4 -0
  21. package/dist/cypress-config/webpack-config.d.ts.map +1 -0
  22. package/dist/cypress-config/webpack-config.js +76 -0
  23. package/dist/cypress-config/webpack-config.js.map +1 -0
  24. package/dist/utils/__tests__/get-package-version.test.js +180 -0
  25. package/dist/utils/__tests__/get-package-version.test.js.map +1 -0
  26. package/dist/utils/find-package-lock.d.ts +2 -0
  27. package/dist/utils/find-package-lock.d.ts.map +1 -0
  28. package/dist/utils/find-package-lock.js +26 -0
  29. package/dist/utils/find-package-lock.js.map +1 -0
  30. package/dist/utils/find-up.js +4 -4
  31. package/dist/utils/find-up.js.map +1 -1
  32. package/dist/utils/get-package-data.d.ts +0 -1
  33. package/dist/utils/get-package-data.d.ts.map +1 -1
  34. package/dist/utils/get-package-data.js +3 -22
  35. package/dist/utils/get-package-data.js.map +1 -1
  36. package/dist/utils/get-package-version.d.ts +3 -0
  37. package/dist/utils/get-package-version.d.ts.map +1 -0
  38. package/dist/utils/get-package-version.js +31 -0
  39. package/dist/utils/get-package-version.js.map +1 -0
  40. package/dist/utils/index.d.ts +1 -0
  41. package/dist/utils/index.d.ts.map +1 -1
  42. package/dist/utils/index.js +1 -0
  43. package/dist/utils/index.js.map +1 -1
  44. package/dist/utils/package-lock/find-package-lock.d.ts +2 -0
  45. package/dist/utils/package-lock/find-package-lock.d.ts.map +1 -0
  46. package/dist/utils/package-lock/find-package-lock.js +26 -0
  47. package/dist/utils/package-lock/find-package-lock.js.map +1 -0
  48. package/dist/utils/package-lock/get-lock-file-entry.d.ts +3 -0
  49. package/dist/utils/package-lock/get-lock-file-entry.d.ts.map +1 -0
  50. package/dist/utils/package-lock/get-lock-file-entry.js +22 -0
  51. package/dist/utils/package-lock/get-lock-file-entry.js.map +1 -0
  52. package/dist/utils/package-lock/get-lock-file-version.d.ts +3 -0
  53. package/dist/utils/package-lock/get-lock-file-version.d.ts.map +1 -0
  54. package/dist/utils/package-lock/get-lock-file-version.js +16 -0
  55. package/dist/utils/package-lock/get-lock-file-version.js.map +1 -0
  56. package/dist/utils/package-lock/get-package-version.d.ts +3 -0
  57. package/dist/utils/package-lock/get-package-version.d.ts.map +1 -0
  58. package/dist/utils/package-lock/get-package-version.js +31 -0
  59. package/dist/utils/package-lock/get-package-version.js.map +1 -0
  60. package/dist/utils/package-lock/index.d.ts +6 -0
  61. package/dist/utils/package-lock/index.d.ts.map +1 -0
  62. package/dist/utils/package-lock/index.js +23 -0
  63. package/dist/utils/package-lock/index.js.map +1 -0
  64. package/dist/utils/package-lock/read-package-lock.d.ts +3 -0
  65. package/dist/utils/package-lock/read-package-lock.d.ts.map +1 -0
  66. package/dist/utils/package-lock/read-package-lock.js +22 -0
  67. package/dist/utils/package-lock/read-package-lock.js.map +1 -0
  68. package/dist/utils/package-lock/resolve-package-lock-entry.d.ts +3 -0
  69. package/dist/utils/package-lock/resolve-package-lock-entry.d.ts.map +1 -0
  70. package/dist/utils/package-lock/resolve-package-lock-entry.js +21 -0
  71. package/dist/utils/package-lock/resolve-package-lock-entry.js.map +1 -0
  72. package/dist/utils/package-lock/types.d.ts +12 -0
  73. package/dist/utils/package-lock/types.d.ts.map +1 -0
  74. package/dist/utils/package-lock/types.js +6 -0
  75. package/dist/utils/package-lock/types.js.map +1 -0
  76. package/dist/utils/package-lock.d.ts +14 -0
  77. package/dist/utils/package-lock.d.ts.map +1 -0
  78. package/dist/utils/package-lock.js +63 -0
  79. package/dist/utils/package-lock.js.map +1 -0
  80. package/dist/utils/resolve-package-lock-entry.d.ts +11 -0
  81. package/dist/utils/resolve-package-lock-entry.d.ts.map +1 -0
  82. package/dist/utils/resolve-package-lock-entry.js +21 -0
  83. package/dist/utils/resolve-package-lock-entry.js.map +1 -0
  84. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.d.ts.map +1 -1
  85. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js +3 -1
  86. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js.map +1 -1
  87. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.d.ts.map +1 -1
  88. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js +1 -11
  89. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js.map +1 -1
  90. package/dist/webpack/configs/utils/get-web-components-version.d.ts.map +1 -1
  91. package/dist/webpack/configs/utils/get-web-components-version.js +5 -7
  92. package/dist/webpack/configs/utils/get-web-components-version.js.map +1 -1
  93. package/package.json +3 -4
  94. package/src/cli/commands/__tests__/mfe-check.test.ts +12 -10
  95. package/src/cli/commands/mfe-check.ts +5 -1
  96. package/src/utils/__tests__/get-package-data.test.ts +1 -45
  97. package/src/utils/find-up.ts +1 -1
  98. package/src/utils/get-package-data.ts +0 -14
  99. package/src/utils/index.ts +1 -0
  100. package/src/utils/package-lock/__tests__/find-package-lock.test.ts +35 -0
  101. package/src/utils/package-lock/__tests__/get-lock-file-entry.test.ts +97 -0
  102. package/src/utils/package-lock/__tests__/get-lock-file-version.test.ts +32 -0
  103. package/src/utils/package-lock/__tests__/read-package-lock.test.ts +47 -0
  104. package/src/utils/package-lock/find-package-lock.ts +10 -0
  105. package/src/utils/package-lock/get-lock-file-entry.ts +14 -0
  106. package/src/utils/package-lock/get-lock-file-version.ts +6 -0
  107. package/src/utils/package-lock/index.ts +5 -0
  108. package/src/utils/package-lock/read-package-lock.ts +13 -0
  109. package/src/utils/package-lock/types.ts +13 -0
  110. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +4 -6
  111. package/src/webpack/__tests__/create-webpack-config.test.ts +3 -5
  112. package/src/webpack/configs/plugins/define-exposed-dependencies-plugin.ts +6 -3
  113. package/src/webpack/configs/utils/__tests__/get-launchdarkly-sdk-version.test.ts +29 -12
  114. package/src/webpack/configs/utils/__tests__/get-web-components-version.test.ts +37 -12
  115. package/src/webpack/configs/utils/get-launchdarkly-sdk-version.ts +2 -12
  116. package/src/webpack/configs/utils/get-web-components-version.ts +8 -5
@@ -13,7 +13,6 @@ import yargs from 'yargs';
13
13
  import {
14
14
  getFolders,
15
15
  getPackageData,
16
- getPackageDependencyVersion,
17
16
  getPackages,
18
17
  getTsConfig,
19
18
  isCustomStyleRules,
@@ -21,6 +20,7 @@ import {
21
20
  loadSharedDependencies,
22
21
  log,
23
22
  pick,
23
+ readPackageLock,
24
24
  } from '../../utils';
25
25
  import { miniCssPluginStyleRules } from '../__mocks__';
26
26
  import { getLaunchDarklySdkVersion } from '../configs/utils/get-launchdarkly-sdk-version';
@@ -46,7 +46,7 @@ jest.mock('../../utils', () => ({
46
46
  ...jest.requireActual('../../utils'),
47
47
  getFolders: jest.fn(),
48
48
  getPackageData: jest.fn(),
49
- getPackageDependencyVersion: jest.fn(),
49
+ readPackageLock: jest.fn(),
50
50
  getPackages: jest.fn(),
51
51
  getTsConfig: jest.fn(),
52
52
  isCustomStyleRules: jest.fn(),
@@ -113,9 +113,7 @@ describe(`[startup] ${createWebpackConfig.name}`, () => {
113
113
  dependencies,
114
114
  sharedDependencies,
115
115
  });
116
- jest.mocked(getPackageDependencyVersion).mockImplementation(
117
- (_, defaultVersion) => defaultVersion
118
- );
116
+ jest.mocked(readPackageLock).mockReturnValue({ packages: {} });
119
117
  jest.mocked(getPackages).mockReturnValue([]);
120
118
  jest.mocked(getTsConfig).mockReturnValue(tsConfig);
121
119
  jest.mocked(loadSharedDependencies).mockReturnValue(sharedDependencies);
@@ -162,7 +160,7 @@ describe(`[startup] ${createWebpackConfig.name}`, () => {
162
160
  Object.entries(sharedDependencies).map(([name, variable]) => [
163
161
  name,
164
162
  {
165
- version: getPackageDependencyVersion(name, dependencies[name]),
163
+ version: dependencies[name],
166
164
  variable,
167
165
  },
168
166
  ])
@@ -17,7 +17,6 @@ import {
17
17
  getConfiguration,
18
18
  getFolders,
19
19
  getPackageData,
20
- getPackageDependencyVersion,
21
20
  getPackages,
22
21
  getTsConfig,
23
22
  getWebpackConfiguration,
@@ -27,6 +26,7 @@ import {
27
26
  loadSharedDependencies,
28
27
  log,
29
28
  Package,
29
+ readPackageLock,
30
30
  WebpackConfiguration,
31
31
  } from '../../utils';
32
32
  import { fileRules, productionStyleRules, styleRules } from '../__mocks__';
@@ -60,7 +60,7 @@ jest.mock('../../utils', () => ({
60
60
  getConfiguration: jest.fn(),
61
61
  getFolders: jest.fn(),
62
62
  getPackageData: jest.fn(),
63
- getPackageDependencyVersion: jest.fn(),
63
+ readPackageLock: jest.fn(),
64
64
  getPackages: jest.fn(),
65
65
  getTsConfig: jest.fn(),
66
66
  getWebpackConfiguration: jest.fn(),
@@ -146,9 +146,7 @@ describe(`[startup] ${createWebpackConfig.name}`, () => {
146
146
  dependencies,
147
147
  sharedDependencies,
148
148
  });
149
- jest.mocked(getPackageDependencyVersion).mockImplementation(
150
- (_, defaultVersion) => defaultVersion
151
- );
149
+ jest.mocked(readPackageLock).mockReturnValue({ packages: {} });
152
150
  jest.mocked(getPackages).mockImplementation(() => packages);
153
151
  jest.mocked(getTsConfig).mockReturnValue(tsConfig);
154
152
  jest.mocked(loadSharedDependencies).mockReturnValue(sharedDependencies);
@@ -1,5 +1,5 @@
1
1
  import { DefinePlugin } from 'webpack';
2
- import { getPackageDependencyVersion } from '../../../utils';
2
+ import { getLockFileVersion, readPackageLock } from '../../../utils';
3
3
  import { Context, Overrides } from '../types';
4
4
  import { getExposedDependencies } from '../utils';
5
5
 
@@ -10,8 +10,11 @@ export function defineExposedDependenciesPlugin(context: Context, _: Overrides)
10
10
  }
11
11
 
12
12
  const { packageData, sharedDependencies } = context;
13
- const exposedDependencies = getExposedDependencies(sharedDependencies, dependency =>
14
- getPackageDependencyVersion(dependency, packageData.dependencies?.[dependency])
13
+ const lockFile = readPackageLock();
14
+ const exposedDependencies = getExposedDependencies(
15
+ sharedDependencies,
16
+ dependency =>
17
+ getLockFileVersion(lockFile, dependency) ?? packageData.dependencies?.[dependency]
15
18
  );
16
19
 
17
20
  return new DefinePlugin({
@@ -1,30 +1,47 @@
1
1
  import { fs, vol } from 'memfs';
2
- import { getLaunchDarklySdkVersion } from '../get-launchdarkly-sdk-version';
3
2
 
4
3
  jest.mock('fs', () => fs);
5
4
 
6
- describe(`[startup] ${getLaunchDarklySdkVersion.name}`, () => {
5
+ describe('[startup] getLaunchDarklySdkVersion', () => {
7
6
  const launchDarklySdkVersion = '1.2.3';
8
7
 
9
- const subject = () => getLaunchDarklySdkVersion();
8
+ afterEach(() => {
9
+ jest.resetModules();
10
+ vol.reset();
11
+ });
12
+
13
+ const subject = async () => {
14
+ const { getLaunchDarklySdkVersion } = await import('../get-launchdarkly-sdk-version');
15
+ return getLaunchDarklySdkVersion();
16
+ };
10
17
 
11
- test('returns undefined', () => {
12
- expect(subject()).toBeUndefined();
18
+ describe('when package is not in package-lock.json', () => {
19
+ beforeEach(() => {
20
+ vol.fromJSON({
21
+ './package-lock.json': JSON.stringify({ packages: {} }),
22
+ });
23
+ });
24
+
25
+ test('returns undefined', async () => {
26
+ expect(await subject()).toBeUndefined();
27
+ });
13
28
  });
14
29
 
15
- describe('when package is present', () => {
30
+ describe('when package is in package-lock.json', () => {
16
31
  beforeEach(() => {
17
32
  vol.fromJSON({
18
- 'node_modules/launchdarkly-js-client-sdk/package.json': JSON.stringify({
19
- version: launchDarklySdkVersion,
33
+ './package-lock.json': JSON.stringify({
34
+ packages: {
35
+ 'node_modules/launchdarkly-js-client-sdk': {
36
+ version: launchDarklySdkVersion,
37
+ },
38
+ },
20
39
  }),
21
40
  });
22
41
  });
23
42
 
24
- afterEach(() => vol.reset());
25
-
26
- test('returns version from launchdarkly-js-client-sdk package', () => {
27
- expect(subject()).toEqual(launchDarklySdkVersion);
43
+ test('returns version from package-lock.json', async () => {
44
+ expect(await subject()).toEqual(launchDarklySdkVersion);
28
45
  });
29
46
  });
30
47
  });
@@ -1,24 +1,49 @@
1
1
  import { fs, vol } from 'memfs';
2
- import { getWebComponentsVersion } from '../get-web-components-version';
3
2
 
4
3
  jest.mock('fs', () => fs);
5
4
 
6
- describe(`[startup] ${getWebComponentsVersion.name}`, () => {
5
+ describe('[startup] getWebComponentsVersion', () => {
7
6
  const webComponentsVersion = '1.2.3';
8
7
 
9
- beforeEach(() => {
10
- vol.fromJSON({
11
- 'packages/web-components/package.json': JSON.stringify({
12
- version: webComponentsVersion,
13
- }),
14
- });
8
+ afterEach(() => {
9
+ jest.resetModules();
10
+ vol.reset();
15
11
  });
16
12
 
17
- afterEach(() => vol.reset());
13
+ const subject = async () => {
14
+ const { getWebComponentsVersion } = await import('../get-web-components-version');
15
+ return getWebComponentsVersion();
16
+ };
17
+
18
+ describe('when package is in package-lock.json', () => {
19
+ beforeEach(() => {
20
+ vol.fromJSON({
21
+ './package-lock.json': JSON.stringify({
22
+ packages: {
23
+ 'node_modules/@servicetitan/web-components': {
24
+ version: webComponentsVersion,
25
+ },
26
+ },
27
+ }),
28
+ });
29
+ });
30
+
31
+ test('returns version from package-lock.json', async () => {
32
+ expect(await subject()).toEqual(webComponentsVersion);
33
+ });
34
+ });
18
35
 
19
- const subject = () => getWebComponentsVersion();
36
+ describe('when package is not in package-lock.json', () => {
37
+ beforeEach(() => {
38
+ vol.fromJSON({
39
+ './package-lock.json': JSON.stringify({ packages: {} }),
40
+ });
41
+ });
20
42
 
21
- test('returns version from @servicetitan/web-components package', () => {
22
- expect(subject()).toEqual(webComponentsVersion);
43
+ test('throws', async () => {
44
+ await expect(subject()).rejects.toThrow(
45
+ 'Unable to resolve @servicetitan/web-components version from package-lock.json'
46
+ );
47
+ });
23
48
  });
24
49
  });
@@ -1,15 +1,5 @@
1
- import path from 'path';
2
- import { readJson } from '../../../utils';
1
+ import { getLockFileVersion, readPackageLock } from '../../../utils';
3
2
 
4
3
  export function getLaunchDarklySdkVersion() {
5
- try {
6
- return readJson<{ version: string }>(
7
- path.join(
8
- path.dirname(require.resolve('launchdarkly-js-client-sdk')),
9
- '../package.json'
10
- )
11
- ).version;
12
- } catch {
13
- // ignore
14
- }
4
+ return getLockFileVersion(readPackageLock(), 'launchdarkly-js-client-sdk');
15
5
  }
@@ -1,8 +1,11 @@
1
- import path from 'path';
2
- import { readJson } from '../../../utils';
1
+ import { getLockFileVersion, readPackageLock } from '../../../utils';
3
2
 
4
3
  export function getWebComponentsVersion() {
5
- return readJson<{ version: string }>(
6
- path.join(path.dirname(require.resolve('@servicetitan/web-components')), '../package.json')
7
- ).version;
4
+ const version = getLockFileVersion(readPackageLock(), '@servicetitan/web-components');
5
+ if (!version) {
6
+ throw new Error(
7
+ 'Unable to resolve @servicetitan/web-components version from package-lock.json'
8
+ );
9
+ }
10
+ return version;
8
11
  }