@bloomneo/appkit 1.2.9

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 (262) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +902 -0
  3. package/bin/appkit.js +71 -0
  4. package/bin/commands/generate.js +1050 -0
  5. package/bin/templates/backend/README.md.template +39 -0
  6. package/bin/templates/backend/api.http.template +0 -0
  7. package/bin/templates/backend/docs/APPKIT_CLI.md +507 -0
  8. package/bin/templates/backend/docs/APPKIT_COMMENTS_GUIDELINES.md +61 -0
  9. package/bin/templates/backend/docs/APPKIT_LLM_GUIDE.md +2539 -0
  10. package/bin/templates/backend/package.json.template +34 -0
  11. package/bin/templates/backend/src/api/features/welcome/welcome.http.template +29 -0
  12. package/bin/templates/backend/src/api/features/welcome/welcome.route.ts.template +36 -0
  13. package/bin/templates/backend/src/api/features/welcome/welcome.service.ts.template +88 -0
  14. package/bin/templates/backend/src/api/features/welcome/welcome.types.ts.template +18 -0
  15. package/bin/templates/backend/src/api/lib/api-router.ts.template +84 -0
  16. package/bin/templates/backend/src/api/server.ts.template +188 -0
  17. package/bin/templates/backend/tsconfig.api.json.template +24 -0
  18. package/bin/templates/backend/tsconfig.json.template +40 -0
  19. package/bin/templates/feature/feature.http.template +63 -0
  20. package/bin/templates/feature/feature.route.ts.template +36 -0
  21. package/bin/templates/feature/feature.service.ts.template +81 -0
  22. package/bin/templates/feature/feature.types.ts.template +23 -0
  23. package/bin/templates/feature-db/feature.http.template +63 -0
  24. package/bin/templates/feature-db/feature.model.ts.template +74 -0
  25. package/bin/templates/feature-db/feature.route.ts.template +58 -0
  26. package/bin/templates/feature-db/feature.service.ts.template +231 -0
  27. package/bin/templates/feature-db/feature.types.ts.template +25 -0
  28. package/bin/templates/feature-db/schema-addition.prisma.template +9 -0
  29. package/bin/templates/feature-db/seeding/README.md.template +57 -0
  30. package/bin/templates/feature-db/seeding/feature.seed.js.template +67 -0
  31. package/bin/templates/feature-user/schema-addition.prisma.template +19 -0
  32. package/bin/templates/feature-user/user.http.template +157 -0
  33. package/bin/templates/feature-user/user.model.ts.template +244 -0
  34. package/bin/templates/feature-user/user.route.ts.template +379 -0
  35. package/bin/templates/feature-user/user.seed.js.template +182 -0
  36. package/bin/templates/feature-user/user.service.ts.template +426 -0
  37. package/bin/templates/feature-user/user.types.ts.template +127 -0
  38. package/dist/auth/auth.d.ts +182 -0
  39. package/dist/auth/auth.d.ts.map +1 -0
  40. package/dist/auth/auth.js +477 -0
  41. package/dist/auth/auth.js.map +1 -0
  42. package/dist/auth/defaults.d.ts +104 -0
  43. package/dist/auth/defaults.d.ts.map +1 -0
  44. package/dist/auth/defaults.js +374 -0
  45. package/dist/auth/defaults.js.map +1 -0
  46. package/dist/auth/index.d.ts +70 -0
  47. package/dist/auth/index.d.ts.map +1 -0
  48. package/dist/auth/index.js +94 -0
  49. package/dist/auth/index.js.map +1 -0
  50. package/dist/cache/cache.d.ts +118 -0
  51. package/dist/cache/cache.d.ts.map +1 -0
  52. package/dist/cache/cache.js +249 -0
  53. package/dist/cache/cache.js.map +1 -0
  54. package/dist/cache/defaults.d.ts +63 -0
  55. package/dist/cache/defaults.d.ts.map +1 -0
  56. package/dist/cache/defaults.js +193 -0
  57. package/dist/cache/defaults.js.map +1 -0
  58. package/dist/cache/index.d.ts +101 -0
  59. package/dist/cache/index.d.ts.map +1 -0
  60. package/dist/cache/index.js +203 -0
  61. package/dist/cache/index.js.map +1 -0
  62. package/dist/cache/strategies/memory.d.ts +138 -0
  63. package/dist/cache/strategies/memory.d.ts.map +1 -0
  64. package/dist/cache/strategies/memory.js +348 -0
  65. package/dist/cache/strategies/memory.js.map +1 -0
  66. package/dist/cache/strategies/redis.d.ts +105 -0
  67. package/dist/cache/strategies/redis.d.ts.map +1 -0
  68. package/dist/cache/strategies/redis.js +318 -0
  69. package/dist/cache/strategies/redis.js.map +1 -0
  70. package/dist/config/config.d.ts +62 -0
  71. package/dist/config/config.d.ts.map +1 -0
  72. package/dist/config/config.js +107 -0
  73. package/dist/config/config.js.map +1 -0
  74. package/dist/config/defaults.d.ts +44 -0
  75. package/dist/config/defaults.d.ts.map +1 -0
  76. package/dist/config/defaults.js +217 -0
  77. package/dist/config/defaults.js.map +1 -0
  78. package/dist/config/index.d.ts +105 -0
  79. package/dist/config/index.d.ts.map +1 -0
  80. package/dist/config/index.js +163 -0
  81. package/dist/config/index.js.map +1 -0
  82. package/dist/database/adapters/mongoose.d.ts +106 -0
  83. package/dist/database/adapters/mongoose.d.ts.map +1 -0
  84. package/dist/database/adapters/mongoose.js +480 -0
  85. package/dist/database/adapters/mongoose.js.map +1 -0
  86. package/dist/database/adapters/prisma.d.ts +106 -0
  87. package/dist/database/adapters/prisma.d.ts.map +1 -0
  88. package/dist/database/adapters/prisma.js +494 -0
  89. package/dist/database/adapters/prisma.js.map +1 -0
  90. package/dist/database/defaults.d.ts +87 -0
  91. package/dist/database/defaults.d.ts.map +1 -0
  92. package/dist/database/defaults.js +271 -0
  93. package/dist/database/defaults.js.map +1 -0
  94. package/dist/database/index.d.ts +137 -0
  95. package/dist/database/index.d.ts.map +1 -0
  96. package/dist/database/index.js +490 -0
  97. package/dist/database/index.js.map +1 -0
  98. package/dist/email/defaults.d.ts +100 -0
  99. package/dist/email/defaults.d.ts.map +1 -0
  100. package/dist/email/defaults.js +400 -0
  101. package/dist/email/defaults.js.map +1 -0
  102. package/dist/email/email.d.ts +139 -0
  103. package/dist/email/email.d.ts.map +1 -0
  104. package/dist/email/email.js +316 -0
  105. package/dist/email/email.js.map +1 -0
  106. package/dist/email/index.d.ts +176 -0
  107. package/dist/email/index.d.ts.map +1 -0
  108. package/dist/email/index.js +251 -0
  109. package/dist/email/index.js.map +1 -0
  110. package/dist/email/strategies/console.d.ts +90 -0
  111. package/dist/email/strategies/console.d.ts.map +1 -0
  112. package/dist/email/strategies/console.js +268 -0
  113. package/dist/email/strategies/console.js.map +1 -0
  114. package/dist/email/strategies/resend.d.ts +84 -0
  115. package/dist/email/strategies/resend.d.ts.map +1 -0
  116. package/dist/email/strategies/resend.js +266 -0
  117. package/dist/email/strategies/resend.js.map +1 -0
  118. package/dist/email/strategies/smtp.d.ts +77 -0
  119. package/dist/email/strategies/smtp.d.ts.map +1 -0
  120. package/dist/email/strategies/smtp.js +286 -0
  121. package/dist/email/strategies/smtp.js.map +1 -0
  122. package/dist/error/defaults.d.ts +40 -0
  123. package/dist/error/defaults.d.ts.map +1 -0
  124. package/dist/error/defaults.js +75 -0
  125. package/dist/error/defaults.js.map +1 -0
  126. package/dist/error/error.d.ts +140 -0
  127. package/dist/error/error.d.ts.map +1 -0
  128. package/dist/error/error.js +200 -0
  129. package/dist/error/error.js.map +1 -0
  130. package/dist/error/index.d.ts +145 -0
  131. package/dist/error/index.d.ts.map +1 -0
  132. package/dist/error/index.js +145 -0
  133. package/dist/error/index.js.map +1 -0
  134. package/dist/event/defaults.d.ts +111 -0
  135. package/dist/event/defaults.d.ts.map +1 -0
  136. package/dist/event/defaults.js +378 -0
  137. package/dist/event/defaults.js.map +1 -0
  138. package/dist/event/event.d.ts +171 -0
  139. package/dist/event/event.d.ts.map +1 -0
  140. package/dist/event/event.js +391 -0
  141. package/dist/event/event.js.map +1 -0
  142. package/dist/event/index.d.ts +173 -0
  143. package/dist/event/index.d.ts.map +1 -0
  144. package/dist/event/index.js +302 -0
  145. package/dist/event/index.js.map +1 -0
  146. package/dist/event/strategies/memory.d.ts +122 -0
  147. package/dist/event/strategies/memory.d.ts.map +1 -0
  148. package/dist/event/strategies/memory.js +331 -0
  149. package/dist/event/strategies/memory.js.map +1 -0
  150. package/dist/event/strategies/redis.d.ts +115 -0
  151. package/dist/event/strategies/redis.d.ts.map +1 -0
  152. package/dist/event/strategies/redis.js +434 -0
  153. package/dist/event/strategies/redis.js.map +1 -0
  154. package/dist/index.d.ts +58 -0
  155. package/dist/index.d.ts.map +1 -0
  156. package/dist/index.js +72 -0
  157. package/dist/index.js.map +1 -0
  158. package/dist/logger/defaults.d.ts +67 -0
  159. package/dist/logger/defaults.d.ts.map +1 -0
  160. package/dist/logger/defaults.js +213 -0
  161. package/dist/logger/defaults.js.map +1 -0
  162. package/dist/logger/index.d.ts +84 -0
  163. package/dist/logger/index.d.ts.map +1 -0
  164. package/dist/logger/index.js +101 -0
  165. package/dist/logger/index.js.map +1 -0
  166. package/dist/logger/logger.d.ts +165 -0
  167. package/dist/logger/logger.d.ts.map +1 -0
  168. package/dist/logger/logger.js +843 -0
  169. package/dist/logger/logger.js.map +1 -0
  170. package/dist/logger/transports/console.d.ts +102 -0
  171. package/dist/logger/transports/console.d.ts.map +1 -0
  172. package/dist/logger/transports/console.js +276 -0
  173. package/dist/logger/transports/console.js.map +1 -0
  174. package/dist/logger/transports/database.d.ts +153 -0
  175. package/dist/logger/transports/database.d.ts.map +1 -0
  176. package/dist/logger/transports/database.js +539 -0
  177. package/dist/logger/transports/database.js.map +1 -0
  178. package/dist/logger/transports/file.d.ts +146 -0
  179. package/dist/logger/transports/file.d.ts.map +1 -0
  180. package/dist/logger/transports/file.js +464 -0
  181. package/dist/logger/transports/file.js.map +1 -0
  182. package/dist/logger/transports/http.d.ts +128 -0
  183. package/dist/logger/transports/http.d.ts.map +1 -0
  184. package/dist/logger/transports/http.js +401 -0
  185. package/dist/logger/transports/http.js.map +1 -0
  186. package/dist/logger/transports/webhook.d.ts +152 -0
  187. package/dist/logger/transports/webhook.d.ts.map +1 -0
  188. package/dist/logger/transports/webhook.js +485 -0
  189. package/dist/logger/transports/webhook.js.map +1 -0
  190. package/dist/queue/defaults.d.ts +66 -0
  191. package/dist/queue/defaults.d.ts.map +1 -0
  192. package/dist/queue/defaults.js +205 -0
  193. package/dist/queue/defaults.js.map +1 -0
  194. package/dist/queue/index.d.ts +124 -0
  195. package/dist/queue/index.d.ts.map +1 -0
  196. package/dist/queue/index.js +116 -0
  197. package/dist/queue/index.js.map +1 -0
  198. package/dist/queue/queue.d.ts +156 -0
  199. package/dist/queue/queue.d.ts.map +1 -0
  200. package/dist/queue/queue.js +387 -0
  201. package/dist/queue/queue.js.map +1 -0
  202. package/dist/queue/transports/database.d.ts +165 -0
  203. package/dist/queue/transports/database.d.ts.map +1 -0
  204. package/dist/queue/transports/database.js +595 -0
  205. package/dist/queue/transports/database.js.map +1 -0
  206. package/dist/queue/transports/memory.d.ts +143 -0
  207. package/dist/queue/transports/memory.d.ts.map +1 -0
  208. package/dist/queue/transports/memory.js +415 -0
  209. package/dist/queue/transports/memory.js.map +1 -0
  210. package/dist/queue/transports/redis.d.ts +203 -0
  211. package/dist/queue/transports/redis.d.ts.map +1 -0
  212. package/dist/queue/transports/redis.js +744 -0
  213. package/dist/queue/transports/redis.js.map +1 -0
  214. package/dist/security/defaults.d.ts +64 -0
  215. package/dist/security/defaults.d.ts.map +1 -0
  216. package/dist/security/defaults.js +159 -0
  217. package/dist/security/defaults.js.map +1 -0
  218. package/dist/security/index.d.ts +110 -0
  219. package/dist/security/index.d.ts.map +1 -0
  220. package/dist/security/index.js +160 -0
  221. package/dist/security/index.js.map +1 -0
  222. package/dist/security/security.d.ts +138 -0
  223. package/dist/security/security.d.ts.map +1 -0
  224. package/dist/security/security.js +419 -0
  225. package/dist/security/security.js.map +1 -0
  226. package/dist/storage/defaults.d.ts +79 -0
  227. package/dist/storage/defaults.d.ts.map +1 -0
  228. package/dist/storage/defaults.js +358 -0
  229. package/dist/storage/defaults.js.map +1 -0
  230. package/dist/storage/index.d.ts +153 -0
  231. package/dist/storage/index.d.ts.map +1 -0
  232. package/dist/storage/index.js +242 -0
  233. package/dist/storage/index.js.map +1 -0
  234. package/dist/storage/storage.d.ts +151 -0
  235. package/dist/storage/storage.d.ts.map +1 -0
  236. package/dist/storage/storage.js +439 -0
  237. package/dist/storage/storage.js.map +1 -0
  238. package/dist/storage/strategies/local.d.ts +117 -0
  239. package/dist/storage/strategies/local.d.ts.map +1 -0
  240. package/dist/storage/strategies/local.js +368 -0
  241. package/dist/storage/strategies/local.js.map +1 -0
  242. package/dist/storage/strategies/r2.d.ts +130 -0
  243. package/dist/storage/strategies/r2.d.ts.map +1 -0
  244. package/dist/storage/strategies/r2.js +470 -0
  245. package/dist/storage/strategies/r2.js.map +1 -0
  246. package/dist/storage/strategies/s3.d.ts +121 -0
  247. package/dist/storage/strategies/s3.d.ts.map +1 -0
  248. package/dist/storage/strategies/s3.js +461 -0
  249. package/dist/storage/strategies/s3.js.map +1 -0
  250. package/dist/util/defaults.d.ts +77 -0
  251. package/dist/util/defaults.d.ts.map +1 -0
  252. package/dist/util/defaults.js +193 -0
  253. package/dist/util/defaults.js.map +1 -0
  254. package/dist/util/index.d.ts +97 -0
  255. package/dist/util/index.d.ts.map +1 -0
  256. package/dist/util/index.js +165 -0
  257. package/dist/util/index.js.map +1 -0
  258. package/dist/util/util.d.ts +145 -0
  259. package/dist/util/util.d.ts.map +1 -0
  260. package/dist/util/util.js +481 -0
  261. package/dist/util/util.js.map +1 -0
  262. package/package.json +234 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Smart defaults and environment validation for role-level-permission authentication
3
+ * @module @bloomneo/appkit/auth
4
+ * @file src/auth/defaults.ts
5
+ *
6
+ * @llm-rule WHEN: App startup - need to parse auth environment variables and build role hierarchy
7
+ * @llm-rule AVOID: Calling multiple times - expensive validation, use lazy loading in get()
8
+ * @llm-rule NOTE: Called once at startup, cached globally for performance
9
+ */
10
+ export interface RoleConfig {
11
+ level: number;
12
+ inherits: string[];
13
+ }
14
+ export interface RoleHierarchy {
15
+ [roleLevel: string]: RoleConfig;
16
+ }
17
+ export interface PermissionDefaults {
18
+ [roleLevel: string]: string[];
19
+ }
20
+ export interface AuthConfig {
21
+ jwt: {
22
+ secret: string;
23
+ expiresIn: string;
24
+ algorithm: string;
25
+ };
26
+ password: {
27
+ saltRounds: number;
28
+ };
29
+ roles: RoleHierarchy;
30
+ permissions: {
31
+ coreActions: string[];
32
+ coreScopes: string[];
33
+ defaults: PermissionDefaults;
34
+ };
35
+ user: {
36
+ defaultRole: string;
37
+ defaultLevel: string;
38
+ };
39
+ middleware: {
40
+ tokenSources: string[];
41
+ errorMessages: {
42
+ noToken: string;
43
+ invalidToken: string;
44
+ expiredToken: string;
45
+ insufficientRole: string;
46
+ insufficientPermissions: string;
47
+ };
48
+ };
49
+ environment: {
50
+ isDevelopment: boolean;
51
+ isProduction: boolean;
52
+ nodeEnv: string;
53
+ };
54
+ }
55
+ /**
56
+ * Default role hierarchy with semantic level names and clear inheritance
57
+ */
58
+ declare const DEFAULT_ROLE_HIERARCHY: RoleHierarchy;
59
+ /**
60
+ * Core permission actions
61
+ */
62
+ declare const CORE_ACTIONS: string[];
63
+ /**
64
+ * Core permission scopes
65
+ */
66
+ declare const CORE_SCOPES: string[];
67
+ /**
68
+ * Default permissions for each role.level
69
+ */
70
+ declare const DEFAULT_PERMISSIONS: PermissionDefaults;
71
+ /**
72
+ * Gets smart defaults using VOILA_AUTH_* environment variables
73
+ * @llm-rule WHEN: App startup to get production-ready auth configuration
74
+ * @llm-rule AVOID: Calling repeatedly - validates environment each time, expensive operation
75
+ * @llm-rule AVOID: Calling in request handlers - expensive environment parsing
76
+ * @llm-rule NOTE: Called once at startup, cached globally for performance
77
+ */
78
+ export declare function getSmartDefaults(): AuthConfig;
79
+ /**
80
+ * Validates JWT secret strength and format
81
+ * @llm-rule WHEN: Setting custom JWT secret for token security
82
+ * @llm-rule AVOID: Using weak secrets - minimum 32 characters required for security
83
+ */
84
+ export declare function validateSecret(secret: string): void;
85
+ /**
86
+ * Validates bcrypt rounds for security and performance
87
+ * @llm-rule WHEN: Setting custom bcrypt rounds for password hashing
88
+ * @llm-rule AVOID: Using rounds below 8 (insecure) or above 15 (too slow)
89
+ */
90
+ export declare function validateRounds(rounds: number): void;
91
+ /**
92
+ * Validates role.level exists in hierarchy
93
+ * @llm-rule WHEN: Checking if a role.level is valid before using
94
+ * @llm-rule AVOID: Using with undefined roles - will return false
95
+ */
96
+ export declare function validateRoleLevel(roleLevel: string, roles: RoleHierarchy): boolean;
97
+ /**
98
+ * Validates permission format (action:scope)
99
+ * @llm-rule WHEN: Checking if a permission string is properly formatted
100
+ * @llm-rule AVOID: Using with malformed permissions - will return false
101
+ */
102
+ export declare function validatePermission(permission: string): boolean;
103
+ export { DEFAULT_ROLE_HIERARCHY, DEFAULT_PERMISSIONS, CORE_ACTIONS, CORE_SCOPES, };
104
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/auth/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,EAAE,kBAAkB,CAAC;KAC9B,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,aAAa,EAAE;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,YAAY,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,MAAM,CAAC;YACrB,gBAAgB,EAAE,MAAM,CAAC;YACzB,uBAAuB,EAAE,MAAM,CAAC;SACjC,CAAC;KACH,CAAC;IACF,WAAW,EAAE;QACX,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,QAAA,MAAM,sBAAsB,EAAE,aAqC7B,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,YAAY,UAAiD,CAAC;AAEpE;;GAEG;AACH,QAAA,MAAM,WAAW,UAAqC,CAAC;AAEvD;;GAEG;AACH,QAAA,MAAM,mBAAmB,EAAE,kBAU1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAyC7C;AAiHD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAyCnD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAMlF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAM9D;AA6ID,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACZ,CAAC"}
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Smart defaults and environment validation for role-level-permission authentication
3
+ * @module @bloomneo/appkit/auth
4
+ * @file src/auth/defaults.ts
5
+ *
6
+ * @llm-rule WHEN: App startup - need to parse auth environment variables and build role hierarchy
7
+ * @llm-rule AVOID: Calling multiple times - expensive validation, use lazy loading in get()
8
+ * @llm-rule NOTE: Called once at startup, cached globally for performance
9
+ */
10
+ /**
11
+ * Default role hierarchy with semantic level names and clear inheritance
12
+ */
13
+ const DEFAULT_ROLE_HIERARCHY = {
14
+ 'user.basic': {
15
+ level: 1,
16
+ inherits: [],
17
+ },
18
+ 'user.pro': {
19
+ level: 2,
20
+ inherits: ['user.basic'],
21
+ },
22
+ 'user.max': {
23
+ level: 3,
24
+ inherits: ['user.pro', 'user.basic'],
25
+ },
26
+ 'moderator.review': {
27
+ level: 4,
28
+ inherits: ['user.max', 'user.pro', 'user.basic'],
29
+ },
30
+ 'moderator.approve': {
31
+ level: 5,
32
+ inherits: ['moderator.review', 'user.max', 'user.pro', 'user.basic'],
33
+ },
34
+ 'moderator.manage': {
35
+ level: 6,
36
+ inherits: ['moderator.approve', 'moderator.review', 'user.max', 'user.pro', 'user.basic'],
37
+ },
38
+ 'admin.tenant': {
39
+ level: 7,
40
+ inherits: ['moderator.manage', 'moderator.approve', 'moderator.review', 'user.max', 'user.pro', 'user.basic'],
41
+ },
42
+ 'admin.org': {
43
+ level: 8,
44
+ inherits: ['admin.tenant', 'moderator.manage', 'moderator.approve', 'moderator.review', 'user.max', 'user.pro', 'user.basic'],
45
+ },
46
+ 'admin.system': {
47
+ level: 9,
48
+ inherits: ['admin.org', 'admin.tenant', 'moderator.manage', 'moderator.approve', 'moderator.review', 'user.max', 'user.pro', 'user.basic'],
49
+ },
50
+ };
51
+ /**
52
+ * Core permission actions
53
+ */
54
+ const CORE_ACTIONS = ['view', 'create', 'edit', 'delete', 'manage'];
55
+ /**
56
+ * Core permission scopes
57
+ */
58
+ const CORE_SCOPES = ['own', 'tenant', 'org', 'system'];
59
+ /**
60
+ * Default permissions for each role.level
61
+ */
62
+ const DEFAULT_PERMISSIONS = {
63
+ 'user.basic': ['manage:own'],
64
+ 'user.pro': ['manage:own'],
65
+ 'user.max': ['manage:own'],
66
+ 'moderator.review': ['view:tenant'],
67
+ 'moderator.approve': ['view:tenant', 'create:tenant', 'edit:tenant'],
68
+ 'moderator.manage': ['view:tenant', 'create:tenant', 'edit:tenant'],
69
+ 'admin.tenant': ['manage:tenant'],
70
+ 'admin.org': ['manage:tenant', 'manage:org'],
71
+ 'admin.system': ['manage:tenant', 'manage:org', 'manage:system'],
72
+ };
73
+ /**
74
+ * Gets smart defaults using VOILA_AUTH_* environment variables
75
+ * @llm-rule WHEN: App startup to get production-ready auth configuration
76
+ * @llm-rule AVOID: Calling repeatedly - validates environment each time, expensive operation
77
+ * @llm-rule AVOID: Calling in request handlers - expensive environment parsing
78
+ * @llm-rule NOTE: Called once at startup, cached globally for performance
79
+ */
80
+ export function getSmartDefaults() {
81
+ validateEnvironment();
82
+ const isDevelopment = process.env.NODE_ENV === 'development';
83
+ const isProduction = process.env.NODE_ENV === 'production';
84
+ return {
85
+ jwt: {
86
+ secret: process.env.VOILA_AUTH_SECRET,
87
+ expiresIn: process.env.VOILA_AUTH_EXPIRES_IN || '7d',
88
+ algorithm: 'HS256',
89
+ },
90
+ password: {
91
+ saltRounds: parseInt(process.env.VOILA_AUTH_BCRYPT_ROUNDS || '10'),
92
+ },
93
+ roles: parseRoleHierarchy(),
94
+ permissions: {
95
+ coreActions: CORE_ACTIONS,
96
+ coreScopes: CORE_SCOPES,
97
+ defaults: parseDefaultPermissions(),
98
+ },
99
+ user: {
100
+ defaultRole: process.env.VOILA_AUTH_DEFAULT_ROLE || 'user',
101
+ defaultLevel: process.env.VOILA_AUTH_DEFAULT_LEVEL || 'basic',
102
+ },
103
+ middleware: {
104
+ tokenSources: ['header', 'cookie', 'query'],
105
+ errorMessages: {
106
+ noToken: 'Authentication required',
107
+ invalidToken: 'Invalid authentication. Please sign in again.',
108
+ expiredToken: 'Your session has expired. Please sign in again.',
109
+ insufficientRole: 'Access denied. Insufficient role level.',
110
+ insufficientPermissions: 'Access denied. Insufficient permissions.',
111
+ },
112
+ },
113
+ environment: {
114
+ isDevelopment,
115
+ isProduction,
116
+ nodeEnv: process.env.NODE_ENV || 'development',
117
+ },
118
+ };
119
+ }
120
+ /**
121
+ * Parses role hierarchy from environment variable or uses defaults
122
+ * @llm-rule WHEN: App startup to build role configuration from VOILA_AUTH_ROLES
123
+ * @llm-rule AVOID: Using invalid role.level format - must be role.level:number
124
+ * @llm-rule NOTE: Format: VOILA_AUTH_ROLES=user.basic:1,admin.tenant:5,admin.system:9
125
+ */
126
+ function parseRoleHierarchy() {
127
+ const envRoles = process.env.VOILA_AUTH_ROLES;
128
+ if (!envRoles) {
129
+ return DEFAULT_ROLE_HIERARCHY;
130
+ }
131
+ const parsedRoles = {};
132
+ const rolePairs = envRoles.split(',');
133
+ for (const rolePair of rolePairs) {
134
+ const [roleLevel, levelStr] = rolePair.trim().split(':');
135
+ if (!roleLevel || !levelStr) {
136
+ throw new Error(`Invalid VOILA_AUTH_ROLES format: "${rolePair}". Expected format: "role.level:number"`);
137
+ }
138
+ if (!validateRoleLevelFormat(roleLevel)) {
139
+ throw new Error(`Invalid role.level format: "${roleLevel}". Must be "role.level" (e.g., "admin.tenant")`);
140
+ }
141
+ const level = parseInt(levelStr);
142
+ if (isNaN(level) || level < 1) {
143
+ throw new Error(`Invalid level number: "${levelStr}". Must be a positive integer`);
144
+ }
145
+ parsedRoles[roleLevel] = {
146
+ level,
147
+ inherits: [], // Inheritance calculated based on levels
148
+ };
149
+ }
150
+ // Calculate inheritance based on levels
151
+ const sortedRoles = Object.keys(parsedRoles).sort((a, b) => parsedRoles[a].level - parsedRoles[b].level);
152
+ for (const roleLevel of sortedRoles) {
153
+ const currentLevel = parsedRoles[roleLevel].level;
154
+ parsedRoles[roleLevel].inherits = sortedRoles.filter(other => parsedRoles[other].level < currentLevel);
155
+ }
156
+ return parsedRoles;
157
+ }
158
+ /**
159
+ * Parses permission defaults from environment variable or uses defaults
160
+ * @llm-rule WHEN: App startup to build permission configuration from VOILA_AUTH_PERMISSIONS
161
+ * @llm-rule AVOID: Using invalid permission format - must be action:scope
162
+ * @llm-rule NOTE: Format: VOILA_AUTH_PERMISSIONS=user.basic:view:own,admin.tenant:manage:tenant
163
+ */
164
+ function parseDefaultPermissions() {
165
+ const envPermissions = process.env.VOILA_AUTH_PERMISSIONS;
166
+ if (!envPermissions) {
167
+ return DEFAULT_PERMISSIONS;
168
+ }
169
+ const parsedPermissions = {};
170
+ const permissionPairs = envPermissions.split(',');
171
+ for (const permissionPair of permissionPairs) {
172
+ const parts = permissionPair.trim().split(':');
173
+ if (parts.length !== 3) {
174
+ throw new Error(`Invalid VOILA_AUTH_PERMISSIONS format: "${permissionPair}". Expected format: "role.level:action:scope"`);
175
+ }
176
+ const [roleLevel, action, scope] = parts;
177
+ const permission = `${action}:${scope}`;
178
+ if (!validateRoleLevelFormat(roleLevel)) {
179
+ throw new Error(`Invalid role.level format: "${roleLevel}". Must be "role.level" (e.g., "admin.tenant")`);
180
+ }
181
+ if (!validatePermissionFormat(permission)) {
182
+ throw new Error(`Invalid permission format: "${permission}". Must be "action:scope" (e.g., "manage:tenant")`);
183
+ }
184
+ if (!parsedPermissions[roleLevel]) {
185
+ parsedPermissions[roleLevel] = [];
186
+ }
187
+ if (!parsedPermissions[roleLevel].includes(permission)) {
188
+ parsedPermissions[roleLevel].push(permission);
189
+ }
190
+ }
191
+ return parsedPermissions;
192
+ }
193
+ /**
194
+ * Validates JWT secret strength and format
195
+ * @llm-rule WHEN: Setting custom JWT secret for token security
196
+ * @llm-rule AVOID: Using weak secrets - minimum 32 characters required for security
197
+ */
198
+ export function validateSecret(secret) {
199
+ if (!secret || typeof secret !== 'string') {
200
+ console.error('\n🚨 ============================================');
201
+ console.error('❌ CRITICAL AUTH CONFIGURATION ERROR');
202
+ console.error('🚨 ============================================');
203
+ console.error('🔑 MISSING REQUIRED ENVIRONMENT VARIABLE: VOILA_AUTH_SECRET');
204
+ console.error('🚨 ============================================\n');
205
+ throw new Error('VOILA_AUTH_SECRET is required. Set environment variable: VOILA_AUTH_SECRET=your-jwt-secret-key');
206
+ }
207
+ if (secret.length < 32) {
208
+ console.error('\n🚨 ============================================');
209
+ console.error('❌ AUTH SECRET TOO SHORT');
210
+ console.error('🚨 ============================================');
211
+ console.error(`🔑 Current length: ${secret.length} characters (minimum: 32)`);
212
+ console.error('🚨 ============================================\n');
213
+ throw new Error(`VOILA_AUTH_SECRET must be at least 32 characters for security. Current length: ${secret.length}`);
214
+ }
215
+ if (secret === 'your-jwt-secret-key' || secret === 'secret' || secret === 'supersecret') {
216
+ console.error('\n🚨 ============================================');
217
+ console.error('❌ INSECURE AUTH SECRET DETECTED');
218
+ console.error('🚨 ============================================');
219
+ console.error('🔑 VOILA_AUTH_SECRET appears to be a default/example value');
220
+ console.error('⚠️ This is a security risk in production!');
221
+ console.error('');
222
+ console.error('💡 SOLUTION:');
223
+ console.error(' Generate a strong, random secret:');
224
+ console.error(' VOILA_AUTH_SECRET=k8s9m2n4p7q1w3e5r8t0y2u4i6o9a1s5d7f9g2h4j6l8');
225
+ console.error('🚨 ============================================\n');
226
+ throw new Error('VOILA_AUTH_SECRET appears to be a default/example value. Use a strong, random secret');
227
+ }
228
+ }
229
+ /**
230
+ * Validates bcrypt rounds for security and performance
231
+ * @llm-rule WHEN: Setting custom bcrypt rounds for password hashing
232
+ * @llm-rule AVOID: Using rounds below 8 (insecure) or above 15 (too slow)
233
+ */
234
+ export function validateRounds(rounds) {
235
+ if (rounds < 8) {
236
+ throw new Error('Bcrypt rounds must be at least 8 for security');
237
+ }
238
+ if (rounds > 15) {
239
+ throw new Error('Bcrypt rounds should not exceed 15 for performance');
240
+ }
241
+ }
242
+ /**
243
+ * Validates role.level exists in hierarchy
244
+ * @llm-rule WHEN: Checking if a role.level is valid before using
245
+ * @llm-rule AVOID: Using with undefined roles - will return false
246
+ */
247
+ export function validateRoleLevel(roleLevel, roles) {
248
+ if (!roleLevel || typeof roleLevel !== 'string') {
249
+ return false;
250
+ }
251
+ return roles[roleLevel] !== undefined;
252
+ }
253
+ /**
254
+ * Validates permission format (action:scope)
255
+ * @llm-rule WHEN: Checking if a permission string is properly formatted
256
+ * @llm-rule AVOID: Using with malformed permissions - will return false
257
+ */
258
+ export function validatePermission(permission) {
259
+ if (!permission || typeof permission !== 'string') {
260
+ return false;
261
+ }
262
+ return validatePermissionFormat(permission);
263
+ }
264
+ /**
265
+ * Validates role.level format
266
+ */
267
+ function validateRoleLevelFormat(roleLevel) {
268
+ if (!roleLevel || typeof roleLevel !== 'string') {
269
+ return false;
270
+ }
271
+ // Must be in format: role.level (e.g., "admin.tenant")
272
+ const parts = roleLevel.split('.');
273
+ return parts.length === 2 && parts[0].length > 0 && parts[1].length > 0;
274
+ }
275
+ /**
276
+ * Validates permission format
277
+ */
278
+ function validatePermissionFormat(permission) {
279
+ if (!permission || typeof permission !== 'string') {
280
+ return false;
281
+ }
282
+ // Must be in format: action:scope (e.g., "manage:tenant")
283
+ const parts = permission.split(':');
284
+ if (parts.length !== 2) {
285
+ return false;
286
+ }
287
+ const [action, scope] = parts;
288
+ return action.length > 0 && scope.length > 0;
289
+ }
290
+ /**
291
+ * Enhanced environment validation with better error messages
292
+ */
293
+ function validateEnvironment() {
294
+ const secret = process.env.VOILA_AUTH_SECRET;
295
+ // Enhanced validation with clear console logging and better error messages
296
+ if (!secret) {
297
+ console.error('\n🚨 ============================================');
298
+ console.error('❌ CRITICAL AUTH CONFIGURATION ERROR');
299
+ console.error('🚨 ============================================');
300
+ console.error('🔑 MISSING REQUIRED ENVIRONMENT VARIABLE: VOILA_AUTH_SECRET');
301
+ console.error('');
302
+ console.error('💡 SOLUTION:');
303
+ console.error(' Add the following to your .env file:');
304
+ console.error(' VOILA_AUTH_SECRET=your-secure-32-character-secret-key-here');
305
+ console.error('');
306
+ console.error('📋 REQUIREMENTS:');
307
+ console.error(' - Must be at least 32 characters long');
308
+ console.error(' - Should be a strong, random string');
309
+ console.error(' - Do not use default values like "secret" or "supersecret"');
310
+ console.error('');
311
+ console.error('🔧 EXAMPLE:');
312
+ console.error(' VOILA_AUTH_SECRET=k8s9m2n4p7q1w3e5r8t0y2u4i6o9a1s5d7f9g2h4j6l8');
313
+ console.error('');
314
+ console.error('⚠️ Without this variable, authentication features will not work');
315
+ console.error('🚨 ============================================\n');
316
+ throw new Error('VOILA_AUTH_SECRET is required. Set environment variable: VOILA_AUTH_SECRET=your-jwt-secret-key');
317
+ }
318
+ if (secret.length < 32) {
319
+ console.error('\n🚨 ============================================');
320
+ console.error('❌ AUTH SECRET TOO SHORT');
321
+ console.error('🚨 ============================================');
322
+ console.error(`🔑 Current VOILA_AUTH_SECRET length: ${secret.length} characters`);
323
+ console.error('⚠️ Minimum required: 32 characters');
324
+ console.error('');
325
+ console.error('💡 SOLUTION:');
326
+ console.error(' Generate a stronger secret with at least 32 characters');
327
+ console.error('');
328
+ console.error('🔧 EXAMPLE:');
329
+ console.error(' VOILA_AUTH_SECRET=k8s9m2n4p7q1w3e5r8t0y2u4i6o9a1s5d7f9g2h4j6l8');
330
+ console.error('🚨 ============================================\n');
331
+ throw new Error(`VOILA_AUTH_SECRET must be at least 32 characters for security. Current length: ${secret.length}`);
332
+ }
333
+ validateSecret(secret);
334
+ const rounds = process.env.VOILA_AUTH_BCRYPT_ROUNDS;
335
+ if (rounds) {
336
+ const roundsNum = parseInt(rounds);
337
+ if (isNaN(roundsNum)) {
338
+ throw new Error(`Invalid VOILA_AUTH_BCRYPT_ROUNDS: "${rounds}". Must be a number between 8 and 15`);
339
+ }
340
+ validateRounds(roundsNum);
341
+ }
342
+ const expiresIn = process.env.VOILA_AUTH_EXPIRES_IN;
343
+ if (expiresIn && !isValidTimespan(expiresIn)) {
344
+ throw new Error(`Invalid VOILA_AUTH_EXPIRES_IN: "${expiresIn}". Must be a valid time span (e.g., '7d', '1h', '30m')`);
345
+ }
346
+ const defaultRole = process.env.VOILA_AUTH_DEFAULT_ROLE;
347
+ const defaultLevel = process.env.VOILA_AUTH_DEFAULT_LEVEL;
348
+ if (defaultRole && defaultLevel) {
349
+ const roleLevel = `${defaultRole}.${defaultLevel}`;
350
+ const roles = parseRoleHierarchy();
351
+ if (!validateRoleLevel(roleLevel, roles)) {
352
+ const validRoles = Object.keys(roles).join(', ');
353
+ throw new Error(`Invalid VOILA_AUTH_DEFAULT_ROLE.LEVEL: "${roleLevel}". Must be one of: ${validRoles}`);
354
+ }
355
+ }
356
+ const nodeEnv = process.env.NODE_ENV;
357
+ if (nodeEnv && !['development', 'production', 'test'].includes(nodeEnv)) {
358
+ console.warn(`Unusual NODE_ENV: "${nodeEnv}". Expected: development, production, or test`);
359
+ }
360
+ }
361
+ /**
362
+ * Validates if a string is a valid JWT timespan
363
+ */
364
+ function isValidTimespan(timespan) {
365
+ if (typeof timespan === 'number') {
366
+ return timespan > 0;
367
+ }
368
+ if (typeof timespan === 'string') {
369
+ return /^\d+[smhdwy]$/.test(timespan.toLowerCase());
370
+ }
371
+ return false;
372
+ }
373
+ export { DEFAULT_ROLE_HIERARCHY, DEFAULT_PERMISSIONS, CORE_ACTIONS, CORE_SCOPES, };
374
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/auth/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Ultra-simple role-level-permission authentication that just works
3
+ * @module @bloomneo/appkit/auth
4
+ * @file src/auth/index.ts
5
+ *
6
+ * @llm-rule WHEN: Building apps that need authentication with user roles and permissions
7
+ * @llm-rule AVOID: Complex auth setups with multiple libraries - this handles JWT + bcrypt + middleware in one API
8
+ * @llm-rule NOTE: Uses role.level hierarchy (user.basic → admin.system) with automatic inheritance
9
+ * @llm-rule NOTE: Common pattern - auth.requireLoginToken() → auth.requireUserRoles() → handler
10
+ * @llm-rule NOTE: Safe user access - const user = auth.user(req); if (!user) return error;
11
+ */
12
+ import { AuthenticationClass } from './auth.js';
13
+ import { type AuthConfig, type RoleHierarchy } from './defaults.js';
14
+ /**
15
+ * Get authentication instance - the only function you need to learn
16
+ * Environment variables parsed once for performance
17
+ * @llm-rule WHEN: Starting any auth operation - this is your main entry point
18
+ * @llm-rule AVOID: Calling new AuthenticationClass() directly - always use this function
19
+ * @llm-rule NOTE: Typical flow - get() → generateLoginToken() → middleware → user()
20
+ */
21
+ declare function get(overrides?: Partial<AuthConfig>): AuthenticationClass;
22
+ /**
23
+ * Reset global instance (useful for testing or config changes)
24
+ * @llm-rule WHEN: Testing auth logic with different configurations
25
+ * @llm-rule AVOID: Using in production - only for tests and development
26
+ */
27
+ declare function reset(newConfig?: Partial<AuthConfig>): AuthenticationClass;
28
+ /**
29
+ * Get current role hierarchy for inspection
30
+ * @llm-rule WHEN: Need to see available role.levels for debugging or UI
31
+ * @llm-rule AVOID: Using for authorization logic - use hasRole() method instead
32
+ */
33
+ declare function getRoles(): RoleHierarchy;
34
+ /**
35
+ * Get current permission configuration for inspection
36
+ * @llm-rule WHEN: Need to see default permissions for debugging or documentation
37
+ * @llm-rule AVOID: Using for permission checks - use can() method instead
38
+ */
39
+ declare function getPermissions(): {
40
+ coreActions: string[];
41
+ coreScopes: string[];
42
+ defaults: Record<string, string[]>;
43
+ };
44
+ /**
45
+ * Check if a role.level exists in current configuration
46
+ * @llm-rule WHEN: Validating user input or config before creating tokens
47
+ * @llm-rule AVOID: Using for runtime authorization - this is for validation only
48
+ */
49
+ declare function isValidRole(roleLevel: string): boolean;
50
+ /**
51
+ * Get all available role.levels in hierarchy order
52
+ * @llm-rule WHEN: Building role selection UI or generating documentation
53
+ * @llm-rule AVOID: Hardcoding role lists - use this to stay in sync with config
54
+ */
55
+ declare function getAllRoles(): string[];
56
+ /**
57
+ * Single authentication export with minimal functionality
58
+ */
59
+ export declare const authClass: {
60
+ readonly get: typeof get;
61
+ readonly reset: typeof reset;
62
+ readonly getRoles: typeof getRoles;
63
+ readonly getPermissions: typeof getPermissions;
64
+ readonly isValidRole: typeof isValidRole;
65
+ readonly getAllRoles: typeof getAllRoles;
66
+ };
67
+ export type { AuthConfig, RoleConfig, RoleHierarchy, PermissionDefaults, } from './defaults.js';
68
+ export type { JwtPayload, LoginTokenPayload, ApiTokenPayload, ExpressRequest, ExpressResponse, MiddlewareOptions, ExpressMiddleware, } from './auth.js';
69
+ export { AuthenticationClass } from './auth.js';
70
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAoB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAKtF;;;;;;GAMG;AACH,iBAAS,GAAG,CAAC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,mBAAmB,CASrE;AAED;;;;GAIG;AACH,iBAAS,KAAK,CAAC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,mBAAmB,CAKvE;AAED;;;;GAIG;AACH,iBAAS,QAAQ,IAAI,aAAa,CAGjC;AAED;;;;GAIG;AACH,iBAAS,cAAc,IAAI;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAG7G;AAED;;;;GAIG;AACH,iBAAS,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAG/C;AAED;;;;GAIG;AACH,iBAAS,WAAW,IAAI,MAAM,EAAE,CAK/B;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;CAUZ,CAAC;AAGX,YAAY,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}