@servicetitan/startup 36.3.0-far-1776.3 → 36.3.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 (75) hide show
  1. package/bin/_run.js +19 -8
  2. package/dist/cli/commands/mfe-check.d.ts.map +1 -1
  3. package/dist/cli/commands/mfe-check.js +1 -5
  4. package/dist/cli/commands/mfe-check.js.map +1 -1
  5. package/dist/utils/find-up.js +4 -4
  6. package/dist/utils/find-up.js.map +1 -1
  7. package/dist/utils/get-jest-config.js +1 -1
  8. package/dist/utils/get-jest-config.js.map +1 -1
  9. package/dist/utils/get-package-data.d.ts +1 -0
  10. package/dist/utils/get-package-data.d.ts.map +1 -1
  11. package/dist/utils/get-package-data.js +22 -3
  12. package/dist/utils/get-package-data.js.map +1 -1
  13. package/dist/utils/index.d.ts +0 -1
  14. package/dist/utils/index.d.ts.map +1 -1
  15. package/dist/utils/index.js +0 -1
  16. package/dist/utils/index.js.map +1 -1
  17. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.d.ts.map +1 -1
  18. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js +1 -3
  19. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js.map +1 -1
  20. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.d.ts.map +1 -1
  21. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js +11 -1
  22. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js.map +1 -1
  23. package/dist/webpack/configs/utils/get-web-components-version.d.ts.map +1 -1
  24. package/dist/webpack/configs/utils/get-web-components-version.js +7 -5
  25. package/dist/webpack/configs/utils/get-web-components-version.js.map +1 -1
  26. package/package.json +13 -12
  27. package/src/cli/commands/__tests__/mfe-check.test.ts +10 -12
  28. package/src/cli/commands/mfe-check.ts +1 -5
  29. package/src/utils/__tests__/get-jest-config.test.ts +1 -1
  30. package/src/utils/__tests__/get-package-data.test.ts +45 -1
  31. package/src/utils/find-up.ts +1 -1
  32. package/src/utils/get-jest-config.ts +1 -1
  33. package/src/utils/get-package-data.ts +14 -0
  34. package/src/utils/index.ts +0 -1
  35. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +6 -4
  36. package/src/webpack/__tests__/create-webpack-config.test.ts +5 -3
  37. package/src/webpack/configs/plugins/define-exposed-dependencies-plugin.ts +3 -6
  38. package/src/webpack/configs/utils/__tests__/get-launchdarkly-sdk-version.test.ts +12 -29
  39. package/src/webpack/configs/utils/__tests__/get-web-components-version.test.ts +12 -37
  40. package/src/webpack/configs/utils/get-launchdarkly-sdk-version.ts +12 -2
  41. package/src/webpack/configs/utils/get-web-components-version.ts +5 -8
  42. package/dist/utils/package-lock/find-package-lock.d.ts +0 -2
  43. package/dist/utils/package-lock/find-package-lock.d.ts.map +0 -1
  44. package/dist/utils/package-lock/find-package-lock.js +0 -26
  45. package/dist/utils/package-lock/find-package-lock.js.map +0 -1
  46. package/dist/utils/package-lock/get-lock-file-entry.d.ts +0 -3
  47. package/dist/utils/package-lock/get-lock-file-entry.d.ts.map +0 -1
  48. package/dist/utils/package-lock/get-lock-file-entry.js +0 -22
  49. package/dist/utils/package-lock/get-lock-file-entry.js.map +0 -1
  50. package/dist/utils/package-lock/get-lock-file-version.d.ts +0 -3
  51. package/dist/utils/package-lock/get-lock-file-version.d.ts.map +0 -1
  52. package/dist/utils/package-lock/get-lock-file-version.js +0 -16
  53. package/dist/utils/package-lock/get-lock-file-version.js.map +0 -1
  54. package/dist/utils/package-lock/index.d.ts +0 -6
  55. package/dist/utils/package-lock/index.d.ts.map +0 -1
  56. package/dist/utils/package-lock/index.js +0 -23
  57. package/dist/utils/package-lock/index.js.map +0 -1
  58. package/dist/utils/package-lock/read-package-lock.d.ts +0 -3
  59. package/dist/utils/package-lock/read-package-lock.d.ts.map +0 -1
  60. package/dist/utils/package-lock/read-package-lock.js +0 -22
  61. package/dist/utils/package-lock/read-package-lock.js.map +0 -1
  62. package/dist/utils/package-lock/types.d.ts +0 -12
  63. package/dist/utils/package-lock/types.d.ts.map +0 -1
  64. package/dist/utils/package-lock/types.js +0 -6
  65. package/dist/utils/package-lock/types.js.map +0 -1
  66. package/src/utils/package-lock/__tests__/find-package-lock.test.ts +0 -35
  67. package/src/utils/package-lock/__tests__/get-lock-file-entry.test.ts +0 -97
  68. package/src/utils/package-lock/__tests__/get-lock-file-version.test.ts +0 -32
  69. package/src/utils/package-lock/__tests__/read-package-lock.test.ts +0 -47
  70. package/src/utils/package-lock/find-package-lock.ts +0 -10
  71. package/src/utils/package-lock/get-lock-file-entry.ts +0 -14
  72. package/src/utils/package-lock/get-lock-file-version.ts +0 -6
  73. package/src/utils/package-lock/index.ts +0 -5
  74. package/src/utils/package-lock/read-package-lock.ts +0 -13
  75. package/src/utils/package-lock/types.ts +0 -13
@@ -20,3 +20,17 @@ export function getPackageData(): PackageData {
20
20
  sharedDependencies: packageJson.cli?.webpack?.['shared-dependencies'],
21
21
  };
22
22
  }
23
+
24
+ export function getPackageDependencyVersion(dependency: string, defaultVersion?: string) {
25
+ try {
26
+ const { version } = require(`${dependency}/package.json`);
27
+
28
+ if (version) {
29
+ return version;
30
+ }
31
+ } catch {
32
+ // skip error
33
+ }
34
+
35
+ return defaultVersion;
36
+ }
@@ -19,7 +19,6 @@ export * from './load-shared-dependencies';
19
19
  export * from './log';
20
20
  export * from './log-errors';
21
21
  export * from './omit';
22
- export * from './package-lock';
23
22
  export * from './pick';
24
23
  export * from './prettify';
25
24
  export * from './read-json';
@@ -13,6 +13,7 @@ import yargs from 'yargs';
13
13
  import {
14
14
  getFolders,
15
15
  getPackageData,
16
+ getPackageDependencyVersion,
16
17
  getPackages,
17
18
  getTsConfig,
18
19
  isCustomStyleRules,
@@ -20,7 +21,6 @@ import {
20
21
  loadSharedDependencies,
21
22
  log,
22
23
  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
- readPackageLock: jest.fn(),
49
+ getPackageDependencyVersion: jest.fn(),
50
50
  getPackages: jest.fn(),
51
51
  getTsConfig: jest.fn(),
52
52
  isCustomStyleRules: jest.fn(),
@@ -113,7 +113,9 @@ describe(`[startup] ${createWebpackConfig.name}`, () => {
113
113
  dependencies,
114
114
  sharedDependencies,
115
115
  });
116
- jest.mocked(readPackageLock).mockReturnValue({ packages: {} });
116
+ jest.mocked(getPackageDependencyVersion).mockImplementation(
117
+ (_, defaultVersion) => defaultVersion
118
+ );
117
119
  jest.mocked(getPackages).mockReturnValue([]);
118
120
  jest.mocked(getTsConfig).mockReturnValue(tsConfig);
119
121
  jest.mocked(loadSharedDependencies).mockReturnValue(sharedDependencies);
@@ -160,7 +162,7 @@ describe(`[startup] ${createWebpackConfig.name}`, () => {
160
162
  Object.entries(sharedDependencies).map(([name, variable]) => [
161
163
  name,
162
164
  {
163
- version: dependencies[name],
165
+ version: getPackageDependencyVersion(name, dependencies[name]),
164
166
  variable,
165
167
  },
166
168
  ])
@@ -17,6 +17,7 @@ import {
17
17
  getConfiguration,
18
18
  getFolders,
19
19
  getPackageData,
20
+ getPackageDependencyVersion,
20
21
  getPackages,
21
22
  getTsConfig,
22
23
  getWebpackConfiguration,
@@ -26,7 +27,6 @@ import {
26
27
  loadSharedDependencies,
27
28
  log,
28
29
  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
- readPackageLock: jest.fn(),
63
+ getPackageDependencyVersion: jest.fn(),
64
64
  getPackages: jest.fn(),
65
65
  getTsConfig: jest.fn(),
66
66
  getWebpackConfiguration: jest.fn(),
@@ -146,7 +146,9 @@ describe(`[startup] ${createWebpackConfig.name}`, () => {
146
146
  dependencies,
147
147
  sharedDependencies,
148
148
  });
149
- jest.mocked(readPackageLock).mockReturnValue({ packages: {} });
149
+ jest.mocked(getPackageDependencyVersion).mockImplementation(
150
+ (_, defaultVersion) => defaultVersion
151
+ );
150
152
  jest.mocked(getPackages).mockImplementation(() => packages);
151
153
  jest.mocked(getTsConfig).mockReturnValue(tsConfig);
152
154
  jest.mocked(loadSharedDependencies).mockReturnValue(sharedDependencies);
@@ -1,5 +1,5 @@
1
1
  import { DefinePlugin } from 'webpack';
2
- import { getLockFileVersion, readPackageLock } from '../../../utils';
2
+ import { getPackageDependencyVersion } from '../../../utils';
3
3
  import { Context, Overrides } from '../types';
4
4
  import { getExposedDependencies } from '../utils';
5
5
 
@@ -10,11 +10,8 @@ export function defineExposedDependenciesPlugin(context: Context, _: Overrides)
10
10
  }
11
11
 
12
12
  const { packageData, sharedDependencies } = context;
13
- const lockFile = readPackageLock();
14
- const exposedDependencies = getExposedDependencies(
15
- sharedDependencies,
16
- dependency =>
17
- getLockFileVersion(lockFile, dependency) ?? packageData.dependencies?.[dependency]
13
+ const exposedDependencies = getExposedDependencies(sharedDependencies, dependency =>
14
+ getPackageDependencyVersion(dependency, packageData.dependencies?.[dependency])
18
15
  );
19
16
 
20
17
  return new DefinePlugin({
@@ -1,47 +1,30 @@
1
1
  import { fs, vol } from 'memfs';
2
+ import { getLaunchDarklySdkVersion } from '../get-launchdarkly-sdk-version';
2
3
 
3
4
  jest.mock('fs', () => fs);
4
5
 
5
- describe('[startup] getLaunchDarklySdkVersion', () => {
6
+ describe(`[startup] ${getLaunchDarklySdkVersion.name}`, () => {
6
7
  const launchDarklySdkVersion = '1.2.3';
7
8
 
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
- };
9
+ const subject = () => getLaunchDarklySdkVersion();
17
10
 
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
- });
11
+ test('returns undefined', () => {
12
+ expect(subject()).toBeUndefined();
28
13
  });
29
14
 
30
- describe('when package is in package-lock.json', () => {
15
+ describe('when package is present', () => {
31
16
  beforeEach(() => {
32
17
  vol.fromJSON({
33
- './package-lock.json': JSON.stringify({
34
- packages: {
35
- 'node_modules/launchdarkly-js-client-sdk': {
36
- version: launchDarklySdkVersion,
37
- },
38
- },
18
+ 'node_modules/launchdarkly-js-client-sdk/package.json': JSON.stringify({
19
+ version: launchDarklySdkVersion,
39
20
  }),
40
21
  });
41
22
  });
42
23
 
43
- test('returns version from package-lock.json', async () => {
44
- expect(await subject()).toEqual(launchDarklySdkVersion);
24
+ afterEach(() => vol.reset());
25
+
26
+ test('returns version from launchdarkly-js-client-sdk package', () => {
27
+ expect(subject()).toEqual(launchDarklySdkVersion);
45
28
  });
46
29
  });
47
30
  });
@@ -1,49 +1,24 @@
1
1
  import { fs, vol } from 'memfs';
2
+ import { getWebComponentsVersion } from '../get-web-components-version';
2
3
 
3
4
  jest.mock('fs', () => fs);
4
5
 
5
- describe('[startup] getWebComponentsVersion', () => {
6
+ describe(`[startup] ${getWebComponentsVersion.name}`, () => {
6
7
  const webComponentsVersion = '1.2.3';
7
8
 
8
- afterEach(() => {
9
- jest.resetModules();
10
- vol.reset();
11
- });
12
-
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);
9
+ beforeEach(() => {
10
+ vol.fromJSON({
11
+ 'packages/web-components/package.json': JSON.stringify({
12
+ version: webComponentsVersion,
13
+ }),
33
14
  });
34
15
  });
35
16
 
36
- describe('when package is not in package-lock.json', () => {
37
- beforeEach(() => {
38
- vol.fromJSON({
39
- './package-lock.json': JSON.stringify({ packages: {} }),
40
- });
41
- });
17
+ afterEach(() => vol.reset());
42
18
 
43
- test('throws', async () => {
44
- await expect(subject()).rejects.toThrow(
45
- 'Unable to resolve @servicetitan/web-components version from package-lock.json'
46
- );
47
- });
19
+ const subject = () => getWebComponentsVersion();
20
+
21
+ test('returns version from @servicetitan/web-components package', () => {
22
+ expect(subject()).toEqual(webComponentsVersion);
48
23
  });
49
24
  });
@@ -1,5 +1,15 @@
1
- import { getLockFileVersion, readPackageLock } from '../../../utils';
1
+ import path from 'path';
2
+ import { readJson } from '../../../utils';
2
3
 
3
4
  export function getLaunchDarklySdkVersion() {
4
- return getLockFileVersion(readPackageLock(), 'launchdarkly-js-client-sdk');
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
+ }
5
15
  }
@@ -1,11 +1,8 @@
1
- import { getLockFileVersion, readPackageLock } from '../../../utils';
1
+ import path from 'path';
2
+ import { readJson } from '../../../utils';
2
3
 
3
4
  export function getWebComponentsVersion() {
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;
5
+ return readJson<{ version: string }>(
6
+ path.join(path.dirname(require.resolve('@servicetitan/web-components')), '../package.json')
7
+ ).version;
11
8
  }
@@ -1,2 +0,0 @@
1
- export declare function findPackageLock(): string | undefined;
2
- //# sourceMappingURL=find-package-lock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"find-package-lock.d.ts","sourceRoot":"","sources":["../../../src/utils/package-lock/find-package-lock.ts"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,uBAK9B"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "findPackageLock", {
6
- enumerable: true,
7
- get: function() {
8
- return findPackageLock;
9
- }
10
- });
11
- const _nodefs = /*#__PURE__*/ _interop_require_default(require("node:fs"));
12
- const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
13
- const _findup = require("../find-up");
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- function findPackageLock() {
20
- return (0, _findup.findUp)((directory)=>{
21
- const lockFile = _nodepath.default.resolve(directory, 'package-lock.json');
22
- return _nodefs.default.existsSync(lockFile) ? lockFile : undefined;
23
- });
24
- }
25
-
26
- //# sourceMappingURL=find-package-lock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/package-lock/find-package-lock.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { findUp } from '../find-up';\n\nexport function findPackageLock() {\n return findUp(directory => {\n const lockFile = path.resolve(directory, 'package-lock.json');\n return fs.existsSync(lockFile) ? lockFile : undefined;\n });\n}\n"],"names":["findPackageLock","findUp","directory","lockFile","path","resolve","fs","existsSync","undefined"],"mappings":";;;;+BAIgBA;;;eAAAA;;;+DAJD;iEACE;wBACM;;;;;;AAEhB,SAASA;IACZ,OAAOC,IAAAA,cAAM,EAACC,CAAAA;QACV,MAAMC,WAAWC,iBAAI,CAACC,OAAO,CAACH,WAAW;QACzC,OAAOI,eAAE,CAACC,UAAU,CAACJ,YAAYA,WAAWK;IAChD;AACJ"}
@@ -1,3 +0,0 @@
1
- import type { PackageLock } from './types';
2
- export declare function getLockFileEntry(lockFile: PackageLock, packageName: string, scope?: string): import("./types").PackageLockEntry;
3
- //# sourceMappingURL=get-lock-file-entry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-lock-file-entry.d.ts","sourceRoot":"","sources":["../../../src/utils/package-lock/get-lock-file-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,sCAW1F"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "getLockFileEntry", {
6
- enumerable: true,
7
- get: function() {
8
- return getLockFileEntry;
9
- }
10
- });
11
- function getLockFileEntry(lockFile, packageName, scope) {
12
- var _ref;
13
- const { packages } = lockFile;
14
- const entry = (_ref = scope ? packages === null || packages === void 0 ? void 0 : packages[`node_modules/${scope}/node_modules/${packageName}`] : undefined) !== null && _ref !== void 0 ? _ref : packages === null || packages === void 0 ? void 0 : packages[`node_modules/${packageName}`];
15
- if ((entry === null || entry === void 0 ? void 0 : entry.link) && entry.resolved) {
16
- var _ref1;
17
- return (_ref1 = packages === null || packages === void 0 ? void 0 : packages[entry.resolved]) !== null && _ref1 !== void 0 ? _ref1 : {};
18
- }
19
- return entry !== null && entry !== void 0 ? entry : {};
20
- }
21
-
22
- //# sourceMappingURL=get-lock-file-entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/package-lock/get-lock-file-entry.ts"],"sourcesContent":["import type { PackageLock } from './types';\n\nexport function getLockFileEntry(lockFile: PackageLock, packageName: string, scope?: string) {\n const { packages } = lockFile;\n const entry =\n (scope ? packages?.[`node_modules/${scope}/node_modules/${packageName}`] : undefined) ??\n packages?.[`node_modules/${packageName}`];\n\n if (entry?.link && entry.resolved) {\n return packages?.[entry.resolved] ?? {};\n }\n\n return entry ?? {};\n}\n"],"names":["getLockFileEntry","lockFile","packageName","scope","packages","entry","undefined","link","resolved"],"mappings":";;;;+BAEgBA;;;eAAAA;;;AAAT,SAASA,iBAAiBC,QAAqB,EAAEC,WAAmB,EAAEC,KAAc;QAGlFA;IAFL,MAAM,EAAEC,QAAQ,EAAE,GAAGH;IACrB,MAAMI,SACDF,OAAAA,QAAQC,qBAAAA,+BAAAA,QAAU,CAAC,CAAC,aAAa,EAAED,MAAM,cAAc,EAAED,aAAa,CAAC,GAAGI,uBAA1EH,kBAAAA,OACDC,qBAAAA,+BAAAA,QAAU,CAAC,CAAC,aAAa,EAAEF,aAAa,CAAC;IAE7C,IAAIG,CAAAA,kBAAAA,4BAAAA,MAAOE,IAAI,KAAIF,MAAMG,QAAQ,EAAE;;QAC/B,gBAAOJ,qBAAAA,+BAAAA,QAAU,CAACC,MAAMG,QAAQ,CAAC,yCAAI,CAAC;IAC1C;IAEA,OAAOH,kBAAAA,mBAAAA,QAAS,CAAC;AACrB"}
@@ -1,3 +0,0 @@
1
- import type { PackageLock } from './types';
2
- export declare function getLockFileVersion(lockFile: PackageLock, packageName: string): string | undefined;
3
- //# sourceMappingURL=get-lock-file-version.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-lock-file-version.d.ts","sourceRoot":"","sources":["../../../src/utils/package-lock/get-lock-file-version.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAE5E"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "getLockFileVersion", {
6
- enumerable: true,
7
- get: function() {
8
- return getLockFileVersion;
9
- }
10
- });
11
- const _getlockfileentry = require("./get-lock-file-entry");
12
- function getLockFileVersion(lockFile, packageName) {
13
- return (0, _getlockfileentry.getLockFileEntry)(lockFile, packageName).version;
14
- }
15
-
16
- //# sourceMappingURL=get-lock-file-version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/package-lock/get-lock-file-version.ts"],"sourcesContent":["import { getLockFileEntry } from './get-lock-file-entry';\nimport type { PackageLock } from './types';\n\nexport function getLockFileVersion(lockFile: PackageLock, packageName: string) {\n return getLockFileEntry(lockFile, packageName).version;\n}\n"],"names":["getLockFileVersion","lockFile","packageName","getLockFileEntry","version"],"mappings":";;;;+BAGgBA;;;eAAAA;;;kCAHiB;AAG1B,SAASA,mBAAmBC,QAAqB,EAAEC,WAAmB;IACzE,OAAOC,IAAAA,kCAAgB,EAACF,UAAUC,aAAaE,OAAO;AAC1D"}
@@ -1,6 +0,0 @@
1
- export * from './find-package-lock';
2
- export * from './get-lock-file-entry';
3
- export * from './get-lock-file-version';
4
- export * from './read-package-lock';
5
- export type { PackageLock, PackageLockPackages } from './types';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/package-lock/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- _export_star(require("./find-package-lock"), exports);
6
- _export_star(require("./get-lock-file-entry"), exports);
7
- _export_star(require("./get-lock-file-version"), exports);
8
- _export_star(require("./read-package-lock"), exports);
9
- function _export_star(from, to) {
10
- Object.keys(from).forEach(function(k) {
11
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
12
- Object.defineProperty(to, k, {
13
- enumerable: true,
14
- get: function() {
15
- return from[k];
16
- }
17
- });
18
- }
19
- });
20
- return from;
21
- }
22
-
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/package-lock/index.ts"],"sourcesContent":["export * from './find-package-lock';\nexport * from './get-lock-file-entry';\nexport * from './get-lock-file-version';\nexport * from './read-package-lock';\nexport type { PackageLock, PackageLockPackages } from './types';\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA;qBACA"}
@@ -1,3 +0,0 @@
1
- import type { PackageLock } from './types';
2
- export declare function readPackageLock(): PackageLock;
3
- //# sourceMappingURL=read-package-lock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-package-lock.d.ts","sourceRoot":"","sources":["../../../src/utils/package-lock/read-package-lock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,wBAAgB,eAAe,IAAI,WAAW,CAM7C"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "readPackageLock", {
6
- enumerable: true,
7
- get: function() {
8
- return readPackageLock;
9
- }
10
- });
11
- const _readjson = require("../read-json");
12
- const _findpackagelock = require("./find-package-lock");
13
- let cachedLockFile;
14
- function readPackageLock() {
15
- if (!cachedLockFile) {
16
- const lockFilePath = (0, _findpackagelock.findPackageLock)();
17
- cachedLockFile = (0, _readjson.readJson)(lockFilePath);
18
- }
19
- return cachedLockFile;
20
- }
21
-
22
- //# sourceMappingURL=read-package-lock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/package-lock/read-package-lock.ts"],"sourcesContent":["import { readJson } from '../read-json';\nimport { findPackageLock } from './find-package-lock';\nimport type { PackageLock } from './types';\n\nlet cachedLockFile: PackageLock | undefined;\n\nexport function readPackageLock(): PackageLock {\n if (!cachedLockFile) {\n const lockFilePath = findPackageLock();\n cachedLockFile = readJson<PackageLock>(lockFilePath!);\n }\n return cachedLockFile;\n}\n"],"names":["readPackageLock","cachedLockFile","lockFilePath","findPackageLock","readJson"],"mappings":";;;;+BAMgBA;;;eAAAA;;;0BANS;iCACO;AAGhC,IAAIC;AAEG,SAASD;IACZ,IAAI,CAACC,gBAAgB;QACjB,MAAMC,eAAeC,IAAAA,gCAAe;QACpCF,iBAAiBG,IAAAA,kBAAQ,EAAcF;IAC3C;IACA,OAAOD;AACX"}
@@ -1,12 +0,0 @@
1
- export interface PackageLockEntry {
2
- version?: string;
3
- resolved?: string;
4
- link?: boolean;
5
- dependencies?: Record<string, string>;
6
- peerDependencies?: Record<string, string>;
7
- }
8
- export type PackageLockPackages = Record<string, PackageLockEntry>;
9
- export interface PackageLock {
10
- packages: PackageLockPackages;
11
- }
12
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/package-lock/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEnE,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,mBAAmB,CAAC;CACjC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
-
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/package-lock/types.ts"],"names":[],"mappings":""}
@@ -1,35 +0,0 @@
1
- import { fs, vol } from 'memfs';
2
- import path from 'node:path';
3
- import { findPackageLock } from '../find-package-lock';
4
-
5
- jest.mock('fs', () => fs);
6
-
7
- describe(`[startup] ${findPackageLock.name}`, () => {
8
- afterEach(() => vol.reset());
9
-
10
- const subject = () => findPackageLock();
11
-
12
- describe('when package-lock.json exists in cwd', () => {
13
- beforeEach(() => {
14
- vol.fromJSON({ './package-lock.json': '{}' });
15
- });
16
-
17
- test('returns path', () => {
18
- expect(subject()).toBe(path.resolve('./package-lock.json'));
19
- });
20
- });
21
-
22
- describe('when package-lock.json exists in parent directory', () => {
23
- beforeEach(() => {
24
- vol.fromJSON({ '../package-lock.json': '{}' });
25
- });
26
-
27
- test('returns path', () => {
28
- expect(subject()).toBe(path.resolve('../package-lock.json'));
29
- });
30
- });
31
-
32
- test('returns undefined when no package-lock.json exists', () => {
33
- expect(subject()).toBeUndefined();
34
- });
35
- });
@@ -1,97 +0,0 @@
1
- import { getLockFileEntry } from '../get-lock-file-entry';
2
- import type { PackageLock } from '../types';
3
-
4
- describe(`[startup] ${getLockFileEntry.name}`, () => {
5
- let lockFile: PackageLock;
6
- let packageName: string;
7
- let scope: string | undefined;
8
-
9
- beforeEach(() => {
10
- lockFile = { packages: {} };
11
- packageName = 'foo';
12
- scope = undefined;
13
- });
14
-
15
- const subject = () => getLockFileEntry(lockFile, packageName, scope);
16
-
17
- const itReturnsEmptyObject = () => {
18
- test('returns empty object', () => {
19
- expect(subject()).toEqual({});
20
- });
21
- };
22
-
23
- describe('when package exists at top level', () => {
24
- const topLevelEntry = { version: '1.0.0' };
25
-
26
- beforeEach(() => {
27
- lockFile.packages['node_modules/foo'] = topLevelEntry;
28
- });
29
-
30
- test('resolves the entry', () => {
31
- expect(subject()).toEqual(topLevelEntry);
32
- });
33
- });
34
-
35
- describe('when package exists both at top level and under a scope', () => {
36
- const topLevelEntry = { version: '1.0.0' };
37
- const scopedEntry = { version: '2.0.0' };
38
-
39
- beforeEach(() => {
40
- lockFile.packages['node_modules/foo'] = topLevelEntry;
41
- lockFile.packages['node_modules/parent/node_modules/foo'] = scopedEntry;
42
- });
43
-
44
- describe('when scope is provided', () => {
45
- beforeEach(() => {
46
- scope = 'parent';
47
- });
48
-
49
- test('resolves scoped entry', () => {
50
- expect(subject()).toEqual(scopedEntry);
51
- });
52
- });
53
-
54
- test('resolves top-level entry', () => {
55
- expect(subject()).toEqual(topLevelEntry);
56
- });
57
- });
58
-
59
- describe('when package has dependencies and peerDependencies', () => {
60
- const entryWithDeps = {
61
- version: '1.0.0',
62
- dependencies: { bar: '^1.0.0' },
63
- peerDependencies: { baz: '>=2.0.0' },
64
- };
65
-
66
- beforeEach(() => {
67
- lockFile.packages['node_modules/foo'] = entryWithDeps;
68
- });
69
-
70
- test('returns the full entry', () => {
71
- expect(subject()).toEqual(entryWithDeps);
72
- });
73
- });
74
-
75
- describe('when package is a linked workspace package', () => {
76
- const linkedResolvedEntry = { version: '3.0.0' };
77
-
78
- beforeEach(() => {
79
- lockFile.packages['node_modules/foo'] = { link: true, resolved: 'packages/foo' };
80
- lockFile.packages['packages/foo'] = linkedResolvedEntry;
81
- });
82
-
83
- test('follows link to resolved path', () => {
84
- expect(subject()).toEqual(linkedResolvedEntry);
85
- });
86
-
87
- describe('when resolved entry does not exist', () => {
88
- beforeEach(() => {
89
- delete lockFile.packages['packages/foo'];
90
- });
91
-
92
- itReturnsEmptyObject();
93
- });
94
- });
95
-
96
- itReturnsEmptyObject();
97
- });