@pnpm/assert-project 1.1.2 → 1.2.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.
package/LICENSE CHANGED
@@ -1,6 +1,7 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2018 Zoltan Kochan <z@kochan.io>
3
+ Copyright (c) 2015-2016 Rico Sta. Cruz and other contributors
4
+ Copyright (c) 2016-2022 Zoltan Kochan and other contributors
4
5
 
5
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  > Utils for testing projects that use pnpm
4
4
 
5
- [![npm version](https://img.shields.io/npm/v/@pnpm/assert-project.svg)](https://www.npmjs.com/package/@pnpm/assert-project) [![Build Status](https://img.shields.io/travis/pnpm/assert-project/master.svg)](https://travis-ci.org/pnpm/assert-project)
6
-
7
5
  ## Installation
8
6
 
9
7
  ```
@@ -27,4 +25,4 @@ test('...', t => {
27
25
 
28
26
  ## License
29
27
 
30
- [MIT](./LICENSE) © [Zoltan Kochan](https://www.kochan.io/)
28
+ MIT
package/lib/index.d.ts CHANGED
@@ -1,20 +1,35 @@
1
- /// <reference types="tape" />
1
+ import { Lockfile, ProjectSnapshot } from '@pnpm/lockfile-types';
2
2
  import { Modules } from '@pnpm/modules-yaml';
3
- import { Test } from 'tape';
4
3
  import isExecutable from './isExecutable';
5
- export { isExecutable };
6
- declare const _default: (t: Test, projectPath: string, encodedRegistryName?: string | undefined) => {
7
- requireModule(pkgName: string): any;
8
- has(pkgName: string): Promise<void>;
9
- hasNot(pkgName: string): Promise<void>;
10
- getStorePath(): Promise<string>;
11
- resolve(pkgName: string, version?: string | undefined, relativePath?: string | undefined): Promise<string>;
12
- storeHas(pkgName: string, version?: string | undefined): Promise<void>;
13
- storeHasNot(pkgName: string, version?: string | undefined): Promise<void>;
14
- isExecutable(pathToExe: string): Promise<void>;
15
- loadCurrentShrinkwrap(): Promise<any>;
16
- loadModules: () => Promise<Modules | null>;
17
- loadShrinkwrap(): Promise<any>;
18
- writePackageJson(pkgJson: object): Promise<void>;
19
- };
4
+ export { isExecutable, Modules };
5
+ export declare type RawLockfile = Lockfile & Partial<ProjectSnapshot>;
6
+ export interface Project {
7
+ requireModule: (moduleName: string) => any;
8
+ dir: () => string;
9
+ has: (pkgName: string, modulesDir?: string) => Promise<void>;
10
+ hasNot: (pkgName: string, modulesDir?: string) => Promise<void>;
11
+ getStorePath: () => Promise<string>;
12
+ resolve: (pkgName: string, version?: string, relativePath?: string) => Promise<string>;
13
+ getPkgIndexFilePath: (pkgName: string, version?: string) => Promise<string>;
14
+ cafsHas: (pkgName: string, version?: string) => Promise<void>;
15
+ cafsHasNot: (pkgName: string, version?: string) => Promise<void>;
16
+ storeHas: (pkgName: string, version?: string) => Promise<string>;
17
+ storeHasNot: (pkgName: string, version?: string) => Promise<void>;
18
+ isExecutable: (pathToExe: string) => Promise<void>;
19
+ /**
20
+ * TODO: Remove the `Required<T>` cast.
21
+ *
22
+ * https://github.com/microsoft/TypeScript/pull/32695 might help with this.
23
+ */
24
+ readCurrentLockfile: () => Promise<Required<RawLockfile>>;
25
+ readModulesManifest: () => Promise<Modules | null>;
26
+ /**
27
+ * TODO: Remove the `Required<T>` cast.
28
+ *
29
+ * https://github.com/microsoft/TypeScript/pull/32695 might help with this.
30
+ */
31
+ readLockfile: () => Promise<Required<RawLockfile>>;
32
+ writePackageJson: (pkgJson: object) => Promise<void>;
33
+ }
34
+ declare const _default: (projectPath: string, encodedRegistryName?: string | undefined) => Project;
20
35
  export default _default;
package/lib/index.js CHANGED
@@ -1,114 +1,125 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
4
  };
10
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isExecutable = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const assert_store_1 = __importDefault(require("@pnpm/assert-store"));
9
+ const constants_1 = require("@pnpm/constants");
11
10
  const modules_yaml_1 = require("@pnpm/modules-yaml");
12
- const loadYamlFile = require("load-yaml-file");
13
- const path = require("path");
14
- const exists = require("path-exists");
15
- const writePkg = require("write-pkg");
16
- const isExecutable_1 = require("./isExecutable");
11
+ const registry_mock_1 = require("@pnpm/registry-mock");
12
+ const read_yaml_file_1 = __importDefault(require("read-yaml-file"));
13
+ const path_exists_1 = __importDefault(require("path-exists"));
14
+ const write_pkg_1 = __importDefault(require("write-pkg"));
15
+ const isExecutable_1 = __importDefault(require("./isExecutable"));
17
16
  exports.isExecutable = isExecutable_1.default;
18
- exports.default = (t, projectPath, encodedRegistryName) => {
19
- const ern = encodedRegistryName || 'localhost+4873';
20
- const modules = path.join(projectPath, 'node_modules');
21
- let cachedStorePath;
22
- const project = {
17
+ exports.default = (projectPath, encodedRegistryName) => {
18
+ const ern = encodedRegistryName !== null && encodedRegistryName !== void 0 ? encodedRegistryName : `localhost+${registry_mock_1.REGISTRY_MOCK_PORT}`;
19
+ const modules = path_1.default.join(projectPath, 'node_modules');
20
+ let cachedStore;
21
+ async function getStoreInstance() {
22
+ if (!cachedStore) {
23
+ const modulesYaml = await (0, modules_yaml_1.read)(modules);
24
+ if (modulesYaml == null) {
25
+ throw new Error(`Cannot find module store. No .modules.yaml found at "${modules}"`);
26
+ }
27
+ const storePath = modulesYaml.storeDir;
28
+ cachedStore = {
29
+ storePath,
30
+ ...(0, assert_store_1.default)(storePath, ern),
31
+ };
32
+ }
33
+ return cachedStore;
34
+ }
35
+ async function getVirtualStoreDir() {
36
+ const modulesYaml = await (0, modules_yaml_1.read)(modules);
37
+ if (modulesYaml == null) {
38
+ return path_1.default.join(modules, '.pnpm');
39
+ }
40
+ return modulesYaml.virtualStoreDir;
41
+ }
42
+ // eslint-disable-next-line
43
+ const ok = (value) => expect(value).toBeTruthy();
44
+ // eslint-disable-next-line
45
+ const notOk = (value) => expect(value).toBeFalsy();
46
+ return {
47
+ dir: () => projectPath,
23
48
  requireModule(pkgName) {
24
- return require(path.join(modules, pkgName));
49
+ // eslint-disable-next-line
50
+ return require(path_1.default.join(modules, pkgName));
25
51
  },
26
- has(pkgName) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- t.ok(yield exists(path.join(modules, pkgName)), `${pkgName} is in node_modules`);
29
- });
52
+ async has(pkgName, _modulesDir) {
53
+ const md = _modulesDir ? path_1.default.join(projectPath, _modulesDir) : modules;
54
+ ok(await (0, path_exists_1.default)(path_1.default.join(md, pkgName)));
30
55
  },
31
- hasNot(pkgName) {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- t.notOk(yield exists(path.join(modules, pkgName)), `${pkgName} is not in node_modules`);
34
- });
56
+ async hasNot(pkgName, _modulesDir) {
57
+ const md = _modulesDir ? path_1.default.join(projectPath, _modulesDir) : modules;
58
+ notOk(await (0, path_exists_1.default)(path_1.default.join(md, pkgName)));
35
59
  },
36
- getStorePath() {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- if (!cachedStorePath) {
39
- const modulesYaml = yield modules_yaml_1.read(modules);
40
- if (!modulesYaml) {
41
- throw new Error('Cannot find module store');
42
- }
43
- cachedStorePath = modulesYaml.store;
44
- }
45
- return cachedStorePath;
46
- });
60
+ async getStorePath() {
61
+ const store = await getStoreInstance();
62
+ return store.storePath;
47
63
  },
48
- resolve(pkgName, version, relativePath) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const pkgFolder = version ? path.join(ern, pkgName, version) : pkgName;
51
- if (relativePath) {
52
- return path.join(yield project.getStorePath(), pkgFolder, 'package', relativePath);
53
- }
54
- return path.join(yield project.getStorePath(), pkgFolder, 'package');
55
- });
64
+ async resolve(pkgName, version, relativePath) {
65
+ const store = await getStoreInstance();
66
+ return store.resolve(pkgName, version, relativePath);
56
67
  },
57
- storeHas(pkgName, version) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- const pathToCheck = yield project.resolve(pkgName, version);
60
- t.ok(yield exists(pathToCheck), `${pkgName}@${version} is in store (at ${pathToCheck})`);
61
- });
68
+ async getPkgIndexFilePath(pkgName, version) {
69
+ const store = await getStoreInstance();
70
+ return store.getPkgIndexFilePath(pkgName, version);
62
71
  },
63
- storeHasNot(pkgName, version) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- try {
66
- const pathToCheck = yield project.resolve(pkgName, version);
67
- t.notOk(yield exists(pathToCheck), `${pkgName}@${version} is not in store (at ${pathToCheck})`);
68
- }
69
- catch (err) {
70
- if (err.message === 'Cannot find module store') {
71
- t.pass(`${pkgName}@${version} is not in store`);
72
- return;
73
- }
74
- throw err;
75
- }
76
- });
72
+ async cafsHas(pkgName, version) {
73
+ const store = await getStoreInstance();
74
+ return store.cafsHas(pkgName, version);
77
75
  },
78
- isExecutable(pathToExe) {
79
- return isExecutable_1.default(t, path.join(modules, pathToExe));
76
+ async cafsHasNot(pkgName, version) {
77
+ const store = await getStoreInstance();
78
+ return store.cafsHasNot(pkgName, version);
80
79
  },
81
- loadCurrentShrinkwrap() {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- try {
84
- return yield loadYamlFile(path.join(modules, '.shrinkwrap.yaml')); // tslint:disable-line
85
- }
86
- catch (err) {
87
- if (err.code === 'ENOENT')
88
- return null;
89
- throw err;
90
- }
91
- });
80
+ async storeHas(pkgName, version) {
81
+ const store = await getStoreInstance();
82
+ return store.resolve(pkgName, version);
92
83
  },
93
- loadModules: () => modules_yaml_1.read(modules),
94
- loadShrinkwrap() {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- try {
97
- return yield loadYamlFile(path.join(projectPath, 'shrinkwrap.yaml')); // tslint:disable-line
98
- }
99
- catch (err) {
100
- if (err.code === 'ENOENT')
101
- return null;
102
- throw err;
84
+ async storeHasNot(pkgName, version) {
85
+ try {
86
+ const store = await getStoreInstance();
87
+ return store.storeHasNot(pkgName, version);
88
+ }
89
+ catch (err) { // eslint-disable-line
90
+ if (err.message.startsWith('Cannot find module store')) {
91
+ return;
103
92
  }
104
- });
93
+ throw err;
94
+ }
95
+ },
96
+ async isExecutable(pathToExe) {
97
+ return (0, isExecutable_1.default)(ok, path_1.default.join(modules, pathToExe));
98
+ },
99
+ async readCurrentLockfile() {
100
+ try {
101
+ return await (0, read_yaml_file_1.default)(path_1.default.join(await getVirtualStoreDir(), 'lock.yaml')); // eslint-disable-line
102
+ }
103
+ catch (err) { // eslint-disable-line
104
+ if (err.code === 'ENOENT')
105
+ return null;
106
+ throw err;
107
+ }
108
+ },
109
+ readModulesManifest: async () => (0, modules_yaml_1.read)(modules),
110
+ async readLockfile() {
111
+ try {
112
+ return await (0, read_yaml_file_1.default)(path_1.default.join(projectPath, constants_1.WANTED_LOCKFILE)); // eslint-disable-line
113
+ }
114
+ catch (err) { // eslint-disable-line
115
+ if (err.code === 'ENOENT')
116
+ return null;
117
+ throw err;
118
+ }
105
119
  },
106
- writePackageJson(pkgJson) {
107
- return __awaiter(this, void 0, void 0, function* () {
108
- yield writePkg(projectPath, pkgJson);
109
- });
120
+ async writePackageJson(pkgJson) {
121
+ return (0, write_pkg_1.default)(projectPath, pkgJson); // eslint-disable-line
110
122
  },
111
123
  };
112
- return project;
113
124
  };
114
125
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,2 @@
1
- /// <reference types="tape" />
2
- import { Test } from 'tape';
3
- declare const _default: (t: Test, filePath: string) => Promise<void>;
1
+ declare const _default: (ok: (value: any, comment: string) => void, filePath: string) => Promise<void>;
4
2
  export default _default;
@@ -1,26 +1,22 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
4
  };
10
5
  Object.defineProperty(exports, "__esModule", { value: true });
11
- const isWindows = require("is-windows");
12
- const isexeCB = require("isexe");
13
- const fs = require("mz/fs");
14
- const promisify = require("util.promisify");
15
- const IS_WINDOWS = isWindows();
16
- const isexe = promisify(isexeCB);
17
- exports.default = (t, filePath) => __awaiter(this, void 0, void 0, function* () {
6
+ const fs_1 = require("fs");
7
+ const util_1 = require("util");
8
+ const is_windows_1 = __importDefault(require("is-windows"));
9
+ const isexe_1 = __importDefault(require("isexe"));
10
+ const IS_WINDOWS = (0, is_windows_1.default)();
11
+ const isexe = (0, util_1.promisify)(isexe_1.default);
12
+ // eslint-disable-next-line
13
+ exports.default = async (ok, filePath) => {
18
14
  if (IS_WINDOWS) {
19
- t.ok(yield isexe(`${filePath}.cmd`), `${filePath}.cmd is executable`);
15
+ ok(await isexe(`${filePath}.cmd`), `${filePath}.cmd is executable`);
20
16
  return;
21
17
  }
22
- const stat = yield fs.stat(filePath);
23
- t.equal(stat.mode, parseInt('100755', 8), `${filePath} is executable`);
24
- t.ok(stat.isFile(), `${filePath} refers to a file`);
25
- });
18
+ const stat = await fs_1.promises.stat(filePath);
19
+ ok((stat.mode & 0o111) === 0o111, `${filePath} is executable`);
20
+ ok(stat.isFile(), `${filePath} refers to a file`);
21
+ };
26
22
  //# sourceMappingURL=isExecutable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isExecutable.js","sourceRoot":"","sources":["../src/isExecutable.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,wCAAwC;AACxC,iCAAiC;AACjC,4BAA4B;AAE5B,4CAA4C;AAE5C,MAAM,UAAU,GAAG,SAAS,EAAE,CAAA;AAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;AAEhC,kBAAe,CAAO,CAAO,EAAE,QAAgB,EAAE,EAAE;IACjD,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACf,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,MAAM,CAAC,EAAE,GAAG,QAAQ,oBAAoB,CAAC,CAAA;QACrE,MAAM,CAAA;IACR,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,gBAAgB,CAAC,CAAA;IACtE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,mBAAmB,CAAC,CAAA;AACrD,CAAC,CAAA,CAAA"}
1
+ {"version":3,"file":"isExecutable.js","sourceRoot":"","sources":["../src/isExecutable.ts"],"names":[],"mappings":";;;;;AAAA,2BAAmC;AACnC,+BAAgC;AAChC,4DAAkC;AAClC,kDAA2B;AAE3B,MAAM,UAAU,GAAG,IAAA,oBAAS,GAAE,CAAA;AAC9B,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,eAAO,CAAC,CAAA;AAEhC,2BAA2B;AAC3B,kBAAe,KAAK,EAAE,EAAyC,EAAE,QAAgB,EAAE,EAAE;IACnF,IAAI,UAAU,EAAE;QACd,EAAE,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,MAAM,CAAC,EAAE,GAAG,QAAQ,oBAAoB,CAAC,CAAA;QACnE,OAAM;KACP;IAED,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,EAAE,GAAG,QAAQ,gBAAgB,CAAC,CAAA;IAC9D,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,mBAAmB,CAAC,CAAA;AACnD,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,67 +1,54 @@
1
1
  {
2
2
  "name": "@pnpm/assert-project",
3
3
  "description": "Utils for testing projects that use pnpm",
4
- "version": "1.1.2",
4
+ "version": "1.2.2",
5
5
  "author": {
6
6
  "name": "Zoltan Kochan",
7
7
  "email": "z@kochan.io",
8
8
  "url": "https://www.kochan.io/"
9
9
  },
10
10
  "bugs": {
11
- "url": "https://github.com/pnpm/assert-project/issues"
11
+ "url": "https://github.com/pnpm/pnpm/issues"
12
12
  },
13
13
  "main": "lib/index.js",
14
- "typings": "lib/index.d.ts",
14
+ "types": "lib/index.d.ts",
15
15
  "files": [
16
16
  "lib/"
17
17
  ],
18
18
  "devDependencies": {
19
- "@commitlint/cli": "^6.1.3",
20
- "@commitlint/config-conventional": "^6.1.3",
21
- "@commitlint/prompt-cli": "^6.1.3",
22
- "@zkochan/husky": "^0.0.0",
23
- "package-preview": "^1.0.0",
24
- "rimraf": "^2.6.2",
25
- "ts-node": "^5.0.1",
26
- "tslint": "^5.4.2",
27
- "typescript": "^2.7.1"
19
+ "@pnpm/assert-project": "1.2.2",
20
+ "@types/is-windows": "^1.0.0",
21
+ "@types/isexe": "2.0.0",
22
+ "@types/node": "^14.18.20"
28
23
  },
29
24
  "directories": {
30
25
  "test": "test"
31
26
  },
32
- "homepage": "https://github.com/pnpm/assert-project#readme",
27
+ "homepage": "https://github.com/pnpm/pnpm/blob/master/privatePackages/assert-project#readme",
33
28
  "keywords": [],
34
29
  "license": "MIT",
35
30
  "engines": {
36
- "node": ">=4"
31
+ "node": ">=10"
37
32
  },
38
- "repository": {
39
- "type": "git",
40
- "url": "git+https://github.com/pnpm/assert-project.git"
33
+ "repository": "https://github.com/pnpm/pnpm/blob/master/privatePackages/assert-project",
34
+ "dependencies": {
35
+ "@pnpm/assert-store": "0.0.2",
36
+ "@pnpm/constants": "5.0.0",
37
+ "@pnpm/lockfile-types": "3.2.1",
38
+ "@pnpm/modules-yaml": "9.1.2",
39
+ "@pnpm/registry-mock": "2.20.0",
40
+ "@pnpm/types": "7.11.0",
41
+ "is-windows": "^1.0.2",
42
+ "isexe": "2.0.0",
43
+ "path-exists": "^4.0.0",
44
+ "read-yaml-file": "^2.1.0",
45
+ "write-pkg": "4.0.0"
41
46
  },
42
47
  "scripts": {
43
- "commit": "commit",
44
- "commitmsg": "commitlint -e",
45
- "lint": "tslint -c tslint.json --project .",
48
+ "lint": "tslint -c ../../tslint.json --project .",
46
49
  "lint-test": "tslint -c tslint.json --project test",
47
- "tsc": "rimraf lib && tsc",
48
- "prepublishOnly": "npm run tsc",
49
- "pretest": "pnpm i --prefix test/fixture/project",
50
- "test": "npm run lint && npm run lint-test && preview && ts-node test"
51
- },
52
- "dependencies": {
53
- "@pnpm/modules-yaml": "^1.0.0",
54
- "@types/mz": "^0.0.32",
55
- "@types/path-exists": "^3.0.0",
56
- "@types/tape": "^4.2.32",
57
- "@types/write-pkg": "^3.1.0",
58
- "is-windows": "^1.0.2",
59
- "isexe": "^2.0.0",
60
- "load-yaml-file": "^0.1.0",
61
- "mz": "^2.7.0",
62
- "path-exists": "^3.0.0",
63
- "tape": "^4.9.0",
64
- "util.promisify": "^1.0.0",
65
- "write-pkg": "^3.1.0"
50
+ "compile": "rimraf tsconfig.tsbuildinfo lib && tsc --build",
51
+ "pretest": "pnpm install -C test/fixture/project --force --no-shared-workspace-lockfile",
52
+ "test": "pnpm pretest && pnpm run compile && jest"
66
53
  }
67
- }
54
+ }