@autobe/agent 0.28.0 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/lib/index.mjs +308 -202
  2. package/lib/index.mjs.map +1 -1
  3. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +13 -8
  4. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  5. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js +29 -19
  6. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  7. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +36 -24
  8. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  9. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +6 -4
  10. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
  11. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +3 -2
  12. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +1 -1
  13. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +9 -6
  14. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
  15. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +24 -16
  16. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  17. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js +26 -17
  18. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
  19. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +3 -2
  20. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +1 -1
  21. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +36 -24
  22. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
  23. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +36 -24
  24. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  25. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +11 -8
  26. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  27. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +23 -14
  28. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  29. package/lib/orchestrate/prisma/orchestratePrismaReview.js +23 -14
  30. package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
  31. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +9 -6
  32. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
  33. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +9 -6
  34. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
  35. package/lib/orchestrate/test/orchestrateTestScenario.js +6 -4
  36. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  37. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +6 -4
  38. package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
  39. package/package.json +8 -8
package/lib/index.mjs CHANGED
@@ -2201,8 +2201,9 @@ const collection$s = {
2201
2201
  type: "string"
2202
2202
  },
2203
2203
  prefix: {
2204
- description: "Prefix for file names and variable names. This will be used for\norganizing documentation files.\n\nDO: Use camelCase naming convention.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$",
2205
- type: "string"
2204
+ description: "Prefix for file names and variable names. This will be used for\norganizing documentation files.\n\nDO: Use camelCase naming convention.",
2205
+ type: "string",
2206
+ pattern: "^[a-z][a-zA-Z0-9]*$"
2206
2207
  },
2207
2208
  actors: {
2208
2209
  description: 'Actors to be assigned for the project.\n\nEach actor has:\n\n- `name`: Actor identifier (camelCase)\n- `kind`: "guest" | "member" | "admin"\n- `description`: Actor\'s permissions and capabilities',
@@ -2220,11 +2221,12 @@ const collection$s = {
2220
2221
  type: "number"
2221
2222
  },
2222
2223
  files: {
2223
- description: 'Array of document metadata objects defining files to be generated.\n\nEach array element is an AutoBeAnalyzeFile.Scenario object containing:\n- filename: The output file name (e.g., "01-service-overview.md")\n- reason: Why this document is being created\n- documentType, outline, constraints, etc.: Metadata guiding content generation\n\nThese documents represent business-focused planning documentation:\n- Business requirements and functional specifications in natural language\n- User journey mapping and use case scenarios\n- Business rules and workflow definitions\n- Service overview and business model description\n- User actors and permission requirements (described in natural language)\n- Business logic and validation rules\n- DO NOT: Include database schemas, ERD, or API specifications\n- DO: Write all requirements in natural language for clarity\n\nGenerate metadata objects based on actual requirements gathered from conversation.\nDo not create unnecessary documentation - only generate what is needed to\nproperly define the business requirements and system specifications.\n\n# Array Length Rules\n\nThe array length must match the user\'s requested page count plus one for ToC.\nFor example: user requests 3 pages → generate 4 objects (1 ToC + 3 content).\nIf user does not specify a number, generate sufficient objects to adequately\ndocument the service (typically 11+ objects including ToC).\n\n\n@minItems 1',
2224
+ description: 'Array of document metadata objects defining files to be generated.\n\nEach array element is an AutoBeAnalyzeFile.Scenario object containing:\n- filename: The output file name (e.g., "01-service-overview.md")\n- reason: Why this document is being created\n- documentType, outline, constraints, etc.: Metadata guiding content generation\n\nThese documents represent business-focused planning documentation:\n- Business requirements and functional specifications in natural language\n- User journey mapping and use case scenarios\n- Business rules and workflow definitions\n- Service overview and business model description\n- User actors and permission requirements (described in natural language)\n- Business logic and validation rules\n- DO NOT: Include database schemas, ERD, or API specifications\n- DO: Write all requirements in natural language for clarity\n\nGenerate metadata objects based on actual requirements gathered from conversation.\nDo not create unnecessary documentation - only generate what is needed to\nproperly define the business requirements and system specifications.\n\n# Array Length Rules\n\nThe array length must match the user\'s requested page count plus one for ToC.\nFor example: user requests 3 pages → generate 4 objects (1 ToC + 3 content).\nIf user does not specify a number, generate sufficient objects to adequately\ndocument the service (typically 11+ objects including ToC).',
2224
2225
  type: "array",
2225
2226
  items: {
2226
2227
  $ref: "#/$defs/AutoBeAnalyzeFile.Scenario"
2227
- }
2228
+ },
2229
+ minItems: 1
2228
2230
  }
2229
2231
  },
2230
2232
  required: [ "reason", "prefix", "actors", "page", "files" ],
@@ -2235,8 +2237,10 @@ const collection$s = {
2235
2237
  type: "object",
2236
2238
  properties: {
2237
2239
  name: {
2238
- description: "Unique identifier for the user actor.\n\nThis name will be used as a reference throughout the generated codebase,\nincluding Prisma schema model names, authorization decorator parameters,\nand API documentation.\n\nMUST use camelCase naming convention.\n\n\n@minLength 1\n@pattern ^[a-z][a-zA-Z0-9]*$",
2239
- type: "string"
2240
+ description: "Unique identifier for the user actor.\n\nThis name will be used as a reference throughout the generated codebase,\nincluding Prisma schema model names, authorization decorator parameters,\nand API documentation.\n\nMUST use camelCase naming convention.",
2241
+ type: "string",
2242
+ pattern: "^[a-z][a-zA-Z0-9]*$",
2243
+ minLength: 1
2240
2244
  },
2241
2245
  kind: {
2242
2246
  description: 'Actor category classification for system-wide permission hierarchy.\n\nThis property categorizes actors into three fundamental permission levels,\nestablishing a clear hierarchy for authorization decisions throughout the\napplication. The kind determines baseline access patterns and security\nboundaries:\n\n- "guest": Unauthenticated users or those with minimal permissions. Typically\n limited to public resources and registration/login endpoints.\n- "member": Authenticated users with standard access permissions. Can access\n personal resources and participate in core application features.\n- "admin": System administrators with elevated permissions. Can manage other\n users, access administrative functions, and modify system-wide settings.',
@@ -2258,8 +2262,9 @@ const collection$s = {
2258
2262
  type: "string"
2259
2263
  },
2260
2264
  filename: {
2261
- description: 'Filename to generate or overwrite. Should be descriptive and follow a\nconsistent naming convention. Examples: "01-service-overview.md",\n"02-user-requirements.md", "03-business-model.md"\n\n\n@pattern ((.*)\\.md)$',
2262
- type: "string"
2265
+ description: 'Filename to generate or overwrite. Should be descriptive and follow a\nconsistent naming convention. Examples: "01-service-overview.md",\n"02-user-requirements.md", "03-business-model.md"',
2266
+ type: "string",
2267
+ pattern: "((.*)\\.md)$"
2263
2268
  },
2264
2269
  documentType: {
2265
2270
  description: 'Document type that determines the structure and content guidelines. This\nhelps the AI understand what kind of document to create and what sections\nor information should be included. Examples:\n\n- "requirement": Functional/non-functional requirements, acceptance\n criteria\n- "user-story": User personas, scenarios, and journey descriptions\n- "user-flow": Step-by-step user interactions and decision points\n- "business-model": Revenue streams, cost structure, value propositions\n- "service-overview": High-level service description, goals, and scope',
@@ -4859,11 +4864,12 @@ const collection$q = {
4859
4864
  type: "object",
4860
4865
  properties: {
4861
4866
  operations: {
4862
- description: 'Array of API operations to generate authorization operation for.\n\nEach operation in this array must include:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., "/resources/{resourceId}")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations must follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body.\n\n\n@minItems 1',
4867
+ description: 'Array of API operations to generate authorization operation for.\n\nEach operation in this array must include:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., "/resources/{resourceId}")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations must follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body.',
4863
4868
  type: "array",
4864
4869
  items: {
4865
4870
  $ref: "#/$defs/AutoBeOpenApi.IOperation"
4866
- }
4871
+ },
4872
+ minItems: 1
4867
4873
  }
4868
4874
  },
4869
4875
  required: [ "operations" ],
@@ -4923,12 +4929,14 @@ const collection$q = {
4923
4929
  type: "null"
4924
4930
  }, {
4925
4931
  type: "string",
4926
- description: "@minLength 1\n@pattern ^[a-z][a-zA-Z0-9]*$"
4932
+ pattern: "^[a-z][a-zA-Z0-9]*$",
4933
+ minLength: 1
4927
4934
  } ]
4928
4935
  },
4929
4936
  name: {
4930
- description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$',
4931
- type: "string"
4937
+ description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.',
4938
+ type: "string",
4939
+ pattern: "^[a-z][a-zA-Z0-9]*$"
4932
4940
  },
4933
4941
  prerequisites: {
4934
4942
  description: 'Prerequisites for this API operation.\n\nThe `prerequisites` field defines API operations that must be\nsuccessfully executed before this operation can be performed. This\ncreates an explicit dependency chain between API endpoints, ensuring\nproper execution order and data availability.\n\n## CRITICAL WARNING: Authentication Prerequisites\n\n**NEVER include authentication-related operations as prerequisites!**\nAuthentication is handled separately through the `authorizationActor`\nfield and should NOT be part of the prerequisite chain. Do NOT add\nprerequisites for:\n\n- Login endpoints\n- Token validation endpoints\n- User authentication checks\n- Permission verification endpoints\n\nPrerequisites are ONLY for business logic dependencies, NOT for\nauthentication/authorization.\n\n## Purpose and Use Cases\n\nPrerequisites are essential for operations that depend on:\n\n1. **Existence Validation**: Ensuring resources exist before manipulation\n2. **State Requirements**: Verifying resources are in the correct state\n3. **Data Dependencies**: Loading necessary data for the current operation\n4. **Business Logic Constraints**: Enforcing domain-specific rules\n\n## Execution Flow\n\nWhen an operation has prerequisites:\n\n1. Each prerequisite API must be called first in the specified order\n2. Prerequisites must return successful responses (2xx status codes)\n3. Only after all prerequisites succeed can the main operation proceed\n4. If any prerequisite fails, the operation should not be attempted\n\n## Common Patterns\n\n### Resource Existence Check\n\n```typescript\n// Before updating an order item, ensure the order exists\nprerequisites: [\n {\n endpoint: { path: "/orders/{orderId}", method: "get" },\n description: "Order must exist in the system",\n },\n];\n```\n\n### State Validation\n\n```typescript\n// Before processing payment, ensure order is in correct state\nprerequisites: [\n {\n endpoint: { path: "/orders/{orderId}/status", method: "get" },\n description: "Order must be in \'pending_payment\' status",\n },\n];\n```\n\n### Hierarchical Dependencies\n\n```typescript\n// Before accessing a deeply nested resource\nprerequisites: [\n {\n endpoint: { path: "/projects/{projectId}", method: "get" },\n description: "Project must exist",\n },\n {\n endpoint: {\n path: "/projects/{projectId}/tasks/{taskId}",\n method: "get",\n },\n description: "Task must exist within the project",\n },\n];\n```\n\n## Important Guidelines\n\n1. **Order Matters**: Prerequisites are executed in array order\n2. **Parameter Inheritance**: Path parameters from prerequisites can be used\n in the main operation\n3. **Error Handling**: Failed prerequisites should prevent main operation\n4. **Performance**: Consider caching prerequisite results when appropriate\n5. **Documentation**: Each prerequisite must have a clear description\n explaining why it\'s required\n6. **No Authentication**: NEVER use prerequisites for authentication checks\n\n## Test Generation Impact\n\nThe Test Agent uses prerequisites to:\n\n- Generate proper test setup sequences\n- Create valid test data in the correct order\n- Ensure test scenarios follow realistic workflows\n- Validate error handling when prerequisites fail',
@@ -4938,8 +4946,9 @@ const collection$q = {
4938
4946
  }
4939
4947
  },
4940
4948
  path: {
4941
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
4942
- type: "string"
4949
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
4950
+ type: "string",
4951
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
4943
4952
  },
4944
4953
  method: {
4945
4954
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -4954,8 +4963,9 @@ const collection$q = {
4954
4963
  type: "object",
4955
4964
  properties: {
4956
4965
  name: {
4957
- description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$",
4958
- type: "string"
4966
+ description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.",
4967
+ type: "string",
4968
+ pattern: "^[a-z][a-zA-Z0-9]*$"
4959
4969
  },
4960
4970
  description: {
4961
4971
  description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages.",
@@ -5003,8 +5013,9 @@ const collection$q = {
5003
5013
  type: "number"
5004
5014
  },
5005
5015
  multipleOf: {
5006
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
5007
- type: "number"
5016
+ description: "Multiple of value restriction.",
5017
+ type: "number",
5018
+ exclusiveMinimum: 0
5008
5019
  },
5009
5020
  type: {
5010
5021
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -5035,8 +5046,9 @@ const collection$q = {
5035
5046
  type: "number"
5036
5047
  },
5037
5048
  multipleOf: {
5038
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
5039
- type: "integer"
5049
+ description: "Multiple of value restriction.",
5050
+ type: "integer",
5051
+ exclusiveMinimum: 0
5040
5052
  },
5041
5053
  type: {
5042
5054
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -5064,12 +5076,14 @@ const collection$q = {
5064
5076
  type: "string"
5065
5077
  },
5066
5078
  minLength: {
5067
- description: "Minimum length restriction.\n\n\n@minimum 0",
5068
- type: "integer"
5079
+ description: "Minimum length restriction.",
5080
+ type: "integer",
5081
+ minimum: 0
5069
5082
  },
5070
5083
  maxLength: {
5071
- description: "Maximum length restriction.\n\n\n@minimum 0",
5072
- type: "integer"
5084
+ description: "Maximum length restriction.",
5085
+ type: "integer",
5086
+ minimum: 0
5073
5087
  },
5074
5088
  type: {
5075
5089
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -5129,8 +5143,9 @@ const collection$q = {
5129
5143
  type: "object",
5130
5144
  properties: {
5131
5145
  path: {
5132
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
5133
- type: "string"
5146
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
5147
+ type: "string",
5148
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
5134
5149
  },
5135
5150
  method: {
5136
5151
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -10726,8 +10741,9 @@ const collection$p = {
10726
10741
  type: "number"
10727
10742
  },
10728
10743
  multipleOf: {
10729
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
10730
- type: "integer"
10744
+ description: "Multiple of value restriction.",
10745
+ type: "integer",
10746
+ exclusiveMinimum: 0
10731
10747
  },
10732
10748
  type: {
10733
10749
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -10762,8 +10778,9 @@ const collection$p = {
10762
10778
  type: "number"
10763
10779
  },
10764
10780
  multipleOf: {
10765
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
10766
- type: "number"
10781
+ description: "Multiple of value restriction.",
10782
+ type: "number",
10783
+ exclusiveMinimum: 0
10767
10784
  },
10768
10785
  type: {
10769
10786
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -10795,12 +10812,14 @@ const collection$p = {
10795
10812
  type: "string"
10796
10813
  },
10797
10814
  minLength: {
10798
- description: "Minimum length restriction.\n\n\n@minimum 0",
10799
- type: "integer"
10815
+ description: "Minimum length restriction.",
10816
+ type: "integer",
10817
+ minimum: 0
10800
10818
  },
10801
10819
  maxLength: {
10802
- description: "Maximum length restriction.\n\n\n@minimum 0",
10803
- type: "integer"
10820
+ description: "Maximum length restriction.",
10821
+ type: "integer",
10822
+ minimum: 0
10804
10823
  },
10805
10824
  type: {
10806
10825
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -10827,12 +10846,14 @@ const collection$p = {
10827
10846
  type: "boolean"
10828
10847
  },
10829
10848
  minItems: {
10830
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
10831
- type: "integer"
10849
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
10850
+ type: "integer",
10851
+ minimum: 0
10832
10852
  },
10833
10853
  maxItems: {
10834
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
10835
- type: "integer"
10854
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
10855
+ type: "integer",
10856
+ minimum: 0
10836
10857
  },
10837
10858
  type: {
10838
10859
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -10891,8 +10912,9 @@ const collection$p = {
10891
10912
  type: "number"
10892
10913
  },
10893
10914
  multipleOf: {
10894
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
10895
- type: "integer"
10915
+ description: "Multiple of value restriction.",
10916
+ type: "integer",
10917
+ exclusiveMinimum: 0
10896
10918
  },
10897
10919
  type: {
10898
10920
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -10923,8 +10945,9 @@ const collection$p = {
10923
10945
  type: "number"
10924
10946
  },
10925
10947
  multipleOf: {
10926
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
10927
- type: "number"
10948
+ description: "Multiple of value restriction.",
10949
+ type: "number",
10950
+ exclusiveMinimum: 0
10928
10951
  },
10929
10952
  type: {
10930
10953
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -10952,12 +10975,14 @@ const collection$p = {
10952
10975
  type: "string"
10953
10976
  },
10954
10977
  minLength: {
10955
- description: "Minimum length restriction.\n\n\n@minimum 0",
10956
- type: "integer"
10978
+ description: "Minimum length restriction.",
10979
+ type: "integer",
10980
+ minimum: 0
10957
10981
  },
10958
10982
  maxLength: {
10959
- description: "Maximum length restriction.\n\n\n@minimum 0",
10960
- type: "integer"
10983
+ description: "Maximum length restriction.",
10984
+ type: "integer",
10985
+ minimum: 0
10961
10986
  },
10962
10987
  type: {
10963
10988
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -11009,12 +11034,14 @@ const collection$p = {
11009
11034
  type: "boolean"
11010
11035
  },
11011
11036
  minItems: {
11012
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
11013
- type: "integer"
11037
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
11038
+ type: "integer",
11039
+ minimum: 0
11014
11040
  },
11015
11041
  maxItems: {
11016
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
11017
- type: "integer"
11042
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
11043
+ type: "integer",
11044
+ minimum: 0
11018
11045
  },
11019
11046
  type: {
11020
11047
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -12336,8 +12363,9 @@ const collection$o = {
12336
12363
  type: "object",
12337
12364
  properties: {
12338
12365
  path: {
12339
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
12340
- type: "string"
12366
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
12367
+ type: "string",
12368
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
12341
12369
  },
12342
12370
  method: {
12343
12371
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -12747,11 +12775,12 @@ const collection$n = {
12747
12775
  type: "object",
12748
12776
  properties: {
12749
12777
  endpoints: {
12750
- description: "The endpoints to generate.\n\n\n@minItems 1",
12778
+ description: "The endpoints to generate.",
12751
12779
  type: "array",
12752
12780
  items: {
12753
12781
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
12754
- }
12782
+ },
12783
+ minItems: 1
12755
12784
  }
12756
12785
  },
12757
12786
  required: [ "endpoints" ],
@@ -12762,8 +12791,9 @@ const collection$n = {
12762
12791
  type: "object",
12763
12792
  properties: {
12764
12793
  path: {
12765
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
12766
- type: "string"
12794
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
12795
+ type: "string",
12796
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
12767
12797
  },
12768
12798
  method: {
12769
12799
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -13209,11 +13239,12 @@ const collection$m = {
13209
13239
  type: "object",
13210
13240
  properties: {
13211
13241
  groups: {
13212
- description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.\n\n\n@minItems 1",
13242
+ description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.",
13213
13243
  type: "array",
13214
13244
  items: {
13215
13245
  $ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
13216
- }
13246
+ },
13247
+ minItems: 1
13217
13248
  }
13218
13249
  },
13219
13250
  required: [ "groups" ],
@@ -13224,12 +13255,14 @@ const collection$m = {
13224
13255
  type: "object",
13225
13256
  properties: {
13226
13257
  name: {
13227
- description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.\n\n\n@minLength 1",
13228
- type: "string"
13258
+ description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.",
13259
+ type: "string",
13260
+ minLength: 1
13229
13261
  },
13230
13262
  description: {
13231
- description: 'Concise description of the group\'s core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: "Handles shopping-related entities and operations"\n\n\n@minLength 1',
13232
- type: "string"
13263
+ description: 'Concise description of the group\'s core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: "Handles shopping-related entities and operations"',
13264
+ type: "string",
13265
+ minLength: 1
13233
13266
  }
13234
13267
  },
13235
13268
  required: [ "name", "description" ]
@@ -15467,12 +15500,14 @@ const collection$l = {
15467
15500
  type: "null"
15468
15501
  }, {
15469
15502
  type: "string",
15470
- description: "@minLength 1\n@pattern ^[a-z][a-zA-Z0-9]*$"
15503
+ pattern: "^[a-z][a-zA-Z0-9]*$",
15504
+ minLength: 1
15471
15505
  } ]
15472
15506
  },
15473
15507
  name: {
15474
- description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$',
15475
- type: "string"
15508
+ description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.',
15509
+ type: "string",
15510
+ pattern: "^[a-z][a-zA-Z0-9]*$"
15476
15511
  },
15477
15512
  prerequisites: {
15478
15513
  description: 'Prerequisites for this API operation.\n\nThe `prerequisites` field defines API operations that must be\nsuccessfully executed before this operation can be performed. This\ncreates an explicit dependency chain between API endpoints, ensuring\nproper execution order and data availability.\n\n## CRITICAL WARNING: Authentication Prerequisites\n\n**NEVER include authentication-related operations as prerequisites!**\nAuthentication is handled separately through the `authorizationActor`\nfield and should NOT be part of the prerequisite chain. Do NOT add\nprerequisites for:\n\n- Login endpoints\n- Token validation endpoints\n- User authentication checks\n- Permission verification endpoints\n\nPrerequisites are ONLY for business logic dependencies, NOT for\nauthentication/authorization.\n\n## Purpose and Use Cases\n\nPrerequisites are essential for operations that depend on:\n\n1. **Existence Validation**: Ensuring resources exist before manipulation\n2. **State Requirements**: Verifying resources are in the correct state\n3. **Data Dependencies**: Loading necessary data for the current operation\n4. **Business Logic Constraints**: Enforcing domain-specific rules\n\n## Execution Flow\n\nWhen an operation has prerequisites:\n\n1. Each prerequisite API must be called first in the specified order\n2. Prerequisites must return successful responses (2xx status codes)\n3. Only after all prerequisites succeed can the main operation proceed\n4. If any prerequisite fails, the operation should not be attempted\n\n## Common Patterns\n\n### Resource Existence Check\n\n```typescript\n// Before updating an order item, ensure the order exists\nprerequisites: [\n {\n endpoint: { path: "/orders/{orderId}", method: "get" },\n description: "Order must exist in the system",\n },\n];\n```\n\n### State Validation\n\n```typescript\n// Before processing payment, ensure order is in correct state\nprerequisites: [\n {\n endpoint: { path: "/orders/{orderId}/status", method: "get" },\n description: "Order must be in \'pending_payment\' status",\n },\n];\n```\n\n### Hierarchical Dependencies\n\n```typescript\n// Before accessing a deeply nested resource\nprerequisites: [\n {\n endpoint: { path: "/projects/{projectId}", method: "get" },\n description: "Project must exist",\n },\n {\n endpoint: {\n path: "/projects/{projectId}/tasks/{taskId}",\n method: "get",\n },\n description: "Task must exist within the project",\n },\n];\n```\n\n## Important Guidelines\n\n1. **Order Matters**: Prerequisites are executed in array order\n2. **Parameter Inheritance**: Path parameters from prerequisites can be used\n in the main operation\n3. **Error Handling**: Failed prerequisites should prevent main operation\n4. **Performance**: Consider caching prerequisite results when appropriate\n5. **Documentation**: Each prerequisite must have a clear description\n explaining why it\'s required\n6. **No Authentication**: NEVER use prerequisites for authentication checks\n\n## Test Generation Impact\n\nThe Test Agent uses prerequisites to:\n\n- Generate proper test setup sequences\n- Create valid test data in the correct order\n- Ensure test scenarios follow realistic workflows\n- Validate error handling when prerequisites fail',
@@ -15482,8 +15517,9 @@ const collection$l = {
15482
15517
  }
15483
15518
  },
15484
15519
  path: {
15485
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
15486
- type: "string"
15520
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
15521
+ type: "string",
15522
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
15487
15523
  },
15488
15524
  method: {
15489
15525
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -15498,8 +15534,9 @@ const collection$l = {
15498
15534
  type: "object",
15499
15535
  properties: {
15500
15536
  name: {
15501
- description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$",
15502
- type: "string"
15537
+ description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.",
15538
+ type: "string",
15539
+ pattern: "^[a-z][a-zA-Z0-9]*$"
15503
15540
  },
15504
15541
  description: {
15505
15542
  description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages.",
@@ -15547,8 +15584,9 @@ const collection$l = {
15547
15584
  type: "number"
15548
15585
  },
15549
15586
  multipleOf: {
15550
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
15551
- type: "number"
15587
+ description: "Multiple of value restriction.",
15588
+ type: "number",
15589
+ exclusiveMinimum: 0
15552
15590
  },
15553
15591
  type: {
15554
15592
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -15579,8 +15617,9 @@ const collection$l = {
15579
15617
  type: "number"
15580
15618
  },
15581
15619
  multipleOf: {
15582
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
15583
- type: "integer"
15620
+ description: "Multiple of value restriction.",
15621
+ type: "integer",
15622
+ exclusiveMinimum: 0
15584
15623
  },
15585
15624
  type: {
15586
15625
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -15608,12 +15647,14 @@ const collection$l = {
15608
15647
  type: "string"
15609
15648
  },
15610
15649
  minLength: {
15611
- description: "Minimum length restriction.\n\n\n@minimum 0",
15612
- type: "integer"
15650
+ description: "Minimum length restriction.",
15651
+ type: "integer",
15652
+ minimum: 0
15613
15653
  },
15614
15654
  maxLength: {
15615
- description: "Maximum length restriction.\n\n\n@minimum 0",
15616
- type: "integer"
15655
+ description: "Maximum length restriction.",
15656
+ type: "integer",
15657
+ minimum: 0
15617
15658
  },
15618
15659
  type: {
15619
15660
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -15673,8 +15714,9 @@ const collection$l = {
15673
15714
  type: "object",
15674
15715
  properties: {
15675
15716
  path: {
15676
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
15677
- type: "string"
15717
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
15718
+ type: "string",
15719
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
15678
15720
  },
15679
15721
  method: {
15680
15722
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -17745,20 +17787,23 @@ const collection$k = {
17745
17787
  } ]
17746
17788
  },
17747
17789
  name: {
17748
- description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$',
17749
- type: "string"
17790
+ description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.',
17791
+ type: "string",
17792
+ pattern: "^[a-z][a-zA-Z0-9]*$"
17750
17793
  },
17751
17794
  authorizationActors: {
17752
17795
  description: 'Authorization actors required to access this API operation.\n\nThis field specifies which user actors are allowed to access this\nendpoint. Multiple actors can be specified to allow different types of\nusers to access the same endpoint.\n\n## ⚠️ CRITICAL: Actor Multiplication Effect\n\n**EACH ACTOR IN THIS ARRAY GENERATES A SEPARATE ENDPOINT**\n\n- If you specify `["admin", "moderator", "member"]`, this creates 3\n separate endpoints\n- Total generated endpoints = operations × average actors.length\n- Example: 100 operations with 3 actors each = 300 actual endpoints\n\n## 🔴 AVOID OVER-GENERATION\n\n**DO NOT create actor-specific endpoints when a public endpoint would\nsuffice:**\n\n- ❌ BAD: Separate GET endpoints for admin, member, moderator to view the\n same public data\n- ✅ GOOD: Single public endpoint `[]` with actor-based filtering in business\n logic\n\n**DO NOT enumerate all possible actors when the Prisma schema uses a\nsingle User table:**\n\n- If Prisma has a User table with role/permission fields, you likely only\n need `["user"]`\n- Avoid listing `["admin", "seller", "buyer", "moderator", ...]`\n unnecessarily\n- The actual actor checking happens in business logic, not at the endpoint\n level\n\n## Naming Convention\n\nDO: Use camelCase for all actor names.\n\n## Important Guidelines\n\n- Set to empty array `[]` for public endpoints that require no\n authentication\n- Set to array with actor strings for actor-restricted endpoints\n- **MINIMIZE the number of actors per endpoint to prevent explosion**\n- Consider if the endpoint can be public with actor-based filtering instead\n- The actor names match exactly with the user type/actor defined in the\n database\n- This will be used by the Realize Agent to generate appropriate decorator\n and authorization logic in the provider functions\n- The controller will apply the corresponding authentication decorator\n based on these actors\n\n## Examples\n\n- `[]` - Public endpoint, no authentication required (PREFERRED for read\n operations)\n- `["user"]` - Any authenticated user can access (PREFERRED for\n user-specific operations)\n- `["admin"]` - Only admin users can access (USE SPARINGLY)\n- `["admin", "moderator"]` - Both admin and moderator users can access\n (AVOID if possible)\n- `["seller"]` - Only seller users can access (ONLY if Seller is a separate\n table)\n\n## Best Practices\n\n1. **Start with public `[]` for all read operations** unless sensitive data\n is involved\n2. **Use single actor `["user"]` for authenticated operations** and handle\n permissions in business logic\n3. **Only use multiple actors when absolutely necessary** for different\n business logic paths\n4. **Remember: Fewer actors = Fewer endpoints = Better performance and\n maintainability**\n\nNote: The actual authentication/authorization implementation will be\nhandled by decorators at the controller level, and the provider function\nwill receive the authenticated user object with the appropriate type.',
17753
17796
  type: "array",
17754
17797
  items: {
17755
- description: "@minLength 1\n@pattern ^[a-z][a-zA-Z0-9]*$",
17756
- type: "string"
17798
+ type: "string",
17799
+ pattern: "^[a-z][a-zA-Z0-9]*$",
17800
+ minLength: 1
17757
17801
  }
17758
17802
  },
17759
17803
  path: {
17760
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
17761
- type: "string"
17804
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
17805
+ type: "string",
17806
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
17762
17807
  },
17763
17808
  method: {
17764
17809
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -17773,8 +17818,9 @@ const collection$k = {
17773
17818
  type: "object",
17774
17819
  properties: {
17775
17820
  name: {
17776
- description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$",
17777
- type: "string"
17821
+ description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.",
17822
+ type: "string",
17823
+ pattern: "^[a-z][a-zA-Z0-9]*$"
17778
17824
  },
17779
17825
  description: {
17780
17826
  description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages.",
@@ -17822,8 +17868,9 @@ const collection$k = {
17822
17868
  type: "number"
17823
17869
  },
17824
17870
  multipleOf: {
17825
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
17826
- type: "number"
17871
+ description: "Multiple of value restriction.",
17872
+ type: "number",
17873
+ exclusiveMinimum: 0
17827
17874
  },
17828
17875
  type: {
17829
17876
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -17854,8 +17901,9 @@ const collection$k = {
17854
17901
  type: "number"
17855
17902
  },
17856
17903
  multipleOf: {
17857
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
17858
- type: "integer"
17904
+ description: "Multiple of value restriction.",
17905
+ type: "integer",
17906
+ exclusiveMinimum: 0
17859
17907
  },
17860
17908
  type: {
17861
17909
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -17883,12 +17931,14 @@ const collection$k = {
17883
17931
  type: "string"
17884
17932
  },
17885
17933
  minLength: {
17886
- description: "Minimum length restriction.\n\n\n@minimum 0",
17887
- type: "integer"
17934
+ description: "Minimum length restriction.",
17935
+ type: "integer",
17936
+ minimum: 0
17888
17937
  },
17889
17938
  maxLength: {
17890
- description: "Maximum length restriction.\n\n\n@minimum 0",
17891
- type: "integer"
17939
+ description: "Maximum length restriction.",
17940
+ type: "integer",
17941
+ minimum: 0
17892
17942
  },
17893
17943
  type: {
17894
17944
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -19056,8 +19106,9 @@ const collection$j = {
19056
19106
  type: "object",
19057
19107
  properties: {
19058
19108
  path: {
19059
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
19060
- type: "string"
19109
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
19110
+ type: "string",
19111
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
19061
19112
  },
19062
19113
  method: {
19063
19114
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -23468,8 +23519,9 @@ const collection$h = {
23468
23519
  type: "number"
23469
23520
  },
23470
23521
  multipleOf: {
23471
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
23472
- type: "integer"
23522
+ description: "Multiple of value restriction.",
23523
+ type: "integer",
23524
+ exclusiveMinimum: 0
23473
23525
  },
23474
23526
  type: {
23475
23527
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -23504,8 +23556,9 @@ const collection$h = {
23504
23556
  type: "number"
23505
23557
  },
23506
23558
  multipleOf: {
23507
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
23508
- type: "number"
23559
+ description: "Multiple of value restriction.",
23560
+ type: "number",
23561
+ exclusiveMinimum: 0
23509
23562
  },
23510
23563
  type: {
23511
23564
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -23537,12 +23590,14 @@ const collection$h = {
23537
23590
  type: "string"
23538
23591
  },
23539
23592
  minLength: {
23540
- description: "Minimum length restriction.\n\n\n@minimum 0",
23541
- type: "integer"
23593
+ description: "Minimum length restriction.",
23594
+ type: "integer",
23595
+ minimum: 0
23542
23596
  },
23543
23597
  maxLength: {
23544
- description: "Maximum length restriction.\n\n\n@minimum 0",
23545
- type: "integer"
23598
+ description: "Maximum length restriction.",
23599
+ type: "integer",
23600
+ minimum: 0
23546
23601
  },
23547
23602
  type: {
23548
23603
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -23569,12 +23624,14 @@ const collection$h = {
23569
23624
  type: "boolean"
23570
23625
  },
23571
23626
  minItems: {
23572
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
23573
- type: "integer"
23627
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
23628
+ type: "integer",
23629
+ minimum: 0
23574
23630
  },
23575
23631
  maxItems: {
23576
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
23577
- type: "integer"
23632
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
23633
+ type: "integer",
23634
+ minimum: 0
23578
23635
  },
23579
23636
  type: {
23580
23637
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -23633,8 +23690,9 @@ const collection$h = {
23633
23690
  type: "number"
23634
23691
  },
23635
23692
  multipleOf: {
23636
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
23637
- type: "integer"
23693
+ description: "Multiple of value restriction.",
23694
+ type: "integer",
23695
+ exclusiveMinimum: 0
23638
23696
  },
23639
23697
  type: {
23640
23698
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -23665,8 +23723,9 @@ const collection$h = {
23665
23723
  type: "number"
23666
23724
  },
23667
23725
  multipleOf: {
23668
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
23669
- type: "number"
23726
+ description: "Multiple of value restriction.",
23727
+ type: "number",
23728
+ exclusiveMinimum: 0
23670
23729
  },
23671
23730
  type: {
23672
23731
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -23694,12 +23753,14 @@ const collection$h = {
23694
23753
  type: "string"
23695
23754
  },
23696
23755
  minLength: {
23697
- description: "Minimum length restriction.\n\n\n@minimum 0",
23698
- type: "integer"
23756
+ description: "Minimum length restriction.",
23757
+ type: "integer",
23758
+ minimum: 0
23699
23759
  },
23700
23760
  maxLength: {
23701
- description: "Maximum length restriction.\n\n\n@minimum 0",
23702
- type: "integer"
23761
+ description: "Maximum length restriction.",
23762
+ type: "integer",
23763
+ minimum: 0
23703
23764
  },
23704
23765
  type: {
23705
23766
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -23751,12 +23812,14 @@ const collection$h = {
23751
23812
  type: "boolean"
23752
23813
  },
23753
23814
  minItems: {
23754
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
23755
- type: "integer"
23815
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
23816
+ type: "integer",
23817
+ minimum: 0
23756
23818
  },
23757
23819
  maxItems: {
23758
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
23759
- type: "integer"
23820
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
23821
+ type: "integer",
23822
+ minimum: 0
23760
23823
  },
23761
23824
  type: {
23762
23825
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -28384,8 +28447,9 @@ const collection$g = {
28384
28447
  type: "number"
28385
28448
  },
28386
28449
  multipleOf: {
28387
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
28388
- type: "integer"
28450
+ description: "Multiple of value restriction.",
28451
+ type: "integer",
28452
+ exclusiveMinimum: 0
28389
28453
  },
28390
28454
  type: {
28391
28455
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -28420,8 +28484,9 @@ const collection$g = {
28420
28484
  type: "number"
28421
28485
  },
28422
28486
  multipleOf: {
28423
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
28424
- type: "number"
28487
+ description: "Multiple of value restriction.",
28488
+ type: "number",
28489
+ exclusiveMinimum: 0
28425
28490
  },
28426
28491
  type: {
28427
28492
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -28453,12 +28518,14 @@ const collection$g = {
28453
28518
  type: "string"
28454
28519
  },
28455
28520
  minLength: {
28456
- description: "Minimum length restriction.\n\n\n@minimum 0",
28457
- type: "integer"
28521
+ description: "Minimum length restriction.",
28522
+ type: "integer",
28523
+ minimum: 0
28458
28524
  },
28459
28525
  maxLength: {
28460
- description: "Maximum length restriction.\n\n\n@minimum 0",
28461
- type: "integer"
28526
+ description: "Maximum length restriction.",
28527
+ type: "integer",
28528
+ minimum: 0
28462
28529
  },
28463
28530
  type: {
28464
28531
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -28485,12 +28552,14 @@ const collection$g = {
28485
28552
  type: "boolean"
28486
28553
  },
28487
28554
  minItems: {
28488
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
28489
- type: "integer"
28555
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
28556
+ type: "integer",
28557
+ minimum: 0
28490
28558
  },
28491
28559
  maxItems: {
28492
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
28493
- type: "integer"
28560
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
28561
+ type: "integer",
28562
+ minimum: 0
28494
28563
  },
28495
28564
  type: {
28496
28565
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -28549,8 +28618,9 @@ const collection$g = {
28549
28618
  type: "number"
28550
28619
  },
28551
28620
  multipleOf: {
28552
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
28553
- type: "integer"
28621
+ description: "Multiple of value restriction.",
28622
+ type: "integer",
28623
+ exclusiveMinimum: 0
28554
28624
  },
28555
28625
  type: {
28556
28626
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -28581,8 +28651,9 @@ const collection$g = {
28581
28651
  type: "number"
28582
28652
  },
28583
28653
  multipleOf: {
28584
- description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
28585
- type: "number"
28654
+ description: "Multiple of value restriction.",
28655
+ type: "number",
28656
+ exclusiveMinimum: 0
28586
28657
  },
28587
28658
  type: {
28588
28659
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -28610,12 +28681,14 @@ const collection$g = {
28610
28681
  type: "string"
28611
28682
  },
28612
28683
  minLength: {
28613
- description: "Minimum length restriction.\n\n\n@minimum 0",
28614
- type: "integer"
28684
+ description: "Minimum length restriction.",
28685
+ type: "integer",
28686
+ minimum: 0
28615
28687
  },
28616
28688
  maxLength: {
28617
- description: "Maximum length restriction.\n\n\n@minimum 0",
28618
- type: "integer"
28689
+ description: "Maximum length restriction.",
28690
+ type: "integer",
28691
+ minimum: 0
28619
28692
  },
28620
28693
  type: {
28621
28694
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -28667,12 +28740,14 @@ const collection$g = {
28667
28740
  type: "boolean"
28668
28741
  },
28669
28742
  minItems: {
28670
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.\n\n\n@minimum 0",
28671
- type: "integer"
28743
+ description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
28744
+ type: "integer",
28745
+ minimum: 0
28672
28746
  },
28673
28747
  maxItems: {
28674
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.\n\n\n@minimum 0",
28675
- type: "integer"
28748
+ description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
28749
+ type: "integer",
28750
+ minimum: 0
28676
28751
  },
28677
28752
  type: {
28678
28753
  description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
@@ -30229,11 +30304,12 @@ const collection$f = {
30229
30304
  type: "string"
30230
30305
  },
30231
30306
  components: {
30232
- description: 'Array of domain components that group related database tables.\n\nEach component represents a business domain and becomes one Prisma schema\nfile. Common domains include: Actors (users), Sales (products), Orders,\nCarts, etc.\n\n**Example:**\n\n```typescript\n{\n "components": [\n {\n "filename": "schema-02-systematic.prisma",\n "namespace": "Systematic",\n "thinking": "These tables all relate to system configuration and channel management. They form the foundation of the platform.",\n "review": "Considering the relationships, shopping_channel_categories connects channels and sales, but it fundamentally defines channel structure.",\n "rationale": "Grouping all system configuration tables together provides a clear foundation layer that other domains can reference.",\n "tables": [\n "shopping_channels",\n "shopping_sections",\n "shopping_channel_categories"\n ]\n },\n {\n "filename": "schema-03-actors.prisma",\n "namespace": "Actors",\n "thinking": "All user-related entities should be grouped together as they share authentication and identity patterns.",\n "review": "While customers interact with sales, the customer entity itself is about identity, not transactions.",\n "rationale": "This component groups all actor-related tables to maintain separation between identity management and business transactions.",\n "tables": [\n "shopping_customers",\n "shopping_citizens",\n "shopping_administrators"\n ]\n },\n {\n "filename": "schema-04-sales.prisma",\n "namespace": "Sales",\n "thinking": "Product catalog and sales-related tables belong together as they form the core commerce functionality.",\n "review": "Sales snapshots are integral to the sales domain for tracking product history and price changes.",\n "rationale": "Consolidating all sales-related tables enables coherent management of the entire product lifecycle.",\n "tables": [\n "shopping_sales",\n "shopping_sale_snapshots",\n "shopping_sale_units",\n "shopping_sale_unit_options"\n ]\n }\n ]\n}\n```\n\n**Notes:**\n\n- Table names must follow snake_case convention with domain prefix (e.g.,\n `shopping_customers`)\n- Each component becomes one `.prisma` file containing related models\n- Filename numbering indicates dependency order for schema generation\n- Namespace is used for documentation organization and domain grouping\n\n\n@minItems 1',
30307
+ description: 'Array of domain components that group related database tables.\n\nEach component represents a business domain and becomes one Prisma schema\nfile. Common domains include: Actors (users), Sales (products), Orders,\nCarts, etc.\n\n**Example:**\n\n```typescript\n{\n "components": [\n {\n "filename": "schema-02-systematic.prisma",\n "namespace": "Systematic",\n "thinking": "These tables all relate to system configuration and channel management. They form the foundation of the platform.",\n "review": "Considering the relationships, shopping_channel_categories connects channels and sales, but it fundamentally defines channel structure.",\n "rationale": "Grouping all system configuration tables together provides a clear foundation layer that other domains can reference.",\n "tables": [\n "shopping_channels",\n "shopping_sections",\n "shopping_channel_categories"\n ]\n },\n {\n "filename": "schema-03-actors.prisma",\n "namespace": "Actors",\n "thinking": "All user-related entities should be grouped together as they share authentication and identity patterns.",\n "review": "While customers interact with sales, the customer entity itself is about identity, not transactions.",\n "rationale": "This component groups all actor-related tables to maintain separation between identity management and business transactions.",\n "tables": [\n "shopping_customers",\n "shopping_citizens",\n "shopping_administrators"\n ]\n },\n {\n "filename": "schema-04-sales.prisma",\n "namespace": "Sales",\n "thinking": "Product catalog and sales-related tables belong together as they form the core commerce functionality.",\n "review": "Sales snapshots are integral to the sales domain for tracking product history and price changes.",\n "rationale": "Consolidating all sales-related tables enables coherent management of the entire product lifecycle.",\n "tables": [\n "shopping_sales",\n "shopping_sale_snapshots",\n "shopping_sale_units",\n "shopping_sale_unit_options"\n ]\n }\n ]\n}\n```\n\n**Notes:**\n\n- Table names must follow snake_case convention with domain prefix (e.g.,\n `shopping_customers`)\n- Each component becomes one `.prisma` file containing related models\n- Filename numbering indicates dependency order for schema generation\n- Namespace is used for documentation organization and domain grouping',
30233
30308
  type: "array",
30234
30309
  items: {
30235
30310
  $ref: "#/$defs/AutoBePrisma.IComponent"
30236
- }
30311
+ },
30312
+ minItems: 1
30237
30313
  }
30238
30314
  },
30239
30315
  required: [ "thinking", "review", "decision", "components" ],
@@ -30244,8 +30320,9 @@ const collection$f = {
30244
30320
  type: "object",
30245
30321
  properties: {
30246
30322
  filename: {
30247
- description: "Target filename for the Prisma schema file containing this component's\ntables.\n\nFollows the naming convention `schema-{number}-{domain}.prisma` where the\nnumber indicates dependency order and domain represents the business\narea.\n\n\n@pattern ^[a-zA-Z0-9._-]+\\.prisma$",
30248
- type: "string"
30323
+ description: "Target filename for the Prisma schema file containing this component's\ntables.\n\nFollows the naming convention `schema-{number}-{domain}.prisma` where the\nnumber indicates dependency order and domain represents the business\narea.",
30324
+ type: "string",
30325
+ pattern: "^[a-zA-Z0-9._-]+\\.prisma$"
30249
30326
  },
30250
30327
  namespace: {
30251
30328
  description: 'Business domain namespace that groups related models.\n\nUsed in Prisma documentation comments as "@\\namespace directive".\nExamples from uploaded schemas: "Systematic", "Actors", "Sales", "Carts",\n"Orders", "Coupons", "Coins", "Inquiries", "Favorites", "Articles"',
@@ -30264,12 +30341,13 @@ const collection$f = {
30264
30341
  type: "string"
30265
30342
  },
30266
30343
  tables: {
30267
- description: "Array of table names that will be included in this component's schema\nfile.\n\nContains all database table names that belong to this business domain,\nensuring logical grouping and proper organization of related data\nstructures.\n\n\n@minItems 1",
30344
+ description: "Array of table names that will be included in this component's schema\nfile.\n\nContains all database table names that belong to this business domain,\nensuring logical grouping and proper organization of related data\nstructures.",
30268
30345
  type: "array",
30269
30346
  items: {
30270
- description: "@pattern ^[a-z][a-z0-9_]*$",
30271
- type: "string"
30272
- }
30347
+ type: "string",
30348
+ pattern: "^[a-z][a-z0-9_]*$"
30349
+ },
30350
+ minItems: 1
30273
30351
  }
30274
30352
  },
30275
30353
  required: [ "filename", "namespace", "thinking", "review", "rationale", "tables" ]
@@ -31685,8 +31763,9 @@ const collection$e = {
31685
31763
  type: "object",
31686
31764
  properties: {
31687
31765
  name: {
31688
- description: 'Name of the Prisma model (database table name).\n\nMUST use snake_case naming convention. Examples: "shopping_customers",\n"shopping_sale_snapshots", "bbs_articles" Materialized views use "mv_"\nprefix: "mv_shopping_sale_last_snapshots"\n\n\n@pattern ^[a-z][a-z0-9_]*$',
31689
- type: "string"
31766
+ description: 'Name of the Prisma model (database table name).\n\nMUST use snake_case naming convention. Examples: "shopping_customers",\n"shopping_sale_snapshots", "bbs_articles" Materialized views use "mv_"\nprefix: "mv_shopping_sale_last_snapshots"',
31767
+ type: "string",
31768
+ pattern: "^[a-z][a-z0-9_]*$"
31690
31769
  },
31691
31770
  description: {
31692
31771
  description: 'Detailed description explaining the business purpose and usage of the\nmodel.\n\nShould include:\n\n- Business context and purpose\n- Key relationships with other models\n- Important behavioral notes or constraints\n- References to related entities using "{@\\link ModelName}" syntax\n\n**IMPORTANT**: Description must be written in English. Example: "Customer\ninformation, but not a person but a **connection** basis..."',
@@ -31748,8 +31827,9 @@ const collection$e = {
31748
31827
  type: "object",
31749
31828
  properties: {
31750
31829
  name: {
31751
- description: 'Name of the primary key field.\n\nMUST use snake_case naming convention. Consistently named "id" across all\nmodels in the uploaded schemas. Represents the unique identifier for each\nrecord in the table.\n\n\n@pattern ^[a-z][a-z0-9_]*$',
31752
- type: "string"
31830
+ description: 'Name of the primary key field.\n\nMUST use snake_case naming convention. Consistently named "id" across all\nmodels in the uploaded schemas. Represents the unique identifier for each\nrecord in the table.',
31831
+ type: "string",
31832
+ pattern: "^[a-z][a-z0-9_]*$"
31753
31833
  },
31754
31834
  type: {
31755
31835
  description: 'Data type of the primary key field.\n\nAlways "uuid" in the uploaded schemas for better distributed system\nsupport and to avoid exposing sequential IDs that could reveal business\ninformation.',
@@ -31768,8 +31848,9 @@ const collection$e = {
31768
31848
  type: "object",
31769
31849
  properties: {
31770
31850
  name: {
31771
- description: 'Name of the foreign key field.\n\nMUST use snake_case naming convention. Follows convention:\n"{target_model_name_without_prefix}_id" Examples: "shopping_customer_id",\n"bbs_article_id", "attachment_file_id" For self-references: "parent_id"\n(e.g., in hierarchical structures)\n\n\n@pattern ^[a-z][a-z0-9_]*$',
31772
- type: "string"
31851
+ description: 'Name of the foreign key field.\n\nMUST use snake_case naming convention. Follows convention:\n"{target_model_name_without_prefix}_id" Examples: "shopping_customer_id",\n"bbs_article_id", "attachment_file_id" For self-references: "parent_id"\n(e.g., in hierarchical structures)',
31852
+ type: "string",
31853
+ pattern: "^[a-z][a-z0-9_]*$"
31773
31854
  },
31774
31855
  type: {
31775
31856
  description: 'Data type of the foreign key field.\n\nAlways "uuid" to match the primary key type of referenced models. Ensures\nreferential integrity and consistency across the schema.',
@@ -31800,8 +31881,9 @@ const collection$e = {
31800
31881
  type: "object",
31801
31882
  properties: {
31802
31883
  name: {
31803
- description: 'Name of the relation property in the Prisma model.\n\nThis becomes the property name used to access the related model instance\nthrough the Prisma client. Should be descriptive and reflect the business\nrelationship being modeled.\n\nExamples:\n\n- "customer" for shopping_customer_id field\n- "channel" for shopping_channel_id field\n- "parent" for parent_id field in hierarchical structures\n- "snapshot" for versioning relationships\n- "article" for bbs_article_id field\n\nNaming convention: camelCase, descriptive of the relationship\'s business\nmeaning\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$',
31804
- type: "string"
31884
+ description: 'Name of the relation property in the Prisma model.\n\nThis becomes the property name used to access the related model instance\nthrough the Prisma client. Should be descriptive and reflect the business\nrelationship being modeled.\n\nExamples:\n\n- "customer" for shopping_customer_id field\n- "channel" for shopping_channel_id field\n- "parent" for parent_id field in hierarchical structures\n- "snapshot" for versioning relationships\n- "article" for bbs_article_id field\n\nNaming convention: camelCase, descriptive of the relationship\'s business\nmeaning',
31885
+ type: "string",
31886
+ pattern: "^[a-z][a-zA-Z0-9]*$"
31805
31887
  },
31806
31888
  targetModel: {
31807
31889
  description: 'Name of the target model being referenced by this relation.\n\nMust exactly match an existing model name in the schema. This is used by\nPrisma to establish the foreign key constraint and generate the\nappropriate relation mapping.\n\nExamples:\n\n- "shopping_customers" for customer relationships\n- "shopping_channels" for channel relationships\n- "bbs_articles" for article relationships\n- "attachment_files" for file attachments\n\nThe target model should exist in the same schema or be accessible through\nthe Prisma schema configuration.',
@@ -31815,8 +31897,9 @@ const collection$e = {
31815
31897
  type: "object",
31816
31898
  properties: {
31817
31899
  name: {
31818
- description: "Name of the field in the database table.\n\nMUST use snake_case naming convention. Common patterns from uploaded\nschemas:\n\n- Timestamps: created_at, updated_at, deleted_at, opened_at, closed_at\n- Identifiers: code, name, nickname, title\n- Business data: value, quantity, price, volume, balance\n- Flags: primary, required, exclusive, secret, multiplicative\n\n\n@pattern ^[a-z][a-z0-9_]*$",
31819
- type: "string"
31900
+ description: "Name of the field in the database table.\n\nMUST use snake_case naming convention. Common patterns from uploaded\nschemas:\n\n- Timestamps: created_at, updated_at, deleted_at, opened_at, closed_at\n- Identifiers: code, name, nickname, title\n- Business data: value, quantity, price, volume, balance\n- Flags: primary, required, exclusive, secret, multiplicative",
31901
+ type: "string",
31902
+ pattern: "^[a-z][a-z0-9_]*$"
31820
31903
  },
31821
31904
  type: {
31822
31905
  description: "Data type of the field for Prisma schema generation.\n\nMaps to appropriate Prisma/PostgreSQL types:\n\n- Boolean: Boolean flags and yes/no values\n- Int: Integer numbers, quantities, sequences\n- Double: Decimal numbers, prices, monetary values, percentages\n- String: Text data, names, descriptions, codes\n- Uri: URL/URI fields for links and references\n- Uuid: UUID fields (for non-foreign-key UUIDs)\n- Datetime: Timestamp fields with date and time",
@@ -31839,11 +31922,13 @@ const collection$e = {
31839
31922
  type: "object",
31840
31923
  properties: {
31841
31924
  fieldNames: {
31842
- description: 'Array of field names that together form the unique constraint.\n\nCan be single field (e.g., ["email"]) or composite (e.g., ["channel_id",\n"code"]). All field names must exist in the model. Order matters for\ncomposite indexes. Examples: ["code"], ["shopping_channel_id",\n"nickname"], ["email"]\n\n\n@minItems 1\n@uniqueItems',
31925
+ description: 'Array of field names that together form the unique constraint.\n\nCan be single field (e.g., ["email"]) or composite (e.g., ["channel_id",\n"code"]). All field names must exist in the model. Order matters for\ncomposite indexes. Examples: ["code"], ["shopping_channel_id",\n"nickname"], ["email"]',
31843
31926
  type: "array",
31844
31927
  items: {
31845
31928
  type: "string"
31846
- }
31929
+ },
31930
+ minItems: 1,
31931
+ uniqueItems: true
31847
31932
  },
31848
31933
  unique: {
31849
31934
  description: 'Explicit marker indicating this is a unique index.\n\nAlways true to distinguish from regular indexes. Used by code generator\nto emit "@@unique" directive in Prisma schema instead of "@@index".',
@@ -31858,11 +31943,13 @@ const collection$e = {
31858
31943
  type: "object",
31859
31944
  properties: {
31860
31945
  fieldNames: {
31861
- description: 'Array of field names to include in the performance index.\n\nCan be single field (e.g., ["created_at"]) or composite (e.g.,\n["customer_id", "created_at"]). All field names must exist in the model.\nOrder matters for composite indexes and should match common query\npatterns. Examples: ["created_at"], ["shopping_customer_id",\n"created_at"], ["ip"]\n\n\n@minItems 1\n@uniqueItems',
31946
+ description: 'Array of field names to include in the performance index.\n\nCan be single field (e.g., ["created_at"]) or composite (e.g.,\n["customer_id", "created_at"]). All field names must exist in the model.\nOrder matters for composite indexes and should match common query\npatterns. Examples: ["created_at"], ["shopping_customer_id",\n"created_at"], ["ip"]',
31862
31947
  type: "array",
31863
31948
  items: {
31864
31949
  type: "string"
31865
- }
31950
+ },
31951
+ minItems: 1,
31952
+ uniqueItems: true
31866
31953
  }
31867
31954
  },
31868
31955
  required: [ "fieldNames" ]
@@ -33472,8 +33559,9 @@ const collection$d = {
33472
33559
  type: "object",
33473
33560
  properties: {
33474
33561
  name: {
33475
- description: 'Name of the Prisma model (database table name).\n\nMUST use snake_case naming convention. Examples: "shopping_customers",\n"shopping_sale_snapshots", "bbs_articles" Materialized views use "mv_"\nprefix: "mv_shopping_sale_last_snapshots"\n\n\n@pattern ^[a-z][a-z0-9_]*$',
33476
- type: "string"
33562
+ description: 'Name of the Prisma model (database table name).\n\nMUST use snake_case naming convention. Examples: "shopping_customers",\n"shopping_sale_snapshots", "bbs_articles" Materialized views use "mv_"\nprefix: "mv_shopping_sale_last_snapshots"',
33563
+ type: "string",
33564
+ pattern: "^[a-z][a-z0-9_]*$"
33477
33565
  },
33478
33566
  description: {
33479
33567
  description: 'Detailed description explaining the business purpose and usage of the\nmodel.\n\nShould include:\n\n- Business context and purpose\n- Key relationships with other models\n- Important behavioral notes or constraints\n- References to related entities using "{@\\link ModelName}" syntax\n\n**IMPORTANT**: Description must be written in English. Example: "Customer\ninformation, but not a person but a **connection** basis..."',
@@ -33535,8 +33623,9 @@ const collection$d = {
33535
33623
  type: "object",
33536
33624
  properties: {
33537
33625
  name: {
33538
- description: 'Name of the primary key field.\n\nMUST use snake_case naming convention. Consistently named "id" across all\nmodels in the uploaded schemas. Represents the unique identifier for each\nrecord in the table.\n\n\n@pattern ^[a-z][a-z0-9_]*$',
33539
- type: "string"
33626
+ description: 'Name of the primary key field.\n\nMUST use snake_case naming convention. Consistently named "id" across all\nmodels in the uploaded schemas. Represents the unique identifier for each\nrecord in the table.',
33627
+ type: "string",
33628
+ pattern: "^[a-z][a-z0-9_]*$"
33540
33629
  },
33541
33630
  type: {
33542
33631
  description: 'Data type of the primary key field.\n\nAlways "uuid" in the uploaded schemas for better distributed system\nsupport and to avoid exposing sequential IDs that could reveal business\ninformation.',
@@ -33555,8 +33644,9 @@ const collection$d = {
33555
33644
  type: "object",
33556
33645
  properties: {
33557
33646
  name: {
33558
- description: 'Name of the foreign key field.\n\nMUST use snake_case naming convention. Follows convention:\n"{target_model_name_without_prefix}_id" Examples: "shopping_customer_id",\n"bbs_article_id", "attachment_file_id" For self-references: "parent_id"\n(e.g., in hierarchical structures)\n\n\n@pattern ^[a-z][a-z0-9_]*$',
33559
- type: "string"
33647
+ description: 'Name of the foreign key field.\n\nMUST use snake_case naming convention. Follows convention:\n"{target_model_name_without_prefix}_id" Examples: "shopping_customer_id",\n"bbs_article_id", "attachment_file_id" For self-references: "parent_id"\n(e.g., in hierarchical structures)',
33648
+ type: "string",
33649
+ pattern: "^[a-z][a-z0-9_]*$"
33560
33650
  },
33561
33651
  type: {
33562
33652
  description: 'Data type of the foreign key field.\n\nAlways "uuid" to match the primary key type of referenced models. Ensures\nreferential integrity and consistency across the schema.',
@@ -33587,8 +33677,9 @@ const collection$d = {
33587
33677
  type: "object",
33588
33678
  properties: {
33589
33679
  name: {
33590
- description: 'Name of the relation property in the Prisma model.\n\nThis becomes the property name used to access the related model instance\nthrough the Prisma client. Should be descriptive and reflect the business\nrelationship being modeled.\n\nExamples:\n\n- "customer" for shopping_customer_id field\n- "channel" for shopping_channel_id field\n- "parent" for parent_id field in hierarchical structures\n- "snapshot" for versioning relationships\n- "article" for bbs_article_id field\n\nNaming convention: camelCase, descriptive of the relationship\'s business\nmeaning\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$',
33591
- type: "string"
33680
+ description: 'Name of the relation property in the Prisma model.\n\nThis becomes the property name used to access the related model instance\nthrough the Prisma client. Should be descriptive and reflect the business\nrelationship being modeled.\n\nExamples:\n\n- "customer" for shopping_customer_id field\n- "channel" for shopping_channel_id field\n- "parent" for parent_id field in hierarchical structures\n- "snapshot" for versioning relationships\n- "article" for bbs_article_id field\n\nNaming convention: camelCase, descriptive of the relationship\'s business\nmeaning',
33681
+ type: "string",
33682
+ pattern: "^[a-z][a-zA-Z0-9]*$"
33592
33683
  },
33593
33684
  targetModel: {
33594
33685
  description: 'Name of the target model being referenced by this relation.\n\nMust exactly match an existing model name in the schema. This is used by\nPrisma to establish the foreign key constraint and generate the\nappropriate relation mapping.\n\nExamples:\n\n- "shopping_customers" for customer relationships\n- "shopping_channels" for channel relationships\n- "bbs_articles" for article relationships\n- "attachment_files" for file attachments\n\nThe target model should exist in the same schema or be accessible through\nthe Prisma schema configuration.',
@@ -33602,8 +33693,9 @@ const collection$d = {
33602
33693
  type: "object",
33603
33694
  properties: {
33604
33695
  name: {
33605
- description: "Name of the field in the database table.\n\nMUST use snake_case naming convention. Common patterns from uploaded\nschemas:\n\n- Timestamps: created_at, updated_at, deleted_at, opened_at, closed_at\n- Identifiers: code, name, nickname, title\n- Business data: value, quantity, price, volume, balance\n- Flags: primary, required, exclusive, secret, multiplicative\n\n\n@pattern ^[a-z][a-z0-9_]*$",
33606
- type: "string"
33696
+ description: "Name of the field in the database table.\n\nMUST use snake_case naming convention. Common patterns from uploaded\nschemas:\n\n- Timestamps: created_at, updated_at, deleted_at, opened_at, closed_at\n- Identifiers: code, name, nickname, title\n- Business data: value, quantity, price, volume, balance\n- Flags: primary, required, exclusive, secret, multiplicative",
33697
+ type: "string",
33698
+ pattern: "^[a-z][a-z0-9_]*$"
33607
33699
  },
33608
33700
  type: {
33609
33701
  description: "Data type of the field for Prisma schema generation.\n\nMaps to appropriate Prisma/PostgreSQL types:\n\n- Boolean: Boolean flags and yes/no values\n- Int: Integer numbers, quantities, sequences\n- Double: Decimal numbers, prices, monetary values, percentages\n- String: Text data, names, descriptions, codes\n- Uri: URL/URI fields for links and references\n- Uuid: UUID fields (for non-foreign-key UUIDs)\n- Datetime: Timestamp fields with date and time",
@@ -33626,11 +33718,13 @@ const collection$d = {
33626
33718
  type: "object",
33627
33719
  properties: {
33628
33720
  fieldNames: {
33629
- description: 'Array of field names that together form the unique constraint.\n\nCan be single field (e.g., ["email"]) or composite (e.g., ["channel_id",\n"code"]). All field names must exist in the model. Order matters for\ncomposite indexes. Examples: ["code"], ["shopping_channel_id",\n"nickname"], ["email"]\n\n\n@minItems 1\n@uniqueItems',
33721
+ description: 'Array of field names that together form the unique constraint.\n\nCan be single field (e.g., ["email"]) or composite (e.g., ["channel_id",\n"code"]). All field names must exist in the model. Order matters for\ncomposite indexes. Examples: ["code"], ["shopping_channel_id",\n"nickname"], ["email"]',
33630
33722
  type: "array",
33631
33723
  items: {
33632
33724
  type: "string"
33633
- }
33725
+ },
33726
+ minItems: 1,
33727
+ uniqueItems: true
33634
33728
  },
33635
33729
  unique: {
33636
33730
  description: 'Explicit marker indicating this is a unique index.\n\nAlways true to distinguish from regular indexes. Used by code generator\nto emit "@@unique" directive in Prisma schema instead of "@@index".',
@@ -33645,11 +33739,13 @@ const collection$d = {
33645
33739
  type: "object",
33646
33740
  properties: {
33647
33741
  fieldNames: {
33648
- description: 'Array of field names to include in the performance index.\n\nCan be single field (e.g., ["created_at"]) or composite (e.g.,\n["customer_id", "created_at"]). All field names must exist in the model.\nOrder matters for composite indexes and should match common query\npatterns. Examples: ["created_at"], ["shopping_customer_id",\n"created_at"], ["ip"]\n\n\n@minItems 1\n@uniqueItems',
33742
+ description: 'Array of field names to include in the performance index.\n\nCan be single field (e.g., ["created_at"]) or composite (e.g.,\n["customer_id", "created_at"]). All field names must exist in the model.\nOrder matters for composite indexes and should match common query\npatterns. Examples: ["created_at"], ["shopping_customer_id",\n"created_at"], ["ip"]',
33649
33743
  type: "array",
33650
33744
  items: {
33651
33745
  type: "string"
33652
- }
33746
+ },
33747
+ minItems: 1,
33748
+ uniqueItems: true
33653
33749
  }
33654
33750
  },
33655
33751
  required: [ "fieldNames" ]
@@ -36357,8 +36453,9 @@ const collection$b = {
36357
36453
  type: "object",
36358
36454
  properties: {
36359
36455
  name: {
36360
- description: "The name of the authentication Provider function in {role}Authorize\nformat (e.g., adminAuthorize, userAuthorize). This function will be\ncalled by the decorator to verify JWT tokens and return authenticated\nuser information for the specified role.\n\nDO: Use camelCase naming convention.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$",
36361
- type: "string"
36456
+ description: "The name of the authentication Provider function in {role}Authorize\nformat (e.g., adminAuthorize, userAuthorize). This function will be\ncalled by the decorator to verify JWT tokens and return authenticated\nuser information for the specified role.\n\nDO: Use camelCase naming convention.",
36457
+ type: "string",
36458
+ pattern: "^[a-z][a-zA-Z0-9]*$"
36362
36459
  },
36363
36460
  content: {
36364
36461
  description: "Complete TypeScript code for the authentication Provider function. Must\ninclude: JWT token verification using jwtAuthorize function, role type\nchecking against payload.type, database query using\nMyGlobal.prisma.{tableName} pattern to verify user existence, and proper\nerror handling with ForbiddenException and UnauthorizedException. The\nfunction should return the authenticated user payload data.",
@@ -36371,8 +36468,9 @@ const collection$b = {
36371
36468
  type: "object",
36372
36469
  properties: {
36373
36470
  name: {
36374
- description: "The name of the Decorator to be generated in {Actor}Auth format (e.g.,\nAdminAuth, UserAuth). This decorator will be used as a parameter\ndecorator in Controller methods to automatically authenticate and\nauthorize users for the specific role, injecting the authenticated user\npayload as a method parameter.\n\nDO: Use PascalCase naming convention.\n\n\n@pattern ^[A-Z][a-zA-Z0-9]*$",
36375
- type: "string"
36471
+ description: "The name of the Decorator to be generated in {Actor}Auth format (e.g.,\nAdminAuth, UserAuth). This decorator will be used as a parameter\ndecorator in Controller methods to automatically authenticate and\nauthorize users for the specific role, injecting the authenticated user\npayload as a method parameter.\n\nDO: Use PascalCase naming convention.",
36472
+ type: "string",
36473
+ pattern: "^[A-Z][a-zA-Z0-9]*$"
36376
36474
  },
36377
36475
  content: {
36378
36476
  description: "Complete TypeScript code for the authentication Decorator implementation.\nMust include: SwaggerCustomizer integration to add bearer token security\nschema to API documentation, createParamDecorator implementation that\ncalls the corresponding Provider function for authentication, Singleton\npattern using tstl library for efficient decorator instance management,\nand proper TypeScript typing for the ParameterDecorator interface.",
@@ -36385,8 +36483,9 @@ const collection$b = {
36385
36483
  type: "object",
36386
36484
  properties: {
36387
36485
  name: {
36388
- description: "The name of the Payload type to be generated in {Actor}Payload format\n(e.g., AdminPayload, UserPayload). This type defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator.\n\nDO: Use PascalCase naming convention.\n\n\n@pattern ^[A-Z][a-zA-Z0-9]*$",
36389
- type: "string"
36486
+ description: "The name of the Payload type to be generated in {Actor}Payload format\n(e.g., AdminPayload, UserPayload). This type defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator.\n\nDO: Use PascalCase naming convention.",
36487
+ type: "string",
36488
+ pattern: "^[A-Z][a-zA-Z0-9]*$"
36390
36489
  },
36391
36490
  content: {
36392
36491
  description: "Complete TypeScript code for the Payload type interface in {Actor}Payload\nformat (e.g., AdminPayload, UserPayload). Must include: id field with\nUUID format validation, type field as role discriminator, and proper\ntypia tags for validation. This interface defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator and serves as the TypeScript type for the\nparameter in Controller method signatures.",
@@ -37001,8 +37100,9 @@ const collection$a = {
37001
37100
  type: "object",
37002
37101
  properties: {
37003
37102
  name: {
37004
- description: "The name of the authentication Provider function in {role}Authorize\nformat (e.g., adminAuthorize, userAuthorize). This function will be\ncalled by the decorator to verify JWT tokens and return authenticated\nuser information for the specified role.\n\nDO: Use camelCase naming convention.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$",
37005
- type: "string"
37103
+ description: "The name of the authentication Provider function in {role}Authorize\nformat (e.g., adminAuthorize, userAuthorize). This function will be\ncalled by the decorator to verify JWT tokens and return authenticated\nuser information for the specified role.\n\nDO: Use camelCase naming convention.",
37104
+ type: "string",
37105
+ pattern: "^[a-z][a-zA-Z0-9]*$"
37006
37106
  },
37007
37107
  content: {
37008
37108
  description: "Complete TypeScript code for the authentication Provider function. Must\ninclude: JWT token verification using jwtAuthorize function, role type\nchecking against payload.type, database query using\nMyGlobal.prisma.{tableName} pattern to verify user existence, and proper\nerror handling with ForbiddenException and UnauthorizedException. The\nfunction should return the authenticated user payload data.",
@@ -37015,8 +37115,9 @@ const collection$a = {
37015
37115
  type: "object",
37016
37116
  properties: {
37017
37117
  name: {
37018
- description: "The name of the Decorator to be generated in {Actor}Auth format (e.g.,\nAdminAuth, UserAuth). This decorator will be used as a parameter\ndecorator in Controller methods to automatically authenticate and\nauthorize users for the specific role, injecting the authenticated user\npayload as a method parameter.\n\nDO: Use PascalCase naming convention.\n\n\n@pattern ^[A-Z][a-zA-Z0-9]*$",
37019
- type: "string"
37118
+ description: "The name of the Decorator to be generated in {Actor}Auth format (e.g.,\nAdminAuth, UserAuth). This decorator will be used as a parameter\ndecorator in Controller methods to automatically authenticate and\nauthorize users for the specific role, injecting the authenticated user\npayload as a method parameter.\n\nDO: Use PascalCase naming convention.",
37119
+ type: "string",
37120
+ pattern: "^[A-Z][a-zA-Z0-9]*$"
37020
37121
  },
37021
37122
  content: {
37022
37123
  description: "Complete TypeScript code for the authentication Decorator implementation.\nMust include: SwaggerCustomizer integration to add bearer token security\nschema to API documentation, createParamDecorator implementation that\ncalls the corresponding Provider function for authentication, Singleton\npattern using tstl library for efficient decorator instance management,\nand proper TypeScript typing for the ParameterDecorator interface.",
@@ -37029,8 +37130,9 @@ const collection$a = {
37029
37130
  type: "object",
37030
37131
  properties: {
37031
37132
  name: {
37032
- description: "The name of the Payload type to be generated in {Actor}Payload format\n(e.g., AdminPayload, UserPayload). This type defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator.\n\nDO: Use PascalCase naming convention.\n\n\n@pattern ^[A-Z][a-zA-Z0-9]*$",
37033
- type: "string"
37133
+ description: "The name of the Payload type to be generated in {Actor}Payload format\n(e.g., AdminPayload, UserPayload). This type defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator.\n\nDO: Use PascalCase naming convention.",
37134
+ type: "string",
37135
+ pattern: "^[A-Z][a-zA-Z0-9]*$"
37034
37136
  },
37035
37137
  content: {
37036
37138
  description: "Complete TypeScript code for the Payload type interface in {Actor}Payload\nformat (e.g., AdminPayload, UserPayload). Must include: id field with\nUUID format validation, type field as role discriminator, and proper\ntypia tags for validation. This interface defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator and serves as the TypeScript type for the\nparameter in Controller method signatures.",
@@ -42627,11 +42729,12 @@ const collection$3 = {
42627
42729
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
42628
42730
  },
42629
42731
  scenarios: {
42630
- description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.\n\n\n@minItems 1",
42732
+ description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.",
42631
42733
  type: "array",
42632
42734
  items: {
42633
42735
  $ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
42634
- }
42736
+ },
42737
+ minItems: 1
42635
42738
  }
42636
42739
  },
42637
42740
  required: [ "endpoint", "scenarios" ]
@@ -42641,8 +42744,9 @@ const collection$3 = {
42641
42744
  type: "object",
42642
42745
  properties: {
42643
42746
  path: {
42644
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
42645
- type: "string"
42747
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
42748
+ type: "string",
42749
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
42646
42750
  },
42647
42751
  method: {
42648
42752
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
@@ -43776,11 +43880,12 @@ const collection$2 = {
43776
43880
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
43777
43881
  },
43778
43882
  scenarios: {
43779
- description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.\n\n\n@minItems 1",
43883
+ description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.",
43780
43884
  type: "array",
43781
43885
  items: {
43782
43886
  $ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
43783
- }
43887
+ },
43888
+ minItems: 1
43784
43889
  }
43785
43890
  },
43786
43891
  required: [ "endpoint", "scenarios" ]
@@ -43790,8 +43895,9 @@ const collection$2 = {
43790
43895
  type: "object",
43791
43896
  properties: {
43792
43897
  path: {
43793
- description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$',
43794
- type: "string"
43898
+ description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
43899
+ type: "string",
43900
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
43795
43901
  },
43796
43902
  method: {
43797
43903
  description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',