{
  "version": 3,
  "sources": ["../../src/modules/diviner-model/attachable/asAttachableInstance.ts", "../../src/modules/diviner-model/attachable/isAttachableInstance.ts", "../../src/modules/diviner-model/typeChecks.ts", "../../src/modules/diviner-model/Queries/Divine.ts", "../../src/modules/diviner-model/attachable/AttachableInstance.ts", "../../src/modules/diviner-model/Config.ts"],
  "sourcesContent": ["import { AsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableDivinerInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableDivinerInstance = AsObjectFactory.create(isAttachableDivinerInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\n\nimport { isAttachableModuleInstance } from '#module-model'\n\nimport { isDivinerInstance } from '../typeChecks.ts'\nimport type { AttachableDivinerInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableDivinerInstanceFunctions: ObjectTypeShape = {}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableDivinerInstance>()\n\nexport const isAttachableDivinerInstance: TypeCheck<AttachableDivinerInstance> = factory.create(requiredAttachableDivinerInstanceFunctions, [\n  isDivinerInstance,\n  isAttachableModuleInstance,\n])\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { AsObjectFactory } from '@ariestools/sdk'\n\nimport {\n  IsInstanceFactory, isModuleInstance, IsQueryableModuleFactory, WithFactory,\n} from '#module-model'\n\nimport type { DivinerInstance } from './Instance.ts'\nimport type { DivinerModule } from './Module.ts'\nimport { DivinerDivineQuerySchema } from './Queries/index.ts'\n\nexport const isDivinerInstance: TypeCheck<DivinerInstance> = new IsInstanceFactory<DivinerInstance>().create({ divine: 'function' }, [isModuleInstance])\nexport const isDivinerModule: TypeCheck<DivinerModule> = new IsQueryableModuleFactory<DivinerModule>().create([DivinerDivineQuerySchema])\n\nexport const asDivinerModule = AsObjectFactory.create(isDivinerModule)\nexport const asDivinerInstance = AsObjectFactory.create(isDivinerInstance)\n\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withDivinerModule = WithFactory.create(isDivinerModule)\n/** @deprecated use narrowing instead [ if(is) ] */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport const withDivinerInstance = WithFactory.create(isDivinerInstance)\n", "import {\n  zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n  asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nexport const DivinerDivineQuerySchema: 'network.xyo.query.diviner.divine' & {\n  readonly __schema: true\n} = asSchema('network.xyo.query.diviner.divine', true)\nexport type DivinerDivineQuerySchema = typeof DivinerDivineQuerySchema\n\nexport const DivinerDivineQueryZod: z.ZodMiniObject<\n  & { schema: z.ZodMiniLiteral<DivinerDivineQuerySchema> }\n  & (typeof QueryFieldsZod)['shape'],\n  z.core.$strip\n> = z.extend(PayloadZodOfSchema(DivinerDivineQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type DivinerDivineQuery = z.infer<typeof DivinerDivineQueryZod>\n\nexport const isDivinerDivineQuery: ReturnType<typeof zodIsFactory<DivinerDivineQuery>> = zodIsFactory(DivinerDivineQueryZod)\nexport const asDivinerDivineQuery: ReturnType<typeof zodAsFactory<DivinerDivineQuery>> = zodAsFactory(DivinerDivineQueryZod, 'asDivinerDivineQuery')\nexport const toDivinerDivineQuery: ReturnType<typeof zodToFactory<DivinerDivineQuery>> = zodToFactory(DivinerDivineQueryZod, 'toDivinerDivineQuery')\n", "import type { TypeCheck } from '@ariestools/sdk'\nimport { IsObjectFactory } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk-protocol'\n\nimport type { AttachableModuleInstance } from '#module-model'\n\nimport type { DivinerModuleEventData } from '../EventData.ts'\nimport type { DivinerInstance } from '../Instance.ts'\nimport type { DivinerParams } from '../Params.ts'\n\nexport interface AttachableDivinerInstance<\n  TParams extends DivinerParams = DivinerParams,\n  TIn extends Payload = Payload,\n  TOut extends Payload = Payload,\n  TEventData extends DivinerModuleEventData = DivinerModuleEventData,\n> extends DivinerInstance<TParams, TIn, TOut, TEventData>,\n  AttachableModuleInstance<TParams, TEventData> {}\n\nexport type AttachableDivinerInstanceTypeCheck<T extends AttachableDivinerInstance = AttachableDivinerInstance> = TypeCheck<T>\n\nexport class IsAttachableDivinerInstanceFactory<T extends AttachableDivinerInstance = AttachableDivinerInstance> extends IsObjectFactory<T> {}\n", "import type { EmptyObject, WithAdditional } from '@ariestools/sdk'\nimport {\n  zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n  asSchema, type Payload, type Schema,\n} from '@xyo-network/sdk-protocol'\nimport * as z from 'zod/mini'\n\nimport type { ModuleConfig, ModuleIdentifier } from '#module-model'\nimport { ModuleConfigZod } from '#module-model'\n\nexport const DivinerConfigSchema: 'network.xyo.diviner.config' & {\n  readonly __schema: true\n} = asSchema('network.xyo.diviner.config', true)\nexport type DivinerConfigSchema = typeof DivinerConfigSchema\n\nexport interface ModuleEventSubscription {\n  sourceEvent: string\n  sourceModule: ModuleIdentifier\n  targetModuleFunction?: string\n}\n\nexport const DivinerConfigZod: z.ZodMiniObject<\n  Omit<(typeof ModuleConfigZod)['shape'], 'schema'> & {\n    eventSubscriptions: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniCustom<ModuleEventSubscription, ModuleEventSubscription>>>\n    schema: z.ZodMiniLiteral<DivinerConfigSchema>\n  },\n  z.core.$strip\n> = z.extend(ModuleConfigZod, {\n  eventSubscriptions: z.optional(z.array(z.custom<ModuleEventSubscription>())),\n  schema: z.literal(DivinerConfigSchema),\n})\n\nexport type DivinerConfigBase = z.infer<typeof DivinerConfigZod>\n\nexport const isDivinerConfig: ReturnType<typeof zodIsFactory<DivinerConfigBase>> = zodIsFactory(DivinerConfigZod)\nexport const asDivinerConfig: ReturnType<typeof zodAsFactory<DivinerConfigBase>> = zodAsFactory(DivinerConfigZod, 'asDivinerConfig')\nexport const toDivinerConfig: ReturnType<typeof zodToFactory<DivinerConfigBase>> = zodToFactory(DivinerConfigZod, 'toDivinerConfig')\n\nexport type DivinerConfig<TConfig extends Payload | EmptyObject | void = void, TSchema extends Schema | void = void> = ModuleConfig<\n  WithAdditional<\n    {\n      eventSubscriptions?: ModuleEventSubscription[]\n    },\n    Omit<TConfig, 'schema'>\n  >,\n  TSchema extends Schema ? TSchema : TConfig extends Payload ? TConfig['schema'] : DivinerConfigSchema\n>\n"],
  "mappings": ";AAAA,SAAS,mBAAAA,wBAAuB;;;ACChC,SAAS,uBAAuB;AAEhC,SAAS,kCAAkC;;;ACF3C,SAAS,uBAAuB;AAEhC;AAAA,EACE;AAAA,EAAmB;AAAA,EAAkB;AAAA,EAA0B;AAAA,OAC1D;;;ACLP;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AACP;AAAA,EACE;AAAA,EAAU;AAAA,EAAoB;AAAA,OACzB;AACP,YAAY,OAAO;AAEZ,IAAM,2BAET,SAAS,oCAAoC,IAAI;AAG9C,IAAM,wBAIP,SAAO,mBAAmB,wBAAwB,GAAG,EAAE,GAAG,eAAe,MAAM,CAAC;AAI/E,IAAM,uBAA4E,aAAa,qBAAqB;AACpH,IAAM,uBAA4E,aAAa,uBAAuB,sBAAsB;AAC5I,IAAM,uBAA4E,aAAa,uBAAuB,sBAAsB;;;ADZ5I,IAAM,oBAAgD,IAAI,kBAAmC,EAAE,OAAO,EAAE,QAAQ,WAAW,GAAG,CAAC,gBAAgB,CAAC;AAChJ,IAAM,kBAA4C,IAAI,yBAAwC,EAAE,OAAO,CAAC,wBAAwB,CAAC;AAEjI,IAAM,kBAAkB,gBAAgB,OAAO,eAAe;AAC9D,IAAM,oBAAoB,gBAAgB,OAAO,iBAAiB;AAIlE,IAAM,oBAAoB,YAAY,OAAO,eAAe;AAG5D,IAAM,sBAAsB,YAAY,OAAO,iBAAiB;;;ADdhE,IAAM,6CAA8D,CAAC;AAG5E,IAAM,UAAU,IAAI,gBAA2C;AAExD,IAAM,8BAAoE,QAAQ,OAAO,4CAA4C;AAAA,EAC1I;AAAA,EACA;AACF,CAAC;;;ADZM,IAAM,8BAA8BC,iBAAgB,OAAO,2BAA2B;;;AIH7F,SAAS,mBAAAC,wBAAuB;AAmBzB,IAAM,qCAAN,cAAkHA,iBAAmB;AAAC;;;ACnB7I;AAAA,EACE,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,OACvB;AACP;AAAA,EACE,YAAAC;AAAA,OACK;AACP,YAAYC,QAAO;AAGnB,SAAS,uBAAuB;AAEzB,IAAM,sBAETD,UAAS,8BAA8B,IAAI;AASxC,IAAM,mBAMP,UAAO,iBAAiB;AAAA,EAC5B,oBAAsB,YAAW,SAAQ,UAAgC,CAAC,CAAC;AAAA,EAC3E,QAAU,WAAQ,mBAAmB;AACvC,CAAC;AAIM,IAAM,kBAAsEF,cAAa,gBAAgB;AACzG,IAAM,kBAAsED,cAAa,kBAAkB,iBAAiB;AAC5H,IAAM,kBAAsEE,cAAa,kBAAkB,iBAAiB;",
  "names": ["AsObjectFactory", "AsObjectFactory", "IsObjectFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z"]
}
