@code-yeongyu/senpi 2026.7.9-2 → 2026.7.9
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/CHANGELOG.md +1 -25
- package/README.md +1 -1
- package/dist/cli/args.js +3 -3
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +2 -4
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/core/agent-session.d.ts +3 -18
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +36 -153
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +79 -54
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/builtin/goal/continuation.js +1 -1
- package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/index.js +0 -1
- package/dist/core/extensions/builtin/goal/index.js.map +1 -1
- package/dist/core/extensions/builtin/import-repro.d.ts.map +1 -1
- package/dist/core/extensions/builtin/import-repro.js +6 -100
- package/dist/core/extensions/builtin/import-repro.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/connection.d.ts +0 -1
- package/dist/core/extensions/builtin/mcp/connection.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/connection.js +0 -15
- package/dist/core/extensions/builtin/mcp/connection.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/service.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/service.js +1 -3
- package/dist/core/extensions/builtin/mcp/service.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -4
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +24 -30
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +3 -23
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-registry.d.ts +0 -3
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +3 -20
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/package-manager.d.ts +1 -4
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +26 -68
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/resource-loader.d.ts +2 -2
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +7 -6
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +2 -9
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -11
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +0 -5
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +0 -8
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts +0 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +3 -3
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +2 -2
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +0 -1
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +3 -34
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +24 -272
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +0 -4
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +2 -5
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +1 -3
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +6 -16
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +0 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +0 -10
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +0 -10
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +37 -261
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/print-mode.js +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +6 -6
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +3 -3
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/package-manager-cli.d.ts +2 -2
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +17 -64
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/clipboard-image.js +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/docs/extensions.md +9 -33
- package/docs/models.md +4 -4
- package/docs/packages.md +10 -7
- package/docs/rpc.md +3 -13
- package/docs/sdk.md +0 -22
- package/docs/settings.md +0 -1
- package/docs/usage.md +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/reload-runtime.ts +2 -2
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/README.md +1 -1
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +2 -37
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js +0 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js +0 -7
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +4 -18
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +37 -72
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +0 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +0 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js +0 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +1 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js +1 -4
- package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +195 -446
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts +0 -84
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js +0 -72
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js +4 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts +0 -63
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js +0 -54
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts +0 -84
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js +0 -72
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +63 -138
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +76 -136
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts +0 -77
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +0 -71
- package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts +44 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +45 -9
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts +44 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +45 -9
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts +44 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +45 -9
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +0 -3
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +1 -1
- package/node_modules/@earendil-works/pi-pty/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +1 -22
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/npm-shrinkwrap.json +14 -14
- package/package.json +6 -6
- package/dist/core/cache-stats.d.ts +0 -49
- package/dist/core/cache-stats.d.ts.map +0 -1
- package/dist/core/cache-stats.js +0 -101
- package/dist/core/cache-stats.js.map +0 -1
|
@@ -583,20 +583,6 @@ function applyPatterns(allPaths, patterns, baseDir) {
|
|
|
583
583
|
}
|
|
584
584
|
return new Set(result);
|
|
585
585
|
}
|
|
586
|
-
function applyAutoloadDisabledPatterns(allPaths, patterns, baseDir) {
|
|
587
|
-
const result = new Map();
|
|
588
|
-
for (const pattern of patterns) {
|
|
589
|
-
const target = pattern.slice(pattern.startsWith("+") || pattern.startsWith("-") || pattern.startsWith("!") ? 1 : 0);
|
|
590
|
-
const enabled = !pattern.startsWith("-") && !pattern.startsWith("!");
|
|
591
|
-
const exact = pattern.startsWith("+") || pattern.startsWith("-");
|
|
592
|
-
for (const filePath of allPaths) {
|
|
593
|
-
if (exact ? matchesAnyExactPattern(filePath, [target], baseDir) : matchesAnyPattern(filePath, [target], baseDir)) {
|
|
594
|
-
result.set(filePath, enabled);
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
return result;
|
|
599
|
-
}
|
|
600
586
|
export class DefaultPackageManager {
|
|
601
587
|
constructor(options) {
|
|
602
588
|
this.cwd = resolvePath(options.cwd);
|
|
@@ -973,67 +959,57 @@ export class DefaultPackageManager {
|
|
|
973
959
|
for (const { pkg, scope } of sources) {
|
|
974
960
|
const sourceStr = typeof pkg === "string" ? pkg : pkg.source;
|
|
975
961
|
const filter = typeof pkg === "object" ? pkg : undefined;
|
|
976
|
-
const
|
|
977
|
-
const resolvedSource = deltaBase?.source ?? sourceStr;
|
|
978
|
-
const resolvedScope = deltaBase?.scope ?? scope;
|
|
979
|
-
const parsed = this.parseSource(resolvedSource);
|
|
962
|
+
const parsed = this.parseSource(sourceStr);
|
|
980
963
|
const metadata = { source: sourceStr, scope, origin: "package" };
|
|
981
964
|
if (parsed.type === "local") {
|
|
982
|
-
const baseDir = this.getBaseDirForScope(
|
|
965
|
+
const baseDir = this.getBaseDirForScope(scope);
|
|
983
966
|
this.resolveLocalExtensionSource(parsed, accumulator, filter, metadata, baseDir);
|
|
984
967
|
continue;
|
|
985
968
|
}
|
|
986
969
|
const installMissing = async () => {
|
|
987
|
-
if (isOfflineModeEnabled())
|
|
970
|
+
if (isOfflineModeEnabled()) {
|
|
988
971
|
return false;
|
|
972
|
+
}
|
|
989
973
|
if (!onMissing) {
|
|
990
|
-
await this.installParsedSource(parsed,
|
|
974
|
+
await this.installParsedSource(parsed, scope);
|
|
991
975
|
return true;
|
|
992
976
|
}
|
|
993
|
-
const action = await onMissing(
|
|
977
|
+
const action = await onMissing(sourceStr);
|
|
994
978
|
if (action === "skip")
|
|
995
979
|
return false;
|
|
996
980
|
if (action === "error")
|
|
997
|
-
throw new Error(`Missing source: ${
|
|
998
|
-
await this.installParsedSource(parsed,
|
|
981
|
+
throw new Error(`Missing source: ${sourceStr}`);
|
|
982
|
+
await this.installParsedSource(parsed, scope);
|
|
999
983
|
return true;
|
|
1000
984
|
};
|
|
1001
985
|
if (parsed.type === "npm") {
|
|
1002
|
-
let installedPath = this.getNpmInstallPath(parsed,
|
|
986
|
+
let installedPath = this.getNpmInstallPath(parsed, scope);
|
|
1003
987
|
const needsInstall = !existsSync(installedPath) || !(await this.installedNpmMatchesConfiguredVersion(parsed, installedPath));
|
|
1004
988
|
if (needsInstall) {
|
|
1005
989
|
const installed = await installMissing();
|
|
1006
990
|
if (!installed)
|
|
1007
991
|
continue;
|
|
1008
|
-
installedPath = this.getNpmInstallPath(parsed,
|
|
992
|
+
installedPath = this.getNpmInstallPath(parsed, scope);
|
|
1009
993
|
}
|
|
1010
994
|
metadata.baseDir = installedPath;
|
|
1011
995
|
this.collectPackageResources(installedPath, accumulator, filter, metadata);
|
|
1012
996
|
continue;
|
|
1013
997
|
}
|
|
1014
998
|
if (parsed.type === "git") {
|
|
1015
|
-
const installedPath = this.getGitInstallPath(parsed,
|
|
999
|
+
const installedPath = this.getGitInstallPath(parsed, scope);
|
|
1016
1000
|
if (!existsSync(installedPath)) {
|
|
1017
1001
|
const installed = await installMissing();
|
|
1018
1002
|
if (!installed)
|
|
1019
1003
|
continue;
|
|
1020
1004
|
}
|
|
1021
|
-
else if (
|
|
1022
|
-
await this.refreshTemporaryGitSource(parsed,
|
|
1005
|
+
else if (scope === "temporary" && !parsed.pinned && !isOfflineModeEnabled()) {
|
|
1006
|
+
await this.refreshTemporaryGitSource(parsed, sourceStr);
|
|
1023
1007
|
}
|
|
1024
1008
|
metadata.baseDir = installedPath;
|
|
1025
1009
|
this.collectPackageResources(installedPath, accumulator, filter, metadata);
|
|
1026
1010
|
}
|
|
1027
1011
|
}
|
|
1028
1012
|
}
|
|
1029
|
-
findAutoloadDeltaBase(pkg, scope, sources) {
|
|
1030
|
-
if (scope !== "project" || typeof pkg !== "object" || pkg.autoload !== false)
|
|
1031
|
-
return undefined;
|
|
1032
|
-
const identity = this.getPackageIdentity(pkg.source, scope);
|
|
1033
|
-
const userEntry = sources.find((entry) => entry.scope === "user" &&
|
|
1034
|
-
this.getPackageIdentity(this.getPackageSourceString(entry.pkg), "user") === identity);
|
|
1035
|
-
return userEntry ? { source: this.getPackageSourceString(userEntry.pkg), scope: "user" } : undefined;
|
|
1036
|
-
}
|
|
1037
1013
|
resolveLocalExtensionSource(source, accumulator, filter, metadata, baseDir) {
|
|
1038
1014
|
const resolved = this.resolvePathFromBase(source.path, baseDir);
|
|
1039
1015
|
if (!existsSync(resolved)) {
|
|
@@ -1375,30 +1351,25 @@ export class DefaultPackageManager {
|
|
|
1375
1351
|
}
|
|
1376
1352
|
/**
|
|
1377
1353
|
* Dedupe packages: if same package identity appears in both global and project,
|
|
1378
|
-
* keep only the project one (project wins).
|
|
1379
|
-
* is a delta over the global entry, so both are kept (delta first).
|
|
1354
|
+
* keep only the project one (project wins).
|
|
1380
1355
|
*/
|
|
1381
1356
|
dedupePackages(packages) {
|
|
1382
|
-
const result = [];
|
|
1383
1357
|
const seen = new Map();
|
|
1384
1358
|
for (const entry of packages) {
|
|
1385
|
-
const
|
|
1386
|
-
const
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
continue;
|
|
1391
|
-
}
|
|
1392
|
-
const existing = result[index];
|
|
1393
|
-
if (existing?.scope === "project" && entry.scope === "user") {
|
|
1394
|
-
if (typeof existing.pkg === "object" && existing.pkg.autoload === false)
|
|
1395
|
-
result.push(entry);
|
|
1359
|
+
const sourceStr = typeof entry.pkg === "string" ? entry.pkg : entry.pkg.source;
|
|
1360
|
+
const identity = this.getPackageIdentity(sourceStr, entry.scope);
|
|
1361
|
+
const existing = seen.get(identity);
|
|
1362
|
+
if (!existing) {
|
|
1363
|
+
seen.set(identity, entry);
|
|
1396
1364
|
}
|
|
1397
|
-
else if (entry.scope === "project") {
|
|
1398
|
-
|
|
1365
|
+
else if (entry.scope === "project" && existing.scope === "user") {
|
|
1366
|
+
// Project wins over user
|
|
1367
|
+
seen.set(identity, entry);
|
|
1399
1368
|
}
|
|
1369
|
+
// If existing is project and new is global, keep existing (project)
|
|
1370
|
+
// If both are same scope, keep first one
|
|
1400
1371
|
}
|
|
1401
|
-
return
|
|
1372
|
+
return Array.from(seen.values());
|
|
1402
1373
|
}
|
|
1403
1374
|
parseNpmSpec(spec) {
|
|
1404
1375
|
const match = spec.match(/^(@?[^@]+(?:\/[^@]+)?)(?:@(.+))?$/);
|
|
@@ -1735,10 +1706,7 @@ export class DefaultPackageManager {
|
|
|
1735
1706
|
for (const resourceType of RESOURCE_TYPES) {
|
|
1736
1707
|
const patterns = filter[resourceType];
|
|
1737
1708
|
const target = this.getTargetMap(accumulator, resourceType);
|
|
1738
|
-
if (
|
|
1739
|
-
this.applyPackageDeltaFilter(packageRoot, patterns ?? [], resourceType, target, metadata);
|
|
1740
|
-
}
|
|
1741
|
-
else if (patterns !== undefined) {
|
|
1709
|
+
if (patterns !== undefined) {
|
|
1742
1710
|
this.applyPackageFilter(packageRoot, patterns, resourceType, target, metadata);
|
|
1743
1711
|
}
|
|
1744
1712
|
else {
|
|
@@ -1801,16 +1769,6 @@ export class DefaultPackageManager {
|
|
|
1801
1769
|
this.addResource(target, f, metadata, enabled);
|
|
1802
1770
|
}
|
|
1803
1771
|
}
|
|
1804
|
-
applyPackageDeltaFilter(packageRoot, userPatterns, resourceType, target, metadata) {
|
|
1805
|
-
if (userPatterns.length === 0) {
|
|
1806
|
-
return;
|
|
1807
|
-
}
|
|
1808
|
-
const { allFiles } = this.collectManifestFiles(packageRoot, resourceType);
|
|
1809
|
-
const enabledByUser = applyAutoloadDisabledPatterns(allFiles, userPatterns, packageRoot);
|
|
1810
|
-
for (const [filePath, enabled] of enabledByUser) {
|
|
1811
|
-
this.addResource(target, filePath, metadata, enabled);
|
|
1812
|
-
}
|
|
1813
|
-
}
|
|
1814
1772
|
/**
|
|
1815
1773
|
* Collect all files from a package for a resource type, applying manifest patterns.
|
|
1816
1774
|
* Returns { allFiles, enabledByManifest } where enabledByManifest is the set of files
|