cogsbox-state 0.5.488 → 0.5.489

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/plugins.d.ts CHANGED
@@ -34,7 +34,7 @@ export type ChainMethodDefinition<THandler extends ChainMethodHandler = ChainMet
34
34
  export type ChainMethodDefinitions = Record<string, ChainMethodDefinition<any>>;
35
35
  type ChainMethodCallable<THandler> = THandler extends (ctx: any, ...args: infer TArgs) => infer TReturn ? (...args: TArgs) => TReturn : never;
36
36
  export type ChainMethodCallables<TMethods> = {
37
- [K in keyof TMethods]: TMethods[K] extends ChainMethodDefinition<infer TFn> ? ChainMethodCallable<TFn> : never;
37
+ [K in keyof TMethods as K extends string ? `$${K}` : never]: TMethods[K] extends ChainMethodDefinition<infer TFn> ? ChainMethodCallable<TFn> : never;
38
38
  };
39
39
  export type KeyedTypes<TMap extends Record<string, any>> = {
40
40
  __key: 'keyed';
@@ -203,7 +203,7 @@ type ZodObjOutput<T extends z.ZodObject<any>> = {
203
203
  [K in keyof T['shape']]: z.output<T['shape'][K]>;
204
204
  };
205
205
  type OutputOf<T extends z.ZodTypeAny> = T extends z.ZodObject<any> ? Prettify<ZodObjOutput<T>> : z.output<T>;
206
- type MethodFactory = <THandler extends ChainMethodHandler>(handler: THandler) => ChainMethodDefinition<THandler>;
206
+ type MethodFactory = <TArgs extends any[], TReturn>(handler: (ctx: ChainMethodContext<any, any>, ...args: TArgs) => TReturn) => ChainMethodDefinition<(ctx: ChainMethodContext<any, any>, ...args: TArgs) => TReturn>;
207
207
  type PathMethodFactory = MethodFactory & {
208
208
  array: MethodFactory;
209
209
  object: MethodFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sources":["../src/plugins.ts"],"sourcesContent":["import { z } from 'zod';\r\nimport type { ReactNode, RefObject } from 'react';\r\nimport { StateObject, UpdateTypeDetail } from './CogsState';\r\nimport {\r\n getGlobalStore,\r\n getAllFieldElements,\r\n setAllFieldsDisabled,\r\n} from './store';\r\nimport { ClientActivityEvent } from './pluginStore';\r\n\r\ntype Prettify<T> = { [K in keyof T]: T[K] } & {};\r\n\r\nexport type ChainMethodTarget =\r\n | 'any'\r\n | 'array'\r\n | 'object'\r\n | 'primitive'\r\n | 'boolean';\r\n\r\nexport type ChainMethodContext<TOptions = any, THookReturn = any> = {\r\n stateKey: string;\r\n path: string[];\r\n pluginName: string;\r\n options: TOptions | undefined;\r\n hookData?: THookReturn;\r\n $get: () => any;\r\n $update: (payload: any) => { synced: () => void };\r\n $applyOperation: (operation: any, metaData?: Record<string, any>) => void;\r\n getFieldMetaData: () => any;\r\n setFieldMetaData: (data: Record<string, any>) => void;\r\n removeFieldMetaData: () => void;\r\n getFieldRefs: () => RefObject<any>[];\r\n getFieldElements: () => HTMLElement[];\r\n setFieldDisabled: (disabled: boolean) => void;\r\n};\r\n\r\nexport type ChainMethodHandler = (\r\n ctx: ChainMethodContext<any, any>,\r\n ...args: any[]\r\n) => any;\r\n\r\nexport type ChainMethodDefinition<\r\n THandler extends ChainMethodHandler = ChainMethodHandler,\r\n> = {\r\n target: ChainMethodTarget;\r\n pathPattern?: string[];\r\n handler: THandler;\r\n};\r\n\r\nexport type ChainMethodDefinitions = Record<string, ChainMethodDefinition<any>>;\r\n\r\ntype ChainMethodCallable<THandler> = THandler extends (\r\n ctx: any,\r\n ...args: infer TArgs\r\n) => infer TReturn\r\n ? (...args: TArgs) => TReturn\r\n : never;\r\n\r\nexport type ChainMethodCallables<TMethods> = {\r\n [K in keyof TMethods]: TMethods[K] extends ChainMethodDefinition<infer TFn>\r\n ? ChainMethodCallable<TFn>\r\n : never;\r\n};\r\n\r\nexport type KeyedTypes<TMap extends Record<string, any>> = {\r\n __key: 'keyed';\r\n map: TMap;\r\n};\r\n\r\nexport const keyedSchema = <TMap extends Record<string, any>>() =>\r\n z.object({\r\n __key: z.literal('keyed'),\r\n map: z.any(),\r\n }) as z.ZodType<KeyedTypes<TMap>>;\r\n\r\n// Helpers: turn a zod object shape into its inferred value shape\r\ntype InferZodObject<T extends Record<string, z.ZodTypeAny>> = {\r\n [K in keyof T]: z.infer<T[K]>;\r\n};\r\nexport type InferPerKeyValueMap<\r\n TMap extends Record<string, Record<string, z.ZodTypeAny>>,\r\n> = {\r\n [K in keyof TMap]: InferZodObject<TMap[K]>;\r\n};\r\n\r\n// Deconstructed cogs methods (no TState)\r\ntype DeconstructedCogsMethods<TStateSlice = any> = {\r\n initialiseState: (data: TStateSlice) => void;\r\n initialiseShadowState: (data: any) => void;\r\n applyOperation: (patch: any, meta?: { dontUpdate?: boolean }) => void;\r\n addZodErrors: (errors: any[]) => void;\r\n clearZodErrors: (paths: string[][]) => void;\r\n getState: () => TStateSlice;\r\n setOptions: (options: any) => void;\r\n};\r\n\r\nexport function toDeconstructedMethods(stateHandler: StateObject<any>) {\r\n return {\r\n initialiseState: (data: any) => {\r\n stateHandler.$update(data);\r\n },\r\n initialiseShadowState: (data: any) => {\r\n stateHandler.$initializeAndMergeShadowState(data);\r\n },\r\n applyOperation: (patch: any, meta?: { dontUpdate?: boolean }) =>\r\n stateHandler.$applyOperation(patch, meta),\r\n addZodErrors: (errors: any[]) => stateHandler.$addZodValidation(errors),\r\n clearZodErrors: (paths: string[][]) =>\r\n stateHandler.$clearZodValidationPaths(paths),\r\n getState: () => stateHandler.$get(),\r\n setOptions: (opts: any) => {\r\n stateHandler.$setOptions(opts);\r\n },\r\n };\r\n}\r\ntype ScopedMetadataMethods<TFieldMetaData> = {\r\n getFieldMetaData: () => TFieldMetaData | undefined;\r\n setFieldMetaData: (data: Partial<TFieldMetaData>) => void;\r\n removeFieldMetaData: () => void;\r\n getFieldRefs: () => RefObject<any>[];\r\n getFieldElements: () => HTMLElement[];\r\n setFieldDisabled: (disabled: boolean) => void;\r\n};\r\n\r\n// These are the existing global methods that still require a path.\r\ntype GlobalMetadataMethods<TFieldMetaData> = {\r\n getFieldMetaData: (path: string[]) => TFieldMetaData | undefined;\r\n setFieldMetaData: (path: string[], data: Partial<TFieldMetaData>) => void;\r\n removeFieldMetaData: (path: string[]) => void;\r\n getFieldRefs: (path: string[]) => RefObject<any>[];\r\n getFieldElements: (path: string[]) => HTMLElement[];\r\n setFieldDisabled: (path: string[], disabled: boolean) => void;\r\n getAllFieldElements: () => HTMLElement[];\r\n setAllFieldsDisabled: (disabled: boolean) => void;\r\n};\r\n// Simplified: All params use the same TFieldMetaData type\r\nexport type UseHookParams<\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = DeconstructedCogsMethods<TStateSlice> &\r\n GlobalMetadataMethods<TFieldMetaData> & {\r\n stateKey: string;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n options: TOptions;\r\n pluginName: string;\r\n isInitialMount: boolean;\r\n };\r\n\r\nexport type TransformStateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = DeconstructedCogsMethods<TStateSlice> &\r\n GlobalMetadataMethods<TFieldMetaData> & {\r\n stateKey: string;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n options: TOptions;\r\n hookData?: THookReturn;\r\n previousState?: TStateSlice;\r\n isInitialTransform: boolean;\r\n pluginName: string;\r\n };\r\n\r\nexport type OnUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = DeconstructedCogsMethods<TStateSlice> &\r\n ScopedMetadataMethods<TFieldMetaData> & {\r\n stateKey: string;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n update: UpdateTypeDetail;\r\n path?: string[];\r\n\r\n options: TOptions;\r\n hookData?: THookReturn;\r\n\r\n previousValue?: any;\r\n nextValue?: any;\r\n updateSource?: 'user' | 'plugin' | 'system';\r\n\r\n pluginName: string;\r\n };\r\nexport type OnFormUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = DeconstructedCogsMethods<TStateSlice> &\r\n ScopedMetadataMethods<TFieldMetaData> & {\r\n stateKey: string;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n path: string[];\r\n event: ClientActivityEvent; // Update this to use the full event type\r\n\r\n options: TOptions;\r\n hookData?: THookReturn;\r\n\r\n formState?: 'pristine' | 'dirty' | 'submitting' | 'submitted';\r\n pluginName: string;\r\n };\r\n\r\nexport type FormWrapperParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = ScopedMetadataMethods<TFieldMetaData> & {\r\n element: ReactNode;\r\n path: string[];\r\n stateKey: string;\r\n options: TOptions;\r\n hookData?: THookReturn;\r\n fieldType?: string;\r\n wrapperDepth?: number;\r\n\r\n // Deconstructed methods\r\n initialiseState: (data: TStateSlice) => void;\r\n initialiseShadowState: (data: any) => void;\r\n applyOperation: (patch: any, meta?: { dontUpdate?: boolean }) => void;\r\n addZodErrors: (errors: any[]) => void;\r\n getState: () => TStateSlice;\r\n setOptions: (options: any) => void;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n pluginName: string;\r\n};\r\n\r\n// Unified plugin definition\r\nexport type CogsPlugin<\r\n TName extends string,\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TChainMethods extends ChainMethodDefinitions = {},\r\n TInitialState extends Record<string, unknown> = {},\r\n> = {\r\n name: TName;\r\n\r\n initialState?: () => TInitialState;\r\n\r\n useHook?: (\r\n params: UseHookParams<TOptions, TPluginMetaData, TFieldMetaData, any>\r\n ) => THookReturn;\r\n\r\n transformState?: (\r\n params: TransformStateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n ) => void;\r\n\r\n onUpdate?: (\r\n params: OnUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n ) => void;\r\n\r\n onFormUpdate?: (\r\n params: OnFormUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n ) => void;\r\n\r\n formWrapper?: (\r\n params: FormWrapperParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n ) => ReactNode;\r\n\r\n chainMethods?: TChainMethods;\r\n};\r\n\r\n// Metadata helpers\r\nexport function createMetadataContext<TPluginMetaData, TFieldMetaData>(\r\n stateKey: string,\r\n pluginName: string\r\n) {\r\n return {\r\n getPluginMetaData: (): TPluginMetaData | undefined =>\r\n getGlobalStore\r\n .getState()\r\n .getPluginMetaDataMap(stateKey, [])\r\n ?.get(pluginName) as TPluginMetaData | undefined,\r\n\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) =>\r\n getGlobalStore\r\n .getState()\r\n .setPluginMetaData(stateKey, [], pluginName, data),\r\n\r\n removePluginMetaData: () =>\r\n getGlobalStore.getState().removePluginMetaData(stateKey, [], pluginName),\r\n\r\n getFieldMetaData: (path: string[]): TFieldMetaData | undefined =>\r\n getGlobalStore\r\n .getState()\r\n .getPluginMetaDataMap(stateKey, path)\r\n ?.get(pluginName) as TFieldMetaData | undefined,\r\n\r\n setFieldMetaData: (path: string[], data: Partial<TFieldMetaData>) =>\r\n getGlobalStore\r\n .getState()\r\n .setPluginMetaData(stateKey, path, pluginName, data),\r\n\r\n removeFieldMetaData: (path: string[]) =>\r\n getGlobalStore\r\n .getState()\r\n .removePluginMetaData(stateKey, path, pluginName),\r\n getFieldRefs: (path: string[]): RefObject<any>[] => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return [];\r\n const refs: RefObject<any>[] = [];\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n if (entry.domRef?.current) refs.push(entry.domRef);\r\n });\r\n return refs;\r\n },\r\n\r\n getFieldElements: (path: string[]): HTMLElement[] => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return [];\r\n const elements: HTMLElement[] = [];\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n if (entry.domRef?.current) elements.push(entry.domRef.current);\r\n });\r\n return elements;\r\n },\r\n\r\n setFieldDisabled: (path: string[], disabled: boolean) => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return;\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n const el = entry.domRef?.current;\r\n if (!el) return;\r\n if ('disabled' in el) el.disabled = disabled;\r\n else {\r\n el.style.pointerEvents = disabled ? 'none' : '';\r\n el.setAttribute('aria-disabled', String(disabled));\r\n }\r\n });\r\n },\r\n getAllFieldElements: (): HTMLElement[] => {\r\n return getAllFieldElements(stateKey);\r\n },\r\n\r\n setAllFieldsDisabled: (disabled: boolean): void =>\r\n setAllFieldsDisabled(stateKey, disabled),\r\n };\r\n}\r\n\r\nexport function createScopedMetadataContext<TPluginMetaData, TFieldMetaData>(\r\n stateKey: string,\r\n pluginName: string,\r\n path: string[]\r\n) {\r\n const globalContext = createMetadataContext<TPluginMetaData, TFieldMetaData>(\r\n stateKey,\r\n pluginName\r\n );\r\n\r\n return {\r\n ...globalContext,\r\n getFieldMetaData: (): TFieldMetaData | undefined =>\r\n globalContext.getFieldMetaData(path),\r\n setFieldMetaData: (data: Partial<TFieldMetaData>) =>\r\n globalContext.setFieldMetaData(path, data),\r\n removeFieldMetaData: () => globalContext.removeFieldMetaData(path),\r\n\r\n // NEW: Direct access to the DOM refs for this field\r\n getFieldRefs: (): RefObject<any>[] => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return [];\r\n const refs: RefObject<any>[] = [];\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n if (entry.domRef?.current) {\r\n refs.push(entry.domRef);\r\n }\r\n });\r\n return refs;\r\n },\r\n\r\n getFieldElements: (): HTMLElement[] => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return [];\r\n const elements: HTMLElement[] = [];\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n if (entry.domRef?.current) {\r\n elements.push(entry.domRef.current);\r\n }\r\n });\r\n return elements;\r\n },\r\n\r\n setFieldDisabled: (disabled: boolean) => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return;\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n const el = entry.domRef?.current;\r\n if (!el) return;\r\n if ('disabled' in el) {\r\n el.disabled = disabled;\r\n } else {\r\n el.style.pointerEvents = disabled ? 'none' : '';\r\n el.setAttribute('aria-disabled', String(disabled));\r\n }\r\n });\r\n },\r\n };\r\n}\r\n// Add this type export - derives from what createScopedMetadataContext returns\r\nexport type ScopedMetadataContext<TFieldMetaData = any> = {\r\n getFieldMetaData: () => TFieldMetaData | undefined;\r\n setFieldMetaData: (data: Partial<TFieldMetaData>) => void;\r\n removeFieldMetaData: () => void;\r\n};\r\n\r\n// Type for a single plugin's API entry in ValidationWrapper\r\nexport type PluginApiEntry<THookData = any, TFieldMetaData = any> = {\r\n hookData: THookData | undefined;\r\n} & ScopedMetadataContext<TFieldMetaData>;\r\n\r\n// Type for the entire plugins API object passed to validation render prop\r\nexport type PluginsApi = Record<string, PluginApiEntry>;\r\ntype ZodObjOutput<T extends z.ZodObject<any>> = {\r\n [K in keyof T['shape']]: z.output<T['shape'][K]>;\r\n};\r\ntype OutputOf<T extends z.ZodTypeAny> =\r\n T extends z.ZodObject<any> ? Prettify<ZodObjOutput<T>> : z.output<T>;\r\n\r\ntype MethodFactory = <THandler extends ChainMethodHandler>(\r\n handler: THandler\r\n) => ChainMethodDefinition<THandler>;\r\n\r\ntype PathMethodFactory = MethodFactory & {\r\n array: MethodFactory;\r\n object: MethodFactory;\r\n primitive: MethodFactory;\r\n boolean: MethodFactory;\r\n field: MethodFactory;\r\n};\r\n\r\ntype MethodsBuilderParams = {\r\n path: (selector: (state: any) => any) => PathMethodFactory;\r\n array: MethodFactory;\r\n object: MethodFactory;\r\n primitive: MethodFactory;\r\n boolean: MethodFactory;\r\n field: MethodFactory;\r\n};\r\n\r\nconst createMethodDefinition =\r\n (target: ChainMethodTarget, pathPattern?: string[]): MethodFactory =>\r\n (handler) => ({\r\n target,\r\n pathPattern,\r\n handler,\r\n });\r\n\r\nconst createPathRecorder = () => {\r\n const path: string[] = [];\r\n\r\n const recorder = new Proxy(\r\n {},\r\n {\r\n get(_target, prop) {\r\n if (typeof prop !== 'string') return recorder;\r\n if (prop === 'then') return undefined;\r\n path.push(prop === '$' ? '*' : prop);\r\n return recorder;\r\n },\r\n }\r\n );\r\n\r\n return { recorder, path };\r\n};\r\n\r\nconst createMethodsBuilderParams = (): MethodsBuilderParams => {\r\n const path = (selector: (state: any) => any): PathMethodFactory => {\r\n const { recorder, path: pathPattern } = createPathRecorder();\r\n selector(recorder);\r\n\r\n const base = createMethodDefinition(\r\n 'any',\r\n pathPattern\r\n ) as PathMethodFactory;\r\n base.array = createMethodDefinition('array', pathPattern);\r\n base.object = createMethodDefinition('object', pathPattern);\r\n base.primitive = createMethodDefinition('primitive', pathPattern);\r\n base.boolean = createMethodDefinition('boolean', pathPattern);\r\n base.field = createMethodDefinition('any', pathPattern);\r\n\r\n return base;\r\n };\r\n\r\n return {\r\n path,\r\n array: createMethodDefinition('array'),\r\n object: createMethodDefinition('object'),\r\n primitive: createMethodDefinition('primitive'),\r\n boolean: createMethodDefinition('boolean'),\r\n field: createMethodDefinition('any'),\r\n };\r\n};\r\n// --- EXTRACTED BUILDER TYPES (Solves TS7056 Serialization Error) ---\r\n\r\nexport type PluginTransformFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = (\r\n params: TransformStateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n) => void;\r\n\r\nexport type PluginUpdateFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = (\r\n params: OnUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n) => void;\r\n\r\nexport type PluginFormUpdateFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = (\r\n params: OnFormUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n) => void;\r\n\r\nexport type PluginFormWrapperFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = (\r\n params: FormWrapperParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n) => ReactNode;\r\n\r\nexport type CogsPluginBuilder<\r\n TName extends string,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods extends ChainMethodDefinitions,\r\n HasTransform extends boolean,\r\n HasUpdate extends boolean,\r\n HasFormUpdate extends boolean,\r\n HasMethods extends boolean,\r\n HasWrapper extends boolean,\r\n HasInitialState extends boolean,\r\n TInitialState extends Record<string, unknown> = {},\r\n> = Prettify<\r\n CogsPlugin<\r\n TName,\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TChainMethods,\r\n TInitialState\r\n >\r\n> &\r\n (HasTransform extends true\r\n ? {}\r\n : {\r\n transformState(\r\n fn: PluginTransformFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData\r\n >\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n true,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasUpdate extends true\r\n ? {}\r\n : {\r\n onUpdate(\r\n fn: PluginUpdateFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData\r\n >\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n true,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasFormUpdate extends true\r\n ? {}\r\n : {\r\n onFormUpdate(\r\n fn: PluginFormUpdateFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData\r\n >\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n true,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasMethods extends true\r\n ? {}\r\n : {\r\n methods<TNextMethods extends ChainMethodDefinitions>(\r\n fn: (helpers: MethodsBuilderParams) => TNextMethods\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TNextMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n true,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasWrapper extends true\r\n ? {}\r\n : {\r\n formWrapper(\r\n fn: PluginFormWrapperFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData\r\n >\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n true,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasInitialState extends true\r\n ? {}\r\n : {\r\n initialState<TNewState extends Record<string, unknown>>(\r\n fn: () => TNewState\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n true,\r\n TNewState\r\n >;\r\n });\r\n\r\nexport type CreatePluginStart<\r\n TName extends string,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n never,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n {}\r\n> & {\r\n useHook<THookReturn>(\r\n hookFn: (\r\n params: UseHookParams<TOptions, TPluginMetaData, TFieldMetaData, any>\r\n ) => THookReturn\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n {}\r\n >;\r\n initialState<TNewState extends Record<string, unknown>>(\r\n fn: () => TNewState\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n never,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n true,\r\n TNewState\r\n >;\r\n};\r\n\r\n// --- UPDATED EXPLICIT CONTEXT ---\r\n\r\nexport function createPluginContext<\r\n O extends z.ZodTypeAny | undefined = undefined,\r\n PM extends z.ZodTypeAny | undefined = undefined,\r\n FM extends z.ZodTypeAny | undefined = undefined,\r\n>(schemas?: {\r\n options?: O;\r\n pluginMetaData?: PM;\r\n fieldMetaData?: FM;\r\n}): {\r\n // EXPLICIT RETURN ANNOTATION STOPS TS FROM SERIALIZING\r\n createPlugin: <TName extends string>(\r\n name: TName\r\n ) => CreatePluginStart<\r\n TName,\r\n O extends z.ZodTypeAny ? OutputOf<O> : undefined,\r\n PM extends z.ZodTypeAny ? OutputOf<PM> : unknown,\r\n FM extends z.ZodTypeAny ? OutputOf<FM> : unknown\r\n >;\r\n} {\r\n type Options = O extends z.ZodTypeAny ? OutputOf<O> : undefined;\r\n type PluginMetaData = PM extends z.ZodTypeAny ? OutputOf<PM> : unknown;\r\n type FieldMetaData = FM extends z.ZodTypeAny ? OutputOf<FM> : unknown;\r\n\r\n function createPlugin<TName extends string>(name: TName) {\r\n type Builder<\r\n THookReturn,\r\n TChainMethods extends ChainMethodDefinitions,\r\n HT extends boolean,\r\n HU extends boolean,\r\n HFU extends boolean,\r\n HM extends boolean,\r\n HW extends boolean,\r\n HI extends boolean,\r\n TInitialState extends Record<string, unknown> = {},\r\n > = CogsPluginBuilder<\r\n TName,\r\n Options,\r\n PluginMetaData,\r\n FieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HT,\r\n HU,\r\n HFU,\r\n HM,\r\n HW,\r\n HI,\r\n TInitialState\r\n >;\r\n\r\n const createPluginObject = <\r\n THookReturn = never,\r\n TChainMethods extends ChainMethodDefinitions = {},\r\n TInitialState extends Record<string, unknown> = {},\r\n >(\r\n hookFn?: (\r\n params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>\r\n ) => THookReturn,\r\n transformFn?: PluginTransformFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n updateHandler?: PluginUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n formUpdateHandler?: PluginFormUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n chainMethods?: TChainMethods,\r\n initialStateFn?: () => TInitialState,\r\n wrapperFn?: PluginFormWrapperFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ): Prettify<\r\n CogsPlugin<\r\n TName,\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData,\r\n TChainMethods,\r\n TInitialState\r\n >\r\n > => {\r\n return {\r\n name,\r\n initialState: initialStateFn,\r\n useHook: hookFn as any,\r\n transformState: transformFn as any,\r\n onUpdate: updateHandler as any,\r\n onFormUpdate: formUpdateHandler as any,\r\n formWrapper: wrapperFn as any,\r\n chainMethods,\r\n };\r\n };\r\n\r\n function createBuilder<\r\n THookReturn = never,\r\n TChainMethods extends ChainMethodDefinitions = {},\r\n HasTransform extends boolean = false,\r\n HasUpdate extends boolean = false,\r\n HasFormUpdate extends boolean = false,\r\n HasMethods extends boolean = false,\r\n HasWrapper extends boolean = false,\r\n HasInitialState extends boolean = false,\r\n TInitialState extends Record<string, unknown> = {},\r\n >(\r\n hookFn?: (\r\n params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>\r\n ) => THookReturn,\r\n transformFn?: PluginTransformFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n updateHandler?: PluginUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n formUpdateHandler?: PluginFormUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n chainMethods?: TChainMethods,\r\n initialStateFn?: () => TInitialState,\r\n wrapperFn?: PluginFormWrapperFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ): Builder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n > {\r\n const plugin = createPluginObject<THookReturn, TChainMethods, TInitialState>(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n formUpdateHandler,\r\n chainMethods,\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n\r\n const methods = {} as Partial<\r\n Builder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >\r\n >;\r\n\r\n if (!transformFn) {\r\n (methods as any).transformState = (\r\n fn: PluginTransformFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n true,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n fn,\r\n updateHandler,\r\n formUpdateHandler,\r\n chainMethods,\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n }\r\n if (!updateHandler) {\r\n (methods as any).onUpdate = (\r\n fn: PluginUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n true,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n transformFn,\r\n fn,\r\n formUpdateHandler,\r\n chainMethods,\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n }\r\n if (!formUpdateHandler) {\r\n (methods as any).onFormUpdate = (\r\n fn: PluginFormUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n true,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n fn,\r\n chainMethods,\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n }\r\n if (!chainMethods) {\r\n (methods as any).methods = <\r\n TNextMethods extends ChainMethodDefinitions,\r\n >(\r\n fn: (helpers: MethodsBuilderParams) => TNextMethods\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TNextMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n true,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n formUpdateHandler,\r\n fn(createMethodsBuilderParams()),\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n }\r\n if (!initialStateFn) {\r\n (methods as any).initialState = <TNewState extends Record<string, unknown>>(fn: () => TNewState) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n true,\r\n TNewState\r\n >(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n formUpdateHandler,\r\n chainMethods,\r\n fn,\r\n wrapperFn\r\n );\r\n }\r\n if (!wrapperFn) {\r\n (methods as any).formWrapper = (\r\n fn: PluginFormWrapperFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n true,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n formUpdateHandler,\r\n chainMethods,\r\n initialStateFn,\r\n fn\r\n );\r\n }\r\n\r\n return Object.assign(plugin, methods) as Builder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }\r\n\r\n const start = Object.assign(\r\n createBuilder<never, {}, false, false, false, false, false, false, {}>(),\r\n {\r\n useHook<THookReturn>(\r\n hookFn: (\r\n params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>\r\n ) => THookReturn\r\n ) {\r\n return createBuilder<\r\n THookReturn,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n {}\r\n >(hookFn);\r\n },\r\n initialState<TNewState extends Record<string, unknown>>(fn: () => TNewState) {\r\n return createBuilder<\r\n never,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n true,\r\n TNewState\r\n >(undefined, undefined, undefined, undefined, undefined, fn);\r\n },\r\n }\r\n ) as CreatePluginStart<TName, Options, PluginMetaData, FieldMetaData>;\r\n\r\n return start;\r\n }\r\n\r\n return { createPlugin };\r\n}\r\n"],"names":["keyedSchema","z","toDeconstructedMethods","stateHandler","data","patch","meta","errors","paths","opts","createMetadataContext","stateKey","pluginName","getGlobalStore","path","refs","entry","elements","disabled","el","getAllFieldElements","setAllFieldsDisabled","createScopedMetadataContext","globalContext","createMethodDefinition","target","pathPattern","handler","createPathRecorder","recorder","_target","prop","createMethodsBuilderParams","selector","base","createPluginContext","schemas","createPlugin","name","createPluginObject","hookFn","transformFn","updateHandler","formUpdateHandler","chainMethods","initialStateFn","wrapperFn","createBuilder","plugin","methods","fn"],"mappings":"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"}
1
+ {"version":3,"file":"plugins.js","sources":["../src/plugins.ts"],"sourcesContent":["import { z } from 'zod';\r\nimport type { ReactNode, RefObject } from 'react';\r\nimport { StateObject, UpdateTypeDetail } from './CogsState';\r\nimport {\r\n getGlobalStore,\r\n getAllFieldElements,\r\n setAllFieldsDisabled,\r\n} from './store';\r\nimport { ClientActivityEvent } from './pluginStore';\r\n\r\ntype Prettify<T> = { [K in keyof T]: T[K] } & {};\r\n\r\nexport type ChainMethodTarget =\r\n | 'any'\r\n | 'array'\r\n | 'object'\r\n | 'primitive'\r\n | 'boolean';\r\n\r\nexport type ChainMethodContext<TOptions = any, THookReturn = any> = {\r\n stateKey: string;\r\n path: string[];\r\n pluginName: string;\r\n options: TOptions | undefined;\r\n hookData?: THookReturn;\r\n $get: () => any;\r\n $update: (payload: any) => { synced: () => void };\r\n $applyOperation: (operation: any, metaData?: Record<string, any>) => void;\r\n getFieldMetaData: () => any;\r\n setFieldMetaData: (data: Record<string, any>) => void;\r\n removeFieldMetaData: () => void;\r\n getFieldRefs: () => RefObject<any>[];\r\n getFieldElements: () => HTMLElement[];\r\n setFieldDisabled: (disabled: boolean) => void;\r\n};\r\n\r\nexport type ChainMethodHandler = (\r\n ctx: ChainMethodContext<any, any>,\r\n ...args: any[]\r\n) => any;\r\n\r\nexport type ChainMethodDefinition<\r\n THandler extends ChainMethodHandler = ChainMethodHandler,\r\n> = {\r\n target: ChainMethodTarget;\r\n pathPattern?: string[];\r\n handler: THandler;\r\n};\r\n\r\nexport type ChainMethodDefinitions = Record<string, ChainMethodDefinition<any>>;\r\n\r\ntype ChainMethodCallable<THandler> = THandler extends (\r\n ctx: any,\r\n ...args: infer TArgs\r\n) => infer TReturn\r\n ? (...args: TArgs) => TReturn\r\n : never;\r\n\r\nexport type ChainMethodCallables<TMethods> = {\n [K in keyof TMethods as K extends string\n ? `$${K}`\n : never]: TMethods[K] extends ChainMethodDefinition<infer TFn>\n ? ChainMethodCallable<TFn>\n : never;\n};\n\r\nexport type KeyedTypes<TMap extends Record<string, any>> = {\r\n __key: 'keyed';\r\n map: TMap;\r\n};\r\n\r\nexport const keyedSchema = <TMap extends Record<string, any>>() =>\r\n z.object({\r\n __key: z.literal('keyed'),\r\n map: z.any(),\r\n }) as z.ZodType<KeyedTypes<TMap>>;\r\n\r\n// Helpers: turn a zod object shape into its inferred value shape\r\ntype InferZodObject<T extends Record<string, z.ZodTypeAny>> = {\r\n [K in keyof T]: z.infer<T[K]>;\r\n};\r\nexport type InferPerKeyValueMap<\r\n TMap extends Record<string, Record<string, z.ZodTypeAny>>,\r\n> = {\r\n [K in keyof TMap]: InferZodObject<TMap[K]>;\r\n};\r\n\r\n// Deconstructed cogs methods (no TState)\r\ntype DeconstructedCogsMethods<TStateSlice = any> = {\r\n initialiseState: (data: TStateSlice) => void;\r\n initialiseShadowState: (data: any) => void;\r\n applyOperation: (patch: any, meta?: { dontUpdate?: boolean }) => void;\r\n addZodErrors: (errors: any[]) => void;\r\n clearZodErrors: (paths: string[][]) => void;\r\n getState: () => TStateSlice;\r\n setOptions: (options: any) => void;\r\n};\r\n\r\nexport function toDeconstructedMethods(stateHandler: StateObject<any>) {\r\n return {\r\n initialiseState: (data: any) => {\r\n stateHandler.$update(data);\r\n },\r\n initialiseShadowState: (data: any) => {\r\n stateHandler.$initializeAndMergeShadowState(data);\r\n },\r\n applyOperation: (patch: any, meta?: { dontUpdate?: boolean }) =>\r\n stateHandler.$applyOperation(patch, meta),\r\n addZodErrors: (errors: any[]) => stateHandler.$addZodValidation(errors),\r\n clearZodErrors: (paths: string[][]) =>\r\n stateHandler.$clearZodValidationPaths(paths),\r\n getState: () => stateHandler.$get(),\r\n setOptions: (opts: any) => {\r\n stateHandler.$setOptions(opts);\r\n },\r\n };\r\n}\r\ntype ScopedMetadataMethods<TFieldMetaData> = {\r\n getFieldMetaData: () => TFieldMetaData | undefined;\r\n setFieldMetaData: (data: Partial<TFieldMetaData>) => void;\r\n removeFieldMetaData: () => void;\r\n getFieldRefs: () => RefObject<any>[];\r\n getFieldElements: () => HTMLElement[];\r\n setFieldDisabled: (disabled: boolean) => void;\r\n};\r\n\r\n// These are the existing global methods that still require a path.\r\ntype GlobalMetadataMethods<TFieldMetaData> = {\r\n getFieldMetaData: (path: string[]) => TFieldMetaData | undefined;\r\n setFieldMetaData: (path: string[], data: Partial<TFieldMetaData>) => void;\r\n removeFieldMetaData: (path: string[]) => void;\r\n getFieldRefs: (path: string[]) => RefObject<any>[];\r\n getFieldElements: (path: string[]) => HTMLElement[];\r\n setFieldDisabled: (path: string[], disabled: boolean) => void;\r\n getAllFieldElements: () => HTMLElement[];\r\n setAllFieldsDisabled: (disabled: boolean) => void;\r\n};\r\n// Simplified: All params use the same TFieldMetaData type\r\nexport type UseHookParams<\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = DeconstructedCogsMethods<TStateSlice> &\r\n GlobalMetadataMethods<TFieldMetaData> & {\r\n stateKey: string;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n options: TOptions;\r\n pluginName: string;\r\n isInitialMount: boolean;\r\n };\r\n\r\nexport type TransformStateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = DeconstructedCogsMethods<TStateSlice> &\r\n GlobalMetadataMethods<TFieldMetaData> & {\r\n stateKey: string;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n options: TOptions;\r\n hookData?: THookReturn;\r\n previousState?: TStateSlice;\r\n isInitialTransform: boolean;\r\n pluginName: string;\r\n };\r\n\r\nexport type OnUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = DeconstructedCogsMethods<TStateSlice> &\r\n ScopedMetadataMethods<TFieldMetaData> & {\r\n stateKey: string;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n update: UpdateTypeDetail;\r\n path?: string[];\r\n\r\n options: TOptions;\r\n hookData?: THookReturn;\r\n\r\n previousValue?: any;\r\n nextValue?: any;\r\n updateSource?: 'user' | 'plugin' | 'system';\r\n\r\n pluginName: string;\r\n };\r\nexport type OnFormUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = DeconstructedCogsMethods<TStateSlice> &\r\n ScopedMetadataMethods<TFieldMetaData> & {\r\n stateKey: string;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n path: string[];\r\n event: ClientActivityEvent; // Update this to use the full event type\r\n\r\n options: TOptions;\r\n hookData?: THookReturn;\r\n\r\n formState?: 'pristine' | 'dirty' | 'submitting' | 'submitted';\r\n pluginName: string;\r\n };\r\n\r\nexport type FormWrapperParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TStateSlice = any,\r\n> = ScopedMetadataMethods<TFieldMetaData> & {\r\n element: ReactNode;\r\n path: string[];\r\n stateKey: string;\r\n options: TOptions;\r\n hookData?: THookReturn;\r\n fieldType?: string;\r\n wrapperDepth?: number;\r\n\r\n // Deconstructed methods\r\n initialiseState: (data: TStateSlice) => void;\r\n initialiseShadowState: (data: any) => void;\r\n applyOperation: (patch: any, meta?: { dontUpdate?: boolean }) => void;\r\n addZodErrors: (errors: any[]) => void;\r\n getState: () => TStateSlice;\r\n setOptions: (options: any) => void;\r\n\r\n getPluginMetaData: () => TPluginMetaData | undefined;\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) => void;\r\n removePluginMetaData: () => void;\r\n\r\n pluginName: string;\r\n};\r\n\r\n// Unified plugin definition\r\nexport type CogsPlugin<\r\n TName extends string,\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TChainMethods extends ChainMethodDefinitions = {},\r\n TInitialState extends Record<string, unknown> = {},\r\n> = {\r\n name: TName;\r\n\r\n initialState?: () => TInitialState;\r\n\r\n useHook?: (\r\n params: UseHookParams<TOptions, TPluginMetaData, TFieldMetaData, any>\r\n ) => THookReturn;\r\n\r\n transformState?: (\r\n params: TransformStateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n ) => void;\r\n\r\n onUpdate?: (\r\n params: OnUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n ) => void;\r\n\r\n onFormUpdate?: (\r\n params: OnFormUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n ) => void;\r\n\r\n formWrapper?: (\r\n params: FormWrapperParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n ) => ReactNode;\r\n\r\n chainMethods?: TChainMethods;\r\n};\r\n\r\n// Metadata helpers\r\nexport function createMetadataContext<TPluginMetaData, TFieldMetaData>(\r\n stateKey: string,\r\n pluginName: string\r\n) {\r\n return {\r\n getPluginMetaData: (): TPluginMetaData | undefined =>\r\n getGlobalStore\r\n .getState()\r\n .getPluginMetaDataMap(stateKey, [])\r\n ?.get(pluginName) as TPluginMetaData | undefined,\r\n\r\n setPluginMetaData: (data: Partial<TPluginMetaData>) =>\r\n getGlobalStore\r\n .getState()\r\n .setPluginMetaData(stateKey, [], pluginName, data),\r\n\r\n removePluginMetaData: () =>\r\n getGlobalStore.getState().removePluginMetaData(stateKey, [], pluginName),\r\n\r\n getFieldMetaData: (path: string[]): TFieldMetaData | undefined =>\r\n getGlobalStore\r\n .getState()\r\n .getPluginMetaDataMap(stateKey, path)\r\n ?.get(pluginName) as TFieldMetaData | undefined,\r\n\r\n setFieldMetaData: (path: string[], data: Partial<TFieldMetaData>) =>\r\n getGlobalStore\r\n .getState()\r\n .setPluginMetaData(stateKey, path, pluginName, data),\r\n\r\n removeFieldMetaData: (path: string[]) =>\r\n getGlobalStore\r\n .getState()\r\n .removePluginMetaData(stateKey, path, pluginName),\r\n getFieldRefs: (path: string[]): RefObject<any>[] => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return [];\r\n const refs: RefObject<any>[] = [];\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n if (entry.domRef?.current) refs.push(entry.domRef);\r\n });\r\n return refs;\r\n },\r\n\r\n getFieldElements: (path: string[]): HTMLElement[] => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return [];\r\n const elements: HTMLElement[] = [];\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n if (entry.domRef?.current) elements.push(entry.domRef.current);\r\n });\r\n return elements;\r\n },\r\n\r\n setFieldDisabled: (path: string[], disabled: boolean) => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return;\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n const el = entry.domRef?.current;\r\n if (!el) return;\r\n if ('disabled' in el) el.disabled = disabled;\r\n else {\r\n el.style.pointerEvents = disabled ? 'none' : '';\r\n el.setAttribute('aria-disabled', String(disabled));\r\n }\r\n });\r\n },\r\n getAllFieldElements: (): HTMLElement[] => {\r\n return getAllFieldElements(stateKey);\r\n },\r\n\r\n setAllFieldsDisabled: (disabled: boolean): void =>\r\n setAllFieldsDisabled(stateKey, disabled),\r\n };\r\n}\r\n\r\nexport function createScopedMetadataContext<TPluginMetaData, TFieldMetaData>(\r\n stateKey: string,\r\n pluginName: string,\r\n path: string[]\r\n) {\r\n const globalContext = createMetadataContext<TPluginMetaData, TFieldMetaData>(\r\n stateKey,\r\n pluginName\r\n );\r\n\r\n return {\r\n ...globalContext,\r\n getFieldMetaData: (): TFieldMetaData | undefined =>\r\n globalContext.getFieldMetaData(path),\r\n setFieldMetaData: (data: Partial<TFieldMetaData>) =>\r\n globalContext.setFieldMetaData(path, data),\r\n removeFieldMetaData: () => globalContext.removeFieldMetaData(path),\r\n\r\n // NEW: Direct access to the DOM refs for this field\r\n getFieldRefs: (): RefObject<any>[] => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return [];\r\n const refs: RefObject<any>[] = [];\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n if (entry.domRef?.current) {\r\n refs.push(entry.domRef);\r\n }\r\n });\r\n return refs;\r\n },\r\n\r\n getFieldElements: (): HTMLElement[] => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return [];\r\n const elements: HTMLElement[] = [];\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n if (entry.domRef?.current) {\r\n elements.push(entry.domRef.current);\r\n }\r\n });\r\n return elements;\r\n },\r\n\r\n setFieldDisabled: (disabled: boolean) => {\r\n const meta = getGlobalStore.getState().getShadowMetadata(stateKey, path);\r\n if (!meta?.clientActivityState?.elements) return;\r\n meta.clientActivityState.elements.forEach((entry: any) => {\r\n const el = entry.domRef?.current;\r\n if (!el) return;\r\n if ('disabled' in el) {\r\n el.disabled = disabled;\r\n } else {\r\n el.style.pointerEvents = disabled ? 'none' : '';\r\n el.setAttribute('aria-disabled', String(disabled));\r\n }\r\n });\r\n },\r\n };\r\n}\r\n// Add this type export - derives from what createScopedMetadataContext returns\r\nexport type ScopedMetadataContext<TFieldMetaData = any> = {\r\n getFieldMetaData: () => TFieldMetaData | undefined;\r\n setFieldMetaData: (data: Partial<TFieldMetaData>) => void;\r\n removeFieldMetaData: () => void;\r\n};\r\n\r\n// Type for a single plugin's API entry in ValidationWrapper\r\nexport type PluginApiEntry<THookData = any, TFieldMetaData = any> = {\r\n hookData: THookData | undefined;\r\n} & ScopedMetadataContext<TFieldMetaData>;\r\n\r\n// Type for the entire plugins API object passed to validation render prop\r\nexport type PluginsApi = Record<string, PluginApiEntry>;\r\ntype ZodObjOutput<T extends z.ZodObject<any>> = {\r\n [K in keyof T['shape']]: z.output<T['shape'][K]>;\r\n};\r\ntype OutputOf<T extends z.ZodTypeAny> =\r\n T extends z.ZodObject<any> ? Prettify<ZodObjOutput<T>> : z.output<T>;\r\n\r\ntype MethodFactory = <TArgs extends any[], TReturn>(\n handler: (\n ctx: ChainMethodContext<any, any>,\n ...args: TArgs\n ) => TReturn\n) => ChainMethodDefinition<\n (ctx: ChainMethodContext<any, any>, ...args: TArgs) => TReturn\n>;\n\r\ntype PathMethodFactory = MethodFactory & {\r\n array: MethodFactory;\r\n object: MethodFactory;\r\n primitive: MethodFactory;\r\n boolean: MethodFactory;\r\n field: MethodFactory;\r\n};\r\n\r\ntype MethodsBuilderParams = {\r\n path: (selector: (state: any) => any) => PathMethodFactory;\r\n array: MethodFactory;\r\n object: MethodFactory;\r\n primitive: MethodFactory;\r\n boolean: MethodFactory;\r\n field: MethodFactory;\r\n};\r\n\r\nconst createMethodDefinition =\r\n (target: ChainMethodTarget, pathPattern?: string[]): MethodFactory =>\r\n (handler) => ({\r\n target,\r\n pathPattern,\r\n handler,\r\n });\r\n\r\nconst createPathRecorder = () => {\r\n const path: string[] = [];\r\n\r\n const recorder = new Proxy(\r\n {},\r\n {\r\n get(_target, prop) {\r\n if (typeof prop !== 'string') return recorder;\r\n if (prop === 'then') return undefined;\r\n path.push(prop === '$' ? '*' : prop);\r\n return recorder;\r\n },\r\n }\r\n );\r\n\r\n return { recorder, path };\r\n};\r\n\r\nconst createMethodsBuilderParams = (): MethodsBuilderParams => {\r\n const path = (selector: (state: any) => any): PathMethodFactory => {\r\n const { recorder, path: pathPattern } = createPathRecorder();\r\n selector(recorder);\r\n\r\n const base = createMethodDefinition(\r\n 'any',\r\n pathPattern\r\n ) as PathMethodFactory;\r\n base.array = createMethodDefinition('array', pathPattern);\r\n base.object = createMethodDefinition('object', pathPattern);\r\n base.primitive = createMethodDefinition('primitive', pathPattern);\r\n base.boolean = createMethodDefinition('boolean', pathPattern);\r\n base.field = createMethodDefinition('any', pathPattern);\r\n\r\n return base;\r\n };\r\n\r\n return {\r\n path,\r\n array: createMethodDefinition('array'),\r\n object: createMethodDefinition('object'),\r\n primitive: createMethodDefinition('primitive'),\r\n boolean: createMethodDefinition('boolean'),\r\n field: createMethodDefinition('any'),\r\n };\r\n};\r\n// --- EXTRACTED BUILDER TYPES (Solves TS7056 Serialization Error) ---\r\n\r\nexport type PluginTransformFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = (\r\n params: TransformStateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n) => void;\r\n\r\nexport type PluginUpdateFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = (\r\n params: OnUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n) => void;\r\n\r\nexport type PluginFormUpdateFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = (\r\n params: OnFormUpdateParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n) => void;\r\n\r\nexport type PluginFormWrapperFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = (\r\n params: FormWrapperParams<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n any\r\n >\r\n) => ReactNode;\r\n\r\nexport type CogsPluginBuilder<\r\n TName extends string,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods extends ChainMethodDefinitions,\r\n HasTransform extends boolean,\r\n HasUpdate extends boolean,\r\n HasFormUpdate extends boolean,\r\n HasMethods extends boolean,\r\n HasWrapper extends boolean,\r\n HasInitialState extends boolean,\r\n TInitialState extends Record<string, unknown> = {},\r\n> = Prettify<\r\n CogsPlugin<\r\n TName,\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n TChainMethods,\r\n TInitialState\r\n >\r\n> &\r\n (HasTransform extends true\r\n ? {}\r\n : {\r\n transformState(\r\n fn: PluginTransformFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData\r\n >\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n true,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasUpdate extends true\r\n ? {}\r\n : {\r\n onUpdate(\r\n fn: PluginUpdateFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData\r\n >\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n true,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasFormUpdate extends true\r\n ? {}\r\n : {\r\n onFormUpdate(\r\n fn: PluginFormUpdateFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData\r\n >\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n true,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasMethods extends true\r\n ? {}\r\n : {\r\n methods<TNextMethods extends ChainMethodDefinitions>(\r\n fn: (helpers: MethodsBuilderParams) => TNextMethods\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TNextMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n true,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasWrapper extends true\r\n ? {}\r\n : {\r\n formWrapper(\r\n fn: PluginFormWrapperFn<\r\n TOptions,\r\n THookReturn,\r\n TPluginMetaData,\r\n TFieldMetaData\r\n >\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n true,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }) &\r\n (HasInitialState extends true\r\n ? {}\r\n : {\r\n initialState<TNewState extends Record<string, unknown>>(\r\n fn: () => TNewState\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n true,\r\n TNewState\r\n >;\r\n });\r\n\r\nexport type CreatePluginStart<\r\n TName extends string,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n> = CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n never,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n {}\r\n> & {\r\n useHook<THookReturn>(\r\n hookFn: (\r\n params: UseHookParams<TOptions, TPluginMetaData, TFieldMetaData, any>\r\n ) => THookReturn\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n THookReturn,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n {}\r\n >;\r\n initialState<TNewState extends Record<string, unknown>>(\r\n fn: () => TNewState\r\n ): CogsPluginBuilder<\r\n TName,\r\n TOptions,\r\n TPluginMetaData,\r\n TFieldMetaData,\r\n never,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n true,\r\n TNewState\r\n >;\r\n};\r\n\r\n// --- UPDATED EXPLICIT CONTEXT ---\r\n\r\nexport function createPluginContext<\r\n O extends z.ZodTypeAny | undefined = undefined,\r\n PM extends z.ZodTypeAny | undefined = undefined,\r\n FM extends z.ZodTypeAny | undefined = undefined,\r\n>(schemas?: {\r\n options?: O;\r\n pluginMetaData?: PM;\r\n fieldMetaData?: FM;\r\n}): {\r\n // EXPLICIT RETURN ANNOTATION STOPS TS FROM SERIALIZING\r\n createPlugin: <TName extends string>(\r\n name: TName\r\n ) => CreatePluginStart<\r\n TName,\r\n O extends z.ZodTypeAny ? OutputOf<O> : undefined,\r\n PM extends z.ZodTypeAny ? OutputOf<PM> : unknown,\r\n FM extends z.ZodTypeAny ? OutputOf<FM> : unknown\r\n >;\r\n} {\r\n type Options = O extends z.ZodTypeAny ? OutputOf<O> : undefined;\r\n type PluginMetaData = PM extends z.ZodTypeAny ? OutputOf<PM> : unknown;\r\n type FieldMetaData = FM extends z.ZodTypeAny ? OutputOf<FM> : unknown;\r\n\r\n function createPlugin<TName extends string>(name: TName) {\r\n type Builder<\r\n THookReturn,\r\n TChainMethods extends ChainMethodDefinitions,\r\n HT extends boolean,\r\n HU extends boolean,\r\n HFU extends boolean,\r\n HM extends boolean,\r\n HW extends boolean,\r\n HI extends boolean,\r\n TInitialState extends Record<string, unknown> = {},\r\n > = CogsPluginBuilder<\r\n TName,\r\n Options,\r\n PluginMetaData,\r\n FieldMetaData,\r\n THookReturn,\r\n TChainMethods,\r\n HT,\r\n HU,\r\n HFU,\r\n HM,\r\n HW,\r\n HI,\r\n TInitialState\r\n >;\r\n\r\n const createPluginObject = <\r\n THookReturn = never,\r\n TChainMethods extends ChainMethodDefinitions = {},\r\n TInitialState extends Record<string, unknown> = {},\r\n >(\r\n hookFn?: (\r\n params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>\r\n ) => THookReturn,\r\n transformFn?: PluginTransformFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n updateHandler?: PluginUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n formUpdateHandler?: PluginFormUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n chainMethods?: TChainMethods,\r\n initialStateFn?: () => TInitialState,\r\n wrapperFn?: PluginFormWrapperFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ): Prettify<\r\n CogsPlugin<\r\n TName,\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData,\r\n TChainMethods,\r\n TInitialState\r\n >\r\n > => {\r\n return {\r\n name,\r\n initialState: initialStateFn,\r\n useHook: hookFn as any,\r\n transformState: transformFn as any,\r\n onUpdate: updateHandler as any,\r\n onFormUpdate: formUpdateHandler as any,\r\n formWrapper: wrapperFn as any,\r\n chainMethods,\r\n };\r\n };\r\n\r\n function createBuilder<\r\n THookReturn = never,\r\n TChainMethods extends ChainMethodDefinitions = {},\r\n HasTransform extends boolean = false,\r\n HasUpdate extends boolean = false,\r\n HasFormUpdate extends boolean = false,\r\n HasMethods extends boolean = false,\r\n HasWrapper extends boolean = false,\r\n HasInitialState extends boolean = false,\r\n TInitialState extends Record<string, unknown> = {},\r\n >(\r\n hookFn?: (\r\n params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>\r\n ) => THookReturn,\r\n transformFn?: PluginTransformFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n updateHandler?: PluginUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n formUpdateHandler?: PluginFormUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >,\r\n chainMethods?: TChainMethods,\r\n initialStateFn?: () => TInitialState,\r\n wrapperFn?: PluginFormWrapperFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ): Builder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n > {\r\n const plugin = createPluginObject<THookReturn, TChainMethods, TInitialState>(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n formUpdateHandler,\r\n chainMethods,\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n\r\n const methods = {} as Partial<\r\n Builder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >\r\n >;\r\n\r\n if (!transformFn) {\r\n (methods as any).transformState = (\r\n fn: PluginTransformFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n true,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n fn,\r\n updateHandler,\r\n formUpdateHandler,\r\n chainMethods,\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n }\r\n if (!updateHandler) {\r\n (methods as any).onUpdate = (\r\n fn: PluginUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n true,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n transformFn,\r\n fn,\r\n formUpdateHandler,\r\n chainMethods,\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n }\r\n if (!formUpdateHandler) {\r\n (methods as any).onFormUpdate = (\r\n fn: PluginFormUpdateFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n true,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n fn,\r\n chainMethods,\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n }\r\n if (!chainMethods) {\r\n (methods as any).methods = <\r\n TNextMethods extends ChainMethodDefinitions,\r\n >(\r\n fn: (helpers: MethodsBuilderParams) => TNextMethods\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TNextMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n true,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n formUpdateHandler,\r\n fn(createMethodsBuilderParams()),\r\n initialStateFn,\r\n wrapperFn\r\n );\r\n }\r\n if (!initialStateFn) {\r\n (methods as any).initialState = <TNewState extends Record<string, unknown>>(fn: () => TNewState) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n true,\r\n TNewState\r\n >(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n formUpdateHandler,\r\n chainMethods,\r\n fn,\r\n wrapperFn\r\n );\r\n }\r\n if (!wrapperFn) {\r\n (methods as any).formWrapper = (\r\n fn: PluginFormWrapperFn<\r\n Options,\r\n THookReturn,\r\n PluginMetaData,\r\n FieldMetaData\r\n >\r\n ) =>\r\n createBuilder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n true,\r\n HasInitialState,\r\n TInitialState\r\n >(\r\n hookFn,\r\n transformFn,\r\n updateHandler,\r\n formUpdateHandler,\r\n chainMethods,\r\n initialStateFn,\r\n fn\r\n );\r\n }\r\n\r\n return Object.assign(plugin, methods) as Builder<\r\n THookReturn,\r\n TChainMethods,\r\n HasTransform,\r\n HasUpdate,\r\n HasFormUpdate,\r\n HasMethods,\r\n HasWrapper,\r\n HasInitialState,\r\n TInitialState\r\n >;\r\n }\r\n\r\n const start = Object.assign(\r\n createBuilder<never, {}, false, false, false, false, false, false, {}>(),\r\n {\r\n useHook<THookReturn>(\r\n hookFn: (\r\n params: UseHookParams<Options, PluginMetaData, FieldMetaData, any>\r\n ) => THookReturn\r\n ) {\r\n return createBuilder<\r\n THookReturn,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n {}\r\n >(hookFn);\r\n },\r\n initialState<TNewState extends Record<string, unknown>>(fn: () => TNewState) {\r\n return createBuilder<\r\n never,\r\n {},\r\n false,\r\n false,\r\n false,\r\n false,\r\n false,\r\n true,\r\n TNewState\r\n >(undefined, undefined, undefined, undefined, undefined, fn);\r\n },\r\n }\r\n ) as CreatePluginStart<TName, Options, PluginMetaData, FieldMetaData>;\r\n\r\n return start;\r\n }\r\n\r\n return { createPlugin };\r\n}\r\n"],"names":["keyedSchema","z","toDeconstructedMethods","stateHandler","data","patch","meta","errors","paths","opts","createMetadataContext","stateKey","pluginName","getGlobalStore","path","refs","entry","elements","disabled","el","getAllFieldElements","setAllFieldsDisabled","createScopedMetadataContext","globalContext","createMethodDefinition","target","pathPattern","handler","createPathRecorder","recorder","_target","prop","createMethodsBuilderParams","selector","base","createPluginContext","schemas","createPlugin","name","createPluginObject","hookFn","transformFn","updateHandler","formUpdateHandler","chainMethods","initialStateFn","wrapperFn","createBuilder","plugin","methods","fn"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cogsbox-state",
3
- "version": "0.5.488",
3
+ "version": "0.5.489",
4
4
  "description": "React state management library with form controls and server sync",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/CogsState.tsx CHANGED
@@ -914,7 +914,7 @@ type CreateCogsStateReturn<
914
914
  PluginOptionsMap<TPlugins>,
915
915
  StateKey
916
916
  >
917
- ) => StateObject<CogsFullState<State, TPlugins>[StateKey]>;
917
+ ) => StateObject<CogsFullState<State, TPlugins>[StateKey], TPlugins>;
918
918
  setCogsOptionsByKey: <StateKey extends keyof CogsFullState<State, TPlugins>>(
919
919
  stateKey: StateKey,
920
920
  options: CreateStateOptionsType<
@@ -1030,7 +1030,7 @@ export const createCogsState = <
1030
1030
  OptionsType<StateSlice<StateKey>, never> &
1031
1031
  PluginOptionsForState<PluginOptions, StateKey>
1032
1032
  >
1033
- ): StateObject<StateSlice<StateKey>> => {
1033
+ ): StateObject<StateSlice<StateKey>, TPlugins> => {
1034
1034
  const [componentId] = useState(options?.componentId ?? uuidv4());
1035
1035
 
1036
1036
  const currentOptions = setOptions({
@@ -1086,8 +1086,8 @@ export const createCogsState = <
1086
1086
  }
1087
1087
  });
1088
1088
 
1089
- return updater as StateObject<StateSlice<StateKey>>;
1090
- };
1089
+ return updater as StateObject<StateSlice<StateKey>, TPlugins>;
1090
+ };
1091
1091
 
1092
1092
  function setCogsOptionsByKey<StateKey extends StateKeys>(
1093
1093
  stateKey: StateKey,
@@ -2395,85 +2395,88 @@ function createProxyHandler<
2395
2395
  });
2396
2396
  }
2397
2397
 
2398
- const registeredPlugins = pluginStore.getState().registeredPlugins;
2399
- for (const plugin of registeredPlugins) {
2400
- const chainMethod = (plugin.chainMethods as any)?.[prop];
2401
- if (!chainMethod) continue;
2402
- if (!pathMatchesPattern(path, chainMethod.pathPattern)) continue;
2403
- if (!valueMatchesChainTarget(value, chainMethod.target)) continue;
2404
-
2405
- return (...args: any[]) => {
2406
- const store = pluginStore.getState();
2407
- const options = store.pluginOptions
2408
- .get(stateKey)
2409
- ?.get(plugin.name);
2410
- const hookData = store.getHookResult(stateKey, plugin.name);
2411
-
2412
- return chainMethod.handler(
2413
- {
2414
- stateKey,
2415
- path,
2416
- pluginName: plugin.name,
2417
- options,
2418
- hookData,
2419
- $get: () => getScopedData(stateKey, path, meta).value,
2420
- $update: (payload: any) => {
2421
- effectiveSetState(payload, path, {
2422
- updateType: 'update',
2423
- });
2424
-
2425
- return {
2426
- synced: () => {
2427
- const shadowMeta = getGlobalStore
2428
- .getState()
2429
- .getShadowMetadata(stateKey, path);
2430
-
2431
- setShadowMetadata(stateKey, path, {
2432
- ...shadowMeta,
2433
- isDirty: false,
2434
- stateSource: 'server',
2435
- lastServerSync: Date.now(),
2436
- });
2437
- },
2438
- };
2439
- },
2440
- $applyOperation: (
2441
- operation: UpdateTypeDetail,
2442
- metaData?: Record<string, any>
2443
- ) => {
2444
- effectiveSetState(operation.newValue, operation.path, {
2445
- updateType: operation.updateType,
2446
- itemId: operation.itemId,
2447
- metaData,
2448
- });
2449
- },
2450
- getFieldMetaData: () =>
2451
- getPluginMetaDataMap(stateKey, path)?.get(plugin.name),
2452
- setFieldMetaData: (data: Record<string, any>) =>
2453
- setPluginMetaData(stateKey, path, plugin.name, data),
2454
- removeFieldMetaData: () =>
2455
- removePluginMetaData(stateKey, path, plugin.name),
2456
- getFieldRefs: () => getFieldRefsForPath(stateKey, path),
2457
- getFieldElements: () =>
2458
- getFieldElementsForPath(stateKey, path),
2459
- setFieldDisabled: (disabled: boolean) =>
2460
- setFieldDisabledForPath(stateKey, path, disabled),
2461
- },
2462
- ...args
2463
- );
2464
- };
2465
- }
2466
-
2467
- const nextPath = [...path, prop];
2468
- return rebuildStateShape({
2469
- path: nextPath,
2470
- componentId: componentId!,
2471
- meta,
2472
- });
2473
- }
2474
- if (prop === '$_rebuildStateShape') {
2475
- return rebuildStateShape;
2476
- }
2398
+ const nextPath = [...path, prop];
2399
+ return rebuildStateShape({
2400
+ path: nextPath,
2401
+ componentId: componentId!,
2402
+ meta,
2403
+ });
2404
+ }
2405
+ if (typeof prop === 'string' && prop.startsWith('$')) {
2406
+ const methodName = prop.slice(1);
2407
+ const { value } = getScopedData(stateKey, path, meta);
2408
+ const registeredPlugins = pluginStore.getState().registeredPlugins;
2409
+ for (const plugin of registeredPlugins) {
2410
+ const chainMethod = (plugin.chainMethods as any)?.[methodName];
2411
+ if (!chainMethod) continue;
2412
+ if (!pathMatchesPattern(path, chainMethod.pathPattern)) continue;
2413
+ if (!valueMatchesChainTarget(value, chainMethod.target)) continue;
2414
+
2415
+ return (...args: any[]) => {
2416
+ const store = pluginStore.getState();
2417
+ const options = store.pluginOptions
2418
+ .get(stateKey)
2419
+ ?.get(plugin.name);
2420
+ const hookData = store.getHookResult(stateKey, plugin.name);
2421
+
2422
+ return chainMethod.handler(
2423
+ {
2424
+ stateKey,
2425
+ path,
2426
+ pluginName: plugin.name,
2427
+ options,
2428
+ hookData,
2429
+ $get: () => getScopedData(stateKey, path, meta).value,
2430
+ $update: (payload: any) => {
2431
+ effectiveSetState(payload, path, {
2432
+ updateType: 'update',
2433
+ });
2434
+
2435
+ return {
2436
+ synced: () => {
2437
+ const shadowMeta = getGlobalStore
2438
+ .getState()
2439
+ .getShadowMetadata(stateKey, path);
2440
+
2441
+ setShadowMetadata(stateKey, path, {
2442
+ ...shadowMeta,
2443
+ isDirty: false,
2444
+ stateSource: 'server',
2445
+ lastServerSync: Date.now(),
2446
+ });
2447
+ },
2448
+ };
2449
+ },
2450
+ $applyOperation: (
2451
+ operation: UpdateTypeDetail,
2452
+ metaData?: Record<string, any>
2453
+ ) => {
2454
+ effectiveSetState(operation.newValue, operation.path, {
2455
+ updateType: operation.updateType,
2456
+ itemId: operation.itemId,
2457
+ metaData,
2458
+ });
2459
+ },
2460
+ getFieldMetaData: () =>
2461
+ getPluginMetaDataMap(stateKey, path)?.get(plugin.name),
2462
+ setFieldMetaData: (data: Record<string, any>) =>
2463
+ setPluginMetaData(stateKey, path, plugin.name, data),
2464
+ removeFieldMetaData: () =>
2465
+ removePluginMetaData(stateKey, path, plugin.name),
2466
+ getFieldRefs: () => getFieldRefsForPath(stateKey, path),
2467
+ getFieldElements: () =>
2468
+ getFieldElementsForPath(stateKey, path),
2469
+ setFieldDisabled: (disabled: boolean) =>
2470
+ setFieldDisabledForPath(stateKey, path, disabled),
2471
+ },
2472
+ ...args
2473
+ );
2474
+ };
2475
+ }
2476
+ }
2477
+ if (prop === '$_rebuildStateShape') {
2478
+ return rebuildStateShape;
2479
+ }
2477
2480
 
2478
2481
  if (prop === '$sync' && path.length === 0) {
2479
2482
  return async function () {
package/src/plugins.ts CHANGED
@@ -56,11 +56,13 @@ type ChainMethodCallable<THandler> = THandler extends (
56
56
  ? (...args: TArgs) => TReturn
57
57
  : never;
58
58
 
59
- export type ChainMethodCallables<TMethods> = {
60
- [K in keyof TMethods]: TMethods[K] extends ChainMethodDefinition<infer TFn>
61
- ? ChainMethodCallable<TFn>
62
- : never;
63
- };
59
+ export type ChainMethodCallables<TMethods> = {
60
+ [K in keyof TMethods as K extends string
61
+ ? `$${K}`
62
+ : never]: TMethods[K] extends ChainMethodDefinition<infer TFn>
63
+ ? ChainMethodCallable<TFn>
64
+ : never;
65
+ };
64
66
 
65
67
  export type KeyedTypes<TMap extends Record<string, any>> = {
66
68
  __key: 'keyed';
@@ -470,9 +472,14 @@ type ZodObjOutput<T extends z.ZodObject<any>> = {
470
472
  type OutputOf<T extends z.ZodTypeAny> =
471
473
  T extends z.ZodObject<any> ? Prettify<ZodObjOutput<T>> : z.output<T>;
472
474
 
473
- type MethodFactory = <THandler extends ChainMethodHandler>(
474
- handler: THandler
475
- ) => ChainMethodDefinition<THandler>;
475
+ type MethodFactory = <TArgs extends any[], TReturn>(
476
+ handler: (
477
+ ctx: ChainMethodContext<any, any>,
478
+ ...args: TArgs
479
+ ) => TReturn
480
+ ) => ChainMethodDefinition<
481
+ (ctx: ChainMethodContext<any, any>, ...args: TArgs) => TReturn
482
+ >;
476
483
 
477
484
  type PathMethodFactory = MethodFactory & {
478
485
  array: MethodFactory;