{"version":3,"sources":["../../../source/built-in/groups/control-abstraction.ts"],"names":["z","AsyncFunction","AsyncGeneratorFunction","GeneratorFunction","CONTROL_ABSTRACTION_BUILT_IN_OBJECTS_NAMES","CONTROL_ABSTRACTION_BUILT_IN_OBJECTS","CONTROL_ABSTRACTION_BUILT_IN_OBJECT_NAME_SCHEMA","CONTROL_ABSTRACTION_BUILT_IN_OBJECTS_SCHEMAS"],"mappings":"AAAA,OAAS,KAAAA,MAAS,MAGX,IAAMC,EAAgB,gBAAkB,CAAC,EAAE,YAGrCC,EAAyB,iBAAmB,CAAC,EAAE,YAG/CC,EAAoB,WAAa,CAAC,EAAE,YAIpCC,EAA6C,CACzD,gBACA,yBACA,oBACA,SAID,EAGaC,EAAuC,CACnD,cAAeJ,EACf,uBAAwBC,EACxB,kBAAmBC,EACnB,OAID,EAMaG,EAAkDN,EAAE,KAAKI,CAA0C,EAEnGG,EAA+C,CAC3D,cAAeP,EAAE,SAAS,EAAE,QAAQA,EAAE,QAAQA,EAAE,IAAI,CAAC,CAAC,EACtD,uBAAwBA,EAAE,WAAWE,CAAsB,EAC3D,kBAAmBF,EAAE,WAAWG,CAAiB,EACjD,QAASH,EAAE,QAAQA,EAAE,IAAI,CAAC,CAI3B","sourcesContent":["import { z } from \"zod\";\n\n// eslint-disable-next-line func-names, @typescript-eslint/no-empty-function\nexport const AsyncFunction = async function () {}.constructor as (..._args: unknown[]) => Promise<unknown>;\n\n// eslint-disable-next-line func-names, @typescript-eslint/no-empty-function\nexport const AsyncGeneratorFunction = async function* () {}.constructor as AsyncGeneratorFunction;\n\n// eslint-disable-next-line func-names, @typescript-eslint/no-empty-function\nexport const GeneratorFunction = function* () {}.constructor as GeneratorFunction;\n\n/* prettier-ignore */\n/** @see {@link CONTROL_ABSTRACTION_BUILT_IN_OBJECTS} */\nexport const CONTROL_ABSTRACTION_BUILT_IN_OBJECTS_NAMES = [\n\t\"AsyncFunction\"\t,\n\t\"AsyncGeneratorFunction\",\n\t\"GeneratorFunction\",\n\t\"Promise\",\n\t// NOTE: Those are not defined.\n\t// \"AsyncGenerator\",\n\t// \"Generator\",\n] as const;\n\n/** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects#control_abstractions_objects} */\nexport const CONTROL_ABSTRACTION_BUILT_IN_OBJECTS = {\n\tAsyncFunction: AsyncFunction,\n\tAsyncGeneratorFunction: AsyncGeneratorFunction,\n\tGeneratorFunction: GeneratorFunction,\n\tPromise: Promise,\n\t// NOTE: Those are not defined, unlike what MDN says\n\t// AsyncGenerator: AsyncGenerator,\n\t// Generator: Generator,\n} as const;\n\nexport type ControlAbstractionBuiltInObjectName = keyof typeof CONTROL_ABSTRACTION_BUILT_IN_OBJECTS;\nexport type ControlAbstractionBuiltInObject =\n\t(typeof CONTROL_ABSTRACTION_BUILT_IN_OBJECTS)[ControlAbstractionBuiltInObjectName];\n\nexport const CONTROL_ABSTRACTION_BUILT_IN_OBJECT_NAME_SCHEMA = z.enum(CONTROL_ABSTRACTION_BUILT_IN_OBJECTS_NAMES);\n\nexport const CONTROL_ABSTRACTION_BUILT_IN_OBJECTS_SCHEMAS = {\n\tAsyncFunction: z.function().returns(z.promise(z.any())),\n\tAsyncGeneratorFunction: z.instanceof(AsyncGeneratorFunction),\n\tGeneratorFunction: z.instanceof(GeneratorFunction),\n\tPromise: z.promise(z.any()),\n\t// NOTE: Those are not defined, unlike what MDN says\n\t// AsyncGenerator: z.instanceof(AsyncGenerator),\n\t// Generator: z.instanceof(Generator),\n} as const;\n"]}