@osdk/generator-utils 0.0.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.
- package/build/browser/changeVersionPrefix.d.ts +2 -0
- package/build/browser/changeVersionPrefix.d.ts.map +1 -0
- package/build/browser/changeVersionPrefix.js +26 -0
- package/build/browser/changeVersionPrefix.js.map +1 -0
- package/build/browser/changeVersionPrefix.test.d.ts +2 -0
- package/build/browser/changeVersionPrefix.test.d.ts.map +1 -0
- package/build/browser/changeVersionPrefix.test.js +33 -0
- package/build/browser/changeVersionPrefix.test.js.map +1 -0
- package/build/browser/getDependencyVersionFromFindUpPackageJson.d.ts +4 -0
- package/build/browser/getDependencyVersionFromFindUpPackageJson.d.ts.map +1 -0
- package/build/browser/getDependencyVersionFromFindUpPackageJson.js +35 -0
- package/build/browser/getDependencyVersionFromFindUpPackageJson.js.map +1 -0
- package/build/browser/getDependencyVersionFromFindUpPackageJson.test.d.ts +2 -0
- package/build/browser/getDependencyVersionFromFindUpPackageJson.test.d.ts.map +1 -0
- package/build/browser/getDependencyVersionFromFindUpPackageJson.test.js +68 -0
- package/build/browser/getDependencyVersionFromFindUpPackageJson.test.js.map +1 -0
- package/build/browser/index.d.ts +4 -0
- package/build/browser/index.d.ts.map +1 -0
- package/build/browser/index.js +19 -0
- package/build/browser/index.js.map +1 -0
- package/build/browser/resolveDependenciesFromFindUp.d.ts +13 -0
- package/build/browser/resolveDependenciesFromFindUp.d.ts.map +1 -0
- package/build/browser/resolveDependenciesFromFindUp.js +34 -0
- package/build/browser/resolveDependenciesFromFindUp.js.map +1 -0
- package/build/browser/resolveDependenciesFromFindUp.test.d.ts +2 -0
- package/build/browser/resolveDependenciesFromFindUp.test.d.ts.map +1 -0
- package/build/browser/resolveDependenciesFromFindUp.test.js +59 -0
- package/build/browser/resolveDependenciesFromFindUp.test.js.map +1 -0
- package/build/esm/changeVersionPrefix.d.ts +2 -0
- package/build/esm/changeVersionPrefix.d.ts.map +1 -0
- package/build/esm/changeVersionPrefix.js +26 -0
- package/build/esm/changeVersionPrefix.js.map +1 -0
- package/build/esm/changeVersionPrefix.test.d.ts +2 -0
- package/build/esm/changeVersionPrefix.test.d.ts.map +1 -0
- package/build/esm/changeVersionPrefix.test.js +33 -0
- package/build/esm/changeVersionPrefix.test.js.map +1 -0
- package/build/esm/getDependencyVersionFromFindUpPackageJson.d.ts +4 -0
- package/build/esm/getDependencyVersionFromFindUpPackageJson.d.ts.map +1 -0
- package/build/esm/getDependencyVersionFromFindUpPackageJson.js +35 -0
- package/build/esm/getDependencyVersionFromFindUpPackageJson.js.map +1 -0
- package/build/esm/getDependencyVersionFromFindUpPackageJson.test.d.ts +2 -0
- package/build/esm/getDependencyVersionFromFindUpPackageJson.test.d.ts.map +1 -0
- package/build/esm/getDependencyVersionFromFindUpPackageJson.test.js +68 -0
- package/build/esm/getDependencyVersionFromFindUpPackageJson.test.js.map +1 -0
- package/build/esm/index.d.ts +4 -0
- package/build/esm/index.d.ts.map +1 -0
- package/build/esm/index.js +19 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/resolveDependenciesFromFindUp.d.ts +13 -0
- package/build/esm/resolveDependenciesFromFindUp.d.ts.map +1 -0
- package/build/esm/resolveDependenciesFromFindUp.js +34 -0
- package/build/esm/resolveDependenciesFromFindUp.js.map +1 -0
- package/build/esm/resolveDependenciesFromFindUp.test.d.ts +2 -0
- package/build/esm/resolveDependenciesFromFindUp.test.d.ts.map +1 -0
- package/build/esm/resolveDependenciesFromFindUp.test.js +59 -0
- package/build/esm/resolveDependenciesFromFindUp.test.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeVersionPrefix.d.ts","sourceRoot":"","sources":["../../src/changeVersionPrefix.ts"],"names":[],"mappings":"AAgBA,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GACrB,MAAM,CAUR"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export function changeVersionPrefix(version, prefix) {
|
|
17
|
+
const isWorkspaceProtocol = version.startsWith("workspace:");
|
|
18
|
+
if (isWorkspaceProtocol) {
|
|
19
|
+
version = version.slice("workspace:".length);
|
|
20
|
+
}
|
|
21
|
+
if (version[0] === "^" || version[0] === "~" || version[0] === "*") {
|
|
22
|
+
version = version.slice(1);
|
|
23
|
+
}
|
|
24
|
+
return `${isWorkspaceProtocol ? "workspace:" : ""}${prefix}${version}`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=changeVersionPrefix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeVersionPrefix.js","names":["changeVersionPrefix","version","prefix","isWorkspaceProtocol","startsWith","slice","length"],"sources":["changeVersionPrefix.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function changeVersionPrefix(version, prefix) {\n const isWorkspaceProtocol = version.startsWith(\"workspace:\");\n if (isWorkspaceProtocol) {\n version = version.slice(\"workspace:\".length);\n }\n if (version[0] === \"^\" || version[0] === \"~\" || version[0] === \"*\") {\n version = version.slice(1);\n }\n return `${isWorkspaceProtocol ? \"workspace:\" : \"\"}${prefix}${version}`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAACC,OAAO,EAAEC,MAAM,EAAE;EACjD,MAAMC,mBAAmB,GAAGF,OAAO,CAACG,UAAU,CAAC,YAAY,CAAC;EAC5D,IAAID,mBAAmB,EAAE;IACrBF,OAAO,GAAGA,OAAO,CAACI,KAAK,CAAC,YAAY,CAACC,MAAM,CAAC;EAChD;EACA,IAAIL,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAChEA,OAAO,GAAGA,OAAO,CAACI,KAAK,CAAC,CAAC,CAAC;EAC9B;EACA,OAAO,GAAGF,mBAAmB,GAAG,YAAY,GAAG,EAAE,GAAGD,MAAM,GAAGD,OAAO,EAAE;AAC1E","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeVersionPrefix.test.d.ts","sourceRoot":"","sources":["../../src/changeVersionPrefix.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { describe, expect, it } from "vitest";
|
|
17
|
+
import { changeVersionPrefix } from "./changeVersionPrefix.js";
|
|
18
|
+
describe(changeVersionPrefix, () => {
|
|
19
|
+
const expectedPrefix = "^";
|
|
20
|
+
it.each(["1.2.3", "~1.2.3", "^1.2.3"])(`replaces "%s" with "${expectedPrefix}1.2.3"`, async version => {
|
|
21
|
+
const result = await changeVersionPrefix(version, expectedPrefix);
|
|
22
|
+
expect(result).toEqual(`${expectedPrefix}1.2.3`);
|
|
23
|
+
});
|
|
24
|
+
it.each(["workspace:1.2.3", "workspace:~1.2.3", "workspace:^1.2.3"])(`replaces "%s" with "${expectedPrefix}1.2.3"`, async version => {
|
|
25
|
+
const result = await changeVersionPrefix(version, expectedPrefix);
|
|
26
|
+
expect(result).toEqual(`workspace:${expectedPrefix}1.2.3`);
|
|
27
|
+
});
|
|
28
|
+
it.each(["workspace:*", "workspace:^", "workspace:~"])(`replaces "%s" with "workspace:${expectedPrefix}"`, async version => {
|
|
29
|
+
const result = await changeVersionPrefix(version, expectedPrefix);
|
|
30
|
+
expect(result).toEqual(`workspace:${expectedPrefix}`);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=changeVersionPrefix.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeVersionPrefix.test.js","names":["describe","expect","it","changeVersionPrefix","expectedPrefix","each","version","result","toEqual"],"sources":["changeVersionPrefix.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { describe, expect, it } from \"vitest\";\nimport { changeVersionPrefix } from \"./changeVersionPrefix.js\";\ndescribe(changeVersionPrefix, () => {\n const expectedPrefix = \"^\";\n it.each([\"1.2.3\", \"~1.2.3\", \"^1.2.3\"])(`replaces \"%s\" with \"${expectedPrefix}1.2.3\"`, async (version) => {\n const result = await changeVersionPrefix(version, expectedPrefix);\n expect(result).toEqual(`${expectedPrefix}1.2.3`);\n });\n it.each([\"workspace:1.2.3\", \"workspace:~1.2.3\", \"workspace:^1.2.3\"])(`replaces \"%s\" with \"${expectedPrefix}1.2.3\"`, async (version) => {\n const result = await changeVersionPrefix(version, expectedPrefix);\n expect(result).toEqual(`workspace:${expectedPrefix}1.2.3`);\n });\n it.each([\"workspace:*\", \"workspace:^\", \"workspace:~\"])(`replaces \"%s\" with \"workspace:${expectedPrefix}\"`, async (version) => {\n const result = await changeVersionPrefix(version, expectedPrefix);\n expect(result).toEqual(`workspace:${expectedPrefix}`);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9DH,QAAQ,CAACG,mBAAmB,EAAE,MAAM;EAChC,MAAMC,cAAc,GAAG,GAAG;EAC1BF,EAAE,CAACG,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,uBAAuBD,cAAc,QAAQ,EAAE,MAAOE,OAAO,IAAK;IACrG,MAAMC,MAAM,GAAG,MAAMJ,mBAAmB,CAACG,OAAO,EAAEF,cAAc,CAAC;IACjEH,MAAM,CAACM,MAAM,CAAC,CAACC,OAAO,CAAC,GAAGJ,cAAc,OAAO,CAAC;EACpD,CAAC,CAAC;EACFF,EAAE,CAACG,IAAI,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,uBAAuBD,cAAc,QAAQ,EAAE,MAAOE,OAAO,IAAK;IACnI,MAAMC,MAAM,GAAG,MAAMJ,mBAAmB,CAACG,OAAO,EAAEF,cAAc,CAAC;IACjEH,MAAM,CAACM,MAAM,CAAC,CAACC,OAAO,CAAC,aAAaJ,cAAc,OAAO,CAAC;EAC9D,CAAC,CAAC;EACFF,EAAE,CAACG,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,iCAAiCD,cAAc,GAAG,EAAE,MAAOE,OAAO,IAAK;IAC1H,MAAMC,MAAM,GAAG,MAAMJ,mBAAmB,CAACG,OAAO,EAAEF,cAAc,CAAC;IACjEH,MAAM,CAACM,MAAM,CAAC,CAACC,OAAO,CAAC,aAAaJ,cAAc,EAAE,CAAC;EACzD,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencyVersionFromFindUpPackageJson.d.ts","sourceRoot":"","sources":["../../src/getDependencyVersionFromFindUpPackageJson.ts"],"names":[],"mappings":"AAmBA,wBAAsB,yCAAyC,CAC7D,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACrB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { readFile } from "fs/promises";
|
|
17
|
+
import invariant from "tiny-invariant";
|
|
18
|
+
export async function getDependencyVersionFromFindUpPackageJson(name, opts) {
|
|
19
|
+
const {
|
|
20
|
+
findUp
|
|
21
|
+
} = await import("find-up");
|
|
22
|
+
const packageJsonPath = await findUp("package.json", opts);
|
|
23
|
+
!(packageJsonPath !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not find package.json") : invariant(false) : void 0;
|
|
24
|
+
const packageJson = await readFile(packageJsonPath, {
|
|
25
|
+
encoding: "utf-8"
|
|
26
|
+
});
|
|
27
|
+
if (!packageJson) {
|
|
28
|
+
throw new Error(`Could not find package.json in current working directory: ${process.cwd()}`);
|
|
29
|
+
}
|
|
30
|
+
const parsedPackageJson = JSON.parse(packageJson);
|
|
31
|
+
const version = parsedPackageJson.dependencies?.[name] ?? parsedPackageJson.devDependencies?.[name] ?? parsedPackageJson.peerDependencies?.[name];
|
|
32
|
+
!(version !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Could not find a dependency for ${name} in ${packageJsonPath}`) : invariant(false) : void 0;
|
|
33
|
+
return version;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=getDependencyVersionFromFindUpPackageJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencyVersionFromFindUpPackageJson.js","names":["readFile","invariant","getDependencyVersionFromFindUpPackageJson","name","opts","findUp","packageJsonPath","undefined","process","env","NODE_ENV","packageJson","encoding","Error","cwd","parsedPackageJson","JSON","parse","version","dependencies","devDependencies","peerDependencies"],"sources":["getDependencyVersionFromFindUpPackageJson.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { readFile } from \"fs/promises\";\nimport invariant from \"tiny-invariant\";\nexport async function getDependencyVersionFromFindUpPackageJson(name, opts) {\n const { findUp } = await import(\"find-up\");\n const packageJsonPath = await findUp(\"package.json\", opts);\n invariant(packageJsonPath !== undefined, \"Could not find package.json\");\n const packageJson = await readFile(packageJsonPath, {\n encoding: \"utf-8\",\n });\n if (!packageJson) {\n throw new Error(`Could not find package.json in current working directory: ${process.cwd()}`);\n }\n const parsedPackageJson = JSON.parse(packageJson);\n const version = parsedPackageJson.dependencies?.[name]\n ?? parsedPackageJson.devDependencies?.[name]\n ?? parsedPackageJson.peerDependencies?.[name];\n invariant(version !== undefined, `Could not find a dependency for ${name} in ${packageJsonPath}`);\n return version;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,aAAa;AACtC,OAAOC,SAAS,MAAM,gBAAgB;AACtC,OAAO,eAAeC,yCAAyCA,CAACC,IAAI,EAAEC,IAAI,EAAE;EACxE,MAAM;IAAEC;EAAO,CAAC,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;EAC1C,MAAMC,eAAe,GAAG,MAAMD,MAAM,CAAC,cAAc,EAAED,IAAI,CAAC;EAC1D,EAAUE,eAAe,KAAKC,SAAS,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAvCT,SAAS,QAAgC,6BAA6B,IAAtEA,SAAS;EACT,MAAMU,WAAW,GAAG,MAAMX,QAAQ,CAACM,eAAe,EAAE;IAChDM,QAAQ,EAAE;EACd,CAAC,CAAC;EACF,IAAI,CAACD,WAAW,EAAE;IACd,MAAM,IAAIE,KAAK,CAAC,6DAA6DL,OAAO,CAACM,GAAG,CAAC,CAAC,EAAE,CAAC;EACjG;EACA,MAAMC,iBAAiB,GAAGC,IAAI,CAACC,KAAK,CAACN,WAAW,CAAC;EACjD,MAAMO,OAAO,GAAGH,iBAAiB,CAACI,YAAY,GAAGhB,IAAI,CAAC,IAC/CY,iBAAiB,CAACK,eAAe,GAAGjB,IAAI,CAAC,IACzCY,iBAAiB,CAACM,gBAAgB,GAAGlB,IAAI,CAAC;EACjD,EAAUe,OAAO,KAAKX,SAAS,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAA/BT,SAAS,QAAwB,mCAAmCE,IAAI,OAAOG,eAAe,EAAE,IAAhGL,SAAS;EACT,OAAOiB,OAAO;AAClB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencyVersionFromFindUpPackageJson.test.d.ts","sourceRoot":"","sources":["../../src/getDependencyVersionFromFindUpPackageJson.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import * as fs from "node:fs";
|
|
17
|
+
import { dirname } from "node:path";
|
|
18
|
+
import { fileURLToPath } from "node:url";
|
|
19
|
+
import { dirSync } from "tmp";
|
|
20
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
21
|
+
import { getDependencyVersionFromFindUpPackageJson } from "./getDependencyVersionFromFindUpPackageJson.js";
|
|
22
|
+
describe(getDependencyVersionFromFindUpPackageJson, () => {
|
|
23
|
+
const fakeDepName = "not_a_real_dep_you_would_ever_find";
|
|
24
|
+
const fakePeerDepName = "peer_not_a_real_dep_you_would_ever_find";
|
|
25
|
+
const fakeDevDepName = "dev_not_a_real_dep_you_would_ever_find";
|
|
26
|
+
const fakeDepVersion = "1.2.3";
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
const tmpDir = dirSync({
|
|
29
|
+
unsafeCleanup: true
|
|
30
|
+
});
|
|
31
|
+
const tmpDirName = tmpDir.name;
|
|
32
|
+
const oldCwd = process.cwd();
|
|
33
|
+
process.chdir(tmpDirName);
|
|
34
|
+
fs.writeFileSync("package.json", JSON.stringify({
|
|
35
|
+
dependencies: {
|
|
36
|
+
[fakeDepName]: `${fakeDepVersion}-${fakeDepName}`
|
|
37
|
+
},
|
|
38
|
+
peerDependencies: {
|
|
39
|
+
[fakePeerDepName]: `${fakeDepVersion}-${fakePeerDepName}`
|
|
40
|
+
},
|
|
41
|
+
devDependencies: {
|
|
42
|
+
[fakeDevDepName]: `${fakeDepVersion}-${fakeDevDepName}`
|
|
43
|
+
}
|
|
44
|
+
}));
|
|
45
|
+
return () => {
|
|
46
|
+
process.chdir(oldCwd);
|
|
47
|
+
tmpDir.removeCallback();
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
describe("inferring cwd", () => {
|
|
51
|
+
it.each([fakeDepName, fakePeerDepName, fakeDevDepName])("finds the tmp package.json and value for %s", async depName => {
|
|
52
|
+
await expect(getDependencyVersionFromFindUpPackageJson(depName)).resolves.toBe(`${fakeDepVersion}-${depName}`);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe("not inferring cwd", () => {
|
|
56
|
+
it.each([fakeDepName, fakePeerDepName, fakeDevDepName])("does not find the value for %s", async depName => {
|
|
57
|
+
await expect(getDependencyVersionFromFindUpPackageJson(depName, {
|
|
58
|
+
cwd: dirname(fileURLToPath(import.meta.url))
|
|
59
|
+
})).rejects.toThrowError(/^Invariant failed: Could not find a dependency/);
|
|
60
|
+
});
|
|
61
|
+
it("does find our typescript version", async () => {
|
|
62
|
+
await expect(getDependencyVersionFromFindUpPackageJson("typescript", {
|
|
63
|
+
cwd: dirname(fileURLToPath(import.meta.url))
|
|
64
|
+
})).resolves.toBeDefined();
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=getDependencyVersionFromFindUpPackageJson.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencyVersionFromFindUpPackageJson.test.js","names":["fs","dirname","fileURLToPath","dirSync","beforeEach","describe","expect","it","getDependencyVersionFromFindUpPackageJson","fakeDepName","fakePeerDepName","fakeDevDepName","fakeDepVersion","tmpDir","unsafeCleanup","tmpDirName","name","oldCwd","process","cwd","chdir","writeFileSync","JSON","stringify","dependencies","peerDependencies","devDependencies","removeCallback","each","depName","resolves","toBe","import","meta","url","rejects","toThrowError","toBeDefined"],"sources":["getDependencyVersionFromFindUpPackageJson.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as fs from \"node:fs\";\nimport { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { dirSync } from \"tmp\";\nimport { beforeEach, describe, expect, it } from \"vitest\";\nimport { getDependencyVersionFromFindUpPackageJson } from \"./getDependencyVersionFromFindUpPackageJson.js\";\ndescribe(getDependencyVersionFromFindUpPackageJson, () => {\n const fakeDepName = \"not_a_real_dep_you_would_ever_find\";\n const fakePeerDepName = \"peer_not_a_real_dep_you_would_ever_find\";\n const fakeDevDepName = \"dev_not_a_real_dep_you_would_ever_find\";\n const fakeDepVersion = \"1.2.3\";\n beforeEach(() => {\n const tmpDir = dirSync({ unsafeCleanup: true });\n const tmpDirName = tmpDir.name;\n const oldCwd = process.cwd();\n process.chdir(tmpDirName);\n fs.writeFileSync(\"package.json\", JSON.stringify({\n dependencies: {\n [fakeDepName]: `${fakeDepVersion}-${fakeDepName}`,\n },\n peerDependencies: {\n [fakePeerDepName]: `${fakeDepVersion}-${fakePeerDepName}`,\n },\n devDependencies: {\n [fakeDevDepName]: `${fakeDepVersion}-${fakeDevDepName}`,\n },\n }));\n return () => {\n process.chdir(oldCwd);\n tmpDir.removeCallback();\n };\n });\n describe(\"inferring cwd\", () => {\n it.each([fakeDepName, fakePeerDepName, fakeDevDepName])(\"finds the tmp package.json and value for %s\", async (depName) => {\n await expect(getDependencyVersionFromFindUpPackageJson(depName)).resolves.toBe(`${fakeDepVersion}-${depName}`);\n });\n });\n describe(\"not inferring cwd\", () => {\n it.each([fakeDepName, fakePeerDepName, fakeDevDepName])(\"does not find the value for %s\", async (depName) => {\n await expect(getDependencyVersionFromFindUpPackageJson(depName, {\n cwd: dirname(fileURLToPath(import.meta.url)),\n })).rejects.toThrowError(/^Invariant failed: Could not find a dependency/);\n });\n it(\"does find our typescript version\", async () => {\n await expect(getDependencyVersionFromFindUpPackageJson(\"typescript\", {\n cwd: dirname(fileURLToPath(import.meta.url)),\n })).resolves.toBeDefined();\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,KAAKA,EAAE,MAAM,SAAS;AAC7B,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,aAAa,QAAQ,UAAU;AACxC,SAASC,OAAO,QAAQ,KAAK;AAC7B,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SAASC,yCAAyC,QAAQ,gDAAgD;AAC1GH,QAAQ,CAACG,yCAAyC,EAAE,MAAM;EACtD,MAAMC,WAAW,GAAG,oCAAoC;EACxD,MAAMC,eAAe,GAAG,yCAAyC;EACjE,MAAMC,cAAc,GAAG,wCAAwC;EAC/D,MAAMC,cAAc,GAAG,OAAO;EAC9BR,UAAU,CAAC,MAAM;IACb,MAAMS,MAAM,GAAGV,OAAO,CAAC;MAAEW,aAAa,EAAE;IAAK,CAAC,CAAC;IAC/C,MAAMC,UAAU,GAAGF,MAAM,CAACG,IAAI;IAC9B,MAAMC,MAAM,GAAGC,OAAO,CAACC,GAAG,CAAC,CAAC;IAC5BD,OAAO,CAACE,KAAK,CAACL,UAAU,CAAC;IACzBf,EAAE,CAACqB,aAAa,CAAC,cAAc,EAAEC,IAAI,CAACC,SAAS,CAAC;MAC5CC,YAAY,EAAE;QACV,CAACf,WAAW,GAAG,GAAGG,cAAc,IAAIH,WAAW;MACnD,CAAC;MACDgB,gBAAgB,EAAE;QACd,CAACf,eAAe,GAAG,GAAGE,cAAc,IAAIF,eAAe;MAC3D,CAAC;MACDgB,eAAe,EAAE;QACb,CAACf,cAAc,GAAG,GAAGC,cAAc,IAAID,cAAc;MACzD;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,MAAM;MACTO,OAAO,CAACE,KAAK,CAACH,MAAM,CAAC;MACrBJ,MAAM,CAACc,cAAc,CAAC,CAAC;IAC3B,CAAC;EACL,CAAC,CAAC;EACFtB,QAAQ,CAAC,eAAe,EAAE,MAAM;IAC5BE,EAAE,CAACqB,IAAI,CAAC,CAACnB,WAAW,EAAEC,eAAe,EAAEC,cAAc,CAAC,CAAC,CAAC,6CAA6C,EAAE,MAAOkB,OAAO,IAAK;MACtH,MAAMvB,MAAM,CAACE,yCAAyC,CAACqB,OAAO,CAAC,CAAC,CAACC,QAAQ,CAACC,IAAI,CAAC,GAAGnB,cAAc,IAAIiB,OAAO,EAAE,CAAC;IAClH,CAAC,CAAC;EACN,CAAC,CAAC;EACFxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM;IAChCE,EAAE,CAACqB,IAAI,CAAC,CAACnB,WAAW,EAAEC,eAAe,EAAEC,cAAc,CAAC,CAAC,CAAC,gCAAgC,EAAE,MAAOkB,OAAO,IAAK;MACzG,MAAMvB,MAAM,CAACE,yCAAyC,CAACqB,OAAO,EAAE;QAC5DV,GAAG,EAAElB,OAAO,CAACC,aAAa,CAAC8B,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;MAC/C,CAAC,CAAC,CAAC,CAACC,OAAO,CAACC,YAAY,CAAC,gDAAgD,CAAC;IAC9E,CAAC,CAAC;IACF7B,EAAE,CAAC,kCAAkC,EAAE,YAAY;MAC/C,MAAMD,MAAM,CAACE,yCAAyC,CAAC,YAAY,EAAE;QACjEW,GAAG,EAAElB,OAAO,CAACC,aAAa,CAAC8B,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;MAC/C,CAAC,CAAC,CAAC,CAACJ,QAAQ,CAACO,WAAW,CAAC,CAAC;IAC9B,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { changeVersionPrefix } from "./changeVersionPrefix.js";
|
|
2
|
+
export { getDependencyVersionFromFindUpPackageJson } from "./getDependencyVersionFromFindUpPackageJson.js";
|
|
3
|
+
export { resolveDependenciesFromFindUp } from "./resolveDependenciesFromFindUp.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,yCAAyC,EAAE,MAAM,gDAAgD,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export { changeVersionPrefix } from "./changeVersionPrefix.js";
|
|
17
|
+
export { getDependencyVersionFromFindUpPackageJson } from "./getDependencyVersionFromFindUpPackageJson.js";
|
|
18
|
+
export { resolveDependenciesFromFindUp } from "./resolveDependenciesFromFindUp.js";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["changeVersionPrefix","getDependencyVersionFromFindUpPackageJson","resolveDependenciesFromFindUp"],"sources":["index.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { changeVersionPrefix } from \"./changeVersionPrefix.js\";\nexport { getDependencyVersionFromFindUpPackageJson } from \"./getDependencyVersionFromFindUpPackageJson.js\";\nexport { resolveDependenciesFromFindUp } from \"./resolveDependenciesFromFindUp.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,yCAAyC,QAAQ,gDAAgD;AAC1G,SAASC,6BAA6B,QAAQ,oCAAoC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves dependencies to their versions per our package.json if undefined.
|
|
3
|
+
* Sets the prefix to `^` for the version specified or read from package.json.
|
|
4
|
+
* @param deps
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveDependenciesFromFindUp(deps: {
|
|
8
|
+
[key: string]: string | undefined;
|
|
9
|
+
}, cwd: string): Promise<{
|
|
10
|
+
dependencyName: string;
|
|
11
|
+
dependencyVersion: string;
|
|
12
|
+
}[]>;
|
|
13
|
+
//# sourceMappingURL=resolveDependenciesFromFindUp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesFromFindUp.d.ts","sourceRoot":"","sources":["../../src/resolveDependenciesFromFindUp.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EAC3C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,EAAE,CAAC,CAoBH"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { changeVersionPrefix } from "./changeVersionPrefix.js";
|
|
17
|
+
import { getDependencyVersionFromFindUpPackageJson } from "./getDependencyVersionFromFindUpPackageJson.js";
|
|
18
|
+
/**
|
|
19
|
+
* Resolves dependencies to their versions per our package.json if undefined.
|
|
20
|
+
* Sets the prefix to `^` for the version specified or read from package.json.
|
|
21
|
+
* @param deps
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
export async function resolveDependenciesFromFindUp(deps, cwd) {
|
|
25
|
+
return await Promise.all(Object.entries(deps).map(async ([dependencyName, dependencyVersion]) => {
|
|
26
|
+
return {
|
|
27
|
+
dependencyName,
|
|
28
|
+
dependencyVersion: changeVersionPrefix(dependencyVersion ?? (await getDependencyVersionFromFindUpPackageJson(dependencyName, {
|
|
29
|
+
cwd
|
|
30
|
+
})), "^")
|
|
31
|
+
};
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=resolveDependenciesFromFindUp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesFromFindUp.js","names":["changeVersionPrefix","getDependencyVersionFromFindUpPackageJson","resolveDependenciesFromFindUp","deps","cwd","Promise","all","Object","entries","map","dependencyName","dependencyVersion"],"sources":["resolveDependenciesFromFindUp.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { changeVersionPrefix } from \"./changeVersionPrefix.js\";\nimport { getDependencyVersionFromFindUpPackageJson } from \"./getDependencyVersionFromFindUpPackageJson.js\";\n/**\n * Resolves dependencies to their versions per our package.json if undefined.\n * Sets the prefix to `^` for the version specified or read from package.json.\n * @param deps\n * @returns\n */\nexport async function resolveDependenciesFromFindUp(deps, cwd) {\n return await Promise.all(Object.entries(deps).map(async ([dependencyName, dependencyVersion]) => {\n return {\n dependencyName,\n dependencyVersion: changeVersionPrefix(dependencyVersion\n ?? await getDependencyVersionFromFindUpPackageJson(dependencyName, {\n cwd,\n }), \"^\"),\n };\n }));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,yCAAyC,QAAQ,gDAAgD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,6BAA6BA,CAACC,IAAI,EAAEC,GAAG,EAAE;EAC3D,OAAO,MAAMC,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,OAAO,CAACL,IAAI,CAAC,CAACM,GAAG,CAAC,OAAO,CAACC,cAAc,EAAEC,iBAAiB,CAAC,KAAK;IAC7F,OAAO;MACHD,cAAc;MACdC,iBAAiB,EAAEX,mBAAmB,CAACW,iBAAiB,KACjD,MAAMV,yCAAyC,CAACS,cAAc,EAAE;QAC/DN;MACJ,CAAC,CAAC,GAAE,GAAG;IACf,CAAC;EACL,CAAC,CAAC,CAAC;AACP","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesFromFindUp.test.d.ts","sourceRoot":"","sources":["../../src/resolveDependenciesFromFindUp.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { dirname } from "node:path";
|
|
17
|
+
import { fileURLToPath } from "node:url";
|
|
18
|
+
import { describe, expect, it } from "vitest";
|
|
19
|
+
import { resolveDependenciesFromFindUp } from "./resolveDependenciesFromFindUp.js";
|
|
20
|
+
describe(resolveDependenciesFromFindUp, () => {
|
|
21
|
+
describe("not provided a version", () => {
|
|
22
|
+
it("errors when it does not find a version", async () => {
|
|
23
|
+
await expect(resolveDependenciesFromFindUp({
|
|
24
|
+
not_a_real_dep_you_would_find: undefined
|
|
25
|
+
}, dirname(fileURLToPath(import.meta.url)))).rejects.toThrow(/^Invariant failed: Could not find a dependency for not_a_real_dep_you_would_find in (.*?)$/);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe("uses version passed to it", () => {
|
|
29
|
+
const expectedPrefix = "^";
|
|
30
|
+
it.each(["1.2.3", "~1.2.3", "^1.2.3"])(`replaces "%s" with "${expectedPrefix}1.2.3"`, async version => {
|
|
31
|
+
const result = await resolveDependenciesFromFindUp({
|
|
32
|
+
foo: version
|
|
33
|
+
}, dirname(fileURLToPath(import.meta.url)));
|
|
34
|
+
expect(result).toEqual([{
|
|
35
|
+
dependencyName: "foo",
|
|
36
|
+
dependencyVersion: `${expectedPrefix}1.2.3`
|
|
37
|
+
}]);
|
|
38
|
+
});
|
|
39
|
+
it.each(["workspace:1.2.3", "workspace:~1.2.3", "workspace:^1.2.3"])(`replaces "%s" with "${expectedPrefix}1.2.3"`, async version => {
|
|
40
|
+
const result = await resolveDependenciesFromFindUp({
|
|
41
|
+
foo: version
|
|
42
|
+
}, dirname(fileURLToPath(import.meta.url)));
|
|
43
|
+
expect(result).toEqual([{
|
|
44
|
+
dependencyName: "foo",
|
|
45
|
+
dependencyVersion: `workspace:${expectedPrefix}1.2.3`
|
|
46
|
+
}]);
|
|
47
|
+
});
|
|
48
|
+
it.each(["workspace:*", "workspace:^", "workspace:~"])(`replaces "%s" with "workspace:${expectedPrefix}"`, async version => {
|
|
49
|
+
const result = await resolveDependenciesFromFindUp({
|
|
50
|
+
foo: version
|
|
51
|
+
}, dirname(fileURLToPath(import.meta.url)));
|
|
52
|
+
expect(result).toEqual([{
|
|
53
|
+
dependencyName: "foo",
|
|
54
|
+
dependencyVersion: `workspace:${expectedPrefix}`
|
|
55
|
+
}]);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=resolveDependenciesFromFindUp.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesFromFindUp.test.js","names":["dirname","fileURLToPath","describe","expect","it","resolveDependenciesFromFindUp","not_a_real_dep_you_would_find","undefined","import","meta","url","rejects","toThrow","expectedPrefix","each","version","result","foo","toEqual","dependencyName","dependencyVersion"],"sources":["resolveDependenciesFromFindUp.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { describe, expect, it } from \"vitest\";\nimport { resolveDependenciesFromFindUp } from \"./resolveDependenciesFromFindUp.js\";\ndescribe(resolveDependenciesFromFindUp, () => {\n describe(\"not provided a version\", () => {\n it(\"errors when it does not find a version\", async () => {\n await expect(resolveDependenciesFromFindUp({\n not_a_real_dep_you_would_find: undefined,\n }, dirname(fileURLToPath(import.meta.url)))).rejects.toThrow(/^Invariant failed: Could not find a dependency for not_a_real_dep_you_would_find in (.*?)$/);\n });\n });\n describe(\"uses version passed to it\", () => {\n const expectedPrefix = \"^\";\n it.each([\"1.2.3\", \"~1.2.3\", \"^1.2.3\"])(`replaces \"%s\" with \"${expectedPrefix}1.2.3\"`, async (version) => {\n const result = await resolveDependenciesFromFindUp({\n foo: version,\n }, dirname(fileURLToPath(import.meta.url)));\n expect(result).toEqual([\n {\n dependencyName: \"foo\",\n dependencyVersion: `${expectedPrefix}1.2.3`,\n },\n ]);\n });\n it.each([\"workspace:1.2.3\", \"workspace:~1.2.3\", \"workspace:^1.2.3\"])(`replaces \"%s\" with \"${expectedPrefix}1.2.3\"`, async (version) => {\n const result = await resolveDependenciesFromFindUp({\n foo: version,\n }, dirname(fileURLToPath(import.meta.url)));\n expect(result).toEqual([\n {\n dependencyName: \"foo\",\n dependencyVersion: `workspace:${expectedPrefix}1.2.3`,\n },\n ]);\n });\n it.each([\"workspace:*\", \"workspace:^\", \"workspace:~\"])(`replaces \"%s\" with \"workspace:${expectedPrefix}\"`, async (version) => {\n const result = await resolveDependenciesFromFindUp({\n foo: version,\n }, dirname(fileURLToPath(import.meta.url)));\n expect(result).toEqual([\n {\n dependencyName: \"foo\",\n dependencyVersion: `workspace:${expectedPrefix}`,\n },\n ]);\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,WAAW;AACnC,SAASC,aAAa,QAAQ,UAAU;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,6BAA6B,QAAQ,oCAAoC;AAClFH,QAAQ,CAACG,6BAA6B,EAAE,MAAM;EAC1CH,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACrCE,EAAE,CAAC,wCAAwC,EAAE,YAAY;MACrD,MAAMD,MAAM,CAACE,6BAA6B,CAAC;QACvCC,6BAA6B,EAAEC;MACnC,CAAC,EAAEP,OAAO,CAACC,aAAa,CAACO,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO,CAACC,OAAO,CAAC,4FAA4F,CAAC;IAC9J,CAAC,CAAC;EACN,CAAC,CAAC;EACFV,QAAQ,CAAC,2BAA2B,EAAE,MAAM;IACxC,MAAMW,cAAc,GAAG,GAAG;IAC1BT,EAAE,CAACU,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,uBAAuBD,cAAc,QAAQ,EAAE,MAAOE,OAAO,IAAK;MACrG,MAAMC,MAAM,GAAG,MAAMX,6BAA6B,CAAC;QAC/CY,GAAG,EAAEF;MACT,CAAC,EAAEf,OAAO,CAACC,aAAa,CAACO,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;MAC3CP,MAAM,CAACa,MAAM,CAAC,CAACE,OAAO,CAAC,CACnB;QACIC,cAAc,EAAE,KAAK;QACrBC,iBAAiB,EAAE,GAAGP,cAAc;MACxC,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;IACFT,EAAE,CAACU,IAAI,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,uBAAuBD,cAAc,QAAQ,EAAE,MAAOE,OAAO,IAAK;MACnI,MAAMC,MAAM,GAAG,MAAMX,6BAA6B,CAAC;QAC/CY,GAAG,EAAEF;MACT,CAAC,EAAEf,OAAO,CAACC,aAAa,CAACO,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;MAC3CP,MAAM,CAACa,MAAM,CAAC,CAACE,OAAO,CAAC,CACnB;QACIC,cAAc,EAAE,KAAK;QACrBC,iBAAiB,EAAE,aAAaP,cAAc;MAClD,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;IACFT,EAAE,CAACU,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,iCAAiCD,cAAc,GAAG,EAAE,MAAOE,OAAO,IAAK;MAC1H,MAAMC,MAAM,GAAG,MAAMX,6BAA6B,CAAC;QAC/CY,GAAG,EAAEF;MACT,CAAC,EAAEf,OAAO,CAACC,aAAa,CAACO,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;MAC3CP,MAAM,CAACa,MAAM,CAAC,CAACE,OAAO,CAAC,CACnB;QACIC,cAAc,EAAE,KAAK;QACrBC,iBAAiB,EAAE,aAAaP,cAAc;MAClD,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeVersionPrefix.d.ts","sourceRoot":"","sources":["../../src/changeVersionPrefix.ts"],"names":[],"mappings":"AAgBA,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GACrB,MAAM,CAUR"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export function changeVersionPrefix(version, prefix) {
|
|
17
|
+
const isWorkspaceProtocol = version.startsWith("workspace:");
|
|
18
|
+
if (isWorkspaceProtocol) {
|
|
19
|
+
version = version.slice("workspace:".length);
|
|
20
|
+
}
|
|
21
|
+
if (version[0] === "^" || version[0] === "~" || version[0] === "*") {
|
|
22
|
+
version = version.slice(1);
|
|
23
|
+
}
|
|
24
|
+
return `${isWorkspaceProtocol ? "workspace:" : ""}${prefix}${version}`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=changeVersionPrefix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeVersionPrefix.js","names":["changeVersionPrefix","version","prefix","isWorkspaceProtocol","startsWith","slice","length"],"sources":["changeVersionPrefix.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function changeVersionPrefix(version, prefix) {\n const isWorkspaceProtocol = version.startsWith(\"workspace:\");\n if (isWorkspaceProtocol) {\n version = version.slice(\"workspace:\".length);\n }\n if (version[0] === \"^\" || version[0] === \"~\" || version[0] === \"*\") {\n version = version.slice(1);\n }\n return `${isWorkspaceProtocol ? \"workspace:\" : \"\"}${prefix}${version}`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAACC,OAAO,EAAEC,MAAM,EAAE;EACjD,MAAMC,mBAAmB,GAAGF,OAAO,CAACG,UAAU,CAAC,YAAY,CAAC;EAC5D,IAAID,mBAAmB,EAAE;IACrBF,OAAO,GAAGA,OAAO,CAACI,KAAK,CAAC,YAAY,CAACC,MAAM,CAAC;EAChD;EACA,IAAIL,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAChEA,OAAO,GAAGA,OAAO,CAACI,KAAK,CAAC,CAAC,CAAC;EAC9B;EACA,OAAO,GAAGF,mBAAmB,GAAG,YAAY,GAAG,EAAE,GAAGD,MAAM,GAAGD,OAAO,EAAE;AAC1E","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeVersionPrefix.test.d.ts","sourceRoot":"","sources":["../../src/changeVersionPrefix.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { describe, expect, it } from "vitest";
|
|
17
|
+
import { changeVersionPrefix } from "./changeVersionPrefix.js";
|
|
18
|
+
describe(changeVersionPrefix, () => {
|
|
19
|
+
const expectedPrefix = "^";
|
|
20
|
+
it.each(["1.2.3", "~1.2.3", "^1.2.3"])(`replaces "%s" with "${expectedPrefix}1.2.3"`, async version => {
|
|
21
|
+
const result = await changeVersionPrefix(version, expectedPrefix);
|
|
22
|
+
expect(result).toEqual(`${expectedPrefix}1.2.3`);
|
|
23
|
+
});
|
|
24
|
+
it.each(["workspace:1.2.3", "workspace:~1.2.3", "workspace:^1.2.3"])(`replaces "%s" with "${expectedPrefix}1.2.3"`, async version => {
|
|
25
|
+
const result = await changeVersionPrefix(version, expectedPrefix);
|
|
26
|
+
expect(result).toEqual(`workspace:${expectedPrefix}1.2.3`);
|
|
27
|
+
});
|
|
28
|
+
it.each(["workspace:*", "workspace:^", "workspace:~"])(`replaces "%s" with "workspace:${expectedPrefix}"`, async version => {
|
|
29
|
+
const result = await changeVersionPrefix(version, expectedPrefix);
|
|
30
|
+
expect(result).toEqual(`workspace:${expectedPrefix}`);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=changeVersionPrefix.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeVersionPrefix.test.js","names":["describe","expect","it","changeVersionPrefix","expectedPrefix","each","version","result","toEqual"],"sources":["changeVersionPrefix.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { describe, expect, it } from \"vitest\";\nimport { changeVersionPrefix } from \"./changeVersionPrefix.js\";\ndescribe(changeVersionPrefix, () => {\n const expectedPrefix = \"^\";\n it.each([\"1.2.3\", \"~1.2.3\", \"^1.2.3\"])(`replaces \"%s\" with \"${expectedPrefix}1.2.3\"`, async (version) => {\n const result = await changeVersionPrefix(version, expectedPrefix);\n expect(result).toEqual(`${expectedPrefix}1.2.3`);\n });\n it.each([\"workspace:1.2.3\", \"workspace:~1.2.3\", \"workspace:^1.2.3\"])(`replaces \"%s\" with \"${expectedPrefix}1.2.3\"`, async (version) => {\n const result = await changeVersionPrefix(version, expectedPrefix);\n expect(result).toEqual(`workspace:${expectedPrefix}1.2.3`);\n });\n it.each([\"workspace:*\", \"workspace:^\", \"workspace:~\"])(`replaces \"%s\" with \"workspace:${expectedPrefix}\"`, async (version) => {\n const result = await changeVersionPrefix(version, expectedPrefix);\n expect(result).toEqual(`workspace:${expectedPrefix}`);\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9DH,QAAQ,CAACG,mBAAmB,EAAE,MAAM;EAChC,MAAMC,cAAc,GAAG,GAAG;EAC1BF,EAAE,CAACG,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,uBAAuBD,cAAc,QAAQ,EAAE,MAAOE,OAAO,IAAK;IACrG,MAAMC,MAAM,GAAG,MAAMJ,mBAAmB,CAACG,OAAO,EAAEF,cAAc,CAAC;IACjEH,MAAM,CAACM,MAAM,CAAC,CAACC,OAAO,CAAC,GAAGJ,cAAc,OAAO,CAAC;EACpD,CAAC,CAAC;EACFF,EAAE,CAACG,IAAI,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,uBAAuBD,cAAc,QAAQ,EAAE,MAAOE,OAAO,IAAK;IACnI,MAAMC,MAAM,GAAG,MAAMJ,mBAAmB,CAACG,OAAO,EAAEF,cAAc,CAAC;IACjEH,MAAM,CAACM,MAAM,CAAC,CAACC,OAAO,CAAC,aAAaJ,cAAc,OAAO,CAAC;EAC9D,CAAC,CAAC;EACFF,EAAE,CAACG,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,iCAAiCD,cAAc,GAAG,EAAE,MAAOE,OAAO,IAAK;IAC1H,MAAMC,MAAM,GAAG,MAAMJ,mBAAmB,CAACG,OAAO,EAAEF,cAAc,CAAC;IACjEH,MAAM,CAACM,MAAM,CAAC,CAACC,OAAO,CAAC,aAAaJ,cAAc,EAAE,CAAC;EACzD,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencyVersionFromFindUpPackageJson.d.ts","sourceRoot":"","sources":["../../src/getDependencyVersionFromFindUpPackageJson.ts"],"names":[],"mappings":"AAmBA,wBAAsB,yCAAyC,CAC7D,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACrB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { readFile } from "fs/promises";
|
|
17
|
+
import invariant from "tiny-invariant";
|
|
18
|
+
export async function getDependencyVersionFromFindUpPackageJson(name, opts) {
|
|
19
|
+
const {
|
|
20
|
+
findUp
|
|
21
|
+
} = await import("find-up");
|
|
22
|
+
const packageJsonPath = await findUp("package.json", opts);
|
|
23
|
+
!(packageJsonPath !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not find package.json") : invariant(false) : void 0;
|
|
24
|
+
const packageJson = await readFile(packageJsonPath, {
|
|
25
|
+
encoding: "utf-8"
|
|
26
|
+
});
|
|
27
|
+
if (!packageJson) {
|
|
28
|
+
throw new Error(`Could not find package.json in current working directory: ${process.cwd()}`);
|
|
29
|
+
}
|
|
30
|
+
const parsedPackageJson = JSON.parse(packageJson);
|
|
31
|
+
const version = parsedPackageJson.dependencies?.[name] ?? parsedPackageJson.devDependencies?.[name] ?? parsedPackageJson.peerDependencies?.[name];
|
|
32
|
+
!(version !== undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Could not find a dependency for ${name} in ${packageJsonPath}`) : invariant(false) : void 0;
|
|
33
|
+
return version;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=getDependencyVersionFromFindUpPackageJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencyVersionFromFindUpPackageJson.js","names":["readFile","invariant","getDependencyVersionFromFindUpPackageJson","name","opts","findUp","packageJsonPath","undefined","process","env","NODE_ENV","packageJson","encoding","Error","cwd","parsedPackageJson","JSON","parse","version","dependencies","devDependencies","peerDependencies"],"sources":["getDependencyVersionFromFindUpPackageJson.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { readFile } from \"fs/promises\";\nimport invariant from \"tiny-invariant\";\nexport async function getDependencyVersionFromFindUpPackageJson(name, opts) {\n const { findUp } = await import(\"find-up\");\n const packageJsonPath = await findUp(\"package.json\", opts);\n invariant(packageJsonPath !== undefined, \"Could not find package.json\");\n const packageJson = await readFile(packageJsonPath, {\n encoding: \"utf-8\",\n });\n if (!packageJson) {\n throw new Error(`Could not find package.json in current working directory: ${process.cwd()}`);\n }\n const parsedPackageJson = JSON.parse(packageJson);\n const version = parsedPackageJson.dependencies?.[name]\n ?? parsedPackageJson.devDependencies?.[name]\n ?? parsedPackageJson.peerDependencies?.[name];\n invariant(version !== undefined, `Could not find a dependency for ${name} in ${packageJsonPath}`);\n return version;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,aAAa;AACtC,OAAOC,SAAS,MAAM,gBAAgB;AACtC,OAAO,eAAeC,yCAAyCA,CAACC,IAAI,EAAEC,IAAI,EAAE;EACxE,MAAM;IAAEC;EAAO,CAAC,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;EAC1C,MAAMC,eAAe,GAAG,MAAMD,MAAM,CAAC,cAAc,EAAED,IAAI,CAAC;EAC1D,EAAUE,eAAe,KAAKC,SAAS,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAvCT,SAAS,QAAgC,6BAA6B,IAAtEA,SAAS;EACT,MAAMU,WAAW,GAAG,MAAMX,QAAQ,CAACM,eAAe,EAAE;IAChDM,QAAQ,EAAE;EACd,CAAC,CAAC;EACF,IAAI,CAACD,WAAW,EAAE;IACd,MAAM,IAAIE,KAAK,CAAC,6DAA6DL,OAAO,CAACM,GAAG,CAAC,CAAC,EAAE,CAAC;EACjG;EACA,MAAMC,iBAAiB,GAAGC,IAAI,CAACC,KAAK,CAACN,WAAW,CAAC;EACjD,MAAMO,OAAO,GAAGH,iBAAiB,CAACI,YAAY,GAAGhB,IAAI,CAAC,IAC/CY,iBAAiB,CAACK,eAAe,GAAGjB,IAAI,CAAC,IACzCY,iBAAiB,CAACM,gBAAgB,GAAGlB,IAAI,CAAC;EACjD,EAAUe,OAAO,KAAKX,SAAS,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAA/BT,SAAS,QAAwB,mCAAmCE,IAAI,OAAOG,eAAe,EAAE,IAAhGL,SAAS;EACT,OAAOiB,OAAO;AAClB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencyVersionFromFindUpPackageJson.test.d.ts","sourceRoot":"","sources":["../../src/getDependencyVersionFromFindUpPackageJson.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import * as fs from "node:fs";
|
|
17
|
+
import { dirname } from "node:path";
|
|
18
|
+
import { fileURLToPath } from "node:url";
|
|
19
|
+
import { dirSync } from "tmp";
|
|
20
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
21
|
+
import { getDependencyVersionFromFindUpPackageJson } from "./getDependencyVersionFromFindUpPackageJson.js";
|
|
22
|
+
describe(getDependencyVersionFromFindUpPackageJson, () => {
|
|
23
|
+
const fakeDepName = "not_a_real_dep_you_would_ever_find";
|
|
24
|
+
const fakePeerDepName = "peer_not_a_real_dep_you_would_ever_find";
|
|
25
|
+
const fakeDevDepName = "dev_not_a_real_dep_you_would_ever_find";
|
|
26
|
+
const fakeDepVersion = "1.2.3";
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
const tmpDir = dirSync({
|
|
29
|
+
unsafeCleanup: true
|
|
30
|
+
});
|
|
31
|
+
const tmpDirName = tmpDir.name;
|
|
32
|
+
const oldCwd = process.cwd();
|
|
33
|
+
process.chdir(tmpDirName);
|
|
34
|
+
fs.writeFileSync("package.json", JSON.stringify({
|
|
35
|
+
dependencies: {
|
|
36
|
+
[fakeDepName]: `${fakeDepVersion}-${fakeDepName}`
|
|
37
|
+
},
|
|
38
|
+
peerDependencies: {
|
|
39
|
+
[fakePeerDepName]: `${fakeDepVersion}-${fakePeerDepName}`
|
|
40
|
+
},
|
|
41
|
+
devDependencies: {
|
|
42
|
+
[fakeDevDepName]: `${fakeDepVersion}-${fakeDevDepName}`
|
|
43
|
+
}
|
|
44
|
+
}));
|
|
45
|
+
return () => {
|
|
46
|
+
process.chdir(oldCwd);
|
|
47
|
+
tmpDir.removeCallback();
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
describe("inferring cwd", () => {
|
|
51
|
+
it.each([fakeDepName, fakePeerDepName, fakeDevDepName])("finds the tmp package.json and value for %s", async depName => {
|
|
52
|
+
await expect(getDependencyVersionFromFindUpPackageJson(depName)).resolves.toBe(`${fakeDepVersion}-${depName}`);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe("not inferring cwd", () => {
|
|
56
|
+
it.each([fakeDepName, fakePeerDepName, fakeDevDepName])("does not find the value for %s", async depName => {
|
|
57
|
+
await expect(getDependencyVersionFromFindUpPackageJson(depName, {
|
|
58
|
+
cwd: dirname(fileURLToPath(import.meta.url))
|
|
59
|
+
})).rejects.toThrowError(/^Invariant failed: Could not find a dependency/);
|
|
60
|
+
});
|
|
61
|
+
it("does find our typescript version", async () => {
|
|
62
|
+
await expect(getDependencyVersionFromFindUpPackageJson("typescript", {
|
|
63
|
+
cwd: dirname(fileURLToPath(import.meta.url))
|
|
64
|
+
})).resolves.toBeDefined();
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=getDependencyVersionFromFindUpPackageJson.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencyVersionFromFindUpPackageJson.test.js","names":["fs","dirname","fileURLToPath","dirSync","beforeEach","describe","expect","it","getDependencyVersionFromFindUpPackageJson","fakeDepName","fakePeerDepName","fakeDevDepName","fakeDepVersion","tmpDir","unsafeCleanup","tmpDirName","name","oldCwd","process","cwd","chdir","writeFileSync","JSON","stringify","dependencies","peerDependencies","devDependencies","removeCallback","each","depName","resolves","toBe","import","meta","url","rejects","toThrowError","toBeDefined"],"sources":["getDependencyVersionFromFindUpPackageJson.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as fs from \"node:fs\";\nimport { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { dirSync } from \"tmp\";\nimport { beforeEach, describe, expect, it } from \"vitest\";\nimport { getDependencyVersionFromFindUpPackageJson } from \"./getDependencyVersionFromFindUpPackageJson.js\";\ndescribe(getDependencyVersionFromFindUpPackageJson, () => {\n const fakeDepName = \"not_a_real_dep_you_would_ever_find\";\n const fakePeerDepName = \"peer_not_a_real_dep_you_would_ever_find\";\n const fakeDevDepName = \"dev_not_a_real_dep_you_would_ever_find\";\n const fakeDepVersion = \"1.2.3\";\n beforeEach(() => {\n const tmpDir = dirSync({ unsafeCleanup: true });\n const tmpDirName = tmpDir.name;\n const oldCwd = process.cwd();\n process.chdir(tmpDirName);\n fs.writeFileSync(\"package.json\", JSON.stringify({\n dependencies: {\n [fakeDepName]: `${fakeDepVersion}-${fakeDepName}`,\n },\n peerDependencies: {\n [fakePeerDepName]: `${fakeDepVersion}-${fakePeerDepName}`,\n },\n devDependencies: {\n [fakeDevDepName]: `${fakeDepVersion}-${fakeDevDepName}`,\n },\n }));\n return () => {\n process.chdir(oldCwd);\n tmpDir.removeCallback();\n };\n });\n describe(\"inferring cwd\", () => {\n it.each([fakeDepName, fakePeerDepName, fakeDevDepName])(\"finds the tmp package.json and value for %s\", async (depName) => {\n await expect(getDependencyVersionFromFindUpPackageJson(depName)).resolves.toBe(`${fakeDepVersion}-${depName}`);\n });\n });\n describe(\"not inferring cwd\", () => {\n it.each([fakeDepName, fakePeerDepName, fakeDevDepName])(\"does not find the value for %s\", async (depName) => {\n await expect(getDependencyVersionFromFindUpPackageJson(depName, {\n cwd: dirname(fileURLToPath(import.meta.url)),\n })).rejects.toThrowError(/^Invariant failed: Could not find a dependency/);\n });\n it(\"does find our typescript version\", async () => {\n await expect(getDependencyVersionFromFindUpPackageJson(\"typescript\", {\n cwd: dirname(fileURLToPath(import.meta.url)),\n })).resolves.toBeDefined();\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,KAAKA,EAAE,MAAM,SAAS;AAC7B,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,aAAa,QAAQ,UAAU;AACxC,SAASC,OAAO,QAAQ,KAAK;AAC7B,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SAASC,yCAAyC,QAAQ,gDAAgD;AAC1GH,QAAQ,CAACG,yCAAyC,EAAE,MAAM;EACtD,MAAMC,WAAW,GAAG,oCAAoC;EACxD,MAAMC,eAAe,GAAG,yCAAyC;EACjE,MAAMC,cAAc,GAAG,wCAAwC;EAC/D,MAAMC,cAAc,GAAG,OAAO;EAC9BR,UAAU,CAAC,MAAM;IACb,MAAMS,MAAM,GAAGV,OAAO,CAAC;MAAEW,aAAa,EAAE;IAAK,CAAC,CAAC;IAC/C,MAAMC,UAAU,GAAGF,MAAM,CAACG,IAAI;IAC9B,MAAMC,MAAM,GAAGC,OAAO,CAACC,GAAG,CAAC,CAAC;IAC5BD,OAAO,CAACE,KAAK,CAACL,UAAU,CAAC;IACzBf,EAAE,CAACqB,aAAa,CAAC,cAAc,EAAEC,IAAI,CAACC,SAAS,CAAC;MAC5CC,YAAY,EAAE;QACV,CAACf,WAAW,GAAG,GAAGG,cAAc,IAAIH,WAAW;MACnD,CAAC;MACDgB,gBAAgB,EAAE;QACd,CAACf,eAAe,GAAG,GAAGE,cAAc,IAAIF,eAAe;MAC3D,CAAC;MACDgB,eAAe,EAAE;QACb,CAACf,cAAc,GAAG,GAAGC,cAAc,IAAID,cAAc;MACzD;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,MAAM;MACTO,OAAO,CAACE,KAAK,CAACH,MAAM,CAAC;MACrBJ,MAAM,CAACc,cAAc,CAAC,CAAC;IAC3B,CAAC;EACL,CAAC,CAAC;EACFtB,QAAQ,CAAC,eAAe,EAAE,MAAM;IAC5BE,EAAE,CAACqB,IAAI,CAAC,CAACnB,WAAW,EAAEC,eAAe,EAAEC,cAAc,CAAC,CAAC,CAAC,6CAA6C,EAAE,MAAOkB,OAAO,IAAK;MACtH,MAAMvB,MAAM,CAACE,yCAAyC,CAACqB,OAAO,CAAC,CAAC,CAACC,QAAQ,CAACC,IAAI,CAAC,GAAGnB,cAAc,IAAIiB,OAAO,EAAE,CAAC;IAClH,CAAC,CAAC;EACN,CAAC,CAAC;EACFxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM;IAChCE,EAAE,CAACqB,IAAI,CAAC,CAACnB,WAAW,EAAEC,eAAe,EAAEC,cAAc,CAAC,CAAC,CAAC,gCAAgC,EAAE,MAAOkB,OAAO,IAAK;MACzG,MAAMvB,MAAM,CAACE,yCAAyC,CAACqB,OAAO,EAAE;QAC5DV,GAAG,EAAElB,OAAO,CAACC,aAAa,CAAC8B,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;MAC/C,CAAC,CAAC,CAAC,CAACC,OAAO,CAACC,YAAY,CAAC,gDAAgD,CAAC;IAC9E,CAAC,CAAC;IACF7B,EAAE,CAAC,kCAAkC,EAAE,YAAY;MAC/C,MAAMD,MAAM,CAACE,yCAAyC,CAAC,YAAY,EAAE;QACjEW,GAAG,EAAElB,OAAO,CAACC,aAAa,CAAC8B,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;MAC/C,CAAC,CAAC,CAAC,CAACJ,QAAQ,CAACO,WAAW,CAAC,CAAC;IAC9B,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { changeVersionPrefix } from "./changeVersionPrefix.js";
|
|
2
|
+
export { getDependencyVersionFromFindUpPackageJson } from "./getDependencyVersionFromFindUpPackageJson.js";
|
|
3
|
+
export { resolveDependenciesFromFindUp } from "./resolveDependenciesFromFindUp.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,yCAAyC,EAAE,MAAM,gDAAgD,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export { changeVersionPrefix } from "./changeVersionPrefix.js";
|
|
17
|
+
export { getDependencyVersionFromFindUpPackageJson } from "./getDependencyVersionFromFindUpPackageJson.js";
|
|
18
|
+
export { resolveDependenciesFromFindUp } from "./resolveDependenciesFromFindUp.js";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["changeVersionPrefix","getDependencyVersionFromFindUpPackageJson","resolveDependenciesFromFindUp"],"sources":["index.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { changeVersionPrefix } from \"./changeVersionPrefix.js\";\nexport { getDependencyVersionFromFindUpPackageJson } from \"./getDependencyVersionFromFindUpPackageJson.js\";\nexport { resolveDependenciesFromFindUp } from \"./resolveDependenciesFromFindUp.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,yCAAyC,QAAQ,gDAAgD;AAC1G,SAASC,6BAA6B,QAAQ,oCAAoC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves dependencies to their versions per our package.json if undefined.
|
|
3
|
+
* Sets the prefix to `^` for the version specified or read from package.json.
|
|
4
|
+
* @param deps
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveDependenciesFromFindUp(deps: {
|
|
8
|
+
[key: string]: string | undefined;
|
|
9
|
+
}, cwd: string): Promise<{
|
|
10
|
+
dependencyName: string;
|
|
11
|
+
dependencyVersion: string;
|
|
12
|
+
}[]>;
|
|
13
|
+
//# sourceMappingURL=resolveDependenciesFromFindUp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesFromFindUp.d.ts","sourceRoot":"","sources":["../../src/resolveDependenciesFromFindUp.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EAC3C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,EAAE,CAAC,CAoBH"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { changeVersionPrefix } from "./changeVersionPrefix.js";
|
|
17
|
+
import { getDependencyVersionFromFindUpPackageJson } from "./getDependencyVersionFromFindUpPackageJson.js";
|
|
18
|
+
/**
|
|
19
|
+
* Resolves dependencies to their versions per our package.json if undefined.
|
|
20
|
+
* Sets the prefix to `^` for the version specified or read from package.json.
|
|
21
|
+
* @param deps
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
export async function resolveDependenciesFromFindUp(deps, cwd) {
|
|
25
|
+
return await Promise.all(Object.entries(deps).map(async ([dependencyName, dependencyVersion]) => {
|
|
26
|
+
return {
|
|
27
|
+
dependencyName,
|
|
28
|
+
dependencyVersion: changeVersionPrefix(dependencyVersion ?? (await getDependencyVersionFromFindUpPackageJson(dependencyName, {
|
|
29
|
+
cwd
|
|
30
|
+
})), "^")
|
|
31
|
+
};
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=resolveDependenciesFromFindUp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesFromFindUp.js","names":["changeVersionPrefix","getDependencyVersionFromFindUpPackageJson","resolveDependenciesFromFindUp","deps","cwd","Promise","all","Object","entries","map","dependencyName","dependencyVersion"],"sources":["resolveDependenciesFromFindUp.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { changeVersionPrefix } from \"./changeVersionPrefix.js\";\nimport { getDependencyVersionFromFindUpPackageJson } from \"./getDependencyVersionFromFindUpPackageJson.js\";\n/**\n * Resolves dependencies to their versions per our package.json if undefined.\n * Sets the prefix to `^` for the version specified or read from package.json.\n * @param deps\n * @returns\n */\nexport async function resolveDependenciesFromFindUp(deps, cwd) {\n return await Promise.all(Object.entries(deps).map(async ([dependencyName, dependencyVersion]) => {\n return {\n dependencyName,\n dependencyVersion: changeVersionPrefix(dependencyVersion\n ?? await getDependencyVersionFromFindUpPackageJson(dependencyName, {\n cwd,\n }), \"^\"),\n };\n }));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,yCAAyC,QAAQ,gDAAgD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,6BAA6BA,CAACC,IAAI,EAAEC,GAAG,EAAE;EAC3D,OAAO,MAAMC,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,OAAO,CAACL,IAAI,CAAC,CAACM,GAAG,CAAC,OAAO,CAACC,cAAc,EAAEC,iBAAiB,CAAC,KAAK;IAC7F,OAAO;MACHD,cAAc;MACdC,iBAAiB,EAAEX,mBAAmB,CAACW,iBAAiB,KACjD,MAAMV,yCAAyC,CAACS,cAAc,EAAE;QAC/DN;MACJ,CAAC,CAAC,GAAE,GAAG;IACf,CAAC;EACL,CAAC,CAAC,CAAC;AACP","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesFromFindUp.test.d.ts","sourceRoot":"","sources":["../../src/resolveDependenciesFromFindUp.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { dirname } from "node:path";
|
|
17
|
+
import { fileURLToPath } from "node:url";
|
|
18
|
+
import { describe, expect, it } from "vitest";
|
|
19
|
+
import { resolveDependenciesFromFindUp } from "./resolveDependenciesFromFindUp.js";
|
|
20
|
+
describe(resolveDependenciesFromFindUp, () => {
|
|
21
|
+
describe("not provided a version", () => {
|
|
22
|
+
it("errors when it does not find a version", async () => {
|
|
23
|
+
await expect(resolveDependenciesFromFindUp({
|
|
24
|
+
not_a_real_dep_you_would_find: undefined
|
|
25
|
+
}, dirname(fileURLToPath(import.meta.url)))).rejects.toThrow(/^Invariant failed: Could not find a dependency for not_a_real_dep_you_would_find in (.*?)$/);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe("uses version passed to it", () => {
|
|
29
|
+
const expectedPrefix = "^";
|
|
30
|
+
it.each(["1.2.3", "~1.2.3", "^1.2.3"])(`replaces "%s" with "${expectedPrefix}1.2.3"`, async version => {
|
|
31
|
+
const result = await resolveDependenciesFromFindUp({
|
|
32
|
+
foo: version
|
|
33
|
+
}, dirname(fileURLToPath(import.meta.url)));
|
|
34
|
+
expect(result).toEqual([{
|
|
35
|
+
dependencyName: "foo",
|
|
36
|
+
dependencyVersion: `${expectedPrefix}1.2.3`
|
|
37
|
+
}]);
|
|
38
|
+
});
|
|
39
|
+
it.each(["workspace:1.2.3", "workspace:~1.2.3", "workspace:^1.2.3"])(`replaces "%s" with "${expectedPrefix}1.2.3"`, async version => {
|
|
40
|
+
const result = await resolveDependenciesFromFindUp({
|
|
41
|
+
foo: version
|
|
42
|
+
}, dirname(fileURLToPath(import.meta.url)));
|
|
43
|
+
expect(result).toEqual([{
|
|
44
|
+
dependencyName: "foo",
|
|
45
|
+
dependencyVersion: `workspace:${expectedPrefix}1.2.3`
|
|
46
|
+
}]);
|
|
47
|
+
});
|
|
48
|
+
it.each(["workspace:*", "workspace:^", "workspace:~"])(`replaces "%s" with "workspace:${expectedPrefix}"`, async version => {
|
|
49
|
+
const result = await resolveDependenciesFromFindUp({
|
|
50
|
+
foo: version
|
|
51
|
+
}, dirname(fileURLToPath(import.meta.url)));
|
|
52
|
+
expect(result).toEqual([{
|
|
53
|
+
dependencyName: "foo",
|
|
54
|
+
dependencyVersion: `workspace:${expectedPrefix}`
|
|
55
|
+
}]);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=resolveDependenciesFromFindUp.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveDependenciesFromFindUp.test.js","names":["dirname","fileURLToPath","describe","expect","it","resolveDependenciesFromFindUp","not_a_real_dep_you_would_find","undefined","import","meta","url","rejects","toThrow","expectedPrefix","each","version","result","foo","toEqual","dependencyName","dependencyVersion"],"sources":["resolveDependenciesFromFindUp.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { describe, expect, it } from \"vitest\";\nimport { resolveDependenciesFromFindUp } from \"./resolveDependenciesFromFindUp.js\";\ndescribe(resolveDependenciesFromFindUp, () => {\n describe(\"not provided a version\", () => {\n it(\"errors when it does not find a version\", async () => {\n await expect(resolveDependenciesFromFindUp({\n not_a_real_dep_you_would_find: undefined,\n }, dirname(fileURLToPath(import.meta.url)))).rejects.toThrow(/^Invariant failed: Could not find a dependency for not_a_real_dep_you_would_find in (.*?)$/);\n });\n });\n describe(\"uses version passed to it\", () => {\n const expectedPrefix = \"^\";\n it.each([\"1.2.3\", \"~1.2.3\", \"^1.2.3\"])(`replaces \"%s\" with \"${expectedPrefix}1.2.3\"`, async (version) => {\n const result = await resolveDependenciesFromFindUp({\n foo: version,\n }, dirname(fileURLToPath(import.meta.url)));\n expect(result).toEqual([\n {\n dependencyName: \"foo\",\n dependencyVersion: `${expectedPrefix}1.2.3`,\n },\n ]);\n });\n it.each([\"workspace:1.2.3\", \"workspace:~1.2.3\", \"workspace:^1.2.3\"])(`replaces \"%s\" with \"${expectedPrefix}1.2.3\"`, async (version) => {\n const result = await resolveDependenciesFromFindUp({\n foo: version,\n }, dirname(fileURLToPath(import.meta.url)));\n expect(result).toEqual([\n {\n dependencyName: \"foo\",\n dependencyVersion: `workspace:${expectedPrefix}1.2.3`,\n },\n ]);\n });\n it.each([\"workspace:*\", \"workspace:^\", \"workspace:~\"])(`replaces \"%s\" with \"workspace:${expectedPrefix}\"`, async (version) => {\n const result = await resolveDependenciesFromFindUp({\n foo: version,\n }, dirname(fileURLToPath(import.meta.url)));\n expect(result).toEqual([\n {\n dependencyName: \"foo\",\n dependencyVersion: `workspace:${expectedPrefix}`,\n },\n ]);\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,WAAW;AACnC,SAASC,aAAa,QAAQ,UAAU;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,6BAA6B,QAAQ,oCAAoC;AAClFH,QAAQ,CAACG,6BAA6B,EAAE,MAAM;EAC1CH,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACrCE,EAAE,CAAC,wCAAwC,EAAE,YAAY;MACrD,MAAMD,MAAM,CAACE,6BAA6B,CAAC;QACvCC,6BAA6B,EAAEC;MACnC,CAAC,EAAEP,OAAO,CAACC,aAAa,CAACO,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO,CAACC,OAAO,CAAC,4FAA4F,CAAC;IAC9J,CAAC,CAAC;EACN,CAAC,CAAC;EACFV,QAAQ,CAAC,2BAA2B,EAAE,MAAM;IACxC,MAAMW,cAAc,GAAG,GAAG;IAC1BT,EAAE,CAACU,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,uBAAuBD,cAAc,QAAQ,EAAE,MAAOE,OAAO,IAAK;MACrG,MAAMC,MAAM,GAAG,MAAMX,6BAA6B,CAAC;QAC/CY,GAAG,EAAEF;MACT,CAAC,EAAEf,OAAO,CAACC,aAAa,CAACO,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;MAC3CP,MAAM,CAACa,MAAM,CAAC,CAACE,OAAO,CAAC,CACnB;QACIC,cAAc,EAAE,KAAK;QACrBC,iBAAiB,EAAE,GAAGP,cAAc;MACxC,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;IACFT,EAAE,CAACU,IAAI,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,uBAAuBD,cAAc,QAAQ,EAAE,MAAOE,OAAO,IAAK;MACnI,MAAMC,MAAM,GAAG,MAAMX,6BAA6B,CAAC;QAC/CY,GAAG,EAAEF;MACT,CAAC,EAAEf,OAAO,CAACC,aAAa,CAACO,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;MAC3CP,MAAM,CAACa,MAAM,CAAC,CAACE,OAAO,CAAC,CACnB;QACIC,cAAc,EAAE,KAAK;QACrBC,iBAAiB,EAAE,aAAaP,cAAc;MAClD,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;IACFT,EAAE,CAACU,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,iCAAiCD,cAAc,GAAG,EAAE,MAAOE,OAAO,IAAK;MAC1H,MAAMC,MAAM,GAAG,MAAMX,6BAA6B,CAAC;QAC/CY,GAAG,EAAEF;MACT,CAAC,EAAEf,OAAO,CAACC,aAAa,CAACO,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;MAC3CP,MAAM,CAACa,MAAM,CAAC,CAACE,OAAO,CAAC,CACnB;QACIC,cAAc,EAAE,KAAK;QACrBC,iBAAiB,EAAE,aAAaP,cAAc;MAClD,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@osdk/generator-utils",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/palantir/osdk-ts.git"
|
|
8
|
+
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"browser": "./build/browser/index.js",
|
|
12
|
+
"import": "./build/esm/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./*": {
|
|
15
|
+
"browser": "./build/browser/public/*.js",
|
|
16
|
+
"import": "./build/esm/public/*.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"find-up": "^7.0.0",
|
|
21
|
+
"tiny-invariant": "^1.3.3"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/node": "^18.0.0",
|
|
25
|
+
"@types/tmp": "^0.2.6",
|
|
26
|
+
"tmp": "^0.2.3",
|
|
27
|
+
"typescript": "~5.5.4",
|
|
28
|
+
"@osdk/monorepo.tsconfig": "~0.0.0",
|
|
29
|
+
"@osdk/monorepo.api-extractor": "~0.0.0",
|
|
30
|
+
"@osdk/monorepo.tsup": "~0.0.0"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"build/cjs",
|
|
37
|
+
"build/esm",
|
|
38
|
+
"build/browser",
|
|
39
|
+
"CHANGELOG.md",
|
|
40
|
+
"package.json",
|
|
41
|
+
"templates",
|
|
42
|
+
"*.d.ts"
|
|
43
|
+
],
|
|
44
|
+
"module": "./build/esm/index.js",
|
|
45
|
+
"types": "./build/esm/index.d.ts",
|
|
46
|
+
"type": "module",
|
|
47
|
+
"scripts": {
|
|
48
|
+
"check-attw": "monorepo.tool.attw esm",
|
|
49
|
+
"check-spelling": "cspell --quiet .",
|
|
50
|
+
"clean": "rm -rf lib dist types build tsconfig.tsbuildinfo",
|
|
51
|
+
"fix-lint": "eslint . --fix && dprint fmt --config $(find-up dprint.json)",
|
|
52
|
+
"lint": "eslint . && dprint check --config $(find-up dprint.json)",
|
|
53
|
+
"transpile": "monorepo.tool.transpile"
|
|
54
|
+
}
|
|
55
|
+
}
|