UNPKG

@autobe/agent

Version:

AI backend server code generator

784 lines 49 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.orchestrateRealizeAuthorizationCorrect = orchestrateRealizeAuthorizationCorrect; const __typia_transform__validateReport = __importStar(require("typia/lib/internal/_validateReport")); const __typia_transform__llmApplicationFinalize = __importStar(require("typia/lib/internal/_llmApplicationFinalize")); const typia_1 = __importDefault(require("typia")); const uuid_1 = require("uuid"); const AutoBePreliminaryController_1 = require("../common/AutoBePreliminaryController"); const transformRealizeAuthorizationCorrectHistory_1 = require("./histories/transformRealizeAuthorizationCorrectHistory"); const AuthorizationFileSystem_1 = require("./utils/AuthorizationFileSystem"); const AutoBeRealizeAuthorizationReplaceImport_1 = require("./utils/AutoBeRealizeAuthorizationReplaceImport"); function orchestrateRealizeAuthorizationCorrect(ctx_1, props_1) { return __awaiter(this, arguments, void 0, function* (ctx, props, life = 4 /* AutoBeConfigConstant.COMPILER_RETRY */) { var _a, _b; try { const compiler = yield ctx.compiler(); const providerContent = yield compiler.typescript.beautify(AutoBeRealizeAuthorizationReplaceImport_1.AutoBeRealizeAuthorizationReplaceImport.replaceProviderImport(props.authorization.actor.name, props.authorization.provider.content)); const decoratorContent = yield compiler.typescript.beautify(AutoBeRealizeAuthorizationReplaceImport_1.AutoBeRealizeAuthorizationReplaceImport.replaceDecoratorImport(props.authorization.actor.name, props.authorization.decorator.content)); // Check Compile const files = Object.assign(Object.assign(Object.assign({}, props.template), props.prismaClient), { [AuthorizationFileSystem_1.AuthorizationFileSystem.decoratorPath(props.authorization.decorator.name)]: decoratorContent, [AuthorizationFileSystem_1.AuthorizationFileSystem.providerPath(props.authorization.provider.name)]: providerContent, [AuthorizationFileSystem_1.AuthorizationFileSystem.payloadPath(props.authorization.payload.name)]: props.authorization.payload.content }); const compiled = yield compiler.typescript.compile({ files, }); ctx.dispatch({ type: "realizeAuthorizationValidate", id: (0, uuid_1.v7)(), created_at: new Date().toISOString(), authorization: props.authorization, result: compiled, step: (_b = (_a = ctx.state().test) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0, }); if (compiled.type === "success") { return props.authorization; } else if (compiled.type === "exception" || life < 0) { return props.authorization; } const preliminary = new AutoBePreliminaryController_1.AutoBePreliminaryController({ source: SOURCE, dispatch: (e) => ctx.dispatch(e), application: { version: "3.1", components: { schemas: { "IAutoBeRealizeAuthorizationCorrectApplication.IProps": { type: "object", properties: { thinking: { type: "string", description: "Think before you act.\n\nFor preliminary requests: what critical information is missing?\n\nFor write: what errors you're fixing and the correction strategy." }, request: { oneOf: [ { $ref: "#/components/schemas/IAutoBePreliminaryGetDatabaseSchemas" }, { $ref: "#/components/schemas/IAutoBeRealizeAuthorizationCorrectApplication.IWrite" } ], discriminator: { propertyName: "type", mapping: { getDatabaseSchemas: "#/components/schemas/IAutoBePreliminaryGetDatabaseSchemas", write: "#/components/schemas/IAutoBeRealizeAuthorizationCorrectApplication.IWrite" } }, description: "Action to perform. Exhausted preliminary types are removed from the\nunion, physically preventing repeated calls." } }, required: [ "thinking", "request" ] }, IAutoBePreliminaryGetDatabaseSchemas: { type: "object", properties: { type: { "const": "getDatabaseSchemas", description: "Type discriminator." }, schemaNames: { type: "array", items: { type: "string" }, minItems: 1, description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls." } }, required: [ "type", "schemaNames" ], description: "Request to retrieve database schema definitions for context." }, "IAutoBeRealizeAuthorizationCorrectApplication.IWrite": { type: "object", properties: { type: { "const": "write", description: "Type discriminator for write submission." }, error_analysis: { type: "string", description: "Categorize all compilation errors by component\n(provider/decorator/payload) with locations." }, solution_guidance: { type: "string", description: "Actionable fix instructions for each identified error." }, provider: { $ref: "#/components/schemas/IAutoBeRealizeAuthorizationWriteApplication.IProvider", description: "Authentication Provider function (JWT verification, role validation, DB\nqueries)." }, decorator: { $ref: "#/components/schemas/IAutoBeRealizeAuthorizationWriteApplication.IDecorator", description: "Authentication Decorator (NestJS parameter decorator injecting\nauthenticated user data)." }, payload: { $ref: "#/components/schemas/IAutoBeRealizeAuthorizationWriteApplication.IPayloadType", description: "Authentication Payload Type (TypeScript type for authenticated user data\nin Controller methods)." } }, required: [ "type", "error_analysis", "solution_guidance", "provider", "decorator", "payload" ], description: "Request to fix authentication component compilation errors." }, "IAutoBeRealizeAuthorizationWriteApplication.IProvider": { type: "object", properties: { name: { type: "string", pattern: "^[a-z][a-zA-Z0-9]*$", description: "Provider function name in {role}Authorize format (e.g., adminAuthorize).\nMUST use camelCase." }, content: { type: "string", description: "Complete TypeScript code. MUST include: jwtAuthorize call, role type\ncheck, MyGlobal.prisma.{tableName} query,\nForbiddenException/UnauthorizedException handling." } }, required: [ "name", "content" ] }, "IAutoBeRealizeAuthorizationWriteApplication.IDecorator": { type: "object", properties: { name: { type: "string", pattern: "^[A-Z][a-zA-Z0-9]*$", description: "Decorator name in {Actor}Auth format (e.g., AdminAuth, UserAuth). MUST\nuse PascalCase." }, content: { type: "string", description: "Complete TypeScript code. MUST include: SwaggerCustomizer integration,\ncreateParamDecorator calling Provider, Singleton pattern via tstl." } }, required: [ "name", "content" ] }, "IAutoBeRealizeAuthorizationWriteApplication.IPayloadType": { type: "object", properties: { name: { type: "string", pattern: "^[A-Z][a-zA-Z0-9]*$", description: "Payload type name in {Actor}Payload format (e.g., AdminPayload,\nUserPayload). MUST use PascalCase." }, content: { type: "string", description: "Complete TypeScript code. MUST include: id field with UUID validation,\ntype field as role discriminator, typia tags." } }, required: [ "name", "content" ] } } }, functions: [ { name: "process", async: false, parameters: [ { name: "next", description: " Preliminary data request or write submission", required: true, schema: { $ref: "#/components/schemas/IAutoBeRealizeAuthorizationCorrectApplication.IProps" } } ], description: "Process authentication correction task or preliminary data requests." } ] }, kinds: ["databaseSchemas"], state: ctx.state(), }); const event = yield preliminary.orchestrate(ctx, (out) => __awaiter(this, void 0, void 0, function* () { var _a, _b; const pointer = { value: null, }; const result = yield ctx.conversate(Object.assign({ source: "realizeAuthorizationCorrect", controller: createController({ build: (next) => { pointer.value = next; }, preliminary, }), enforceFunctionCall: true }, (0, transformRealizeAuthorizationCorrectHistory_1.transformRealizeAuthorizationCorrectHistory)({ authorization: props.authorization, template: props.template, diagnostics: compiled.diagnostics, preliminary, }))); if (pointer.value === null) return out(result)(null); const correct = Object.assign(Object.assign({}, pointer.value), { decorator: Object.assign(Object.assign({}, pointer.value.decorator), { location: AuthorizationFileSystem_1.AuthorizationFileSystem.decoratorPath(pointer.value.decorator.name) }), provider: Object.assign(Object.assign({}, pointer.value.provider), { location: AuthorizationFileSystem_1.AuthorizationFileSystem.providerPath(pointer.value.provider.name) }), payload: { name: pointer.value.payload.name, location: AuthorizationFileSystem_1.AuthorizationFileSystem.payloadPath(pointer.value.payload.name), content: yield compiler.typescript.beautify(pointer.value.payload.content), }, actor: props.authorization.actor }); return out(result)(Object.assign(Object.assign({}, pointer.value), { type: "realizeAuthorizationCorrect", id: (0, uuid_1.v7)(), created_at: new Date().toISOString(), authorization: correct, result: compiled, acquisition: preliminary.getAcquisition(), metric: result.metric, tokenUsage: result.tokenUsage, step: (_b = (_a = ctx.state().test) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0 })); })); ctx.dispatch(event); return yield orchestrateRealizeAuthorizationCorrect(ctx, { authorization: event.authorization, prismaClient: props.prismaClient, template: props.template, }, life - 1); } catch (_c) { return yield orchestrateRealizeAuthorizationCorrect(ctx, props, life - 1); } }); } function createController(props) { const validate = (input) => { const result = (() => { const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getDatabaseSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io2 = input => "write" === input.type && "string" === typeof input.error_analysis && "string" === typeof input.solution_guidance && ("object" === typeof input.provider && null !== input.provider && _io3(input.provider)) && ("object" === typeof input.decorator && null !== input.decorator && _io4(input.decorator)) && ("object" === typeof input.payload && null !== input.payload && _io5(input.payload)); const _io3 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.content; const _io4 = input => "string" === typeof input.name && RegExp("^[A-Z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.content; const _io5 = input => "string" === typeof input.name && RegExp("^[A-Z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.content; const _iu0 = input => (() => { if ("getDatabaseSchemas" === input.type) return _io1(input); else if ("write" === input.type) return _io2(input); else return false; })(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, { path: _path + ".thinking", expected: "string", value: input.thinking }), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, { path: _path + ".request", expected: "(IAutoBePreliminaryGetDatabaseSchemas | IAutoBeRealizeAuthorizationCorrectApplication.IWrite)", value: input.request })) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, { path: _path + ".request", expected: "(IAutoBePreliminaryGetDatabaseSchemas | IAutoBeRealizeAuthorizationCorrectApplication.IWrite)", value: input.request })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getDatabaseSchemas" === input.type || _report(_exceptionable, { path: _path + ".type", expected: "\"getDatabaseSchemas\"", value: input.type }), (Array.isArray(input.schemaNames) || _report(_exceptionable, { path: _path + ".schemaNames", expected: "(Array<string> & MinItems<1>)", value: input.schemaNames })) && ((1 <= input.schemaNames.length || _report(_exceptionable, { path: _path + ".schemaNames", expected: "Array<> & MinItems<1>", value: input.schemaNames })) && input.schemaNames.map((elem, _index2) => "string" === typeof elem || _report(_exceptionable, { path: _path + ".schemaNames[" + _index2 + "]", expected: "string", value: elem })).every(flag => flag)) || _report(_exceptionable, { path: _path + ".schemaNames", expected: "(Array<string> & MinItems<1>)", value: input.schemaNames })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["write" === input.type || _report(_exceptionable, { path: _path + ".type", expected: "\"write\"", value: input.type }), "string" === typeof input.error_analysis || _report(_exceptionable, { path: _path + ".error_analysis", expected: "string", value: input.error_analysis }), "string" === typeof input.solution_guidance || _report(_exceptionable, { path: _path + ".solution_guidance", expected: "string", value: input.solution_guidance }), ("object" === typeof input.provider && null !== input.provider || _report(_exceptionable, { path: _path + ".provider", expected: "IAutoBeRealizeAuthorizationWriteApplication.IProvider", value: input.provider })) && _vo3(input.provider, _path + ".provider", true && _exceptionable) || _report(_exceptionable, { path: _path + ".provider", expected: "IAutoBeRealizeAuthorizationWriteApplication.IProvider", value: input.provider }), ("object" === typeof input.decorator && null !== input.decorator || _report(_exceptionable, { path: _path + ".decorator", expected: "IAutoBeRealizeAuthorizationWriteApplication.IDecorator", value: input.decorator })) && _vo4(input.decorator, _path + ".decorator", true && _exceptionable) || _report(_exceptionable, { path: _path + ".decorator", expected: "IAutoBeRealizeAuthorizationWriteApplication.IDecorator", value: input.decorator }), ("object" === typeof input.payload && null !== input.payload || _report(_exceptionable, { path: _path + ".payload", expected: "IAutoBeRealizeAuthorizationWriteApplication.IPayloadType", value: input.payload })) && _vo5(input.payload, _path + ".payload", true && _exceptionable) || _report(_exceptionable, { path: _path + ".payload", expected: "IAutoBeRealizeAuthorizationWriteApplication.IPayloadType", value: input.payload })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, { path: _path + ".name", expected: "string & CamelCasePattern", value: input.name })) || _report(_exceptionable, { path: _path + ".name", expected: "(string & CamelCasePattern)", value: input.name }), "string" === typeof input.content || _report(_exceptionable, { path: _path + ".content", expected: "string", value: input.content })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[A-Z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, { path: _path + ".name", expected: "string & PascalCasePattern", value: input.name })) || _report(_exceptionable, { path: _path + ".name", expected: "(string & PascalCasePattern)", value: input.name }), "string" === typeof input.content || _report(_exceptionable, { path: _path + ".content", expected: "string", value: input.content })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[A-Z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, { path: _path + ".name", expected: "string & PascalCasePattern", value: input.name })) || _report(_exceptionable, { path: _path + ".name", expected: "(string & PascalCasePattern)", value: input.name }), "string" === typeof input.content || _report(_exceptionable, { path: _path + ".content", expected: "string", value: input.content })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => { if ("getDatabaseSchemas" === input.type) return _vo1(input, _path, true && _exceptionable); else if ("write" === input.type) return _vo2(input, _path, true && _exceptionable); else return _report(_exceptionable, { path: _path, expected: "(IAutoBePreliminaryGetDatabaseSchemas | IAutoBeRealizeAuthorizationCorrectApplication.IWrite)", value: input }); })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => { if (false === __is(input)) { errors = []; _report = __typia_transform__validateReport._validateReport(errors); ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, { path: _path + "", expected: "IAutoBeRealizeAuthorizationCorrectApplication.IProps", value: input })) && _vo0(input, _path + "", true) || _report(true, { path: _path + "", expected: "IAutoBeRealizeAuthorizationCorrectApplication.IProps", value: input }))(input, "$input", true); const success = 0 === errors.length; return success ? { success, data: input } : { success, errors, data: input }; } return { success: true, data: input }; }; })()(input); if (result.success === false || result.data.request.type === "write") return result; return props.preliminary.validate({ thinking: result.data.thinking, request: result.data.request, }); }; const application = props.preliminary.fixApplication(__typia_transform__llmApplicationFinalize._llmApplicationFinalize({ functions: [ { name: "process", parameters: { description: "Current Type: {@link IAutoBeRealizeAuthorizationCorrectApplication.IProps}", type: "object", properties: { thinking: { description: "Think before you act.\n\nFor preliminary requests: what critical information is missing?\n\nFor write: what errors you're fixing and the correction strategy.", type: "string" }, request: { description: "Action to perform. Exhausted preliminary types are removed from the\nunion, physically preventing repeated calls.", anyOf: [ { $ref: "#/$defs/IAutoBePreliminaryGetDatabaseSchemas" }, { $ref: "#/$defs/IAutoBeRealizeAuthorizationCorrectApplication.IWrite" } ], "x-discriminator": { propertyName: "type", mapping: { getDatabaseSchemas: "#/$defs/IAutoBePreliminaryGetDatabaseSchemas", write: "#/$defs/IAutoBeRealizeAuthorizationCorrectApplication.IWrite" } } } }, required: [ "thinking", "request" ], additionalProperties: false, $defs: { IAutoBePreliminaryGetDatabaseSchemas: { description: "Request to retrieve database schema definitions for context.", type: "object", properties: { type: { description: "Type discriminator.", type: "string", "enum": [ "getDatabaseSchemas" ] }, schemaNames: { description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls.", type: "array", items: { type: "string" }, minItems: 1 } }, required: [ "type", "schemaNames" ] }, "IAutoBeRealizeAuthorizationCorrectApplication.IWrite": { description: "Request to fix authentication component compilation errors.", type: "object", properties: { type: { description: "Type discriminator for write submission.", type: "string", "enum": [ "write" ] }, error_analysis: { description: "Categorize all compilation errors by component\n(provider/decorator/payload) with locations.", type: "string" }, solution_guidance: { description: "Actionable fix instructions for each identified error.", type: "string" }, provider: { description: "Authentication Provider function (JWT verification, role validation, DB\nqueries).", $ref: "#/$defs/IAutoBeRealizeAuthorizationWriteApplication.IProvider" }, decorator: { description: "Authentication Decorator (NestJS parameter decorator injecting\nauthenticated user data).", $ref: "#/$defs/IAutoBeRealizeAuthorizationWriteApplication.IDecorator" }, payload: { description: "Authentication Payload Type (TypeScript type for authenticated user data\nin Controller methods).", $ref: "#/$defs/IAutoBeRealizeAuthorizationWriteApplication.IPayloadType" } }, required: [ "type", "error_analysis", "solution_guidance", "provider", "decorator", "payload" ] }, "IAutoBeRealizeAuthorizationWriteApplication.IProvider": { type: "object", properties: { name: { description: "Provider function name in {role}Authorize format (e.g., adminAuthorize).\nMUST use camelCase.", type: "string", pattern: "^[a-z][a-zA-Z0-9]*$" }, content: { description: "Complete TypeScript code. MUST include: jwtAuthorize call, role type\ncheck, MyGlobal.prisma.{tableName} query,\nForbiddenException/UnauthorizedException handling.", type: "string" } }, required: [ "name", "content" ] }, "IAutoBeRealizeAuthorizationWriteApplication.IDecorator": { type: "object", properties: { name: { description: "Decorator name in {Actor}Auth format (e.g., AdminAuth, UserAuth). MUST\nuse PascalCase.", type: "string", pattern: "^[A-Z][a-zA-Z0-9]*$" }, content: { description: "Complete TypeScript code. MUST include: SwaggerCustomizer integration,\ncreateParamDecorator calling Provider, Singleton pattern via tstl.", type: "string" } }, required: [ "name", "content" ] }, "IAutoBeRealizeAuthorizationWriteApplication.IPayloadType": { type: "object", properties: { name: { description: "Payload type name in {Actor}Payload format (e.g., AdminPayload,\nUserPayload). MUST use PascalCase.", type: "string", pattern: "^[A-Z][a-zA-Z0-9]*$" }, content: { description: "Complete TypeScript code. MUST include: id field with UUID validation,\ntype field as role discriminator, typia tags.", type: "string" } }, required: [ "name", "content" ] } } }, description: "Process authentication correction task or preliminary data requests.", validate: (() => { const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getDatabaseSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io2 = input => "write" === input.type && "string" === typeof input.error_analysis && "string" === typeof input.solution_guidance && ("object" === typeof input.provider && null !== input.provider && _io3(input.provider)) && ("object" === typeof input.decorator && null !== input.decorator && _io4(input.decorator)) && ("object" === typeof input.payload && null !== input.payload && _io5(input.payload)); const _io3 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.content; const _io4 = input => "string" === typeof input.name && RegExp("^[A-Z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.content; const _io5 = input => "string" === typeof input.name && RegExp("^[A-Z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.content; const _iu0 = input => (() => { if ("getDatabaseSchemas" === input.type) return _io1(input); else if ("write" === input.type) return _io2(input); else return false; })(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, { path: _path + ".thinking", expected: "string", value: input.thinking }), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, { path: _path + ".request", expected: "(IAutoBePreliminaryGetDatabaseSchemas | IAutoBeRealizeAuthorizationCorrectApplication.IWrite)", value: input.request })) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, { path: _path + ".request", expected: "(IAutoBePreliminaryGetDatabaseSchemas | IAutoBeRealizeAuthorizationCorrectApplication.IWrite)", value: input.request })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getDatabaseSchemas" === input.type || _report(_exceptionable, { path: _path + ".type", expected: "\"getDatabaseSchemas\"", value: input.type }), (Array.isArray(input.schemaNames) || _report(_exceptionable, { path: _path + ".schemaNames", expected: "(Array<string> & MinItems<1>)", value: input.schemaNames })) && ((1 <= input.schemaNames.length || _report(_exceptionable, { path: _path + ".schemaNames", expected: "Array<> & MinItems<1>", value: input.schemaNames })) && input.schemaNames.map((elem, _index2) => "string" === typeof elem || _report(_exceptionable, { path: _path + ".schemaNames[" + _index2 + "]", expected: "string", value: elem })).every(flag => flag)) || _report(_exceptionable, { path: _path + ".schemaNames", expected: "(Array<string> & MinItems<1>)", value: input.schemaNames })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["write" === input.type || _report(_exceptionable, { path: _path + ".type", expected: "\"write\"", value: input.type }), "string" === typeof input.error_analysis || _report(_exceptionable, { path: _path + ".error_analysis", expected: "string", value: input.error_analysis }), "string" === typeof input.solution_guidance || _report(_exceptionable, { path: _path + ".solution_guidance", expected: "string", value: input.solution_guidance }), ("object" === typeof input.provider && null !== input.provider || _report(_exceptionable, { path: _path + ".provider", expected: "IAutoBeRealizeAuthorizationWriteApplication.IProvider", value: input.provider })) && _vo3(input.provider, _path + ".provider", true && _exceptionable) || _report(_exceptionable, { path: _path + ".provider", expected: "IAutoBeRealizeAuthorizationWriteApplication.IProvider", value: input.provider }), ("object" === typeof input.decorator && null !== input.decorator || _report(_exceptionable, { path: _path + ".decorator", expected: "IAutoBeRealizeAuthorizationWriteApplication.IDecorator", value: input.decorator })) && _vo4(input.decorator, _path + ".decorator", true && _exceptionable) || _report(_exceptionable, { path: _path + ".decorator", expected: "IAutoBeRealizeAuthorizationWriteApplication.IDecorator", value: input.decorator }), ("object" === typeof input.payload && null !== input.payload || _report(_exceptionable, { path: _path + ".payload", expected: "IAutoBeRealizeAuthorizationWriteApplication.IPayloadType", value: input.payload })) && _vo5(input.payload, _path + ".payload", true && _exceptionable) || _report(_exceptionable, { path: _path + ".payload", expected: "IAutoBeRealizeAuthorizationWriteApplication.IPayloadType", value: input.payload })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, { path: _path + ".name", expected: "string & CamelCasePattern", value: input.name })) || _report(_exceptionable, { path: _path + ".name", expected: "(string & CamelCasePattern)", value: input.name }), "string" === typeof input.content || _report(_exceptionable, { path: _path + ".content", expected: "string", value: input.content })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[A-Z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, { path: _path + ".name", expected: "string & PascalCasePattern", value: input.name })) || _report(_exceptionable, { path: _path + ".name", expected: "(string & PascalCasePattern)", value: input.name }), "string" === typeof input.content || _report(_exceptionable, { path: _path + ".content", expected: "string", value: input.content })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[A-Z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, { path: _path + ".name", expected: "string & PascalCasePattern", value: input.name })) || _report(_exceptionable, { path: _path + ".name", expected: "(string & PascalCasePattern)", value: input.name }), "string" === typeof input.content || _report(_exceptionable, { path: _path + ".content", expected: "string", value: input.content })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => { if ("getDatabaseSchemas" === input.type) return _vo1(input, _path, true && _exceptionable); else if ("write" === input.type) return _vo2(input, _path, true && _exceptionable); else return _report(_exceptionable, { path: _path, expected: "(IAutoBePreliminaryGetDatabaseSchemas | IAutoBeRealizeAuthorizationCorrectApplication.IWrite)", value: input }); })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => { if (false === __is(input)) { errors = []; _report = __typia_transform__validateReport._validateReport(errors); ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, { path: _path + "", expected: "IAutoBeRealizeAuthorizationCorrectApplication.IProps", value: input })) && _vo0(input, _path + "", true) || _report(true, { path: _path + "", expected: "IAutoBeRealizeAuthorizationCorrectApplication.IProps", value: input }))(input, "$input", true); const success = 0 === errors.length; return success ? { success, data: input } : { success, errors, data: input }; } return { success: true, data: input }; }; })() } ] }, { validate: { process: validate, }, })); return { protocol: "class", name: SOURCE, application, execute: { process: (next) => { if (next.request.type === "write") props.build(next.request); }, }, }; } const SOURCE = "realizeAuthorizationCorrect"; //# sourceMappingURL=orchestrateRealizeAuthorizationCorrect.js.map