{
  "version": 3,
  "sources": ["../src/definition/classes/as-chain.class.ts"],
  "sourcesContent": ["import { get, set } from '@dikolab/private-parts';\nimport {\n   BOUNDARY_KEY,\n   ROLE_NAMES_KEY,\n} from '../../utils/constants/symbol-keys.constant';\nimport type { RoleNamesDefined } from '../types/role-names-defined.interface';\nimport type { ICanActionTitle } from '../types/i-can-action-title.interface';\nimport { AsICanChain } from './as-i-can-chain.class';\nimport type { AnyBoundary } from '../../boundary/types/utility.type';\nimport type { BoundaryDefined } from '../types/boundary-defined.interface';\n\n/**\n * Fluent chain for declaring use case roles,\n * continues with an action title via `iCan()`\n */\nexport class AsChain<\n      Boundary extends AnyBoundary,\n      RoleNames extends readonly [...string[]],\n   >\n   implements\n      BoundaryDefined<Boundary>,\n      RoleNamesDefined<RoleNames>,\n      ICanActionTitle\n{\n   get [BOUNDARY_KEY](): Boundary {\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n      return get(this, BOUNDARY_KEY);\n   }\n\n   get [ROLE_NAMES_KEY](): RoleNames {\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n      return get(this, ROLE_NAMES_KEY);\n   }\n\n   constructor(boundary: Boundary, roleNames: RoleNames) {\n      set(this, BOUNDARY_KEY, boundary);\n      set(this, ROLE_NAMES_KEY, roleNames);\n   }\n\n   /**\n    * Declares text title of the Use-case.\n    *\n    * @param title Text title of the Use-case\n    * @returns declaration chain\n    */\n   iCan<ActionTitle extends string>(\n      title: ActionTitle,\n   ): AsICanChain<Boundary, RoleNames, ActionTitle> {\n      return new AsICanChain(\n         this[BOUNDARY_KEY],\n         this[ROLE_NAMES_KEY],\n         title,\n      );\n   }\n}\n"],
  "mappings": ";;;;;;;;;AAAA,SAAS,KAAK,WAAW;AAelB,IAAM,UAAN,MAQP;AAAA,EACG,KAAK,YAAY,IAAc;AAE5B,WAAO,IAAI,MAAM,YAAY;AAAA,EAChC;AAAA,EAEA,KAAK,cAAc,IAAe;AAE/B,WAAO,IAAI,MAAM,cAAc;AAAA,EAClC;AAAA,EAEA,YAAY,UAAoB,WAAsB;AACnD,QAAI,MAAM,cAAc,QAAQ;AAChC,QAAI,MAAM,gBAAgB,SAAS;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,KACG,OAC8C;AAC9C,WAAO,IAAI;AAAA,MACR,KAAK,YAAY;AAAA,MACjB,KAAK,cAAc;AAAA,MACnB;AAAA,IACH;AAAA,EACH;AACH;",
  "names": []
}
