{
  "version": 3,
  "sources": ["../../src/Config/Config.ts", "../../src/CreatableModule/CreatableModule.ts", "../../src/CreatableModule/CreatableModuleRegistry.ts", "../../src/CreatableModule/LabeledCreatableModule.ts", "../../src/CreatableModule/LabeledCreatableModuleFactory.ts", "../../src/CreatableModule/ModuleFactory.ts", "../../src/DetailsError.ts", "../../src/instance/asModuleInstance.ts", "../../src/instance/isModuleInstance.ts", "../../src/QueryableModule/asQueryableModule.ts", "../../src/Queries/Manifest.ts", "../../src/Queries/ModuleAddress/Query.ts", "../../src/Queries/State.ts", "../../src/Queries/Subscribe.ts", "../../src/QueryableModule/asQueryableModuleObject.ts", "../../src/QueryableModule/isQueryableModuleObject.ts", "../../src/QueryableModule/IsQueryableModuleFactory.ts", "../../src/QueryableModule/isQueryableModule.ts", "../../src/instance/attachable/asAttachableInstance.ts", "../../src/instance/attachable/isAttachableInstance.ts", "../../src/instance/attachable/AttachableInstance.ts", "../../src/instance/Instance.ts", "../../src/instance/ObjectFilter.ts", "../../src/instance/ModuleFilter.ts", "../../src/instance/ObjectResolver.ts", "../../src/instance/ModuleResolver.ts", "../../src/Labels/Labels.ts", "../../src/Labels/standard/View.ts", "../../src/lib/duplicateModules.ts", "../../src/lib/serializable.ts", "../../src/ModuleIdentifier.ts", "../../src/Payload/Address.ts", "../../src/Payload/AddressPreviousHash.ts", "../../src/Payload/Description.ts", "../../src/Payload/ModuleState.ts", "../../src/withModule.ts"],
  "sourcesContent": ["import type { EmptyObject } from '@xylabs/sdk-js'\nimport {\n  asSchema, type Payload, type Schema,\n} from '@xyo-network/payload-model'\n\nimport type { ArchivingModuleConfig } from './Archiving.ts'\nimport type { ModuleConfigFields } from './Fields.ts'\nimport type { ArchivingReentrancyConfig } from './Reentrancy.ts'\n\nexport const ModuleConfigSchema = asSchema('network.xyo.module.config', true)\nexport type ModuleConfigSchema = typeof ModuleConfigSchema\n\nexport type WithAdditional<T extends EmptyObject = EmptyObject, TAdditional extends EmptyObject = EmptyObject>\n  = T & TAdditional\n\nexport type ModuleConfig<TConfig extends EmptyObject | Payload = EmptyObject, TSchema extends Schema | void = void> = Payload<\n  WithAdditional<ArchivingModuleConfig & ModuleConfigFields & ArchivingReentrancyConfig, TConfig>,\n  TSchema extends void ? TConfig extends Payload ? TConfig['schema']\n    : Schema : TSchema\n>\n\nexport type AnyConfigSchema<TConfig extends Omit<ModuleConfig, 'schema'> & { schema: Schema } = Omit<ModuleConfig, 'schema'> & { schema: Schema }>\n  = ModuleConfig<TConfig, Schema>\n\nexport type OptionalConfigSchema<TConfig extends AnyConfigSchema<ModuleConfig> = AnyConfigSchema<ModuleConfig>> = Omit<TConfig, 'schema'> & {\n  schema?: TConfig['schema']\n}\n\nexport type AnyModuleConfig = AnyConfigSchema<ModuleConfig>\n", "import type {\n  Creatable, CreatableInstance, Logger,\n} from '@xylabs/sdk-js'\nimport type { Schema } from '@xyo-network/payload-model'\n\nimport type { ModuleEventData } from '../EventsModels/index.ts'\nimport type { AttachableModuleInstance } from '../instance/index.ts'\nimport type { QueryableModuleParams } from '../QueryableModule/index.ts'\n\nexport interface CreatableModuleInstance<TParams extends QueryableModuleParams = QueryableModuleParams, TEventData extends ModuleEventData = ModuleEventData>\n  extends CreatableInstance<TParams, TEventData>, AttachableModuleInstance<TParams, TEventData> {}\n\nexport interface CreatableModuleFactory<T extends CreatableModuleInstance = CreatableModuleInstance>\n  extends Omit<CreatableModule<T>, 'create' | 'createHandler' | 'paramsHandler'> {\n  creatableModule: CreatableModule<T>\n  defaultParams?: Partial<T['params']>\n\n  create(\n    this: CreatableModuleFactory<T>,\n    params?: Partial<T['params']>): Promise<T>\n}\n\nexport interface CreatableModule<T extends CreatableModuleInstance = CreatableModuleInstance> extends Creatable<T> {\n  configSchemas: Schema[]\n  defaultConfigSchema: Schema\n  defaultLogger?: Logger\n  new(key: unknown, params: Partial<T['params']>): T\n  factory(params?: Partial<T['params']>): CreatableModuleFactory<T>\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\nexport function creatableModule<TModule extends CreatableModuleInstance = CreatableModuleInstance>() {\n  return <U extends CreatableModule<TModule>>(constructor: U) => {\n    // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n    constructor\n  }\n}\n", "import { isTruthy } from '@xylabs/sdk-js'\nimport { asSchema, type Schema } from '@xyo-network/payload-model'\n\nimport type { Labels } from '../Labels/index.ts'\nimport type { CreatableModuleFactory, CreatableModuleInstance } from './CreatableModule.ts'\nimport type { LabeledCreatableModuleFactory } from './LabeledCreatableModuleFactory.ts'\n\nexport type CreatableModuleRegistry = Record<Schema, (CreatableModuleFactory | LabeledCreatableModuleFactory)[] | undefined>\n\nconst buildModuleFactory = <TModule extends CreatableModuleInstance>(\n  mod: CreatableModuleFactory<TModule>,\n  labels?: Labels,\n): LabeledCreatableModuleFactory<TModule> => {\n  const factory: LabeledCreatableModuleFactory<TModule> = {\n    // Destructure instance properties\n    ...mod,\n\n    configSchemas: mod.configSchemas,\n    // Copy static methods\n    create: mod.create.bind(mod) as LabeledCreatableModuleFactory<TModule>['create'],\n\n    defaultConfigSchema: mod.defaultConfigSchema,\n    // Merge module & supplied labels\n    labels: { ...(mod as LabeledCreatableModuleFactory).labels, ...labels },\n  }\n  return factory\n}\n\nexport const registerCreatableModuleFactory = <TModule extends CreatableModuleInstance>(\n  registry: CreatableModuleRegistry,\n  factory: CreatableModuleFactory<TModule> | LabeledCreatableModuleFactory<TModule>,\n  labels?: Labels,\n  /** register this as the primary factory for every schema it supports */\n  primary: boolean | Schema | Schema[] = false,\n) => {\n  const primarySchemas\n    = primary !== true && isTruthy(primary)\n      ? Array.isArray(primary)\n        ? primary\n        : [primary]\n      : []\n\n  for (const primarySchema of primarySchemas) {\n    if (!factory.configSchemas.includes(primarySchema)) {\n      console.warn(`Primary schema ${primary} not found in factory configSchemas`)\n    }\n  }\n\n  const isPrimaryForSchema = (schema: Schema) => {\n    switch (typeof primary) {\n      case 'boolean': {\n        return primary\n      }\n      case 'string': {\n        return schema === primary\n      }\n      case 'object': {\n        if (Array.isArray(primary)) {\n          return primary.includes(schema)\n        }\n      }\n    }\n    throw new Error(`Invalid primary value: ${primary}`)\n  }\n\n  const factoryClone: LabeledCreatableModuleFactory<TModule> = buildModuleFactory(factory, labels)\n  // add the defaultConfigSchema as the first key in the registry\n  registry[factory.defaultConfigSchema] = [factoryClone, ...(registry[factoryClone.defaultConfigSchema] ?? [])]\n  for (const schema of factoryClone.configSchemas) {\n    registry[schema] = isPrimaryForSchema(schema) ? [factoryClone, ...(registry[schema] ?? [])] : [...(registry[schema] ?? []), factoryClone]\n  }\n}\n\nexport const registerCreatableModuleFactories = (\n  factories: (CreatableModuleFactory | LabeledCreatableModuleFactory)[],\n  registry: CreatableModuleRegistry = {},\n  primary = false,\n) => {\n  for (const factory of factories) {\n    registerCreatableModuleFactory(registry, factory, undefined, primary)\n  }\n  return registry\n}\n\n/** @deprecated use registerCreatableModuleFactory instead */\nexport const assignCreatableModuleRegistry = (\n  target: CreatableModuleRegistry = {},\n  ...sources: CreatableModuleRegistry[]\n): CreatableModuleRegistry => {\n  for (const source of sources)\n    for (const [schemaString, factories] of Object.entries(source)) {\n      const schema = asSchema(schemaString, true)\n      if (factories) {\n        const existingFactories = target[schema]\n        target[schema] = [...existingFactories ?? [], ...factories]\n      }\n    }\n\n  return target\n}\n", "import type { WithOptionalLabels } from '../Labels/index.ts'\nimport type { CreatableModule, CreatableModuleInstance } from './CreatableModule.ts'\nimport type { LabeledCreatableModuleFactory } from './LabeledCreatableModuleFactory.ts'\n\nexport interface LabeledCreatableModule<T extends CreatableModuleInstance = CreatableModuleInstance> extends CreatableModule<T>, WithOptionalLabels {\n  factory(params?: Partial<T['params']>): LabeledCreatableModuleFactory<T>\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous creation pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\nexport function labeledCreatableModule<TModule extends CreatableModuleInstance = CreatableModuleInstance>() {\n  return <U extends LabeledCreatableModule<TModule>>(constructor: U) => {\n    // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n    constructor\n  }\n}\n", "import type { WithOptionalLabels } from '../Labels/index.ts'\nimport type { CreatableModuleFactory, CreatableModuleInstance } from './CreatableModule.ts'\n\nexport type LabeledCreatableModuleFactory<T extends CreatableModuleInstance = CreatableModuleInstance> = CreatableModuleFactory<T> & WithOptionalLabels\n\nexport const hasLabels = (factory: CreatableModuleFactory | LabeledCreatableModuleFactory): factory is LabeledCreatableModuleFactory => {\n  return (factory as LabeledCreatableModuleFactory).labels !== undefined\n}\n\n/**\n * Class annotation to be used to decorate Modules which support\n * an asynchronous labeled creation factory pattern\n * @returns The decorated Module requiring it implement the members\n * of the CreatableModule as statics properties/methods\n */\nexport function labeledCreatableModuleFactory<TModule extends CreatableModuleInstance = CreatableModuleInstance>() {\n  return <U extends LabeledCreatableModuleFactory<TModule>>(constructor: U) => {\n    // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n    constructor\n  }\n}\n", "import type { Logger } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type { Schema } from '@xyo-network/payload-model'\n\nimport type { Labels, WithOptionalLabels } from '../Labels/index.ts'\nimport type {\n  CreatableModule, CreatableModuleFactory, CreatableModuleInstance,\n} from './CreatableModule.ts'\n\nexport class ModuleFactory<TModule extends CreatableModuleInstance> implements CreatableModuleFactory<TModule> {\n  configSchemas: CreatableModule<TModule>['configSchemas']\n\n  creatableModule: CreatableModule<TModule>\n\n  defaultConfigSchema: Schema\n\n  defaultLogger?: Logger\n\n  defaultParams?: Partial<TModule['params']>\n\n  labels?: Labels\n\n  constructor(\n    creatableModule: CreatableModule<TModule>,\n    params?: Partial<TModule['params']>,\n    labels: Labels = {},\n  ) {\n    this.creatableModule = creatableModule\n    this.defaultParams = params\n    this.configSchemas = creatableModule.configSchemas\n    this.defaultConfigSchema = creatableModule.defaultConfigSchema\n    assertEx(this.configSchemas.includes(this.defaultConfigSchema), () => 'defaultConfigSchema must be in configSchemas')\n    this.labels = Object.assign({}, (creatableModule as WithOptionalLabels).labels ?? {}, labels ?? {})\n  }\n\n  static withParams<T extends CreatableModuleInstance>(\n    creatableModule: CreatableModule<T>,\n    params?: Partial<T['params']>,\n    labels: Labels = {},\n  ) {\n    return new ModuleFactory<T>(creatableModule, params, labels)\n  }\n\n  create(this: CreatableModuleFactory<TModule>, params?: Partial<TModule['params']>): Promise<TModule> {\n    const mergedParams: TModule['params'] = {\n      ...this.defaultParams,\n      ...params,\n      config: {\n        schema: this.creatableModule.defaultConfigSchema,\n        ...this.defaultParams?.config,\n        ...params?.config,\n      },\n    } as TModule['params']\n    return this.creatableModule.create<TModule>(mergedParams)\n  }\n\n  factory<T extends CreatableModuleInstance>(this: CreatableModuleFactory<T>, params?: Partial<T['params']>, labels: Labels = {}): CreatableModuleFactory<T> {\n    return new ModuleFactory<T>(this.creatableModule, params, labels)\n  }\n}\n", "import type { JsonValue } from '@xylabs/sdk-js'\n\nexport class ModuleDetailsError extends Error {\n  details?: JsonValue\n  constructor(\n    message: string,\n    details?: JsonValue,\n  ) {\n    super(message)\n    this.details = details\n    this.name = 'ModuleError'\n  }\n}\n", "import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isModuleInstance } from './isModuleInstance.ts'\n\nexport const asModuleInstance = AsObjectFactory.create(isModuleInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@xylabs/sdk-js'\nimport { IsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isQueryableModule } from '../QueryableModule/index.ts'\nimport type { ModuleInstance } from './Instance.ts'\n\nexport const requiredModuleInstanceFunctions: ObjectTypeShape = {\n  manifest: 'function',\n  state: 'function',\n}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<ModuleInstance>()\n\nexport const isModuleInstance: TypeCheck<ModuleInstance> = factory.create(requiredModuleInstanceFunctions, [isQueryableModule])\n", "import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isQueryableModule } from './isQueryableModule.ts'\n\nexport const asQueryableModule = AsObjectFactory.create(isQueryableModule)\n\n/** @deprecated use asQueryableModule instead */\nexport const asModule = asQueryableModule\n", "import { asSchema, type Query } from '@xyo-network/payload-model'\n\nexport const ModuleManifestQuerySchema = asSchema('network.xyo.query.module.manifest', true)\nexport type ModuleManifestQuerySchema = typeof ModuleManifestQuerySchema\n\nexport type ModuleManifestQuery = Query<{\n  maxDepth?: number\n  schema: ModuleManifestQuerySchema\n}>\n", "import { asSchema, type Query } from '@xyo-network/payload-model'\n\nexport const ModuleAddressQuerySchema = asSchema('network.xyo.query.module.address', true)\nexport type ModuleAddressQuerySchema = typeof ModuleAddressQuerySchema\n\nexport type ModuleAddressQuery = Query<{\n  schema: ModuleAddressQuerySchema\n}>\n", "import { asSchema, type Query } from '@xyo-network/payload-model'\n\nexport const ModuleStateQuerySchema = asSchema('network.xyo.query.module.state', true)\nexport type ModuleStateQuerySchema = typeof ModuleStateQuerySchema\n\nexport type ModuleStateQuery = Query<void, ModuleStateQuerySchema>\n", "import type { Address } from '@xylabs/sdk-js'\nimport { asSchema, type Query } from '@xyo-network/payload-model'\n\nexport const ModuleSubscribeQuerySchema = asSchema('network.xyo.query.module.subscribe', true)\nexport type ModuleSubscribeQuerySchema = typeof ModuleSubscribeQuerySchema\n\nexport interface ModuleSubscribeFilter {\n  /** @field if specified, at least one of the schemas must be present in the boundwtness to generate a notification */\n  schema?: string[]\n}\n\n// requests notification when a boundwitness is added to the modules chain that meets the filter criteria\nexport type ModuleSubscribeQuery = Query<{\n  /** @field The address that will receive notifications */\n  address: Address\n  /** @field A subscribe with a null for filter is an unsubscribe */\n  filter?: ModuleSubscribeFilter | null\n  /** @field The maximum events queued per send [may increase frequency] */\n  maxQueue?: number\n  schema: ModuleSubscribeQuerySchema\n}>\n", "import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isQueryableModuleObject } from './isQueryableModuleObject.ts'\n\nexport const asQueryableModuleObject = AsObjectFactory.create(isQueryableModuleObject)\n\n/** @deprecated use asQueryableModuleObject instead */\nexport const asModuleObject = asQueryableModuleObject\n", "import type { ObjectTypeShape, TypeCheck } from '@xylabs/sdk-js'\nimport { IsObjectFactory } from '@xylabs/sdk-js'\n\nimport type { QueryableModule } from './QueryableModule.ts'\n\nexport const requiredQueryableModuleShape: ObjectTypeShape = {\n  address: 'string',\n  queries: 'array',\n  query: 'function',\n}\n\n/** @deprecated use requiredQueryableModuleShape instead */\nexport const requiredModuleShape: ObjectTypeShape = requiredQueryableModuleShape\n\nconst factory = new IsObjectFactory<QueryableModule>()\n\nexport const isQueryableModuleObject: TypeCheck<QueryableModule> = factory.create(requiredQueryableModuleShape)\n\n/** @deprecated use isQueryableModuleObject instead */\nexport const isModuleObject: TypeCheck<QueryableModule> = isQueryableModuleObject\n", "import type {\n  AnyNonPromise,\n  AnyObject, EmptyObject, TypeCheck,\n  TypeCheckConfig,\n} from '@xylabs/sdk-js'\n\nimport { asQueryableModuleObject } from './asQueryableModuleObject.ts'\nimport { isQueryableModuleObject } from './isQueryableModuleObject.ts'\nimport type { QueryableModule } from './QueryableModule.ts'\n\nexport type QueryableModuleTypeCheck<T extends QueryableModule = QueryableModule> = TypeCheck<T>\n\n/** @deprecated use QueryableModuleTypeCheck instead */\nexport type ModuleTypeCheck<T extends QueryableModule = QueryableModule> = TypeCheck<T>\n\nexport class IsQueryableModuleFactory<T extends QueryableModule = QueryableModule> {\n  create(expectedQueries?: string[], additionalChecks?: TypeCheck<AnyObject | EmptyObject>[]): QueryableModuleTypeCheck<T> {\n    const result = (obj: AnyNonPromise, config?: TypeCheckConfig | number): obj is T => {\n      const mod = asQueryableModuleObject(obj)\n      return (\n        isQueryableModuleObject(mod, config)\n        // eslint-disable-next-line unicorn/no-array-reduce\n        && (expectedQueries?.reduce((prev, query) => prev && mod.queries.includes(query), true) ?? true)\n        // perform additional checks\n        // eslint-disable-next-line unicorn/no-array-reduce\n        && (additionalChecks?.reduce((prev, check) => prev && check(obj, config), true) ?? true)\n      )\n    }\n    return result\n  }\n}\n\n/** @deprecated use IsQueryableModuleFactory instead */\nexport class IsModuleFactory<T extends QueryableModule = QueryableModule> extends IsQueryableModuleFactory<T> {}\n", "import type { TypeCheck } from '@xylabs/sdk-js'\nimport type { Schema } from '@xyo-network/payload-model'\n\nimport { ModuleStateQuerySchema } from '../Queries/index.ts'\nimport { IsQueryableModuleFactory } from './IsQueryableModuleFactory.ts'\nimport { isQueryableModuleObject } from './isQueryableModuleObject.ts'\nimport type { QueryableModule } from './QueryableModule.ts'\n\nexport const requiredQueryableModuleQueries: Schema[] = [ModuleStateQuerySchema]\n\n/** @deprecated use requiredQueryableModuleQueries instead */\nexport const requiredModuleQueries: Schema[] = requiredQueryableModuleQueries\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsQueryableModuleFactory<QueryableModule>()\n\nexport const isQueryableModule: TypeCheck<QueryableModule> = factory.create(requiredQueryableModuleQueries, [isQueryableModuleObject])\n\n/** @deprecated use isQueryableModule instead */\nexport const isModule: TypeCheck<QueryableModule> = isQueryableModule\n", "import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isAttachableModuleInstance } from './isAttachableInstance.ts'\n\nexport const asAttachableModuleInstance = AsObjectFactory.create(isAttachableModuleInstance)\n", "import type { ObjectTypeShape, TypeCheck } from '@xylabs/sdk-js'\nimport { IsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isModuleInstance } from '../isModuleInstance.ts'\nimport type { AttachableModuleInstance } from './AttachableInstance.ts'\n\nexport const requiredAttachableModuleInstanceFunctions: ObjectTypeShape = {\n  downResolver: 'object',\n  upResolver: 'object',\n}\n\n// we do not use IsInstanceFactory here to prevent a cycle\nconst factory = new IsObjectFactory<AttachableModuleInstance>()\n\nexport const isAttachableModuleInstance: TypeCheck<AttachableModuleInstance> = factory.create(requiredAttachableModuleInstanceFunctions, [\n  isModuleInstance,\n])\n", "import type { CreatableInstance, TypeCheck } from '@xylabs/sdk-js'\nimport { IsObjectFactory } from '@xylabs/sdk-js'\n\nimport type { ModuleEventData } from '../../EventsModels/index.ts'\nimport type { QueryableModuleParams } from '../../QueryableModule/index.ts'\nimport type { ModuleInstance } from '../Instance.ts'\nimport type { ModuleResolverInstance } from '../ModuleResolver.ts'\n\nexport interface AttachableModuleInstance<TParams extends QueryableModuleParams = QueryableModuleParams, TEventData extends ModuleEventData = ModuleEventData>\n  extends ModuleInstance<TParams, TEventData>, CreatableInstance<TParams, TEventData> {\n  config: TParams['config']\n  /* The resolver is a 'down' resolver.  It can resolve the module or any children (if it is a node for example), that are in the module */\n  readonly downResolver: ModuleResolverInstance\n\n  // The resolver that gets called by children (usually only Nodes have this)\n  readonly privateResolver: ModuleResolverInstance\n\n  /* The resolver is a 'up' resolver.  It can resolve the parent or any children of the parent */\n  /* This is set by a NodeModule when attaching to the module */\n  readonly upResolver: ModuleResolverInstance\n}\n\nexport type AttachableModuleInstanceTypeCheck<T extends AttachableModuleInstance = AttachableModuleInstance> = TypeCheck<T>\n\nexport class IsAttachableModuleInstanceFactory<T extends AttachableModuleInstance = AttachableModuleInstance> extends IsObjectFactory<T> {}\n", "import type {\n  Address, CreatableStatus, Promisable,\n  TypeCheck,\n} from '@xylabs/sdk-js'\nimport { IsObjectFactory, toSafeJsonString } from '@xylabs/sdk-js'\nimport type { AccountInstance } from '@xyo-network/account-model'\n\nimport type { ModuleEventData } from '../EventsModels/index.ts'\nimport type { ModuleIdentifier, ModuleName } from '../ModuleIdentifier.ts'\nimport type {\n  QueryableModule, QueryableModuleFunctions,\n  QueryableModuleParams,\n} from '../QueryableModule/index.ts'\nimport type { Direction } from './ObjectFilter.ts'\nimport type { ObjectResolver } from './ObjectResolver.ts'\n\nexport type ModulePipeLine = Lowercase<'one-to-one' | 'one-to-many' | 'many-to-one' | 'many-to-many'>\n\nexport type ModuleStatus = CreatableStatus | 'wrapped' | 'proxy'\n\nexport class DeadModuleError extends Error {\n  error: Error | undefined\n  id: ModuleIdentifier\n  constructor(\n    id: ModuleIdentifier,\n    error: Error | undefined,\n    msg = 'Dead Module Error',\n  ) {\n    super(`${msg} [${id}]: ${error?.message ?? toSafeJsonString(error)}`)\n    this.id = id\n    this.error = error\n\n    // Set the prototype explicitly.\n    Object.setPrototypeOf(this, DeadModuleError.prototype)\n  }\n}\n\nexport interface AddressToWeakInstanceCache {\n  get: (address: Address) => WeakRef<ModuleInstance> | null\n  set: (address: Address, instance: WeakRef<ModuleInstance> | null) => void\n}\n\nexport interface ModuleFamilyFunctions {\n  account?: AccountInstance\n  addParent: (mod: ModuleInstance) => void\n  addressCache?: (direction: Direction, includePrivate: boolean) => AddressToWeakInstanceCache | undefined\n  modName?: ModuleName\n  parents: () => Promisable<ModuleInstance[]>\n  privateChildren: () => Promisable<ModuleInstance[]>\n  publicChildren: () => Promisable<ModuleInstance[]>\n  removeParent: (address: Address) => void\n  siblings: () => Promisable<ModuleInstance[]>\n}\n\nexport interface ModuleInstance<TParams extends QueryableModuleParams = QueryableModuleParams, TEventData extends ModuleEventData = ModuleEventData>\n  extends QueryableModule<TParams, TEventData>,\n  ObjectResolver<ModuleInstance>,\n  QueryableModuleFunctions,\n  ModuleFamilyFunctions {\n  readonly pipeline?: ModulePipeLine\n\n  // if the module has become non-functional, such as a broken bridge connection, this will be 'dead'\n  readonly status: ModuleStatus | null\n}\n\nexport type InstanceTypeCheck<T extends ModuleInstance = ModuleInstance> = TypeCheck<T>\n\nexport class IsInstanceFactory<T extends ModuleInstance = ModuleInstance> extends IsObjectFactory<T> {}\n", "import type {\n  Address,\n  AnyObject, EmptyObject, TypeCheck,\n} from '@xylabs/sdk-js'\n\nimport type { ModuleName } from '../ModuleIdentifier.ts'\n\nexport type Direction = 'up' | 'down' | 'all'\nexport type Visibility = 'public' | 'private' | 'all'\n\nexport interface ResolveStrategy {\n  maxDepth?: number\n  required?: boolean | 'warn' | 'log'\n  retry?: number\n  timeout?: number\n}\n\nexport interface ObjectFilterOptions<T extends EmptyObject = AnyObject> extends ResolveStrategy {\n  direction?: Direction\n  identity?: TypeCheck<T>\n}\n\nexport interface AddressObjectFilter<T extends EmptyObject = AnyObject> extends ObjectFilterOptions<T> {\n  address: Address[]\n}\n\nexport const isAddressObjectFilter = <T extends EmptyObject = AnyObject>(value: unknown): value is AddressObjectFilter<T> =>\n  (value as AddressObjectFilter<T>).address !== undefined\n\nexport interface NameObjectFilter<T extends EmptyObject = AnyObject> extends ObjectFilterOptions<T> {\n  name: ModuleName[]\n}\n\nexport const isNameObjectFilter = <T extends EmptyObject = AnyObject>(value: unknown): value is NameObjectFilter<T> =>\n  (value as NameObjectFilter<T>).name !== undefined\n\nexport interface QueryObjectFilter<T extends EmptyObject = AnyObject> extends ObjectFilterOptions<T> {\n  query: string[][]\n}\n\nexport const isQueryObjectFilter = <T extends EmptyObject = AnyObject>(value: unknown): value is QueryObjectFilter<T> =>\n  (value as QueryObjectFilter<T>).query !== undefined\n\nexport type AnyObjectFilter<T extends EmptyObject = AnyObject> = Partial<AddressObjectFilter<T>>\n  & Partial<NameObjectFilter<T>>\n  & Partial<QueryObjectFilter<T>>\n\nexport type ObjectFilter<T extends EmptyObject> = ObjectFilterOptions<T> | AddressObjectFilter<T> | NameObjectFilter<T> | QueryObjectFilter<T>\n", "import type { ModuleInstance } from './Instance.ts'\nimport type {\n  AddressObjectFilter,\n  AnyObjectFilter,\n  NameObjectFilter,\n  ObjectFilter,\n  ObjectFilterOptions,\n  QueryObjectFilter,\n} from './ObjectFilter.ts'\nimport {\n  isAddressObjectFilter,\n  isNameObjectFilter,\n  isQueryObjectFilter,\n} from './ObjectFilter.ts'\n\nexport interface ModuleFilterOptions<T extends ModuleInstance = ModuleInstance> extends ObjectFilterOptions<T> {}\n\nexport const isAddressModuleFilter = isAddressObjectFilter<ModuleInstance>\n\nexport const isNameModuleFilter = isNameObjectFilter<ModuleInstance>\n\nexport const isQueryModuleFilter = isQueryObjectFilter<ModuleInstance>\n\nexport type AnyModuleFilter<T extends ModuleInstance = ModuleInstance> = AnyObjectFilter<T>\n\nexport type AddressModuleFilter<T extends ModuleInstance = ModuleInstance> = AddressObjectFilter<T>\n\nexport type NameModuleFilter<T extends ModuleInstance = ModuleInstance> = NameObjectFilter<T>\n\nexport type QueryModuleFilter<T extends ModuleInstance = ModuleInstance> = QueryObjectFilter<T>\n\n/** @deprecated use ModuleIdentifier instead */\nexport type ModuleFilter<T extends ModuleInstance = ModuleInstance> = ObjectFilter<T>\n", "import type {\n  AnyObject, EmptyObject, Promisable,\n} from '@xylabs/sdk-js'\n\nimport type { ModuleIdentifier } from '../ModuleIdentifier.ts'\nimport type { ObjectFilterOptions } from './ObjectFilter.ts'\n\nexport const isObjectResolver = <T extends EmptyObject = AnyObject>(value?: unknown): value is ObjectResolver<T> => {\n  return typeof (value as Partial<ObjectResolver<T>>).resolve === 'function'\n}\n\nexport const ObjectResolverPriority = {\n  Disabled: -1,\n  VeryLow: 0,\n  Low: 1,\n  Normal: 2,\n  High: 3,\n  VeryHigh: 4,\n} as const\n\nexport type ObjectResolverPriority = typeof ObjectResolverPriority[keyof typeof ObjectResolverPriority]\n\nexport interface ObjectResolver<TResult extends EmptyObject> {\n  priority: ObjectResolverPriority\n  resolve<T extends TResult = TResult>(all: '*', options?: ObjectFilterOptions<T>): Promisable<T[]>\n  resolve<T extends TResult = TResult>(id: ModuleIdentifier, options?: ObjectFilterOptions<T>): Promisable<T | undefined>\n  resolve<T extends TResult = TResult>(\n    id?: ModuleIdentifier,\n    options?: ObjectFilterOptions<T>,\n  ): Promisable<T | T[] | undefined>\n\n  resolvePrivate<T extends TResult = TResult>(all: '*', options?: ObjectFilterOptions<T>): Promise<T[]>\n  resolvePrivate<T extends TResult = TResult>(id: ModuleIdentifier, options?: ObjectFilterOptions<T>): Promise<T | undefined>\n  resolvePrivate<T extends TResult = TResult>(id: ModuleIdentifier, options?: ObjectFilterOptions<T>): Promise<T | T[] | undefined>\n}\n\nexport interface ObjectResolverInstance<TResult extends EmptyObject> extends ObjectResolver<TResult> {\n  addResolver: (resolver: ObjectResolverInstance<TResult>) => this\n  removeResolver: (resolver: ObjectResolverInstance<TResult>) => this\n}\n", "import type { Address, Promisable } from '@xylabs/sdk-js'\n\nimport type { ModuleIdentifier } from '../ModuleIdentifier.ts'\nimport type { ModuleInstance } from './Instance.ts'\nimport type { ObjectFilterOptions } from './ObjectFilter.ts'\nimport type { ObjectResolver } from './ObjectResolver.ts'\nimport { isObjectResolver } from './ObjectResolver.ts'\n\nexport const isModuleResolver = isObjectResolver<ModuleInstance>\n\nexport interface ModuleResolver<TResult extends ModuleInstance = ModuleInstance> extends ObjectResolver<TResult> {}\n\nexport interface ModuleNameResolver {\n  readonly root: ModuleInstance\n  resolveIdentifier(id: ModuleIdentifier, options?: ObjectFilterOptions): Promisable<Address | undefined>\n}\n\nexport interface ModuleResolverInstance<TResult extends ModuleInstance = ModuleInstance> extends ModuleResolver<TResult>, ModuleNameResolver {\n  addResolver: (resolver: ModuleResolverInstance<TResult>) => this\n  removeResolver: (resolver: ModuleResolverInstance<TResult>) => this\n}\n", "/**\n * Object used to represent labels identifying a resource.\n */\nexport type Labels = Record<string, string | undefined>\n\n/**\n * Interface for objects that have labels.\n */\nexport interface WithLabels<T extends Labels = Labels> {\n  labels: T\n}\n\n/**\n * Interface for objects that have labels.\n */\nexport interface WithOptionalLabels<T extends Labels = Labels> {\n  labels?: T\n}\n\n/**\n * Returns true if the source object has all the labels from the required set\n * @param source Source object to check against\n * @param required Set of labels to check for in source\n * @returns True of the source object has all the labels from the required set\n */\nexport const hasAllLabels = (source?: Labels, required?: Labels): boolean => {\n  if (!required) return true\n  return Object.entries(required).every(([key, value]) => {\n    return Object.hasOwn(source ?? {}, key) && source?.[key as keyof typeof source] === value\n  })\n}\n", "export const ModuleLimitationLabelName = 'network.xyo.module.limitation'\nexport type ModuleLimitationLabelName = typeof ModuleLimitationLabelName\n\nexport const ModuleLimitationViewLabel = { ModuleLimitationLabelName: 'view' }\n", "import type { QueryableModule } from '../QueryableModule/index.ts'\n\n/**\n * Used to filter duplicates from an array of modules\n * @example: modulesArray.filter(duplicateModules)\n * @param value Current Module\n * @param index Current Module's index\n * @param array Module Array\n * @returns True if the Module's address is the first occurrence of\n * that address in the array, false otherwise\n */\nexport const duplicateModules = (value: QueryableModule, index: number, array: QueryableModule[]): value is QueryableModule => {\n  return array.findIndex(v => v.address === value.address) === index\n}\n", "export const isSerializable = (value: unknown, maxDepth = 10): boolean => {\n  if (maxDepth <= 0) {\n    return false\n  }\n  if (value === null || typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string') {\n    return true\n  }\n\n  if (Array.isArray(value)) {\n    return value.every(item => isSerializable(item, maxDepth - 1))\n  }\n\n  if (typeof value === 'object') {\n    if (value instanceof Date || value instanceof RegExp) {\n      return true\n    }\n\n    // Check for non-serializable objects like Set and Map\n    if (value instanceof Set || value instanceof Map) {\n      return false\n    }\n\n    if (value !== null && value !== undefined) {\n      return Object.values(value).every(item => isSerializable(item, maxDepth - 1))\n    }\n  }\n\n  // Exclude functions, symbols, undefined, and BigInt explicitly\n  return false\n}\n", "import type { Address } from '@xylabs/sdk-js'\nimport { isAddress } from '@xylabs/sdk-js'\n\nexport const MODULE_PATH_SEPARATOR = ':' as const\n\nexport const DisallowedModuleIdentifierCharacters = {\n  ' ': true,\n  '!': true,\n  '\"': true,\n  '#': true,\n  '$': true,\n  '%': true,\n  '&': true,\n  \"'\": true,\n  '(': true,\n  ')': true,\n  '*': true,\n  ',': true,\n  '.': true,\n  '/': true,\n  ':': true,\n  ';': true,\n  '<': true,\n  '=': true,\n  '>': true,\n  '?': true,\n  '@': true,\n  '[': true,\n  ']': true,\n  '^': true,\n  '_': true,\n  '{': true,\n  '|': true,\n  '}': true,\n  '~': true,\n}\nexport type ReservedModuleIdentifierCharacter = keyof typeof DisallowedModuleIdentifierCharacters\nexport const ReservedModuleIdentifierCharacters = new Set<ReservedModuleIdentifierCharacter>(\n  Object.keys(DisallowedModuleIdentifierCharacters) as ReservedModuleIdentifierCharacter[],\n)\n\n// TODO: Use Brand, but avoid too complex error\n// export type ModuleName = Brand<string, { __moduleName: true }>\nexport type ModuleName = string\n\nexport type ModuleIdentifier\n  = | ColonPair<ModuleIdentifierPart>\n    | ColonPair<ColonPair<ModuleIdentifierPart>>\n    | ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>\n    | ColonPair<ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>>\n    | ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>>>\n    | ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>>>>\n    | ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ColonPair<ModuleIdentifierPart>>>>>>>\n\nexport type ColonPair<T extends string> = `${T}:${T}` | T\n\nexport type ModuleIdentifierPart = Exclude<Address | ModuleName, '*'>\n\nexport const isModuleName = (value: unknown): value is ModuleName => {\n  return typeof value === 'string' && !isAddress(value) && !includesReservedModuleIdentifierCharacter(value)\n}\n\nexport const includesReservedModuleIdentifierCharacter = (value: unknown): boolean => {\n  return typeof value === 'string' && [...value].some(char => ReservedModuleIdentifierCharacters.has(char as ReservedModuleIdentifierCharacter))\n}\n\nexport const isModuleIdentifierPart = (value: unknown): value is ModuleIdentifierPart => {\n  return isModuleName(value) || isAddress(value)\n}\n", "import type { Address } from '@xylabs/sdk-js'\nimport { AsObjectFactory } from '@xylabs/sdk-js'\nimport {\n  asSchema, isPayloadOfSchemaType, type Payload,\n} from '@xyo-network/payload-model'\n\nexport const AddressSchema = asSchema('network.xyo.address', true)\nexport type AddressSchema = typeof AddressSchema\n\nexport const AddressChildSchema = asSchema('network.xyo.address.child', true)\nexport type AddressChildSchema = typeof AddressChildSchema\n\nexport interface AddressFields {\n  address: Address\n}\n\nexport type AddressPayload = Payload<AddressFields, AddressSchema>\n\n/**\n * Identity function for determining if an object is an Address\n */\nexport const isAddressPayload = isPayloadOfSchemaType<AddressPayload>(AddressSchema)\nexport const asAddressPayload = AsObjectFactory.create(isAddressPayload)\nexport const asOptionalAddressPayload = AsObjectFactory.createOptional(isAddressPayload)\n\nexport interface AddressChildFields extends AddressFields {\n  /**\n   * The derivation path of the child address\n   */\n  path?: string\n  /**\n   * The public address of the root of the hierarchy\n   */\n  root?: Address\n}\n\nexport type AddressChildPayload = Payload<AddressChildFields, AddressChildSchema>\n", "import type { Address } from '@xylabs/sdk-js'\nimport { asSchema, type Payload } from '@xyo-network/payload-model'\n\nexport const AddressPreviousHashSchema = asSchema('network.xyo.address.hash.previous', true)\nexport type AddressPreviousHashSchema = typeof AddressPreviousHashSchema\n\nexport type AddressPreviousHashPayload = Payload<\n  {\n    address: Address\n    previousHash?: string\n  },\n  AddressPreviousHashSchema\n>\n", "import { asSchema, type Payload } from '@xyo-network/payload-model'\n\nimport type { ModuleDescription } from '../ModuleDescription.ts'\n\nexport const ModuleDescriptionSchema = asSchema('network.xyo.module.description', true)\nexport type ModuleDescriptionSchema = typeof ModuleDescriptionSchema\n\nexport type ModuleDescriptionPayload = Payload<ModuleDescription, ModuleDescriptionSchema>\n", "import { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload, WithSources } from '@xyo-network/payload-model'\nimport {\n  asSchema, isPayloadOfSchemaType, isPayloadOfSchemaTypeWithSources,\n} from '@xyo-network/payload-model'\n\nexport type StateDictionary = Record<string, string | number>\nexport interface State<T extends StateDictionary = StateDictionary> {\n  state: T\n}\n\nexport const ModuleStateSchema = asSchema('network.xyo.module.state', true)\nexport type ModuleStateSchema = typeof ModuleStateSchema\n\nexport type ModuleState<T extends StateDictionary = StateDictionary> = Payload<State<T>, ModuleStateSchema>\n\nexport const isModuleState = <T extends StateDictionary = StateDictionary, TInput = unknown>(payload?: TInput): payload is ModuleState<T> & TInput => {\n  return isPayloadOfSchemaType<ModuleState<T>>(ModuleStateSchema)(payload)\n}\n\nexport const isModuleStateWithSources = <T extends StateDictionary = StateDictionary,\n  TInput = unknown>(payload?: TInput): payload is WithSources<ModuleState<T>> & TInput => {\n  return isPayloadOfSchemaTypeWithSources<ModuleState<T>>(ModuleStateSchema)(payload)\n}\n\nexport const asModuleState = AsObjectFactory.create<ModuleState<StateDictionary>>(isModuleState)\nexport const asOptionalModuleState = AsObjectFactory.createOptional<ModuleState<StateDictionary>>(isModuleState)\n", "import type { TypeCheck } from '@xylabs/sdk-js'\n\n/** @deprecated use narrowing instead [ if(is) ] */\nexport const WithFactory = {\n  create: <T extends object>(typeCheck: TypeCheck<T>) => {\n    return <R>(\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      mod: any,\n\n      closure: (mod: T) => R,\n    ): R | undefined => {\n      return typeCheck(mod) ? closure(mod) : undefined\n    }\n  },\n}\n"],
  "mappings": "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",
  "names": ["asSchema", "factory", "factory", "creatableModule", "AsObjectFactory", "IsObjectFactory", "AsObjectFactory", "asSchema", "asSchema", "asSchema", "asSchema", "factory", "AsObjectFactory", "factory", "IsObjectFactory", "AsObjectFactory", "AsObjectFactory", "IsObjectFactory", "factory", "IsObjectFactory", "AsObjectFactory", "IsObjectFactory", "IsObjectFactory", "AsObjectFactory", "asSchema", "asSchema", "asSchema", "AsObjectFactory", "asSchema", "isPayloadOfSchemaType"]
}
