@veloxts/cli 0.4.14 → 0.6.23

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 (203) hide show
  1. package/README.md +2 -48
  2. package/dist/cli.d.ts +5 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +7 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/dev.d.ts.map +1 -1
  7. package/dist/commands/dev.js +71 -7
  8. package/dist/commands/dev.js.map +1 -1
  9. package/dist/commands/introspect.d.ts +16 -0
  10. package/dist/commands/introspect.d.ts.map +1 -0
  11. package/dist/commands/introspect.js +559 -0
  12. package/dist/commands/introspect.js.map +1 -0
  13. package/dist/commands/make.d.ts.map +1 -1
  14. package/dist/commands/make.js +18 -8
  15. package/dist/commands/make.js.map +1 -1
  16. package/dist/commands/procedures.d.ts.map +1 -1
  17. package/dist/commands/procedures.js +16 -0
  18. package/dist/commands/procedures.js.map +1 -1
  19. package/dist/dev/error-parser.d.ts.map +1 -1
  20. package/dist/dev/error-parser.js +24 -8
  21. package/dist/dev/error-parser.js.map +1 -1
  22. package/dist/dev/hmr-runner.d.ts.map +1 -1
  23. package/dist/dev/hmr-runner.js +6 -1
  24. package/dist/dev/hmr-runner.js.map +1 -1
  25. package/dist/dev/index.d.ts +3 -3
  26. package/dist/dev/index.d.ts.map +1 -1
  27. package/dist/dev/index.js +3 -3
  28. package/dist/dev/index.js.map +1 -1
  29. package/dist/dev/reload-reporter.d.ts +2 -2
  30. package/dist/dev/reload-reporter.d.ts.map +1 -1
  31. package/dist/dev/reload-reporter.js +2 -2
  32. package/dist/dev/reload-reporter.js.map +1 -1
  33. package/dist/errors/catalog.d.ts +48 -0
  34. package/dist/errors/catalog.d.ts.map +1 -0
  35. package/dist/errors/catalog.js +421 -0
  36. package/dist/errors/catalog.js.map +1 -0
  37. package/dist/errors/index.d.ts +26 -0
  38. package/dist/errors/index.d.ts.map +1 -0
  39. package/dist/errors/index.js +28 -0
  40. package/dist/errors/index.js.map +1 -0
  41. package/dist/errors/velox-error.d.ts +122 -0
  42. package/dist/errors/velox-error.d.ts.map +1 -0
  43. package/dist/errors/velox-error.js +216 -0
  44. package/dist/errors/velox-error.js.map +1 -0
  45. package/dist/generators/base.d.ts.map +1 -1
  46. package/dist/generators/base.js +26 -0
  47. package/dist/generators/base.js.map +1 -1
  48. package/dist/generators/fields/__tests__/helpers.d.ts +66 -0
  49. package/dist/generators/fields/__tests__/helpers.d.ts.map +1 -0
  50. package/dist/generators/fields/__tests__/helpers.js +142 -0
  51. package/dist/generators/fields/__tests__/helpers.js.map +1 -0
  52. package/dist/generators/fields/actions.d.ts +58 -0
  53. package/dist/generators/fields/actions.d.ts.map +1 -0
  54. package/dist/generators/fields/actions.js +230 -0
  55. package/dist/generators/fields/actions.js.map +1 -0
  56. package/dist/generators/fields/display.d.ts +28 -0
  57. package/dist/generators/fields/display.d.ts.map +1 -0
  58. package/dist/generators/fields/display.js +214 -0
  59. package/dist/generators/fields/display.js.map +1 -0
  60. package/dist/generators/fields/index.d.ts +12 -0
  61. package/dist/generators/fields/index.d.ts.map +1 -0
  62. package/dist/generators/fields/index.js +12 -0
  63. package/dist/generators/fields/index.js.map +1 -0
  64. package/dist/generators/fields/prompts.d.ts +31 -0
  65. package/dist/generators/fields/prompts.d.ts.map +1 -0
  66. package/dist/generators/fields/prompts.js +366 -0
  67. package/dist/generators/fields/prompts.js.map +1 -0
  68. package/dist/generators/fields/templates.d.ts +49 -0
  69. package/dist/generators/fields/templates.d.ts.map +1 -0
  70. package/dist/generators/fields/templates.js +230 -0
  71. package/dist/generators/fields/templates.js.map +1 -0
  72. package/dist/generators/fields/types.d.ts +95 -0
  73. package/dist/generators/fields/types.d.ts.map +1 -0
  74. package/dist/generators/fields/types.js +150 -0
  75. package/dist/generators/fields/types.js.map +1 -0
  76. package/dist/generators/generators/action.d.ts +37 -0
  77. package/dist/generators/generators/action.d.ts.map +1 -0
  78. package/dist/generators/generators/action.js +109 -0
  79. package/dist/generators/generators/action.js.map +1 -0
  80. package/dist/generators/generators/exception.d.ts +38 -0
  81. package/dist/generators/generators/exception.d.ts.map +1 -0
  82. package/dist/generators/generators/exception.js +109 -0
  83. package/dist/generators/generators/exception.js.map +1 -0
  84. package/dist/generators/generators/guard.d.ts +38 -0
  85. package/dist/generators/generators/guard.d.ts.map +1 -0
  86. package/dist/generators/generators/guard.js +109 -0
  87. package/dist/generators/generators/guard.js.map +1 -0
  88. package/dist/generators/generators/index.d.ts +8 -0
  89. package/dist/generators/generators/index.d.ts.map +1 -1
  90. package/dist/generators/generators/index.js +27 -0
  91. package/dist/generators/generators/index.js.map +1 -1
  92. package/dist/generators/generators/layout.d.ts +36 -0
  93. package/dist/generators/generators/layout.d.ts.map +1 -0
  94. package/dist/generators/generators/layout.js +111 -0
  95. package/dist/generators/generators/layout.js.map +1 -0
  96. package/dist/generators/generators/middleware.d.ts +38 -0
  97. package/dist/generators/generators/middleware.d.ts.map +1 -0
  98. package/dist/generators/generators/middleware.js +109 -0
  99. package/dist/generators/generators/middleware.js.map +1 -0
  100. package/dist/generators/generators/model.d.ts +16 -4
  101. package/dist/generators/generators/model.d.ts.map +1 -1
  102. package/dist/generators/generators/model.js +88 -7
  103. package/dist/generators/generators/model.js.map +1 -1
  104. package/dist/generators/generators/page.d.ts +36 -0
  105. package/dist/generators/generators/page.d.ts.map +1 -0
  106. package/dist/generators/generators/page.js +112 -0
  107. package/dist/generators/generators/page.js.map +1 -0
  108. package/dist/generators/generators/policy.d.ts +37 -0
  109. package/dist/generators/generators/policy.d.ts.map +1 -0
  110. package/dist/generators/generators/policy.js +100 -0
  111. package/dist/generators/generators/policy.js.map +1 -0
  112. package/dist/generators/generators/resource.d.ts +42 -4
  113. package/dist/generators/generators/resource.d.ts.map +1 -1
  114. package/dist/generators/generators/resource.js +450 -9
  115. package/dist/generators/generators/resource.js.map +1 -1
  116. package/dist/generators/generators/service.d.ts +38 -0
  117. package/dist/generators/generators/service.d.ts.map +1 -0
  118. package/dist/generators/generators/service.js +109 -0
  119. package/dist/generators/generators/service.js.map +1 -0
  120. package/dist/generators/registry.d.ts.map +1 -1
  121. package/dist/generators/registry.js +10 -1
  122. package/dist/generators/registry.js.map +1 -1
  123. package/dist/generators/templates/action.d.ts +28 -0
  124. package/dist/generators/templates/action.d.ts.map +1 -0
  125. package/dist/generators/templates/action.js +359 -0
  126. package/dist/generators/templates/action.js.map +1 -0
  127. package/dist/generators/templates/exception.d.ts +26 -0
  128. package/dist/generators/templates/exception.d.ts.map +1 -0
  129. package/dist/generators/templates/exception.js +671 -0
  130. package/dist/generators/templates/exception.js.map +1 -0
  131. package/dist/generators/templates/guard.d.ts +26 -0
  132. package/dist/generators/templates/guard.d.ts.map +1 -0
  133. package/dist/generators/templates/guard.js +555 -0
  134. package/dist/generators/templates/guard.js.map +1 -0
  135. package/dist/generators/templates/layout.d.ts +28 -0
  136. package/dist/generators/templates/layout.d.ts.map +1 -0
  137. package/dist/generators/templates/layout.js +147 -0
  138. package/dist/generators/templates/layout.js.map +1 -0
  139. package/dist/generators/templates/middleware.d.ts +26 -0
  140. package/dist/generators/templates/middleware.d.ts.map +1 -0
  141. package/dist/generators/templates/middleware.js +411 -0
  142. package/dist/generators/templates/middleware.js.map +1 -0
  143. package/dist/generators/templates/model.d.ts +3 -0
  144. package/dist/generators/templates/model.d.ts.map +1 -1
  145. package/dist/generators/templates/model.js +183 -28
  146. package/dist/generators/templates/model.js.map +1 -1
  147. package/dist/generators/templates/page.d.ts +36 -0
  148. package/dist/generators/templates/page.d.ts.map +1 -0
  149. package/dist/generators/templates/page.js +147 -0
  150. package/dist/generators/templates/page.js.map +1 -0
  151. package/dist/generators/templates/policy.d.ts +24 -0
  152. package/dist/generators/templates/policy.d.ts.map +1 -0
  153. package/dist/generators/templates/policy.js +499 -0
  154. package/dist/generators/templates/policy.js.map +1 -0
  155. package/dist/generators/templates/resource.d.ts +65 -0
  156. package/dist/generators/templates/resource.d.ts.map +1 -1
  157. package/dist/generators/templates/resource.js +228 -43
  158. package/dist/generators/templates/resource.js.map +1 -1
  159. package/dist/generators/templates/service.d.ts +26 -0
  160. package/dist/generators/templates/service.d.ts.map +1 -0
  161. package/dist/generators/templates/service.js +511 -0
  162. package/dist/generators/templates/service.js.map +1 -0
  163. package/dist/generators/types.d.ts +26 -14
  164. package/dist/generators/types.d.ts.map +1 -1
  165. package/dist/generators/types.js +8 -25
  166. package/dist/generators/types.js.map +1 -1
  167. package/dist/generators/utils/ast-helpers.d.ts +147 -0
  168. package/dist/generators/utils/ast-helpers.d.ts.map +1 -0
  169. package/dist/generators/utils/ast-helpers.js +350 -0
  170. package/dist/generators/utils/ast-helpers.js.map +1 -0
  171. package/dist/generators/utils/prisma-migration.d.ts +59 -0
  172. package/dist/generators/utils/prisma-migration.d.ts.map +1 -0
  173. package/dist/generators/utils/prisma-migration.js +161 -0
  174. package/dist/generators/utils/prisma-migration.js.map +1 -0
  175. package/dist/generators/utils/prisma-schema.d.ts +97 -0
  176. package/dist/generators/utils/prisma-schema.d.ts.map +1 -0
  177. package/dist/generators/utils/prisma-schema.js +235 -0
  178. package/dist/generators/utils/prisma-schema.js.map +1 -0
  179. package/dist/generators/utils/router-integration.d.ts +70 -0
  180. package/dist/generators/utils/router-integration.d.ts.map +1 -0
  181. package/dist/generators/utils/router-integration.js +305 -0
  182. package/dist/generators/utils/router-integration.js.map +1 -0
  183. package/dist/generators/utils/snapshot.d.ts +93 -0
  184. package/dist/generators/utils/snapshot.d.ts.map +1 -0
  185. package/dist/generators/utils/snapshot.js +178 -0
  186. package/dist/generators/utils/snapshot.js.map +1 -0
  187. package/dist/index.d.ts +6 -0
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/index.js +6 -0
  190. package/dist/index.js.map +1 -1
  191. package/dist/seeding/errors.d.ts +11 -24
  192. package/dist/seeding/errors.d.ts.map +1 -1
  193. package/dist/seeding/errors.js +11 -50
  194. package/dist/seeding/errors.js.map +1 -1
  195. package/dist/utils/paths.d.ts +19 -0
  196. package/dist/utils/paths.d.ts.map +1 -1
  197. package/dist/utils/paths.js +45 -0
  198. package/dist/utils/paths.js.map +1 -1
  199. package/dist/utils/schema-patterns.d.ts +26 -0
  200. package/dist/utils/schema-patterns.d.ts.map +1 -0
  201. package/dist/utils/schema-patterns.js +40 -0
  202. package/dist/utils/schema-patterns.js.map +1 -0
  203. package/package.json +12 -10
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Field Types Module
3
+ *
4
+ * Defines the types and mappings for interactive field collection
5
+ * in the resource generator.
6
+ */
7
+ /**
8
+ * Supported field types for interactive prompts
9
+ */
10
+ export type FieldType = 'string' | 'text' | 'int' | 'float' | 'boolean' | 'datetime' | 'json' | 'enum';
11
+ /**
12
+ * Field attribute options
13
+ */
14
+ export interface FieldAttributes {
15
+ /** Field is nullable (optional) */
16
+ optional: boolean;
17
+ /** Field has unique constraint */
18
+ unique: boolean;
19
+ /** Field has a default value */
20
+ hasDefault: boolean;
21
+ /** The default value (if hasDefault is true) */
22
+ defaultValue?: string;
23
+ }
24
+ /**
25
+ * Enum definition for enum fields
26
+ */
27
+ export interface EnumDefinition {
28
+ /** Enum type name (PascalCase) */
29
+ name: string;
30
+ /** Enum values (UPPER_CASE) */
31
+ values: string[];
32
+ }
33
+ /**
34
+ * A single field definition collected from user
35
+ */
36
+ export interface FieldDefinition {
37
+ /** Field name (camelCase) */
38
+ name: string;
39
+ /** Field type */
40
+ type: FieldType;
41
+ /** Field attributes */
42
+ attributes: FieldAttributes;
43
+ /** Enum definition (only for enum type) */
44
+ enumDef?: EnumDefinition;
45
+ }
46
+ /**
47
+ * Display information for field types in prompts
48
+ */
49
+ export interface FieldTypeInfo {
50
+ /** Type identifier */
51
+ type: FieldType;
52
+ /** Display label in prompt */
53
+ label: string;
54
+ /** Short description */
55
+ description: string;
56
+ /** Prisma type mapping */
57
+ prismaType: string;
58
+ /** Zod schema factory (without field name) */
59
+ zodSchema: string;
60
+ /** Whether this is a long text type (for UI hints, not Prisma modifiers) */
61
+ isLongText?: boolean;
62
+ }
63
+ /**
64
+ * All available field types with their display info
65
+ */
66
+ export declare const FIELD_TYPES: readonly FieldTypeInfo[];
67
+ /**
68
+ * Get field type info by type
69
+ */
70
+ export declare function getFieldTypeInfo(type: FieldType): FieldTypeInfo | undefined;
71
+ /**
72
+ * Field names that are reserved and cannot be used
73
+ */
74
+ export declare const RESERVED_FIELD_NAMES: readonly string[];
75
+ /**
76
+ * Check if a field name is reserved
77
+ */
78
+ export declare function isReservedFieldName(name: string): boolean;
79
+ /**
80
+ * Validate field name format (camelCase)
81
+ */
82
+ export declare function validateFieldName(name: string): string | undefined;
83
+ /**
84
+ * Validate enum name format (PascalCase)
85
+ */
86
+ export declare function validateEnumName(name: string): string | undefined;
87
+ /**
88
+ * Validate enum values format (UPPER_CASE)
89
+ */
90
+ export declare function validateEnumValues(values: string[]): string | undefined;
91
+ /**
92
+ * Parse comma-separated enum values
93
+ */
94
+ export declare function parseEnumValues(input: string): string[];
95
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/generators/fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,MAAM,GACN,KAAK,GACL,OAAO,GACP,SAAS,GACT,UAAU,GACV,MAAM,GACN,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,uBAAuB;IACvB,UAAU,EAAE,eAAe,CAAC;IAC5B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAMD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,aAAa,EA0DtC,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAE3E;AAMD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAKxC,CAAC;AAEX;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkBlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAYvE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKvD"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Field Types Module
3
+ *
4
+ * Defines the types and mappings for interactive field collection
5
+ * in the resource generator.
6
+ */
7
+ /**
8
+ * All available field types with their display info
9
+ */
10
+ export const FIELD_TYPES = [
11
+ {
12
+ type: 'string',
13
+ label: 'String',
14
+ description: 'Short text (up to 255 chars)',
15
+ prismaType: 'String',
16
+ zodSchema: 'z.string().min(1).max(255)',
17
+ },
18
+ {
19
+ type: 'text',
20
+ label: 'Text (long)',
21
+ description: 'Long text content',
22
+ prismaType: 'String',
23
+ zodSchema: 'z.string()',
24
+ isLongText: true,
25
+ },
26
+ {
27
+ type: 'int',
28
+ label: 'Integer',
29
+ description: 'Whole numbers',
30
+ prismaType: 'Int',
31
+ zodSchema: 'z.number().int()',
32
+ },
33
+ {
34
+ type: 'float',
35
+ label: 'Float',
36
+ description: 'Decimal numbers',
37
+ prismaType: 'Float',
38
+ zodSchema: 'z.number()',
39
+ },
40
+ {
41
+ type: 'boolean',
42
+ label: 'Boolean',
43
+ description: 'True/false values',
44
+ prismaType: 'Boolean',
45
+ zodSchema: 'z.boolean()',
46
+ },
47
+ {
48
+ type: 'datetime',
49
+ label: 'DateTime',
50
+ description: 'Date and time',
51
+ prismaType: 'DateTime',
52
+ zodSchema: 'z.date()',
53
+ },
54
+ {
55
+ type: 'json',
56
+ label: 'JSON',
57
+ description: 'JSON data',
58
+ prismaType: 'Json',
59
+ zodSchema: 'z.record(z.unknown())',
60
+ },
61
+ {
62
+ type: 'enum',
63
+ label: 'Enum',
64
+ description: 'Predefined values',
65
+ prismaType: '', // Dynamic based on enum name
66
+ zodSchema: '', // Dynamic based on enum values
67
+ },
68
+ ];
69
+ /**
70
+ * Get field type info by type
71
+ */
72
+ export function getFieldTypeInfo(type) {
73
+ return FIELD_TYPES.find((t) => t.type === type);
74
+ }
75
+ // ============================================================================
76
+ // Reserved Field Names
77
+ // ============================================================================
78
+ /**
79
+ * Field names that are reserved and cannot be used
80
+ */
81
+ export const RESERVED_FIELD_NAMES = [
82
+ 'id',
83
+ 'createdAt',
84
+ 'updatedAt',
85
+ 'deletedAt',
86
+ ];
87
+ /**
88
+ * Check if a field name is reserved
89
+ */
90
+ export function isReservedFieldName(name) {
91
+ return RESERVED_FIELD_NAMES.includes(name);
92
+ }
93
+ // ============================================================================
94
+ // Validation Helpers
95
+ // ============================================================================
96
+ /**
97
+ * Validate field name format (camelCase)
98
+ */
99
+ export function validateFieldName(name) {
100
+ if (!name || name.trim().length === 0) {
101
+ return 'Field name is required';
102
+ }
103
+ const trimmed = name.trim();
104
+ // Check for valid identifier
105
+ if (!/^[a-z][a-zA-Z0-9]*$/.test(trimmed)) {
106
+ return 'Field name must be camelCase (start with lowercase letter, no special characters)';
107
+ }
108
+ // Check for reserved names
109
+ if (isReservedFieldName(trimmed)) {
110
+ return `"${trimmed}" is a reserved field name`;
111
+ }
112
+ return undefined;
113
+ }
114
+ /**
115
+ * Validate enum name format (PascalCase)
116
+ */
117
+ export function validateEnumName(name) {
118
+ if (!name || name.trim().length === 0) {
119
+ return 'Enum name is required';
120
+ }
121
+ const trimmed = name.trim();
122
+ if (!/^[A-Z][a-zA-Z0-9]*$/.test(trimmed)) {
123
+ return 'Enum name must be PascalCase (start with uppercase letter)';
124
+ }
125
+ return undefined;
126
+ }
127
+ /**
128
+ * Validate enum values format (UPPER_CASE)
129
+ */
130
+ export function validateEnumValues(values) {
131
+ if (values.length === 0) {
132
+ return 'At least one enum value is required';
133
+ }
134
+ for (const value of values) {
135
+ if (!/^[A-Z][A-Z0-9_]*$/.test(value)) {
136
+ return `Enum value "${value}" must be UPPER_CASE`;
137
+ }
138
+ }
139
+ return undefined;
140
+ }
141
+ /**
142
+ * Parse comma-separated enum values
143
+ */
144
+ export function parseEnumValues(input) {
145
+ return input
146
+ .split(',')
147
+ .map((v) => v.trim().toUpperCase().replace(/\s+/g, '_'))
148
+ .filter((v) => v.length > 0);
149
+ }
150
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/generators/fields/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Action Generator
3
+ *
4
+ * Scaffolds server action files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox make action <name> [options]
8
+ *
9
+ * Examples:
10
+ * velox make action users # Simple actions
11
+ * velox make action posts --crud # Full CRUD actions
12
+ * velox make action contact --form # Form action handler
13
+ * velox make action orders --trpc # tRPC bridge actions
14
+ */
15
+ import { BaseGenerator } from '../base.js';
16
+ import { type ActionOptions } from '../templates/action.js';
17
+ import type { GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOutput } from '../types.js';
18
+ /**
19
+ * Action generator - creates server action files
20
+ */
21
+ export declare class ActionGenerator extends BaseGenerator<ActionOptions> {
22
+ readonly metadata: GeneratorMetadata;
23
+ readonly options: ReadonlyArray<GeneratorOption>;
24
+ /**
25
+ * Validate and transform raw options
26
+ */
27
+ validateOptions(raw: Record<string, unknown>): ActionOptions;
28
+ /**
29
+ * Generate action files
30
+ */
31
+ generate(config: GeneratorConfig<ActionOptions>): Promise<GeneratorOutput>;
32
+ }
33
+ /**
34
+ * Factory function for creating an ActionGenerator instance
35
+ */
36
+ export declare function createActionGenerator(): ActionGenerator;
37
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/generators/generators/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAEV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa,CAAC,aAAa,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAmBlC;IAEF,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CA6B9C;IAEF;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa;IAS5D;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;CAgBjF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Action Generator
3
+ *
4
+ * Scaffolds server action files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox make action <name> [options]
8
+ *
9
+ * Examples:
10
+ * velox make action users # Simple actions
11
+ * velox make action posts --crud # Full CRUD actions
12
+ * velox make action contact --form # Form action handler
13
+ * velox make action orders --trpc # tRPC bridge actions
14
+ */
15
+ import { BaseGenerator } from '../base.js';
16
+ import { actionTemplate, getActionInstructions, getActionPath, } from '../templates/action.js';
17
+ // ============================================================================
18
+ // Generator Implementation
19
+ // ============================================================================
20
+ /**
21
+ * Action generator - creates server action files
22
+ */
23
+ export class ActionGenerator extends BaseGenerator {
24
+ metadata = {
25
+ name: 'action',
26
+ description: 'Generate server action files',
27
+ longDescription: `
28
+ Scaffold server actions for VeloxTS applications.
29
+
30
+ Server actions run on the server and can be called from client components.
31
+ Use --form for form handling, --crud for CRUD operations, or --trpc to
32
+ wrap existing tRPC procedures.
33
+
34
+ Examples:
35
+ velox make action users # Simple actions
36
+ velox make action posts --crud # Full CRUD actions
37
+ velox make action contact --form # Form action handler
38
+ velox make action orders --trpc # tRPC bridge actions
39
+ velox make action admin --auth # Actions requiring authentication
40
+ `,
41
+ aliases: ['a', 'act'],
42
+ category: 'resource',
43
+ };
44
+ options = [
45
+ {
46
+ name: 'form',
47
+ short: 'f',
48
+ description: 'Generate form action handler',
49
+ type: 'boolean',
50
+ default: false,
51
+ },
52
+ {
53
+ name: 'auth',
54
+ short: 'a',
55
+ description: 'Include authentication requirement',
56
+ type: 'boolean',
57
+ default: false,
58
+ },
59
+ {
60
+ name: 'crud',
61
+ short: 'c',
62
+ description: 'Generate CRUD-style actions',
63
+ type: 'boolean',
64
+ default: false,
65
+ },
66
+ {
67
+ name: 'trpc',
68
+ short: 't',
69
+ description: 'Use tRPC bridge for type safety',
70
+ type: 'boolean',
71
+ default: false,
72
+ },
73
+ ];
74
+ /**
75
+ * Validate and transform raw options
76
+ */
77
+ validateOptions(raw) {
78
+ return {
79
+ form: Boolean(raw.form ?? false),
80
+ auth: Boolean(raw.auth ?? false),
81
+ crud: Boolean(raw.crud ?? false),
82
+ trpc: Boolean(raw.trpc ?? false),
83
+ };
84
+ }
85
+ /**
86
+ * Generate action files
87
+ */
88
+ async generate(config) {
89
+ const context = this.createContext(config);
90
+ const files = [];
91
+ // Generate action file
92
+ const actionContent = actionTemplate(context);
93
+ files.push({
94
+ path: getActionPath(config.entityName, config.project),
95
+ content: actionContent,
96
+ });
97
+ return {
98
+ files,
99
+ postInstructions: getActionInstructions(config.entityName, config.options),
100
+ };
101
+ }
102
+ }
103
+ /**
104
+ * Factory function for creating an ActionGenerator instance
105
+ */
106
+ export function createActionGenerator() {
107
+ return new ActionGenerator();
108
+ }
109
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/generators/generators/action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAEL,cAAc,EACd,qBAAqB,EACrB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAShC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAA4B;IACtD,QAAQ,GAAsB;QACrC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,eAAe,EAAE;;;;;;;;;;;;;CAapB;QACG,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACrB,QAAQ,EAAE,UAAU;KACrB,CAAC;IAEO,OAAO,GAAmC;QACjD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,8BAA8B;YAC3C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,oCAAoC;YACjD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,6BAA6B;YAC1C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;KACF,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,GAA4B;QAC1C,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;YAChC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;SACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAsC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,uBAAuB;QACvB,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC;YACtD,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,OAAO;YACL,KAAK;YACL,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC;SAC3E,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,eAAe,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Exception Generator
3
+ *
4
+ * Scaffolds custom exception class files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox make exception <name> [options]
8
+ *
9
+ * Examples:
10
+ * velox make exception payment # Simple exception
11
+ * velox make exception api --http # HTTP-aware exceptions
12
+ * velox make exception form --validation # Validation exceptions
13
+ * velox make exception order --domain # Domain exceptions
14
+ * velox make exception auth --codes # Include error code enum
15
+ */
16
+ import { BaseGenerator } from '../base.js';
17
+ import { type ExceptionOptions } from '../templates/exception.js';
18
+ import type { GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOutput } from '../types.js';
19
+ /**
20
+ * Exception generator - creates custom exception class files
21
+ */
22
+ export declare class ExceptionGenerator extends BaseGenerator<ExceptionOptions> {
23
+ readonly metadata: GeneratorMetadata;
24
+ readonly options: ReadonlyArray<GeneratorOption>;
25
+ /**
26
+ * Validate and transform raw options
27
+ */
28
+ validateOptions(raw: Record<string, unknown>): ExceptionOptions;
29
+ /**
30
+ * Generate exception files
31
+ */
32
+ generate(config: GeneratorConfig<ExceptionOptions>): Promise<GeneratorOutput>;
33
+ }
34
+ /**
35
+ * Factory function for creating an ExceptionGenerator instance
36
+ */
37
+ export declare function createExceptionGenerator(): ExceptionGenerator;
38
+ //# sourceMappingURL=exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception.d.ts","sourceRoot":"","sources":["../../../src/generators/generators/exception.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAEV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IACrE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAkBlC;IAEF,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CA6B9C;IAEF;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB;IAS/D;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;CAgBpF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Exception Generator
3
+ *
4
+ * Scaffolds custom exception class files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox make exception <name> [options]
8
+ *
9
+ * Examples:
10
+ * velox make exception payment # Simple exception
11
+ * velox make exception api --http # HTTP-aware exceptions
12
+ * velox make exception form --validation # Validation exceptions
13
+ * velox make exception order --domain # Domain exceptions
14
+ * velox make exception auth --codes # Include error code enum
15
+ */
16
+ import { BaseGenerator } from '../base.js';
17
+ import { exceptionTemplate, getExceptionInstructions, getExceptionPath, } from '../templates/exception.js';
18
+ // ============================================================================
19
+ // Generator Implementation
20
+ // ============================================================================
21
+ /**
22
+ * Exception generator - creates custom exception class files
23
+ */
24
+ export class ExceptionGenerator extends BaseGenerator {
25
+ metadata = {
26
+ name: 'exception',
27
+ description: 'Generate custom exception classes',
28
+ longDescription: `
29
+ Scaffold custom exception classes for VeloxTS applications.
30
+
31
+ Exceptions provide structured error handling with type safety,
32
+ error codes, and metadata for debugging and API responses.
33
+
34
+ Examples:
35
+ velox make exception payment # Simple exception
36
+ velox make exception api --http # HTTP-aware exceptions
37
+ velox make exception form --validation # Validation exceptions
38
+ velox make exception order --domain # Domain exceptions
39
+ velox make exception auth --codes # Include error code enum
40
+ `,
41
+ aliases: ['ex', 'err', 'error'],
42
+ category: 'infrastructure',
43
+ };
44
+ options = [
45
+ {
46
+ name: 'http',
47
+ short: 'h',
48
+ description: 'Generate HTTP-aware exceptions with status codes',
49
+ type: 'boolean',
50
+ default: false,
51
+ },
52
+ {
53
+ name: 'validation',
54
+ short: 'v',
55
+ description: 'Generate validation exception with field errors',
56
+ type: 'boolean',
57
+ default: false,
58
+ },
59
+ {
60
+ name: 'domain',
61
+ short: 'd',
62
+ description: 'Generate domain-specific exception hierarchy',
63
+ type: 'boolean',
64
+ default: false,
65
+ },
66
+ {
67
+ name: 'codes',
68
+ short: 'c',
69
+ description: 'Include error code enum',
70
+ type: 'boolean',
71
+ default: false,
72
+ },
73
+ ];
74
+ /**
75
+ * Validate and transform raw options
76
+ */
77
+ validateOptions(raw) {
78
+ return {
79
+ http: Boolean(raw.http ?? false),
80
+ validation: Boolean(raw.validation ?? false),
81
+ domain: Boolean(raw.domain ?? false),
82
+ codes: Boolean(raw.codes ?? false),
83
+ };
84
+ }
85
+ /**
86
+ * Generate exception files
87
+ */
88
+ async generate(config) {
89
+ const context = this.createContext(config);
90
+ const files = [];
91
+ // Generate exception file
92
+ const exceptionContent = exceptionTemplate(context);
93
+ files.push({
94
+ path: getExceptionPath(config.entityName, config.project),
95
+ content: exceptionContent,
96
+ });
97
+ return {
98
+ files,
99
+ postInstructions: getExceptionInstructions(config.entityName, config.options),
100
+ };
101
+ }
102
+ }
103
+ /**
104
+ * Factory function for creating an ExceptionGenerator instance
105
+ */
106
+ export function createExceptionGenerator() {
107
+ return new ExceptionGenerator();
108
+ }
109
+ //# sourceMappingURL=exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception.js","sourceRoot":"","sources":["../../../src/generators/generators/exception.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAEL,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AASnC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAA+B;IAC5D,QAAQ,GAAsB;QACrC,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,mCAAmC;QAChD,eAAe,EAAE;;;;;;;;;;;;CAYpB;QACG,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;QAC/B,QAAQ,EAAE,gBAAgB;KAC3B,CAAC;IAEO,OAAO,GAAmC;QACjD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,kDAAkD;YAC/D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,iDAAiD;YAC9D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,yBAAyB;YACtC,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;KACF,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,GAA4B;QAC1C,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;YAChC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC;YAC5C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;YACpC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC;SACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAyC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,0BAA0B;QAC1B,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC;YACzD,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,OAAO;YACL,KAAK;YACL,gBAAgB,EAAE,wBAAwB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC;SAC9E,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Guard Generator
3
+ *
4
+ * Scaffolds auth guard files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox make guard <name> [options]
8
+ *
9
+ * Examples:
10
+ * velox make guard subscriber # Simple guard
11
+ * velox make guard admin --role # Role-based guard
12
+ * velox make guard post --permission # Permission-based guard
13
+ * velox make guard document --owner # Ownership guard
14
+ * velox make guard access --composite # Composite guards
15
+ */
16
+ import { BaseGenerator } from '../base.js';
17
+ import { type GuardOptions } from '../templates/guard.js';
18
+ import type { GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOutput } from '../types.js';
19
+ /**
20
+ * Guard generator - creates auth guard files
21
+ */
22
+ export declare class GuardGenerator extends BaseGenerator<GuardOptions> {
23
+ readonly metadata: GeneratorMetadata;
24
+ readonly options: ReadonlyArray<GeneratorOption>;
25
+ /**
26
+ * Validate and transform raw options
27
+ */
28
+ validateOptions(raw: Record<string, unknown>): GuardOptions;
29
+ /**
30
+ * Generate guard files
31
+ */
32
+ generate(config: GeneratorConfig<GuardOptions>): Promise<GeneratorOutput>;
33
+ }
34
+ /**
35
+ * Factory function for creating a GuardGenerator instance
36
+ */
37
+ export declare function createGuardGenerator(): GuardGenerator;
38
+ //# sourceMappingURL=guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/generators/generators/guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAEV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,qBAAa,cAAe,SAAQ,aAAa,CAAC,YAAY,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAkBlC;IAEF,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CA6B9C;IAEF;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY;IAS3D;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;CAgBhF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}