@forinda/kickjs-cli 2.0.1 → 2.2.0

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 (118) hide show
  1. package/bin.js +8 -0
  2. package/dist/cli.mjs +6550 -0
  3. package/dist/index.d.mts +302 -0
  4. package/dist/index.d.mts.map +1 -0
  5. package/dist/index.mjs +3627 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/dist/typegen-DCnJdqP1.mjs +886 -0
  8. package/dist/typegen-DCnJdqP1.mjs.map +1 -0
  9. package/package.json +31 -13
  10. package/dist/cli.d.ts +0 -2
  11. package/dist/cli.d.ts.map +0 -1
  12. package/dist/cli.js +0 -1552
  13. package/dist/commands/add.d.ts +0 -5
  14. package/dist/commands/add.d.ts.map +0 -1
  15. package/dist/commands/custom.d.ts +0 -56
  16. package/dist/commands/custom.d.ts.map +0 -1
  17. package/dist/commands/generate.d.ts +0 -3
  18. package/dist/commands/generate.d.ts.map +0 -1
  19. package/dist/commands/info.d.ts +0 -3
  20. package/dist/commands/info.d.ts.map +0 -1
  21. package/dist/commands/init.d.ts +0 -3
  22. package/dist/commands/init.d.ts.map +0 -1
  23. package/dist/commands/inspect.d.ts +0 -3
  24. package/dist/commands/inspect.d.ts.map +0 -1
  25. package/dist/commands/remove.d.ts +0 -3
  26. package/dist/commands/remove.d.ts.map +0 -1
  27. package/dist/commands/run.d.ts +0 -3
  28. package/dist/commands/run.d.ts.map +0 -1
  29. package/dist/commands/tinker.d.ts +0 -3
  30. package/dist/commands/tinker.d.ts.map +0 -1
  31. package/dist/config-D9faxBLQ.js +0 -3108
  32. package/dist/config.d.ts +0 -131
  33. package/dist/config.d.ts.map +0 -1
  34. package/dist/generators/adapter.d.ts +0 -7
  35. package/dist/generators/adapter.d.ts.map +0 -1
  36. package/dist/generators/config.d.ts +0 -9
  37. package/dist/generators/config.d.ts.map +0 -1
  38. package/dist/generators/controller.d.ts +0 -11
  39. package/dist/generators/controller.d.ts.map +0 -1
  40. package/dist/generators/dto.d.ts +0 -11
  41. package/dist/generators/dto.d.ts.map +0 -1
  42. package/dist/generators/guard.d.ts +0 -11
  43. package/dist/generators/guard.d.ts.map +0 -1
  44. package/dist/generators/job.d.ts +0 -8
  45. package/dist/generators/job.d.ts.map +0 -1
  46. package/dist/generators/middleware.d.ts +0 -11
  47. package/dist/generators/middleware.d.ts.map +0 -1
  48. package/dist/generators/module.d.ts +0 -33
  49. package/dist/generators/module.d.ts.map +0 -1
  50. package/dist/generators/patterns/cqrs.d.ts +0 -3
  51. package/dist/generators/patterns/cqrs.d.ts.map +0 -1
  52. package/dist/generators/patterns/ddd.d.ts +0 -3
  53. package/dist/generators/patterns/ddd.d.ts.map +0 -1
  54. package/dist/generators/patterns/index.d.ts +0 -6
  55. package/dist/generators/patterns/index.d.ts.map +0 -1
  56. package/dist/generators/patterns/minimal.d.ts +0 -3
  57. package/dist/generators/patterns/minimal.d.ts.map +0 -1
  58. package/dist/generators/patterns/rest.d.ts +0 -3
  59. package/dist/generators/patterns/rest.d.ts.map +0 -1
  60. package/dist/generators/patterns/types.d.ts +0 -15
  61. package/dist/generators/patterns/types.d.ts.map +0 -1
  62. package/dist/generators/project.d.ts +0 -14
  63. package/dist/generators/project.d.ts.map +0 -1
  64. package/dist/generators/remove-module.d.ts +0 -12
  65. package/dist/generators/remove-module.d.ts.map +0 -1
  66. package/dist/generators/resolver.d.ts +0 -7
  67. package/dist/generators/resolver.d.ts.map +0 -1
  68. package/dist/generators/scaffold.d.ts +0 -20
  69. package/dist/generators/scaffold.d.ts.map +0 -1
  70. package/dist/generators/service.d.ts +0 -11
  71. package/dist/generators/service.d.ts.map +0 -1
  72. package/dist/generators/templates/constants.d.ts +0 -3
  73. package/dist/generators/templates/constants.d.ts.map +0 -1
  74. package/dist/generators/templates/controller.d.ts +0 -6
  75. package/dist/generators/templates/controller.d.ts.map +0 -1
  76. package/dist/generators/templates/cqrs.d.ts +0 -23
  77. package/dist/generators/templates/cqrs.d.ts.map +0 -1
  78. package/dist/generators/templates/domain.d.ts +0 -5
  79. package/dist/generators/templates/domain.d.ts.map +0 -1
  80. package/dist/generators/templates/drizzle/index.d.ts +0 -4
  81. package/dist/generators/templates/drizzle/index.d.ts.map +0 -1
  82. package/dist/generators/templates/dtos.d.ts +0 -5
  83. package/dist/generators/templates/dtos.d.ts.map +0 -1
  84. package/dist/generators/templates/index.d.ts +0 -14
  85. package/dist/generators/templates/index.d.ts.map +0 -1
  86. package/dist/generators/templates/module-index.d.ts +0 -13
  87. package/dist/generators/templates/module-index.d.ts.map +0 -1
  88. package/dist/generators/templates/prisma/index.d.ts +0 -3
  89. package/dist/generators/templates/prisma/index.d.ts.map +0 -1
  90. package/dist/generators/templates/project-app.d.ts +0 -9
  91. package/dist/generators/templates/project-app.d.ts.map +0 -1
  92. package/dist/generators/templates/project-config.d.ts +0 -23
  93. package/dist/generators/templates/project-config.d.ts.map +0 -1
  94. package/dist/generators/templates/project-docs.d.ts +0 -9
  95. package/dist/generators/templates/project-docs.d.ts.map +0 -1
  96. package/dist/generators/templates/repository.d.ts +0 -5
  97. package/dist/generators/templates/repository.d.ts.map +0 -1
  98. package/dist/generators/templates/rest-service.d.ts +0 -6
  99. package/dist/generators/templates/rest-service.d.ts.map +0 -1
  100. package/dist/generators/templates/tests.d.ts +0 -4
  101. package/dist/generators/templates/tests.d.ts.map +0 -1
  102. package/dist/generators/templates/types.d.ts +0 -20
  103. package/dist/generators/templates/types.d.ts.map +0 -1
  104. package/dist/generators/templates/use-cases.d.ts +0 -6
  105. package/dist/generators/templates/use-cases.d.ts.map +0 -1
  106. package/dist/generators/test.d.ts +0 -9
  107. package/dist/generators/test.d.ts.map +0 -1
  108. package/dist/index.d.ts +0 -12
  109. package/dist/index.d.ts.map +0 -1
  110. package/dist/index.js +0 -17
  111. package/dist/utils/fs.d.ts +0 -11
  112. package/dist/utils/fs.d.ts.map +0 -1
  113. package/dist/utils/naming.d.ts +0 -18
  114. package/dist/utils/naming.d.ts.map +0 -1
  115. package/dist/utils/resolve-out-dir.d.ts +0 -25
  116. package/dist/utils/resolve-out-dir.d.ts.map +0 -1
  117. package/dist/utils/shell.d.ts +0 -3
  118. package/dist/utils/shell.d.ts.map +0 -1
@@ -0,0 +1,302 @@
1
+
2
+ //#region src/config.d.ts
3
+ /** A custom command that developers can register via kick.config.ts */
4
+ interface KickCommandDefinition {
5
+ /** The command name (e.g. 'db:migrate', 'seed', 'proto:gen') */
6
+ name: string;
7
+ /** Description shown in --help */
8
+ description: string;
9
+ /**
10
+ * Shell command(s) to run. Can be a single string or an array of
11
+ * sequential steps. Use {args} as a placeholder for CLI arguments.
12
+ *
13
+ * @example
14
+ * 'npx drizzle-kit migrate'
15
+ * ['npx drizzle-kit generate', 'npx drizzle-kit migrate']
16
+ */
17
+ steps: string | string[];
18
+ /** Optional aliases (e.g. ['migrate'] for 'db:migrate') */
19
+ aliases?: string[];
20
+ }
21
+ /** Project pattern — controls what generators produce and which deps are installed */
22
+ type ProjectPattern = 'rest' | 'graphql' | 'ddd' | 'cqrs' | 'minimal';
23
+ /** Built-in repository types with first-class code generation support */
24
+ type BuiltinRepoType$1 = 'drizzle' | 'inmemory' | 'prisma';
25
+ /** Custom repository type — generates a stub with TODO markers */
26
+ interface CustomRepoType {
27
+ name: string;
28
+ }
29
+ /** Repository type — built-in string or custom object */
30
+ type RepoTypeConfig = BuiltinRepoType$1 | CustomRepoType;
31
+ /**
32
+ * Supported schema validators for `kick typegen` body/query/params
33
+ * type extraction. Only `'zod'` ships built-in for now; other libraries
34
+ * (Joi, Yup, JSON Schema) will be added later as the adapter system
35
+ * grows. Set to `false` (or omit) to disable schema-driven body typing
36
+ * entirely (the route entries will keep `body: unknown`).
37
+ */
38
+ type SchemaValidator = 'zod' | false;
39
+ /** Typegen settings — controls .kickjs/types/* generation */
40
+ interface TypegenConfig {
41
+ /**
42
+ * Source directory to scan for controllers and decorators.
43
+ * Defaults to `'src'`.
44
+ */
45
+ srcDir?: string;
46
+ /**
47
+ * Output directory for generated `.d.ts` files.
48
+ * Defaults to `'.kickjs/types'`.
49
+ */
50
+ outDir?: string;
51
+ /**
52
+ * Schema validator used to derive `body` types from route metadata.
53
+ *
54
+ * - `'zod'` — emit `z.infer<typeof <importedSchema>>` for any schema
55
+ * referenced as a named identifier in `@Get/@Post/...({ body, query, params })`.
56
+ * - `false` — disable schema-driven body typing.
57
+ *
58
+ * Future: `'joi' | 'yup' | 'json-schema'` plus a `{ name; module }`
59
+ * escape hatch for custom adapters.
60
+ *
61
+ * @default 'zod'
62
+ */
63
+ schemaValidator?: SchemaValidator;
64
+ /**
65
+ * Path to the project's env schema file (relative to project root).
66
+ * Must default-export a `defineEnv(...)` schema for typegen to emit
67
+ * the typed `KickEnv` global registry.
68
+ *
69
+ * Set to `false` to disable env typing entirely.
70
+ *
71
+ * @default 'src/env.ts'
72
+ */
73
+ envFile?: string | false;
74
+ }
75
+ /** Module generation settings — controls how `kick g module` produces code */
76
+ interface ModuleConfig {
77
+ /** Where modules live (default: 'src/modules') */
78
+ dir?: string;
79
+ /**
80
+ * Default repository implementation for generators.
81
+ *
82
+ * Built-in types (string): `'drizzle'`, `'inmemory'`, `'prisma'`
83
+ * — generate fully working repository code.
84
+ *
85
+ * Custom types (object): `{ name: 'typeorm' }`
86
+ * — generate a stub repository with TODO markers.
87
+ *
88
+ * @example
89
+ * repo: 'prisma' // built-in
90
+ * repo: { name: 'typeorm' } // custom
91
+ */
92
+ repo?: RepoTypeConfig;
93
+ /** Schema output directory (e.g. 'src/db/schema' for Drizzle, 'prisma/' for Prisma) */
94
+ schemaDir?: string;
95
+ /**
96
+ * Whether to pluralize module names in generated code.
97
+ * When true (default), `kick g module user` creates `src/modules/users/`.
98
+ * When false, it creates `src/modules/user/` and uses singular names throughout.
99
+ */
100
+ pluralize?: boolean;
101
+ /**
102
+ * Import path for the Prisma generated client in `--repo prisma` templates.
103
+ * Must resolve within `src/` for path alias compatibility.
104
+ *
105
+ * @default '@prisma/client' (Prisma 5/6)
106
+ * @example
107
+ * prismaClientPath: '@/generated/prisma/client' // Prisma 7+
108
+ * prismaClientPath: './generated/prisma/client' // relative
109
+ */
110
+ prismaClientPath?: string;
111
+ }
112
+ /** Configuration for the kick.config.ts file */
113
+ interface KickConfig {
114
+ /**
115
+ * Project pattern — controls default generator behavior.
116
+ * - 'rest' — Express + Swagger (default)
117
+ * - 'graphql' — GraphQL + GraphiQL
118
+ * - 'ddd' — Full DDD modules with use cases, entities, value objects
119
+ * - 'cqrs' — CQRS with commands, queries, events, WebSocket + queue
120
+ * - 'minimal' — Bare Express with no scaffolding
121
+ */
122
+ pattern?: ProjectPattern;
123
+ /**
124
+ * Module generation settings — directory, repo type, pluralization, schema dir.
125
+ *
126
+ * @example
127
+ * modules: {
128
+ * dir: 'src/modules',
129
+ * repo: 'prisma',
130
+ * pluralize: false,
131
+ * schemaDir: 'prisma/',
132
+ * }
133
+ */
134
+ modules?: ModuleConfig;
135
+ /** @deprecated Use `modules.dir` instead */
136
+ modulesDir?: string;
137
+ /** @deprecated Use `modules.repo` instead */
138
+ defaultRepo?: RepoTypeConfig;
139
+ /** @deprecated Use `modules.schemaDir` instead */
140
+ schemaDir?: string;
141
+ /** @deprecated Use `modules.pluralize` instead */
142
+ pluralize?: boolean;
143
+ /**
144
+ * Directories to copy to dist/ after build.
145
+ * Useful for EJS templates, email templates, static assets, etc.
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * copyDirs: [
150
+ * 'src/views', // copies to dist/src/views
151
+ * { src: 'src/views', dest: 'dist/views' }, // custom dest
152
+ * 'src/emails',
153
+ * ]
154
+ * ```
155
+ */
156
+ copyDirs?: Array<string | {
157
+ src: string;
158
+ dest?: string;
159
+ }>;
160
+ /**
161
+ * Typegen settings — controls `.kickjs/types/*` generation including
162
+ * the schema validator used for body type extraction.
163
+ *
164
+ * @example
165
+ * ```ts
166
+ * typegen: {
167
+ * schemaValidator: 'zod',
168
+ * }
169
+ * ```
170
+ */
171
+ typegen?: TypegenConfig;
172
+ /** Custom commands that extend the CLI */
173
+ commands?: KickCommandDefinition[];
174
+ /** Code style overrides (auto-detected from prettier when possible) */
175
+ style?: {
176
+ semicolons?: boolean;
177
+ quotes?: 'single' | 'double';
178
+ trailingComma?: 'all' | 'es5' | 'none';
179
+ indent?: number;
180
+ };
181
+ }
182
+ /** Helper to define a type-safe kick.config.ts */
183
+ declare function defineConfig(config: KickConfig): KickConfig;
184
+ /** Load kick.config.* from the project root */
185
+ declare function loadKickConfig(cwd: string): Promise<KickConfig | null>;
186
+ //#endregion
187
+ //#region src/generators/module.d.ts
188
+ type BuiltinRepoType = 'drizzle' | 'inmemory' | 'prisma';
189
+ type RepoType = BuiltinRepoType | (string & {});
190
+ interface GenerateModuleOptions {
191
+ name: string;
192
+ modulesDir: string;
193
+ noEntity?: boolean;
194
+ noTests?: boolean;
195
+ repo?: RepoType;
196
+ minimal?: boolean;
197
+ force?: boolean;
198
+ pattern?: ProjectPattern;
199
+ dryRun?: boolean;
200
+ /** When false, skip pluralization — use singular names for folders, routes, and classes */
201
+ pluralize?: boolean;
202
+ /** Prisma client import path (default: '@prisma/client', Prisma 7+: '@/generated/prisma/client') */
203
+ prismaClientPath?: string;
204
+ }
205
+ /**
206
+ * Generate a module — structure depends on the project pattern.
207
+ *
208
+ * Patterns:
209
+ * rest — flat folder: controller + service + DTOs + repo
210
+ * ddd — nested DDD: presentation/ application/ domain/ infrastructure/
211
+ * graphql — flat folder: resolver + service + DTOs + repo (future)
212
+ * cqrs — commands, queries, events with WS/queue integration
213
+ * minimal — just controller + module index
214
+ */
215
+ declare function generateModule(options: GenerateModuleOptions): Promise<string[]>;
216
+ //#endregion
217
+ //#region src/generators/adapter.d.ts
218
+ interface GenerateAdapterOptions {
219
+ name: string;
220
+ outDir: string;
221
+ }
222
+ declare function generateAdapter(options: GenerateAdapterOptions): Promise<string[]>;
223
+ //#endregion
224
+ //#region src/generators/middleware.d.ts
225
+ interface GenerateMiddlewareOptions {
226
+ name: string;
227
+ outDir?: string;
228
+ moduleName?: string;
229
+ modulesDir?: string;
230
+ pattern?: ProjectPattern;
231
+ }
232
+ declare function generateMiddleware(options: GenerateMiddlewareOptions): Promise<string[]>;
233
+ //#endregion
234
+ //#region src/generators/guard.d.ts
235
+ interface GenerateGuardOptions {
236
+ name: string;
237
+ outDir?: string;
238
+ moduleName?: string;
239
+ modulesDir?: string;
240
+ pattern?: ProjectPattern;
241
+ }
242
+ declare function generateGuard(options: GenerateGuardOptions): Promise<string[]>;
243
+ //#endregion
244
+ //#region src/generators/service.d.ts
245
+ interface GenerateServiceOptions {
246
+ name: string;
247
+ outDir?: string;
248
+ moduleName?: string;
249
+ modulesDir?: string;
250
+ pattern?: ProjectPattern;
251
+ }
252
+ declare function generateService(options: GenerateServiceOptions): Promise<string[]>;
253
+ //#endregion
254
+ //#region src/generators/controller.d.ts
255
+ interface GenerateControllerOptions {
256
+ name: string;
257
+ outDir?: string;
258
+ moduleName?: string;
259
+ modulesDir?: string;
260
+ pattern?: ProjectPattern;
261
+ }
262
+ declare function generateController(options: GenerateControllerOptions): Promise<string[]>;
263
+ //#endregion
264
+ //#region src/generators/dto.d.ts
265
+ interface GenerateDtoOptions {
266
+ name: string;
267
+ outDir?: string;
268
+ moduleName?: string;
269
+ modulesDir?: string;
270
+ pattern?: ProjectPattern;
271
+ }
272
+ declare function generateDto(options: GenerateDtoOptions): Promise<string[]>;
273
+ //#endregion
274
+ //#region src/generators/project.d.ts
275
+ type ProjectTemplate = 'rest' | 'graphql' | 'ddd' | 'cqrs' | 'minimal';
276
+ interface InitProjectOptions {
277
+ name: string;
278
+ directory: string;
279
+ packageManager?: 'pnpm' | 'npm' | 'yarn';
280
+ initGit?: boolean;
281
+ installDeps?: boolean;
282
+ template?: ProjectTemplate;
283
+ defaultRepo?: string;
284
+ }
285
+ /** Scaffold a new KickJS project */
286
+ declare function initProject(options: InitProjectOptions): Promise<void>;
287
+ //#endregion
288
+ //#region src/utils/naming.d.ts
289
+ /** Convert a name to PascalCase */
290
+ declare function toPascalCase(name: string): string;
291
+ /** Convert a name to camelCase */
292
+ declare function toCamelCase(name: string): string;
293
+ /** Convert a name to kebab-case */
294
+ declare function toKebabCase(name: string): string;
295
+ /**
296
+ * Pluralize a kebab-case name for directory/file names.
297
+ * If already plural (ends in 's'), returns as-is.
298
+ */
299
+ declare function pluralize(name: string): string;
300
+ //#endregion
301
+ export { type KickCommandDefinition, type KickConfig, defineConfig, generateAdapter, generateController, generateDto, generateGuard, generateMiddleware, generateModule, generateService, initProject, loadKickConfig, pluralize, toCamelCase, toKebabCase, toPascalCase };
302
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/config.ts","../src/generators/module.ts","../src/generators/adapter.ts","../src/generators/middleware.ts","../src/generators/guard.ts","../src/generators/service.ts","../src/generators/controller.ts","../src/generators/dto.ts","../src/generators/project.ts","../src/utils/naming.ts"],"mappings":";;;UAIiB,qBAAA;EAAqB;EAEpC,IAAA;EAFoC;EAIpC,WAAA;EAAA;;;;;AAeF;;;EANE,KAAA;EAMwB;EAJxB,OAAA;AAAA;;KAIU,cAAA;;KAGA,iBAAA;;UAKK,cAAA;EACf,IAAA;AAAA;;KAIU,cAAA,GAAiB,iBAAA,GAAkB,cAAA;;;AAS/C;;;;;KAAY,eAAA;;UAGK,aAAA;EAuBkB;;;;EAlBjC,MAAA;EA4BA;;;AAIF;EA3BE,MAAA;;;;;;;;;;;AAiEF;;EApDE,eAAA,GAAkB,eAAA;EA6DR;;;;;;;;;EAnDV,OAAA;AAAA;;UAIe,YAAA;EAiEf;EA/DA,GAAA;EAiEA;;;;;;;;;;;;;EAnDA,IAAA,GAAO,cAAA;EAuFL;EArFF,SAAA;EAqFQ;AAKV;;;;EApFE,SAAA;EAoF2B;;;;AA6B7B;;;;;EAvGE,gBAAA;AAAA;;UAIe,UAAA;;;;AC7GjB;;;;;EDsHE,OAAA,GAAU,cAAA;ECrHQ;;;;AAOnB;;;;;;;ED0HC,OAAA,GAAU,YAAA;ECnHV;EDuHA,UAAA;ECtHA;EDwHA,WAAA,GAAc,cAAA;ECtHd;EDwHA,SAAA;ECvHA;EDyHA,SAAA;ECrHA;;;AAwBF;;;;;;;;;;ED2GE,QAAA,GAAW,KAAA;IAAiB,GAAA;IAAa,IAAA;EAAA;;;;AE/J3C;;;;;;;;EF2KE,OAAA,GAAU,aAAA;;EAEV,QAAA,GAAW,qBAAA;;EAEX,KAAA;IACE,UAAA;IACA,MAAA;IACA,aAAA;IACA,MAAA;EAAA;AAAA;;iBAKY,YAAA,CAAa,MAAA,EAAQ,UAAA,GAAa,UAAA;;iBA6B5B,cAAA,CAAe,GAAA,WAAc,OAAA,CAAQ,UAAA;;;KChN/C,eAAA;AAAA,KACA,QAAA,GAAW,eAAA;AAAA,UASb,qBAAA;EACR,IAAA;EACA,UAAA;EACA,QAAA;EACA,OAAA;EACA,IAAA,GAAO,QAAA;EACP,OAAA;EACA,KAAA;EACA,OAAA,GAAU,cAAA;EACV,MAAA;EDVwB;ECYxB,SAAA;EDTyB;ECWzB,gBAAA;AAAA;;ADNF;;;;;AAKA;;;;iBCyBsB,cAAA,CAAe,OAAA,EAAS,qBAAA,GAAwB,OAAA;;;UCzD5D,sBAAA;EACR,IAAA;EACA,MAAA;AAAA;AAAA,iBAGoB,eAAA,CAAgB,OAAA,EAAS,sBAAA,GAAyB,OAAA;;;UCH9D,yBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,kBAAA,CAAmB,OAAA,EAAS,yBAAA,GAA4B,OAAA;;;UCRpE,oBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,aAAA,CAAc,OAAA,EAAS,oBAAA,GAAuB,OAAA;;;UCR1D,sBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,eAAA,CAAgB,OAAA,EAAS,sBAAA,GAAyB,OAAA;;;UCR9D,yBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,kBAAA,CAAmB,OAAA,EAAS,yBAAA,GAA4B,OAAA;;;UCRpE,kBAAA;EACR,IAAA;EACA,MAAA;EACA,UAAA;EACA,UAAA;EACA,OAAA,GAAU,cAAA;AAAA;AAAA,iBAGU,WAAA,CAAY,OAAA,EAAS,kBAAA,GAAqB,OAAA;;;KCkB3D,eAAA;AAAA,UAEK,kBAAA;EACR,IAAA;EACA,SAAA;EACA,cAAA;EACA,OAAA;EACA,WAAA;EACA,QAAA,GAAW,eAAA;EACX,WAAA;AAAA;;iBAIoB,WAAA,CAAY,OAAA,EAAS,kBAAA,GAAqB,OAAA;;;;iBC5ChD,YAAA,CAAa,IAAA;;iBAOb,WAAA,CAAY,IAAA;;iBAMZ,WAAA,CAAY,IAAA;;;;;iBAWZ,SAAA,CAAU,IAAA"}