/** * shims/pinia.ts —— 'pinia' 模块名 → UMD 全局 Pinia 的唯一胶水层(README §3.3-1)。 * * 存在理由:SFC 模板编译器(@vitejs/plugin-vue)产物内部会生成 * 'import { X } from "pinia"' 这类模块名 import,vite define 无法改写模块名(只处理裸标识符), * 故 vite.config 的 alias 将 'pinia' 重定向到本文件。 * * 关键实现(保证 dist 不含框架运行时): * - import type 仅取 ESM 命名空间类型(编译期擦除,不进产物); * - 运行时值全部取自 globalThis.Pinia(index.html 引入的 UMD 全局); * - 编译后只剩"取全局 + 转发"代码,框架本体不进 dist。 * * 本文件由 scripts/gen-shims.cjs 生成(导出清单来自当前安装版本,跳过 ESM 类型未声明的 SSR/compat 边缘键); * 框架升级(README §1.5 五步流程)时须重新生成并按 typecheck 报错维护排除清单。 * 纪律:shims/ 是全项目唯一允许出现框架模块名的目录。 */ import type * as PINIA_NS from 'pinia'; /** 运行时框架全局(index.html 按序注入;经 unknown 收窄为 ESM 命名空间类型) */ const V: typeof PINIA_NS = (globalThis as unknown as { Pinia: typeof PINIA_NS }).Pinia; // eslint-disable-next-line import/no-mutable-exports export const MutationType = V.MutationType; // eslint-disable-next-line import/no-mutable-exports export const PiniaVuePlugin = V.PiniaVuePlugin; // eslint-disable-next-line import/no-mutable-exports export const acceptHMRUpdate = V.acceptHMRUpdate; // eslint-disable-next-line import/no-mutable-exports export const createPinia = V.createPinia; // eslint-disable-next-line import/no-mutable-exports export const defineStore = V.defineStore; // eslint-disable-next-line import/no-mutable-exports export const disposePinia = V.disposePinia; // eslint-disable-next-line import/no-mutable-exports export const getActivePinia = V.getActivePinia; // eslint-disable-next-line import/no-mutable-exports export const mapActions = V.mapActions; // eslint-disable-next-line import/no-mutable-exports export const mapGetters = V.mapGetters; // eslint-disable-next-line import/no-mutable-exports export const mapState = V.mapState; // eslint-disable-next-line import/no-mutable-exports export const mapStores = V.mapStores; // eslint-disable-next-line import/no-mutable-exports export const mapWritableState = V.mapWritableState; // eslint-disable-next-line import/no-mutable-exports export const setActivePinia = V.setActivePinia; // eslint-disable-next-line import/no-mutable-exports export const setMapStoreSuffix = V.setMapStoreSuffix; // eslint-disable-next-line import/no-mutable-exports export const shouldHydrate = V.shouldHydrate; // eslint-disable-next-line import/no-mutable-exports export const skipHydrate = V.skipHydrate; // eslint-disable-next-line import/no-mutable-exports export const storeToRefs = V.storeToRefs;