feat(ql3): qualify plugin upgrades before activation

This commit is contained in:
whyour
2026-08-14 13:01:26 +08:00
parent 3ca9901055
commit 056eebef94
12 changed files with 691 additions and 64 deletions
@@ -11,9 +11,10 @@ import {
normalizePluginPackageResourceGeneration,
type PluginPackageResourceGeneration,
} from '@qinglong/runtime-core/plugin-package-resource-generation';
import type {
PluginPackageResourceByteReader,
PluginPackageResourceByteSource,
import {
PluginPackageResourceActivationPrerequisite,
type PluginPackageResourceByteReader,
type PluginPackageResourceByteSource,
} from '@qinglong/runtime-core/plugin-package-resource-materialization';
const STAGE_RECEIPT_SCHEMA = 'qinglong/plugin-package-stage-receipt@v1';
@@ -27,6 +28,15 @@ export interface LocalPluginPackageResourceByteSourceOptions {
readonly stagingRoot: string;
}
export type LocalPluginPackageResourceActivationPrerequisiteOptions =
ConstructorParameters<typeof PluginPackageResourceActivationPrerequisite>[0];
export function createLocalPluginPackageResourceActivationPrerequisite(
options: LocalPluginPackageResourceActivationPrerequisiteOptions,
): PluginPackageResourceActivationPrerequisite {
return new PluginPackageResourceActivationPrerequisite(options);
}
export class InvalidLocalPluginPackageResourceSourceError extends Error {
readonly code = 'LOCAL_PLUGIN_PACKAGE_RESOURCE_SOURCE_INVALID';