@pikku/addon-console 0.12.30 → 0.12.31
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/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
- package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
- package/dist/.pikku/addon/pikku-package.gen.js +1 -1
- package/dist/.pikku/agent/pikku-agent-map.gen.d.ts +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
- package/dist/.pikku/auth/auth.types.d.ts +1 -1
- package/dist/.pikku/auth/auth.types.js +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +2 -2
- package/dist/.pikku/function/pikku-functions.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
- package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-map.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/src/functions/install-addon.function.d.ts.map +1 -1
- package/dist/src/functions/install-addon.function.js +3 -20
- package/dist/src/functions/install-addon.function.js.map +1 -1
- package/dist/src/functions/install-openapi-addon.function.d.ts.map +1 -1
- package/dist/src/functions/install-openapi-addon.function.js +7 -17
- package/dist/src/functions/install-openapi-addon.function.js.map +1 -1
- package/dist/src/lib/resolve-package-manager.d.ts +20 -0
- package/dist/src/lib/resolve-package-manager.d.ts.map +1 -0
- package/dist/src/lib/resolve-package-manager.js +61 -0
- package/dist/src/lib/resolve-package-manager.js.map +1 -0
- package/dist/src/lib/resolve-package-manager.test.d.ts +2 -0
- package/dist/src/lib/resolve-package-manager.test.d.ts.map +1 -0
- package/dist/src/lib/resolve-package-manager.test.js +55 -0
- package/dist/src/lib/resolve-package-manager.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.89
|
|
3
3
|
*/
|
|
4
4
|
import { CoreAIAgent, PikkuAIMiddlewareHooks } from '@pikku/core/ai-agent';
|
|
5
5
|
import type { PikkuPermission, PikkuMiddleware, Services, PikkuFunctionConfig } from '../function/pikku-function-types.gen.js';
|
|
@@ -1032,7 +1032,7 @@
|
|
|
1032
1032
|
"InstallAddonOutput"
|
|
1033
1033
|
],
|
|
1034
1034
|
"expose": true,
|
|
1035
|
-
"implementationHash": "
|
|
1035
|
+
"implementationHash": "dd496aef288d982c",
|
|
1036
1036
|
"contractHash": "150c3c7624b8bd6d",
|
|
1037
1037
|
"inputHash": "b0a5b0d2",
|
|
1038
1038
|
"outputHash": "2d935d9a",
|
|
@@ -1058,7 +1058,7 @@
|
|
|
1058
1058
|
"InstallOpenapiAddonOutput"
|
|
1059
1059
|
],
|
|
1060
1060
|
"expose": true,
|
|
1061
|
-
"implementationHash": "
|
|
1061
|
+
"implementationHash": "3b7b6e96cda1474e",
|
|
1062
1062
|
"contractHash": "14be886e78457f29",
|
|
1063
1063
|
"inputHash": "e5c19fbd",
|
|
1064
1064
|
"outputHash": "9de4b0f5",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.89
|
|
3
3
|
*/
|
|
4
4
|
export { wireScope } from '@pikku/core/scope';
|
|
5
5
|
export type { CoreScopes, CoreScopeNode, FlatScope, ScopeDefinitionMeta, ScopeDefinitionsMeta } from '@pikku/core/scope';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.89
|
|
3
3
|
*/
|
|
4
4
|
import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
|
|
5
5
|
import secretsMeta from './pikku-secrets-meta.gen.json' with { type: 'json' };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.89
|
|
3
3
|
*/
|
|
4
4
|
export { wireVariable } from '@pikku/core/variable';
|
|
5
5
|
export type { CoreVariable, VariableDefinitionMeta, VariableDefinitionsMeta } from '@pikku/core/variable';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.89
|
|
3
3
|
*/
|
|
4
4
|
import { TypedVariablesService as CoreTypedVariablesService } from '@pikku/core/services';
|
|
5
5
|
import variablesMeta from './pikku-variables-meta.gen.json' with { type: 'json' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-addon.function.d.ts","sourceRoot":"","sources":["../../../src/functions/install-addon.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-addon.function.d.ts","sourceRoot":"","sources":["../../../src/functions/install-addon.function.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,YAAY;iBAER,MAAM;eACR,MAAM;cACP,MAAM;;aAEP,OAAO;aAAW,MAAM;;iBAJpB,MAAM;eACR,MAAM;cACP,MAAM;;aAEP,OAAO;aAAW,MAAM;;iBAJpB,MAAM;eACR,MAAM;cACP,MAAM;;aAEP,OAAO;aAAW,MAAM;4EA+FnC,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { BadRequestError, ConflictError, LocalEnvironmentOnlyError, } from '@pik
|
|
|
2
2
|
import { pikkuSessionlessFunc } from '#pikku';
|
|
3
3
|
import { findProjectRoot } from '../lib/find-project-root.js';
|
|
4
4
|
import { deriveInstanceOverrides, readAddonDeclaredNames, } from '../lib/derive-instance-overrides.js';
|
|
5
|
+
import { installArgs, resolvePackageManager, } from '../lib/resolve-package-manager.js';
|
|
5
6
|
export const installAddon = pikkuSessionlessFunc({
|
|
6
7
|
title: 'Install Addon',
|
|
7
8
|
description: 'Installs a community addon package and creates the wiring file.',
|
|
@@ -42,28 +43,10 @@ export const installAddon = pikkuSessionlessFunc({
|
|
|
42
43
|
throw new ConflictError(`An addon is already installed under the name "${namespace}". Pick a different instance name.`);
|
|
43
44
|
}
|
|
44
45
|
const pkg = version ? `${packageName}@${version}` : packageName;
|
|
45
|
-
const
|
|
46
|
-
'yarn.lock': 'yarn',
|
|
47
|
-
'pnpm-lock.yaml': 'pnpm',
|
|
48
|
-
'package-lock.json': 'npm',
|
|
49
|
-
'bun.lockb': 'bun',
|
|
50
|
-
};
|
|
51
|
-
let pm = 'yarn';
|
|
52
|
-
for (const [lock, name] of Object.entries(pmLock)) {
|
|
53
|
-
if (existsSync(join(rootDir, lock))) {
|
|
54
|
-
pm = name;
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
const installArgs = {
|
|
59
|
-
yarn: ['add', pkg],
|
|
60
|
-
npm: ['install', pkg],
|
|
61
|
-
pnpm: ['add', pkg],
|
|
62
|
-
bun: ['add', pkg],
|
|
63
|
-
};
|
|
46
|
+
const pm = resolvePackageManager(rootDir);
|
|
64
47
|
const cp = 'node:child_process';
|
|
65
48
|
const { execFileSync } = await import(cp);
|
|
66
|
-
execFileSync(pm, installArgs[pm], { cwd: rootDir, stdio: 'pipe' });
|
|
49
|
+
execFileSync(pm, installArgs[pm](pkg), { cwd: rootDir, stdio: 'pipe' });
|
|
67
50
|
// A second-or-later instance of the SAME package would otherwise resolve to
|
|
68
51
|
// the same secrets/variables/credentials as the first — namespace-scope the
|
|
69
52
|
// new one so the two instances stay isolated. The first instance keeps the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-addon.function.js","sourceRoot":"","sources":["../../../src/functions/install-addon.function.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,yBAAyB,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GAEvB,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"install-addon.function.js","sourceRoot":"","sources":["../../../src/functions/install-addon.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-openapi-addon.function.d.ts","sourceRoot":"","sources":["../../../src/functions/install-openapi-addon.function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-openapi-addon.function.d.ts","sourceRoot":"","sources":["../../../src/functions/install-openapi-addon.function.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB;UAEtB,MAAM;gBACA,MAAM;iBACL,QAAQ,GAAG,QAAQ,GAAG,QAAQ;;aAElC,OAAO;aAAW,MAAM;;UAJ3B,MAAM;gBACA,MAAM;iBACL,QAAQ,GAAG,QAAQ,GAAG,QAAQ;;aAElC,OAAO;aAAW,MAAM;;UAJ3B,MAAM;gBACA,MAAM;iBACL,QAAQ,GAAG,QAAQ,GAAG,QAAQ;;aAElC,OAAO;aAAW,MAAM;4EAqHnC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LocalEnvironmentOnlyError } from '@pikku/core/errors';
|
|
2
2
|
import { pikkuSessionlessFunc } from '#pikku';
|
|
3
3
|
import { findProjectRoot } from '../lib/find-project-root.js';
|
|
4
|
+
import { execPrefix, resolvePackageManager, } from '../lib/resolve-package-manager.js';
|
|
4
5
|
export const installOpenapiAddon = pikkuSessionlessFunc({
|
|
5
6
|
title: 'Install OpenAPI Addon',
|
|
6
7
|
description: 'Generates an addon from an OpenAPI spec, installs it into the workspace, and wires it up.',
|
|
@@ -53,36 +54,25 @@ export const installOpenapiAddon = pikkuSessionlessFunc({
|
|
|
53
54
|
if (credential) {
|
|
54
55
|
pikkuArgs.push('--credential', credential);
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
+
const pm = resolvePackageManager(rootDir);
|
|
58
|
+
const [runner, ...runnerArgs] = execPrefix[pm];
|
|
59
|
+
execFileSync(runner, [...runnerArgs, ...pikkuArgs], {
|
|
57
60
|
cwd: rootDir,
|
|
58
61
|
stdio: 'pipe',
|
|
59
62
|
timeout: 120_000,
|
|
60
63
|
});
|
|
61
|
-
const pmLock = {
|
|
62
|
-
'yarn.lock': 'yarn',
|
|
63
|
-
'pnpm-lock.yaml': 'pnpm',
|
|
64
|
-
'package-lock.json': 'npm',
|
|
65
|
-
'bun.lockb': 'bun',
|
|
66
|
-
};
|
|
67
|
-
let pm = 'yarn';
|
|
68
|
-
for (const [lock, pmName] of Object.entries(pmLock)) {
|
|
69
|
-
if (existsSync(join(rootDir, lock))) {
|
|
70
|
-
pm = pmName;
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
64
|
execFileSync(pm, ['install'], {
|
|
75
65
|
cwd: rootDir,
|
|
76
66
|
stdio: 'pipe',
|
|
77
67
|
timeout: 120_000,
|
|
78
68
|
});
|
|
79
|
-
execFileSync(
|
|
69
|
+
execFileSync(runner, [...runnerArgs, 'pikku', 'all'], {
|
|
80
70
|
cwd: addonPath,
|
|
81
71
|
stdio: 'pipe',
|
|
82
72
|
timeout: 120_000,
|
|
83
73
|
});
|
|
84
74
|
try {
|
|
85
|
-
execFileSync(
|
|
75
|
+
execFileSync(runner, [...runnerArgs, 'tsc'], {
|
|
86
76
|
cwd: addonPath,
|
|
87
77
|
stdio: 'pipe',
|
|
88
78
|
timeout: 120_000,
|
|
@@ -100,7 +90,7 @@ export const installOpenapiAddon = pikkuSessionlessFunc({
|
|
|
100
90
|
writeFileSync(wiringFile, `import { wireAddon } from '#pikku/pikku-types.gen.js'\n\nwireAddon({ name: '${name}', package: '@pikku/addon-${name}' })\n`, 'utf-8');
|
|
101
91
|
}
|
|
102
92
|
}
|
|
103
|
-
execFileSync(
|
|
93
|
+
execFileSync(runner, [...runnerArgs, 'pikku', 'all'], {
|
|
104
94
|
cwd: rootDir,
|
|
105
95
|
stdio: 'pipe',
|
|
106
96
|
timeout: 120_000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-openapi-addon.function.js","sourceRoot":"","sources":["../../../src/functions/install-openapi-addon.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"install-openapi-addon.function.js","sourceRoot":"","sources":["../../../src/functions/install-openapi-addon.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type PackageManager = 'bun' | 'yarn' | 'pnpm' | 'npm';
|
|
2
|
+
/** `<pm> <args...> <pkg>` for adding a dependency. */
|
|
3
|
+
export declare const installArgs: Record<PackageManager, (pkg: string) => string[]>;
|
|
4
|
+
/**
|
|
5
|
+
* How each package manager runs a locally-installed binary. `npx` only exists
|
|
6
|
+
* where npm does — a bun-only image (no node, no npm) has `bunx` and nothing
|
|
7
|
+
* else, so the runner has to follow the detected manager.
|
|
8
|
+
*/
|
|
9
|
+
export declare const execPrefix: Record<PackageManager, [string, ...string[]]>;
|
|
10
|
+
/**
|
|
11
|
+
* Which package manager runs in this project. `packageManager` in package.json
|
|
12
|
+
* (the corepack field) is authoritative — it states intent even before a
|
|
13
|
+
* lockfile exists, and a project can carry a stale lockfile from another tool.
|
|
14
|
+
* Lockfiles are the fallback, then npm, which every Node install ships with.
|
|
15
|
+
*
|
|
16
|
+
* Guessing wrong is not a soft failure: the install spawns a binary that isn't
|
|
17
|
+
* on PATH and the caller sees `Executable not found in $PATH: "yarn"`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolvePackageManager(rootDir: string): PackageManager;
|
|
20
|
+
//# sourceMappingURL=resolve-package-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-package-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/resolve-package-manager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;AAE5D,sDAAsD;AACtD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAKzE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAKpE,CAAA;AAWD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAqBrE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
/** `<pm> <args...> <pkg>` for adding a dependency. */
|
|
4
|
+
export const installArgs = {
|
|
5
|
+
bun: (pkg) => ['add', pkg],
|
|
6
|
+
yarn: (pkg) => ['add', pkg],
|
|
7
|
+
pnpm: (pkg) => ['add', pkg],
|
|
8
|
+
npm: (pkg) => ['install', pkg],
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* How each package manager runs a locally-installed binary. `npx` only exists
|
|
12
|
+
* where npm does — a bun-only image (no node, no npm) has `bunx` and nothing
|
|
13
|
+
* else, so the runner has to follow the detected manager.
|
|
14
|
+
*/
|
|
15
|
+
export const execPrefix = {
|
|
16
|
+
bun: ['bunx'],
|
|
17
|
+
yarn: ['yarn'],
|
|
18
|
+
pnpm: ['pnpm', 'exec'],
|
|
19
|
+
npm: ['npx'],
|
|
20
|
+
};
|
|
21
|
+
// bun.lock (bun >= 1.2, text) and bun.lockb (binary) are both valid.
|
|
22
|
+
const LOCKFILES = [
|
|
23
|
+
['bun.lock', 'bun'],
|
|
24
|
+
['bun.lockb', 'bun'],
|
|
25
|
+
['yarn.lock', 'yarn'],
|
|
26
|
+
['pnpm-lock.yaml', 'pnpm'],
|
|
27
|
+
['package-lock.json', 'npm'],
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Which package manager runs in this project. `packageManager` in package.json
|
|
31
|
+
* (the corepack field) is authoritative — it states intent even before a
|
|
32
|
+
* lockfile exists, and a project can carry a stale lockfile from another tool.
|
|
33
|
+
* Lockfiles are the fallback, then npm, which every Node install ships with.
|
|
34
|
+
*
|
|
35
|
+
* Guessing wrong is not a soft failure: the install spawns a binary that isn't
|
|
36
|
+
* on PATH and the caller sees `Executable not found in $PATH: "yarn"`.
|
|
37
|
+
*/
|
|
38
|
+
export function resolvePackageManager(rootDir) {
|
|
39
|
+
const pkgJsonPath = join(rootDir, 'package.json');
|
|
40
|
+
if (existsSync(pkgJsonPath)) {
|
|
41
|
+
try {
|
|
42
|
+
const declared = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'))
|
|
43
|
+
.packageManager;
|
|
44
|
+
// e.g. "bun@1.3.14", "yarn@4.5.0+sha224.abc"
|
|
45
|
+
const name = typeof declared === 'string' ? declared.split('@')[0] : null;
|
|
46
|
+
if (name && name in installArgs)
|
|
47
|
+
return name;
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
// A malformed root package.json is the project's problem, not ours —
|
|
51
|
+
// fall through to lockfile detection rather than failing the install.
|
|
52
|
+
console.warn(`Could not read packageManager from ${pkgJsonPath}:`, e);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
for (const [lock, pm] of LOCKFILES) {
|
|
56
|
+
if (existsSync(join(rootDir, lock)))
|
|
57
|
+
return pm;
|
|
58
|
+
}
|
|
59
|
+
return 'npm';
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=resolve-package-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-package-manager.js","sourceRoot":"","sources":["../../../src/lib/resolve-package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAsD;IAC5E,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;IAC1B,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;IAC3B,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC;CAC/B,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkD;IACvE,GAAG,EAAE,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,CAAC,KAAK,CAAC;CACb,CAAA;AAED,qEAAqE;AACrE,MAAM,SAAS,GAAoC;IACjD,CAAC,UAAU,EAAE,KAAK,CAAC;IACnB,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,mBAAmB,EAAE,KAAK,CAAC;CAC7B,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IACjD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;iBAC5D,cAAc,CAAA;YACjB,6CAA6C;YAC7C,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACzE,IAAI,IAAI,IAAI,IAAI,IAAI,WAAW;gBAAE,OAAO,IAAsB,CAAA;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qEAAqE;YACrE,sEAAsE;YACtE,OAAO,CAAC,IAAI,CAAC,sCAAsC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAA;IAChD,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-package-manager.test.d.ts","sourceRoot":"","sources":["../../../src/lib/resolve-package-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { strict as assert } from 'assert';
|
|
2
|
+
import { describe, test, beforeEach, afterEach } from 'node:test';
|
|
3
|
+
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { resolvePackageManager } from './resolve-package-manager.js';
|
|
7
|
+
describe('resolvePackageManager', () => {
|
|
8
|
+
let dir;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
dir = mkdtempSync(join(tmpdir(), 'pm-detect-'));
|
|
11
|
+
});
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
rmSync(dir, { recursive: true, force: true });
|
|
14
|
+
});
|
|
15
|
+
const writePkg = (pkg) => writeFileSync(join(dir, 'package.json'), JSON.stringify(pkg), 'utf-8');
|
|
16
|
+
test('reads the packageManager field', () => {
|
|
17
|
+
writePkg({ packageManager: 'bun@1.3.14' });
|
|
18
|
+
assert.equal(resolvePackageManager(dir), 'bun');
|
|
19
|
+
});
|
|
20
|
+
test('packageManager wins over a stale lockfile', () => {
|
|
21
|
+
writePkg({ packageManager: 'bun@1.3.14' });
|
|
22
|
+
writeFileSync(join(dir, 'yarn.lock'), '', 'utf-8');
|
|
23
|
+
assert.equal(resolvePackageManager(dir), 'bun');
|
|
24
|
+
});
|
|
25
|
+
test('detects bun from the text lockfile (bun >= 1.2)', () => {
|
|
26
|
+
writePkg({});
|
|
27
|
+
writeFileSync(join(dir, 'bun.lock'), '', 'utf-8');
|
|
28
|
+
assert.equal(resolvePackageManager(dir), 'bun');
|
|
29
|
+
});
|
|
30
|
+
test('detects bun from the binary lockfile', () => {
|
|
31
|
+
writeFileSync(join(dir, 'bun.lockb'), '', 'utf-8');
|
|
32
|
+
assert.equal(resolvePackageManager(dir), 'bun');
|
|
33
|
+
});
|
|
34
|
+
test('detects yarn, pnpm and npm from their lockfiles', () => {
|
|
35
|
+
for (const [lock, pm] of [
|
|
36
|
+
['yarn.lock', 'yarn'],
|
|
37
|
+
['pnpm-lock.yaml', 'pnpm'],
|
|
38
|
+
['package-lock.json', 'npm'],
|
|
39
|
+
]) {
|
|
40
|
+
const d = mkdtempSync(join(tmpdir(), 'pm-detect-'));
|
|
41
|
+
writeFileSync(join(d, lock), '', 'utf-8');
|
|
42
|
+
assert.equal(resolvePackageManager(d), pm);
|
|
43
|
+
rmSync(d, { recursive: true, force: true });
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
test('ignores an unknown packageManager and falls back', () => {
|
|
47
|
+
writePkg({ packageManager: 'cargo@1.0.0' });
|
|
48
|
+
writeFileSync(join(dir, 'pnpm-lock.yaml'), '', 'utf-8');
|
|
49
|
+
assert.equal(resolvePackageManager(dir), 'pnpm');
|
|
50
|
+
});
|
|
51
|
+
test('defaults to npm with no signals', () => {
|
|
52
|
+
assert.equal(resolvePackageManager(dir), 'npm');
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=resolve-package-manager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-package-manager.test.js","sourceRoot":"","sources":["../../../src/lib/resolve-package-manager.test.ts"],"names":[],"mappings":"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"}
|