@rippling/rippling-sdk 0.2.0-alpha.83 → 0.2.0-alpha.85

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 (314) hide show
  1. package/examples/manifest/custom-object-creation-workflow/custom-object-creation-workflow.ts +44 -26
  2. package/examples/manifest/dental-practice-management/dental-practice-management.ts +470 -142
  3. package/examples/manifest/dental-practice-management/functions/chair-schedule.ts +23 -13
  4. package/examples/manifest/dental-practice-management/functions/complete-visit.ts +55 -32
  5. package/examples/manifest/dental-practice-management/functions/operatory-list.ts +23 -13
  6. package/examples/manifest/dental-practice-management/functions/patient-list.ts +23 -13
  7. package/examples/manifest/dental-practice-management/functions/treatment-plan-list.ts +23 -13
  8. package/examples/manifest/existing-manifest-mutations/existing-manifest-mutations.ts +23 -68
  9. package/examples/manifest/field-service-dispatch/field-service-dispatch.ts +375 -102
  10. package/examples/manifest/grant-program-management/grant-program-management.ts +419 -125
  11. package/examples/manifest/gym-membership-management/functions/check-in-desk.ts +23 -13
  12. package/examples/manifest/gym-membership-management/functions/member-list.ts +23 -13
  13. package/examples/manifest/gym-membership-management/functions/today-schedule.ts +23 -13
  14. package/examples/manifest/gym-membership-management/functions/trainer-list.ts +23 -13
  15. package/examples/manifest/gym-membership-management/gym-membership-management.ts +442 -92
  16. package/examples/manifest/procurement-approval-hub/procurement-approval-hub.ts +408 -122
  17. package/examples/manifest/simple-todo-app/functions/mark-done.ts +12 -16
  18. package/examples/manifest/simple-todo-app/functions/todo-list.ts +23 -13
  19. package/examples/manifest/simple-todo-app/simple-todo-app.ts +109 -40
  20. package/examples/manifest/todo-app-without-object-list-view/functions/todo-page.ts +193 -166
  21. package/examples/manifest/todo-app-without-object-list-view/todo-app-without-object-list-view.ts +47 -24
  22. package/package.json +13 -7
  23. package/resources/custom-objects/custom-objects.d.mts +0 -7
  24. package/resources/custom-objects/custom-objects.d.mts.map +1 -1
  25. package/resources/custom-objects/custom-objects.d.ts +0 -7
  26. package/resources/custom-objects/custom-objects.d.ts.map +1 -1
  27. package/resources/custom-objects/custom-objects.js.map +1 -1
  28. package/resources/custom-objects/custom-objects.mjs.map +1 -1
  29. package/resources/custom-objects/fields.d.mts +14 -128
  30. package/resources/custom-objects/fields.d.mts.map +1 -1
  31. package/resources/custom-objects/fields.d.ts +14 -128
  32. package/resources/custom-objects/fields.d.ts.map +1 -1
  33. package/src/resources/custom-objects/custom-objects.ts +0 -8
  34. package/src/resources/custom-objects/fields.ts +13 -191
  35. package/src/tsconfig.json +1 -1
  36. package/src/version.ts +1 -1
  37. package/version.d.mts +1 -1
  38. package/version.d.ts +1 -1
  39. package/version.js +1 -1
  40. package/version.mjs +1 -1
  41. package/core/platform/custom-objects/category.d.mts +0 -125
  42. package/core/platform/custom-objects/category.d.mts.map +0 -1
  43. package/core/platform/custom-objects/category.d.ts +0 -125
  44. package/core/platform/custom-objects/category.d.ts.map +0 -1
  45. package/core/platform/custom-objects/category.js +0 -188
  46. package/core/platform/custom-objects/category.js.map +0 -1
  47. package/core/platform/custom-objects/category.mjs +0 -178
  48. package/core/platform/custom-objects/category.mjs.map +0 -1
  49. package/core/platform/custom-objects/definition.d.mts +0 -147
  50. package/core/platform/custom-objects/definition.d.mts.map +0 -1
  51. package/core/platform/custom-objects/definition.d.ts +0 -147
  52. package/core/platform/custom-objects/definition.d.ts.map +0 -1
  53. package/core/platform/custom-objects/definition.js +0 -200
  54. package/core/platform/custom-objects/definition.js.map +0 -1
  55. package/core/platform/custom-objects/definition.mjs +0 -190
  56. package/core/platform/custom-objects/definition.mjs.map +0 -1
  57. package/core/platform/custom-objects/fields.d.mts +0 -302
  58. package/core/platform/custom-objects/fields.d.mts.map +0 -1
  59. package/core/platform/custom-objects/fields.d.ts +0 -302
  60. package/core/platform/custom-objects/fields.d.ts.map +0 -1
  61. package/core/platform/custom-objects/fields.js +0 -369
  62. package/core/platform/custom-objects/fields.js.map +0 -1
  63. package/core/platform/custom-objects/fields.mjs +0 -347
  64. package/core/platform/custom-objects/fields.mjs.map +0 -1
  65. package/core/platform/custom-objects/function-runtime.d.mts +0 -42
  66. package/core/platform/custom-objects/function-runtime.d.mts.map +0 -1
  67. package/core/platform/custom-objects/function-runtime.d.ts +0 -42
  68. package/core/platform/custom-objects/function-runtime.d.ts.map +0 -1
  69. package/core/platform/custom-objects/function-runtime.js +0 -38
  70. package/core/platform/custom-objects/function-runtime.js.map +0 -1
  71. package/core/platform/custom-objects/function-runtime.mjs +0 -35
  72. package/core/platform/custom-objects/function-runtime.mjs.map +0 -1
  73. package/core/platform/custom-objects/lifecycle.d.mts +0 -83
  74. package/core/platform/custom-objects/lifecycle.d.mts.map +0 -1
  75. package/core/platform/custom-objects/lifecycle.d.ts +0 -83
  76. package/core/platform/custom-objects/lifecycle.d.ts.map +0 -1
  77. package/core/platform/custom-objects/lifecycle.js +0 -372
  78. package/core/platform/custom-objects/lifecycle.js.map +0 -1
  79. package/core/platform/custom-objects/lifecycle.mjs +0 -367
  80. package/core/platform/custom-objects/lifecycle.mjs.map +0 -1
  81. package/core/platform/custom-objects/manager.d.mts +0 -354
  82. package/core/platform/custom-objects/manager.d.mts.map +0 -1
  83. package/core/platform/custom-objects/manager.d.ts +0 -354
  84. package/core/platform/custom-objects/manager.d.ts.map +0 -1
  85. package/core/platform/custom-objects/manager.js +0 -646
  86. package/core/platform/custom-objects/manager.js.map +0 -1
  87. package/core/platform/custom-objects/manager.mjs +0 -637
  88. package/core/platform/custom-objects/manager.mjs.map +0 -1
  89. package/core/platform/custom-objects/provisioning.d.mts +0 -138
  90. package/core/platform/custom-objects/provisioning.d.mts.map +0 -1
  91. package/core/platform/custom-objects/provisioning.d.ts +0 -138
  92. package/core/platform/custom-objects/provisioning.d.ts.map +0 -1
  93. package/core/platform/custom-objects/provisioning.js +0 -455
  94. package/core/platform/custom-objects/provisioning.js.map +0 -1
  95. package/core/platform/custom-objects/provisioning.mjs +0 -447
  96. package/core/platform/custom-objects/provisioning.mjs.map +0 -1
  97. package/core/platform/custom-objects/rql.d.mts +0 -122
  98. package/core/platform/custom-objects/rql.d.mts.map +0 -1
  99. package/core/platform/custom-objects/rql.d.ts +0 -122
  100. package/core/platform/custom-objects/rql.d.ts.map +0 -1
  101. package/core/platform/custom-objects/rql.js +0 -225
  102. package/core/platform/custom-objects/rql.js.map +0 -1
  103. package/core/platform/custom-objects/rql.mjs +0 -222
  104. package/core/platform/custom-objects/rql.mjs.map +0 -1
  105. package/core/platform/custom-objects/schema-manager.d.mts +0 -203
  106. package/core/platform/custom-objects/schema-manager.d.mts.map +0 -1
  107. package/core/platform/custom-objects/schema-manager.d.ts +0 -203
  108. package/core/platform/custom-objects/schema-manager.d.ts.map +0 -1
  109. package/core/platform/custom-objects/schema-manager.js +0 -256
  110. package/core/platform/custom-objects/schema-manager.js.map +0 -1
  111. package/core/platform/custom-objects/schema-manager.mjs +0 -249
  112. package/core/platform/custom-objects/schema-manager.mjs.map +0 -1
  113. package/core/platform/custom-objects/typed-rql.d.mts +0 -157
  114. package/core/platform/custom-objects/typed-rql.d.mts.map +0 -1
  115. package/core/platform/custom-objects/typed-rql.d.ts +0 -157
  116. package/core/platform/custom-objects/typed-rql.d.ts.map +0 -1
  117. package/core/platform/custom-objects/typed-rql.js +0 -583
  118. package/core/platform/custom-objects/typed-rql.js.map +0 -1
  119. package/core/platform/custom-objects/typed-rql.mjs +0 -580
  120. package/core/platform/custom-objects/typed-rql.mjs.map +0 -1
  121. package/core/platform/custom-objects/types.d.mts +0 -549
  122. package/core/platform/custom-objects/types.d.mts.map +0 -1
  123. package/core/platform/custom-objects/types.d.ts +0 -549
  124. package/core/platform/custom-objects/types.d.ts.map +0 -1
  125. package/core/platform/custom-objects/types.js +0 -20
  126. package/core/platform/custom-objects/types.js.map +0 -1
  127. package/core/platform/custom-objects/types.mjs +0 -17
  128. package/core/platform/custom-objects/types.mjs.map +0 -1
  129. package/core/platform/custom-objects/validation.d.mts +0 -97
  130. package/core/platform/custom-objects/validation.d.mts.map +0 -1
  131. package/core/platform/custom-objects/validation.d.ts +0 -97
  132. package/core/platform/custom-objects/validation.d.ts.map +0 -1
  133. package/core/platform/custom-objects/validation.js +0 -477
  134. package/core/platform/custom-objects/validation.js.map +0 -1
  135. package/core/platform/custom-objects/validation.mjs +0 -465
  136. package/core/platform/custom-objects/validation.mjs.map +0 -1
  137. package/core/platform/custom-objects.d.mts +0 -67
  138. package/core/platform/custom-objects.d.mts.map +0 -1
  139. package/core/platform/custom-objects.d.ts +0 -67
  140. package/core/platform/custom-objects.d.ts.map +0 -1
  141. package/core/platform/custom-objects.js +0 -118
  142. package/core/platform/custom-objects.js.map +0 -1
  143. package/core/platform/custom-objects.mjs +0 -45
  144. package/core/platform/custom-objects.mjs.map +0 -1
  145. package/core/platform/manifest/custom-objects/action.d.mts +0 -58
  146. package/core/platform/manifest/custom-objects/action.d.mts.map +0 -1
  147. package/core/platform/manifest/custom-objects/action.d.ts +0 -58
  148. package/core/platform/manifest/custom-objects/action.d.ts.map +0 -1
  149. package/core/platform/manifest/custom-objects/action.js +0 -44
  150. package/core/platform/manifest/custom-objects/action.js.map +0 -1
  151. package/core/platform/manifest/custom-objects/action.mjs +0 -40
  152. package/core/platform/manifest/custom-objects/action.mjs.map +0 -1
  153. package/core/platform/manifest/custom-objects/conditions.d.mts +0 -240
  154. package/core/platform/manifest/custom-objects/conditions.d.mts.map +0 -1
  155. package/core/platform/manifest/custom-objects/conditions.d.ts +0 -240
  156. package/core/platform/manifest/custom-objects/conditions.d.ts.map +0 -1
  157. package/core/platform/manifest/custom-objects/conditions.js +0 -326
  158. package/core/platform/manifest/custom-objects/conditions.js.map +0 -1
  159. package/core/platform/manifest/custom-objects/conditions.mjs +0 -321
  160. package/core/platform/manifest/custom-objects/conditions.mjs.map +0 -1
  161. package/core/platform/manifest/custom-objects/existing.d.mts +0 -87
  162. package/core/platform/manifest/custom-objects/existing.d.mts.map +0 -1
  163. package/core/platform/manifest/custom-objects/existing.d.ts +0 -87
  164. package/core/platform/manifest/custom-objects/existing.d.ts.map +0 -1
  165. package/core/platform/manifest/custom-objects/existing.js +0 -113
  166. package/core/platform/manifest/custom-objects/existing.js.map +0 -1
  167. package/core/platform/manifest/custom-objects/existing.mjs +0 -109
  168. package/core/platform/manifest/custom-objects/existing.mjs.map +0 -1
  169. package/core/platform/manifest/custom-objects/field-resolution.d.mts +0 -48
  170. package/core/platform/manifest/custom-objects/field-resolution.d.mts.map +0 -1
  171. package/core/platform/manifest/custom-objects/field-resolution.d.ts +0 -48
  172. package/core/platform/manifest/custom-objects/field-resolution.d.ts.map +0 -1
  173. package/core/platform/manifest/custom-objects/field-resolution.js +0 -61
  174. package/core/platform/manifest/custom-objects/field-resolution.js.map +0 -1
  175. package/core/platform/manifest/custom-objects/field-resolution.mjs +0 -58
  176. package/core/platform/manifest/custom-objects/field-resolution.mjs.map +0 -1
  177. package/core/platform/manifest/custom-objects/function-file.d.mts +0 -87
  178. package/core/platform/manifest/custom-objects/function-file.d.mts.map +0 -1
  179. package/core/platform/manifest/custom-objects/function-file.d.ts +0 -87
  180. package/core/platform/manifest/custom-objects/function-file.d.ts.map +0 -1
  181. package/core/platform/manifest/custom-objects/function-file.js +0 -76
  182. package/core/platform/manifest/custom-objects/function-file.js.map +0 -1
  183. package/core/platform/manifest/custom-objects/function-file.mjs +0 -69
  184. package/core/platform/manifest/custom-objects/function-file.mjs.map +0 -1
  185. package/core/platform/manifest/custom-objects/list-view.d.mts +0 -65
  186. package/core/platform/manifest/custom-objects/list-view.d.mts.map +0 -1
  187. package/core/platform/manifest/custom-objects/list-view.d.ts +0 -65
  188. package/core/platform/manifest/custom-objects/list-view.d.ts.map +0 -1
  189. package/core/platform/manifest/custom-objects/list-view.js +0 -33
  190. package/core/platform/manifest/custom-objects/list-view.js.map +0 -1
  191. package/core/platform/manifest/custom-objects/list-view.mjs +0 -30
  192. package/core/platform/manifest/custom-objects/list-view.mjs.map +0 -1
  193. package/core/platform/manifest/custom-objects/object-list-page.d.mts +0 -43
  194. package/core/platform/manifest/custom-objects/object-list-page.d.mts.map +0 -1
  195. package/core/platform/manifest/custom-objects/object-list-page.d.ts +0 -43
  196. package/core/platform/manifest/custom-objects/object-list-page.d.ts.map +0 -1
  197. package/core/platform/manifest/custom-objects/object-list-page.js +0 -54
  198. package/core/platform/manifest/custom-objects/object-list-page.js.map +0 -1
  199. package/core/platform/manifest/custom-objects/object-list-page.mjs +0 -50
  200. package/core/platform/manifest/custom-objects/object-list-page.mjs.map +0 -1
  201. package/core/platform/manifest/custom-objects/page-layout.d.mts +0 -142
  202. package/core/platform/manifest/custom-objects/page-layout.d.mts.map +0 -1
  203. package/core/platform/manifest/custom-objects/page-layout.d.ts +0 -142
  204. package/core/platform/manifest/custom-objects/page-layout.d.ts.map +0 -1
  205. package/core/platform/manifest/custom-objects/page-layout.js +0 -184
  206. package/core/platform/manifest/custom-objects/page-layout.js.map +0 -1
  207. package/core/platform/manifest/custom-objects/page-layout.mjs +0 -180
  208. package/core/platform/manifest/custom-objects/page-layout.mjs.map +0 -1
  209. package/core/platform/manifest/custom-objects/register.d.mts +0 -87
  210. package/core/platform/manifest/custom-objects/register.d.mts.map +0 -1
  211. package/core/platform/manifest/custom-objects/register.d.ts +0 -87
  212. package/core/platform/manifest/custom-objects/register.d.ts.map +0 -1
  213. package/core/platform/manifest/custom-objects/register.js +0 -395
  214. package/core/platform/manifest/custom-objects/register.js.map +0 -1
  215. package/core/platform/manifest/custom-objects/register.mjs +0 -391
  216. package/core/platform/manifest/custom-objects/register.mjs.map +0 -1
  217. package/core/platform/manifest/custom-objects/rule.d.mts +0 -113
  218. package/core/platform/manifest/custom-objects/rule.d.mts.map +0 -1
  219. package/core/platform/manifest/custom-objects/rule.d.ts +0 -113
  220. package/core/platform/manifest/custom-objects/rule.d.ts.map +0 -1
  221. package/core/platform/manifest/custom-objects/rule.js +0 -49
  222. package/core/platform/manifest/custom-objects/rule.js.map +0 -1
  223. package/core/platform/manifest/custom-objects/rule.mjs +0 -45
  224. package/core/platform/manifest/custom-objects/rule.mjs.map +0 -1
  225. package/core/platform/manifest/custom-objects/sdui-page.d.mts +0 -214
  226. package/core/platform/manifest/custom-objects/sdui-page.d.mts.map +0 -1
  227. package/core/platform/manifest/custom-objects/sdui-page.d.ts +0 -214
  228. package/core/platform/manifest/custom-objects/sdui-page.d.ts.map +0 -1
  229. package/core/platform/manifest/custom-objects/sdui-page.js +0 -194
  230. package/core/platform/manifest/custom-objects/sdui-page.js.map +0 -1
  231. package/core/platform/manifest/custom-objects/sdui-page.mjs +0 -182
  232. package/core/platform/manifest/custom-objects/sdui-page.mjs.map +0 -1
  233. package/core/platform/manifest/custom-objects/typed-condition.d.mts +0 -28
  234. package/core/platform/manifest/custom-objects/typed-condition.d.mts.map +0 -1
  235. package/core/platform/manifest/custom-objects/typed-condition.d.ts +0 -28
  236. package/core/platform/manifest/custom-objects/typed-condition.d.ts.map +0 -1
  237. package/core/platform/manifest/custom-objects/typed-condition.js +0 -434
  238. package/core/platform/manifest/custom-objects/typed-condition.js.map +0 -1
  239. package/core/platform/manifest/custom-objects/typed-condition.mjs +0 -431
  240. package/core/platform/manifest/custom-objects/typed-condition.mjs.map +0 -1
  241. package/core/platform/manifest/custom-objects/types.d.mts +0 -29
  242. package/core/platform/manifest/custom-objects/types.d.mts.map +0 -1
  243. package/core/platform/manifest/custom-objects/types.d.ts +0 -29
  244. package/core/platform/manifest/custom-objects/types.d.ts.map +0 -1
  245. package/core/platform/manifest/custom-objects/types.js +0 -3
  246. package/core/platform/manifest/custom-objects/types.js.map +0 -1
  247. package/core/platform/manifest/custom-objects/types.mjs +0 -2
  248. package/core/platform/manifest/custom-objects/types.mjs.map +0 -1
  249. package/core/platform/manifest/custom-objects/validation.d.mts +0 -44
  250. package/core/platform/manifest/custom-objects/validation.d.mts.map +0 -1
  251. package/core/platform/manifest/custom-objects/validation.d.ts +0 -44
  252. package/core/platform/manifest/custom-objects/validation.d.ts.map +0 -1
  253. package/core/platform/manifest/custom-objects/validation.js +0 -30
  254. package/core/platform/manifest/custom-objects/validation.js.map +0 -1
  255. package/core/platform/manifest/custom-objects/validation.mjs +0 -27
  256. package/core/platform/manifest/custom-objects/validation.mjs.map +0 -1
  257. package/core/platform/manifest/custom-objects/workflow.d.mts +0 -47
  258. package/core/platform/manifest/custom-objects/workflow.d.mts.map +0 -1
  259. package/core/platform/manifest/custom-objects/workflow.d.ts +0 -47
  260. package/core/platform/manifest/custom-objects/workflow.d.ts.map +0 -1
  261. package/core/platform/manifest/custom-objects/workflow.js +0 -38
  262. package/core/platform/manifest/custom-objects/workflow.js.map +0 -1
  263. package/core/platform/manifest/custom-objects/workflow.mjs +0 -34
  264. package/core/platform/manifest/custom-objects/workflow.mjs.map +0 -1
  265. package/core/platform/manifest/custom-objects.d.mts +0 -85
  266. package/core/platform/manifest/custom-objects.d.mts.map +0 -1
  267. package/core/platform/manifest/custom-objects.d.ts +0 -85
  268. package/core/platform/manifest/custom-objects.d.ts.map +0 -1
  269. package/core/platform/manifest/custom-objects.js +0 -84
  270. package/core/platform/manifest/custom-objects.js.map +0 -1
  271. package/core/platform/manifest/custom-objects.mjs +0 -55
  272. package/core/platform/manifest/custom-objects.mjs.map +0 -1
  273. package/examples/manifest/custom-object-creation-workflow/functions/intake-request-created.ts +0 -20
  274. package/examples/manifest/custom-object-creation-workflow/schema.ts +0 -29
  275. package/examples/manifest/dental-practice-management/schema.ts +0 -298
  276. package/examples/manifest/field-service-dispatch/schema.ts +0 -248
  277. package/examples/manifest/grant-program-management/schema.ts +0 -269
  278. package/examples/manifest/gym-membership-management/schema.ts +0 -266
  279. package/examples/manifest/procurement-approval-hub/functions/route-purchase-request.ts +0 -20
  280. package/examples/manifest/procurement-approval-hub/schema.ts +0 -256
  281. package/examples/manifest/simple-todo-app/schema.ts +0 -60
  282. package/examples/manifest/todo-app-without-object-list-view/schema.ts +0 -28
  283. package/src/core/platform/README.md +0 -20
  284. package/src/core/platform/custom-objects/category.ts +0 -294
  285. package/src/core/platform/custom-objects/definition.ts +0 -373
  286. package/src/core/platform/custom-objects/fields.ts +0 -653
  287. package/src/core/platform/custom-objects/function-runtime.ts +0 -76
  288. package/src/core/platform/custom-objects/lifecycle.ts +0 -557
  289. package/src/core/platform/custom-objects/manager.ts +0 -959
  290. package/src/core/platform/custom-objects/provisioning.ts +0 -672
  291. package/src/core/platform/custom-objects/rql.ts +0 -375
  292. package/src/core/platform/custom-objects/schema-manager.ts +0 -351
  293. package/src/core/platform/custom-objects/typed-rql.ts +0 -1273
  294. package/src/core/platform/custom-objects/types.ts +0 -753
  295. package/src/core/platform/custom-objects/validation.ts +0 -573
  296. package/src/core/platform/custom-objects.ts +0 -269
  297. package/src/core/platform/manifest/README.md +0 -26
  298. package/src/core/platform/manifest/custom-objects/action.ts +0 -87
  299. package/src/core/platform/manifest/custom-objects/conditions.ts +0 -762
  300. package/src/core/platform/manifest/custom-objects/existing.ts +0 -221
  301. package/src/core/platform/manifest/custom-objects/field-resolution.ts +0 -116
  302. package/src/core/platform/manifest/custom-objects/function-file.ts +0 -149
  303. package/src/core/platform/manifest/custom-objects/list-view.ts +0 -95
  304. package/src/core/platform/manifest/custom-objects/object-list-page.ts +0 -87
  305. package/src/core/platform/manifest/custom-objects/page-layout.ts +0 -380
  306. package/src/core/platform/manifest/custom-objects/register.ts +0 -555
  307. package/src/core/platform/manifest/custom-objects/rule.ts +0 -192
  308. package/src/core/platform/manifest/custom-objects/sdui-page.ts +0 -515
  309. package/src/core/platform/manifest/custom-objects/typed-condition.ts +0 -617
  310. package/src/core/platform/manifest/custom-objects/types.ts +0 -92
  311. package/src/core/platform/manifest/custom-objects/validation.ts +0 -70
  312. package/src/core/platform/manifest/custom-objects/workflow.ts +0 -71
  313. package/src/core/platform/manifest/custom-objects.ts +0 -203
  314. package/src/pebble-sdui-web-custom-apps-shim.d.ts +0 -3
@@ -1,580 +0,0 @@
1
- const STANDARD_TYPED_RQL_FIELDS = [
2
- 'id',
3
- 'name',
4
- 'created_at',
5
- 'updated_at',
6
- 'system_updated_at',
7
- 'external_id',
8
- 'owner_role',
9
- 'created_by',
10
- 'last_modified_by',
11
- ];
12
- const STANDARD_LOOKUP_FIELDS = new Set(['owner_role', 'created_by', 'last_modified_by']);
13
- /**
14
- * Returns whether one character should be treated as parser whitespace.
15
- *
16
- * @param char - Candidate source character.
17
- * @returns Whether the parser should skip this character outside literals.
18
- */
19
- function isWhitespace(char) {
20
- return char === ' ' || char === '\n' || char === '\t' || char === '\r';
21
- }
22
- /**
23
- * Advances the parser cursor past any contiguous whitespace.
24
- *
25
- * @param state - Mutable parser cursor to advance in place.
26
- */
27
- function skipWhitespace(state) {
28
- while (state.index < state.text.length && isWhitespace(state.text[state.index])) {
29
- state.index += 1;
30
- }
31
- }
32
- /**
33
- * Checks whether the parser cursor is currently positioned at one complete RQL keyword token.
34
- *
35
- * @param state - Mutable parser cursor whose current position should be checked.
36
- * @param keyword - Uppercase keyword token to match, such as `AND`, `OR`, or `NULL`.
37
- * @returns Whether the cursor is positioned at that complete keyword token.
38
- */
39
- function startsWithKeyword(state, keyword) {
40
- const source = state.text.slice(state.index, state.index + keyword.length);
41
- if (source.toUpperCase() !== keyword)
42
- return false;
43
- const next = state.text[state.index + keyword.length];
44
- if (next == null)
45
- return true;
46
- return isWhitespace(next) || next === ')' || next === ']' || next === ',';
47
- }
48
- /**
49
- * Consumes one keyword token when it is present at the current parser cursor.
50
- *
51
- * @param state - Mutable parser cursor to update in place.
52
- * @param keyword - Uppercase keyword token to consume.
53
- * @returns Whether the keyword was present and therefore consumed.
54
- */
55
- function consumeKeyword(state, keyword) {
56
- skipWhitespace(state);
57
- if (!startsWithKeyword(state, keyword))
58
- return false;
59
- state.index += keyword.length;
60
- return true;
61
- }
62
- /**
63
- * Consumes one specific punctuation character when it is present at the current parser cursor.
64
- *
65
- * @param state - Mutable parser cursor to update in place.
66
- * @param char - Expected punctuation character, such as `(`, `)`, `[`, `]`, or `,`.
67
- * @returns Whether the character was present and therefore consumed.
68
- */
69
- function consumeCharacter(state, char) {
70
- skipWhitespace(state);
71
- if (state.text[state.index] !== char)
72
- return false;
73
- state.index += 1;
74
- return true;
75
- }
76
- /**
77
- * Requires one specific punctuation character at the current parser cursor.
78
- *
79
- * @param state - Mutable parser cursor to validate and update in place.
80
- * @param char - Required punctuation character.
81
- * @throws Error when the required character is not present.
82
- */
83
- function expectCharacter(state, char) {
84
- if (!consumeCharacter(state, char)) {
85
- throw new Error(`Expected "${char}" at index ${state.index} while parsing RQL.`);
86
- }
87
- }
88
- /**
89
- * Parses one field identifier token from the current parser cursor.
90
- *
91
- * @param state - Mutable parser cursor to read and update in place.
92
- * @returns The parsed logical field name.
93
- * @throws Error when no identifier is present at the current cursor.
94
- */
95
- function parseIdentifier(state) {
96
- skipWhitespace(state);
97
- const start = state.index;
98
- while (state.index < state.text.length) {
99
- const char = state.text[state.index];
100
- if (!/[A-Za-z0-9_]/.test(char))
101
- break;
102
- state.index += 1;
103
- }
104
- if (state.index === start) {
105
- throw new Error(`Expected a field name at index ${state.index} while parsing RQL.`);
106
- }
107
- return state.text.slice(start, state.index);
108
- }
109
- /**
110
- * Parses one quoted string literal, including backslash escapes.
111
- *
112
- * @param state - Mutable parser cursor positioned at the opening single quote.
113
- * @returns Parsed runtime string-literal node.
114
- * @throws Error when the string literal is unterminated or contains an unterminated escape.
115
- */
116
- function parseStringLiteral(state) {
117
- expectCharacter(state, "'");
118
- let value = '';
119
- while (state.index < state.text.length) {
120
- const char = state.text[state.index];
121
- state.index += 1;
122
- if (char === '\\') {
123
- const next = state.text[state.index];
124
- if (next == null) {
125
- throw new Error('Unterminated escape sequence in RQL string literal.');
126
- }
127
- value += next;
128
- state.index += 1;
129
- continue;
130
- }
131
- if (char === "'") {
132
- return { kind: 'string', value };
133
- }
134
- value += char;
135
- }
136
- throw new Error('Unterminated RQL string literal.');
137
- }
138
- /**
139
- * Parses one numeric literal from the current parser cursor.
140
- *
141
- * @param state - Mutable parser cursor to read and update in place.
142
- * @returns Parsed runtime numeric-literal node.
143
- * @throws Error when no supported numeric literal is present.
144
- */
145
- function parseNumberLiteral(state) {
146
- skipWhitespace(state);
147
- const remainder = state.text.slice(state.index);
148
- const match = remainder.match(/^-?(?:\d*\.\d+|\d+)(?:[Ee][+-]?\d+)?/);
149
- if (match == null) {
150
- throw new Error(`Expected a numeric literal at index ${state.index} while parsing RQL.`);
151
- }
152
- state.index += match[0].length;
153
- return { kind: 'number', value: Number(match[0]) };
154
- }
155
- /**
156
- * Parses one scalar literal: string, number, boolean, or null.
157
- *
158
- * @param state - Mutable parser cursor to read and update in place.
159
- * @returns Parsed runtime scalar-literal node.
160
- */
161
- function parseScalarLiteral(state) {
162
- skipWhitespace(state);
163
- const next = state.text[state.index];
164
- if (next === "'")
165
- return parseStringLiteral(state);
166
- if (startsWithKeyword(state, 'TRUE')) {
167
- state.index += 4;
168
- return { kind: 'boolean', value: true };
169
- }
170
- if (startsWithKeyword(state, 'FALSE')) {
171
- state.index += 5;
172
- return { kind: 'boolean', value: false };
173
- }
174
- if (startsWithKeyword(state, 'NULL')) {
175
- state.index += 4;
176
- return { kind: 'null', value: null };
177
- }
178
- return parseNumberLiteral(state);
179
- }
180
- /**
181
- * Parses one array literal containing zero or more scalar literal elements.
182
- *
183
- * @param state - Mutable parser cursor positioned at the opening `[`.
184
- * @returns Parsed runtime array-literal node.
185
- */
186
- function parseArrayLiteral(state) {
187
- expectCharacter(state, '[');
188
- const values = [];
189
- skipWhitespace(state);
190
- if (consumeCharacter(state, ']')) {
191
- return { kind: 'array', value: values };
192
- }
193
- while (true) {
194
- values.push(parseScalarLiteral(state));
195
- skipWhitespace(state);
196
- if (consumeCharacter(state, ']')) {
197
- return { kind: 'array', value: values };
198
- }
199
- expectCharacter(state, ',');
200
- }
201
- }
202
- /**
203
- * Parses either one scalar literal or one array literal at the current parser cursor.
204
- *
205
- * @param state - Mutable parser cursor to read and update in place.
206
- * @returns Parsed runtime literal node.
207
- */
208
- function parseLiteral(state) {
209
- skipWhitespace(state);
210
- if (state.text[state.index] === '[') {
211
- return parseArrayLiteral(state);
212
- }
213
- return parseScalarLiteral(state);
214
- }
215
- /**
216
- * Parses one supported comparison operator token in longest-first order.
217
- *
218
- * @param state - Mutable parser cursor to read and update in place.
219
- * @returns Parsed comparison operator token.
220
- * @throws Error when no supported operator is present.
221
- */
222
- function parseOperator(state) {
223
- skipWhitespace(state);
224
- for (const operator of ['NOT_IN', 'IN', '==', '!=', '<=', '>=', '<', '>']) {
225
- if (state.text.slice(state.index, state.index + operator.length).toUpperCase() === operator) {
226
- state.index += operator.length;
227
- return operator;
228
- }
229
- }
230
- throw new Error(`Expected an RQL operator at index ${state.index}.`);
231
- }
232
- /**
233
- * Parses one full comparison clause.
234
- *
235
- * @param state - Mutable parser cursor positioned at the start of one comparison expression.
236
- * @returns Parsed runtime comparison node.
237
- */
238
- function parseComparison(state) {
239
- const field = parseIdentifier(state);
240
- const operator = parseOperator(state);
241
- const value = parseLiteral(state);
242
- return { kind: 'comparison', field, operator, value };
243
- }
244
- /**
245
- * Parses one parenthesized subexpression or leaf comparison expression.
246
- *
247
- * @param state - Mutable parser cursor positioned at the next primary expression.
248
- * @returns Parsed runtime expression node.
249
- */
250
- function parsePrimary(state) {
251
- skipWhitespace(state);
252
- if (consumeCharacter(state, '(')) {
253
- const expression = parseOrExpression(state);
254
- expectCharacter(state, ')');
255
- return expression;
256
- }
257
- return parseComparison(state);
258
- }
259
- /**
260
- * Parses one NOT-prefixed expression, recursing to preserve unary precedence.
261
- *
262
- * @param state - Mutable parser cursor positioned at the next unary expression.
263
- * @returns Parsed runtime expression node.
264
- */
265
- function parseNotExpression(state) {
266
- skipWhitespace(state);
267
- if (consumeKeyword(state, 'NOT')) {
268
- return { kind: 'not', operand: parseNotExpression(state) };
269
- }
270
- return parsePrimary(state);
271
- }
272
- /**
273
- * Parses one AND-composed expression group.
274
- *
275
- * @param state - Mutable parser cursor positioned at the next AND-precedence expression.
276
- * @returns Parsed runtime expression node, collapsed when only one operand is present.
277
- */
278
- function parseAndExpression(state) {
279
- const operands = [parseNotExpression(state)];
280
- while (true) {
281
- const checkpoint = state.index;
282
- if (!consumeKeyword(state, 'AND')) {
283
- state.index = checkpoint;
284
- break;
285
- }
286
- operands.push(parseNotExpression(state));
287
- }
288
- return operands.length === 1 ?
289
- operands[0]
290
- : { kind: 'logical', operator: 'AND', operands };
291
- }
292
- /**
293
- * Parses one OR-composed expression group, the lowest-precedence logical form.
294
- *
295
- * @param state - Mutable parser cursor positioned at the next OR-precedence expression.
296
- * @returns Parsed runtime expression node, collapsed when only one operand is present.
297
- */
298
- function parseOrExpression(state) {
299
- const operands = [parseAndExpression(state)];
300
- while (true) {
301
- const checkpoint = state.index;
302
- if (!consumeKeyword(state, 'OR')) {
303
- state.index = checkpoint;
304
- break;
305
- }
306
- operands.push(parseAndExpression(state));
307
- }
308
- return operands.length === 1 ?
309
- operands[0]
310
- : { kind: 'logical', operator: 'OR', operands };
311
- }
312
- /**
313
- * Parses one complete parsed-string RQL expression into the runtime AST.
314
- *
315
- * @param text - Logical-name RQL source string to parse.
316
- * @returns Parsed runtime expression tree.
317
- * @throws Error when the expression is malformed or contains trailing content.
318
- */
319
- function parseTypedRqlExpression(text) {
320
- const state = { text, index: 0 };
321
- const expression = parseOrExpression(state);
322
- skipWhitespace(state);
323
- if (state.index !== state.text.length) {
324
- throw new Error(`Unexpected trailing RQL content starting at index ${state.index}: ${state.text.slice(state.index)}.`);
325
- }
326
- return expression;
327
- }
328
- /**
329
- * Resolves the runtime validation/rendering metadata for one logical field name.
330
- *
331
- * @param definition - Object definition that owns the valid field set.
332
- * @param fieldName - Logical field name referenced by the parsed expression.
333
- * @returns Runtime metadata used to validate literals and render wire-level field names.
334
- * @throws Error when the field name is unknown for the supplied definition.
335
- */
336
- function resolveRuntimeFieldMetadata(definition, fieldName) {
337
- if (STANDARD_TYPED_RQL_FIELDS.includes(fieldName)) {
338
- return {
339
- apiName: fieldName,
340
- category: STANDARD_LOOKUP_FIELDS.has(fieldName) ? 'lookup' : 'string',
341
- };
342
- }
343
- const field = definition.fields[fieldName];
344
- if (field == null) {
345
- throw new Error(`Unknown field "${fieldName}" for "${definition.apiName}". Valid fields: ${[
346
- ...STANDARD_TYPED_RQL_FIELDS,
347
- ...Object.keys(definition.fields).sort(),
348
- ].join(', ')}.`);
349
- }
350
- switch (field.kind) {
351
- case 'text':
352
- case 'long-text':
353
- case 'email':
354
- case 'url':
355
- case 'phone':
356
- case 'date':
357
- case 'datetime':
358
- case 'time':
359
- case 'radio':
360
- case 'formula-text':
361
- case 'formula-date':
362
- case 'formula-url':
363
- return { apiName: field.apiName, category: 'string' };
364
- case 'number':
365
- case 'currency':
366
- case 'percentage':
367
- case 'formula-number':
368
- case 'formula-currency':
369
- case 'formula-percentage':
370
- return { apiName: field.apiName, category: 'number' };
371
- case 'boolean':
372
- case 'formula-boolean':
373
- return { apiName: field.apiName, category: 'boolean' };
374
- case 'lookup':
375
- case 'parent-child':
376
- return { apiName: field.apiName, category: 'lookup' };
377
- default:
378
- return { apiName: field.apiName, category: 'unsupported' };
379
- }
380
- }
381
- /**
382
- * Describes the literal form a runtime field category accepts in human-readable errors.
383
- *
384
- * @param category - Runtime field category being validated.
385
- * @returns Human-readable description of the expected literal form.
386
- */
387
- function describeRuntimeExpectedLiteral(category) {
388
- switch (category) {
389
- case 'string':
390
- return "a quoted string literal such as 'Ada'";
391
- case 'number':
392
- return 'a numeric literal such as 14';
393
- case 'boolean':
394
- return 'a boolean literal: True or False';
395
- case 'lookup':
396
- return "a quoted record-id string such as 'rec_123'";
397
- default:
398
- return 'a supported literal value';
399
- }
400
- }
401
- /**
402
- * Describes one parsed literal value in human-readable runtime errors.
403
- *
404
- * @param literal - Parsed literal value to describe.
405
- * @returns Human-readable description of the provided literal.
406
- */
407
- function describeRuntimeLiteral(literal) {
408
- switch (literal.kind) {
409
- case 'string':
410
- return `quoted string ${encodeTypedRqlString(literal.value)}`;
411
- case 'number':
412
- return `number ${String(literal.value)}`;
413
- case 'boolean':
414
- return `boolean ${literal.value ? 'True' : 'False'}`;
415
- case 'null':
416
- return 'null';
417
- case 'array':
418
- return `array ${renderTypedRqlLiteral(literal)}`;
419
- }
420
- }
421
- /**
422
- * Enforces that one parsed literal/operator pairing is valid for the field category.
423
- *
424
- * @param fieldName - Logical field name used in user-facing error messages.
425
- * @param category - Runtime category inferred for that field.
426
- * @param operator - Comparison operator applied to the field.
427
- * @param literal - Parsed literal value supplied on the right-hand side.
428
- * @throws Error when the operator/literal combination is invalid for the field category.
429
- */
430
- function assertLiteralMatchesCategory(fieldName, category, operator, literal) {
431
- if (category === 'unsupported') {
432
- throw new Error('typedRql(...) does not yet support this field kind in parsed-string mode.');
433
- }
434
- if (operator === 'IN' || operator === 'NOT_IN') {
435
- if (literal.kind !== 'array') {
436
- throw new Error(`RQL field "${fieldName}" with operator "${operator}" requires an array literal such as ['value']; received ${describeRuntimeLiteral(literal)}.`);
437
- }
438
- if (literal.value.length === 0) {
439
- throw new Error(`RQL field "${fieldName}" with operator "${operator}" requires a non-empty array literal such as ['value'].`);
440
- }
441
- for (const value of literal.value) {
442
- assertLiteralMatchesCategory(fieldName, category, '==', value);
443
- }
444
- return;
445
- }
446
- if (literal.kind === 'null') {
447
- if (operator === '<' || operator === '<=' || operator === '>' || operator === '>=') {
448
- throw new Error(`RQL field "${fieldName}" with operator "${operator}" does not allow null. Use a concrete ${describeRuntimeExpectedLiteral(category)}.`);
449
- }
450
- return;
451
- }
452
- if ((operator === '<' || operator === '<=' || operator === '>' || operator === '>=') &&
453
- !(category === 'string' || category === 'number')) {
454
- throw new Error(`RQL field "${fieldName}" uses operator "${operator}", which is only valid for string or number fields; this field expects ${describeRuntimeExpectedLiteral(category)}.`);
455
- }
456
- switch (category) {
457
- case 'string':
458
- if (literal.kind !== 'string') {
459
- throw new Error(`RQL field "${fieldName}" with operator "${operator}" expects ${describeRuntimeExpectedLiteral(category)}; received ${describeRuntimeLiteral(literal)}.`);
460
- }
461
- return;
462
- case 'number':
463
- if (literal.kind !== 'number') {
464
- throw new Error(`RQL field "${fieldName}" with operator "${operator}" expects ${describeRuntimeExpectedLiteral(category)}; received ${describeRuntimeLiteral(literal)}.`);
465
- }
466
- return;
467
- case 'boolean':
468
- if (literal.kind !== 'boolean') {
469
- throw new Error(`RQL field "${fieldName}" with operator "${operator}" expects ${describeRuntimeExpectedLiteral(category)}; received ${describeRuntimeLiteral(literal)}.`);
470
- }
471
- return;
472
- case 'lookup':
473
- if (literal.kind !== 'string') {
474
- throw new Error(`RQL field "${fieldName}" with operator "${operator}" expects ${describeRuntimeExpectedLiteral(category)}; received ${describeRuntimeLiteral(literal)}.`);
475
- }
476
- return;
477
- default:
478
- return;
479
- }
480
- }
481
- /**
482
- * Walks the runtime AST and validates each comparison against the object definition.
483
- *
484
- * @param definition - Object definition that owns the valid field set and field categories.
485
- * @param node - Parsed runtime AST node to validate.
486
- * @throws Error when any referenced field or literal/operator combination is invalid.
487
- */
488
- function validateTypedRqlAst(definition, node) {
489
- switch (node.kind) {
490
- case 'logical':
491
- for (const operand of node.operands)
492
- validateTypedRqlAst(definition, operand);
493
- return;
494
- case 'not':
495
- validateTypedRqlAst(definition, node.operand);
496
- return;
497
- case 'comparison': {
498
- const metadata = resolveRuntimeFieldMetadata(definition, node.field);
499
- assertLiteralMatchesCategory(node.field, metadata.category, node.operator, node.value);
500
- return;
501
- }
502
- }
503
- }
504
- /**
505
- * Escapes one string value back into backend-ready single-quoted RQL syntax.
506
- *
507
- * @param value - Raw string value to encode.
508
- * @returns Escaped single-quoted RQL literal text.
509
- */
510
- function encodeTypedRqlString(value) {
511
- return `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
512
- }
513
- /**
514
- * Renders one parsed literal value back into backend-ready RQL text.
515
- *
516
- * @param literal - Parsed literal node to render.
517
- * @returns Backend-ready RQL literal text.
518
- */
519
- function renderTypedRqlLiteral(literal) {
520
- switch (literal.kind) {
521
- case 'string':
522
- return encodeTypedRqlString(literal.value);
523
- case 'number':
524
- return String(literal.value);
525
- case 'boolean':
526
- return literal.value ? 'True' : 'False';
527
- case 'null':
528
- return 'null';
529
- case 'array':
530
- return `[${literal.value.map((value) => renderTypedRqlLiteral(value)).join(', ')}]`;
531
- }
532
- }
533
- /**
534
- * Renders the validated runtime AST back into backend-ready wire-level RQL.
535
- *
536
- * @param definition - Object definition that supplies wire-level field API names.
537
- * @param node - Parsed and validated runtime AST node to render.
538
- * @returns Backend-ready RQL expression string.
539
- */
540
- function renderTypedRqlAst(definition, node) {
541
- switch (node.kind) {
542
- case 'logical':
543
- return `(${node.operands
544
- .map((operand) => renderTypedRqlAst(definition, operand))
545
- .join(` ${node.operator} `)})`;
546
- case 'not':
547
- return `(NOT ${renderTypedRqlAst(definition, node.operand)})`;
548
- case 'comparison': {
549
- const metadata = resolveRuntimeFieldMetadata(definition, node.field);
550
- return `(${metadata.apiName} ${node.operator} ${renderTypedRqlLiteral(node.value)})`;
551
- }
552
- }
553
- }
554
- /**
555
- * Parses a constrained logical-name RQL string, validates it against the typed custom-object definition,
556
- * and renders a backend-ready RQL string that uses wire-level field api names.
557
- *
558
- * Supported parsed-string custom-object RQL contract:
559
- * - standard record fields and local custom-object fields
560
- * - `==`, `!=`, `<`, `<=`, `>`, `>=`, `IN`, `NOT_IN`
561
- * - `AND`, `OR`, `NOT`
562
- * - parentheses / grouping
563
- * - string / number / boolean / null / array literals
564
- * - lookup equality against quoted ids such as `owner_role == 'role_123'`
565
- *
566
- * This helper intentionally targets the SDK's documented custom-object subset
567
- * rather than the full universe of backend RQL features.
568
- *
569
- * @param definition - Object definition whose logical field names and value categories should be enforced.
570
- * @param expression - Constrained logical-name RQL source string to parse and render.
571
- * @returns Backend-ready RQL string that uses wire-level field API names.
572
- * @typeParam TDefinition - Object definition whose field names and value types should be enforced.
573
- * @typeParam TExpression - Candidate RQL expression string.
574
- */
575
- export function typedRql(definition, expression) {
576
- const ast = parseTypedRqlExpression(expression);
577
- validateTypedRqlAst(definition, ast);
578
- return renderTypedRqlAst(definition, ast);
579
- }
580
- //# sourceMappingURL=typed-rql.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typed-rql.mjs","sourceRoot":"","sources":["../../../src/core/platform/custom-objects/typed-rql.ts"],"names":[],"mappings":"AAEA,MAAM,yBAAyB,GAAG;IAChC,IAAI;IACJ,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,kBAAkB;CACV,CAAC;AAEX,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;AA2mBzF;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAA4B;IAClD,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAW,CAAC,EAAE,CAAC;QAC1F,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAA4B,EAAE,OAAe;IACtE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,KAA4B,EAAE,OAAe;IACnE,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAA4B,EAAE,IAAY;IAClE,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACnD,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAA4B,EAAE,IAAY;IACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,cAAc,KAAK,CAAC,KAAK,qBAAqB,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAA4B;IACnD,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAW,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM;QACtC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,KAAK,qBAAqB,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,KAA4B;IACtD,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAW,CAAC;QAC/C,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACjB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YACD,KAAK,IAAI,IAAI,CAAC;YACd,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;QACD,KAAK,IAAI,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,KAA4B;IACtD,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,CAAC,KAAK,qBAAqB,CAAC,CAAC;IAC3F,CAAC;IACD,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAA4B;IACtD,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACjB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACjB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACjB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAA4B;IACrD,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;QACD,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAA4B;IAChD,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACpC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAA4B;IACjD,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,KAAK,MAAM,QAAQ,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAU,EAAE,CAAC;QACnF,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC5F,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;YAC/B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAA4B;IACnD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAA4B;IAChD,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAA4B;IACtD,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAA4B;IACtD,MAAM,QAAQ,GAA8B,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;YACzB,MAAM;QACR,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACzB,QAAQ,CAAC,CAAC,CAA6B;QAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAA4B;IACrD,MAAM,QAAQ,GAA8B,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;YACzB,MAAM;QACR,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACzB,QAAQ,CAAC,CAAC,CAA6B;QAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,IAAY;IAC3C,MAAM,KAAK,GAA0B,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,qDAAqD,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,2BAA2B,CAClC,UAAqC,EACrC,SAAiB;IAEjB,IAAK,yBAA+C,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzE,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;SACtE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,SAA0C,CAAC,CAAC;IAC5E,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,kBAAkB,SAAS,UAAU,UAAU,CAAC,OAAO,oBAAoB;YACzE,GAAG,yBAAyB;YAC5B,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;SACzC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,CAAC;IACJ,CAAC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa;YAChB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxD,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,gBAAgB,CAAC;QACtB,KAAK,kBAAkB,CAAC;QACxB,KAAK,oBAAoB;YACvB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxD,KAAK,SAAS,CAAC;QACf,KAAK,iBAAiB;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACzD,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc;YACjB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxD;YACE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,8BAA8B,CAAC,QAA8B;IACpE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,uCAAuC,CAAC;QACjD,KAAK,QAAQ;YACX,OAAO,8BAA8B,CAAC;QACxC,KAAK,SAAS;YACZ,OAAO,kCAAkC,CAAC;QAC5C,KAAK,QAAQ;YACX,OAAO,6CAA6C,CAAC;QACvD;YACE,OAAO,2BAA2B,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,OAAyB;IACvD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,iBAAiB,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,KAAK,QAAQ;YACX,OAAO,UAAU,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,WAAW,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,SAAS,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,4BAA4B,CACnC,SAAiB,EACjB,QAA8B,EAC9B,QAA6C,EAC7C,OAAyB;IAEzB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,oBAAoB,QAAQ,2DAA2D,sBAAsB,CAClI,OAAO,CACR,GAAG,CACL,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,oBAAoB,QAAQ,yDAAyD,CAC7G,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,4BAA4B,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,oBAAoB,QAAQ,yCAAyC,8BAA8B,CACxH,QAAQ,CACT,GAAG,CACL,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,IACE,CAAC,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAI,CAAC;QAChF,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,EACjD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,oBAAoB,QAAQ,0EAA0E,8BAA8B,CACzJ,QAAQ,CACT,GAAG,CACL,CAAC;IACJ,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,oBAAoB,QAAQ,aAAa,8BAA8B,CAC5F,QAAQ,CACT,cAAc,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAClD,CAAC;YACJ,CAAC;YACD,OAAO;QACT,KAAK,QAAQ;YACX,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,oBAAoB,QAAQ,aAAa,8BAA8B,CAC5F,QAAQ,CACT,cAAc,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAClD,CAAC;YACJ,CAAC;YACD,OAAO;QACT,KAAK,SAAS;YACZ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,oBAAoB,QAAQ,aAAa,8BAA8B,CAC5F,QAAQ,CACT,cAAc,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAClD,CAAC;YACJ,CAAC;YACD,OAAO;QACT,KAAK,QAAQ;YACX,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,oBAAoB,QAAQ,aAAa,8BAA8B,CAC5F,QAAQ,CACT,cAAc,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAClD,CAAC;YACJ,CAAC;YACD,OAAO;QACT;YACE,OAAO;IACX,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,UAAqC,EAAE,IAA6B;IAC/F,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS;YACZ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ;gBAAE,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC9E,OAAO;QACT,KAAK,KAAK;YACR,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,OAAO;QACT,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,QAAQ,GAAG,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrE,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,OAAyB;IACtD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1C,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACxF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,UAAqC,EAAE,IAA6B;IAC7F,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,IAAI,IAAI,CAAC,QAAQ;iBACrB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;iBACxD,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC;QACnC,KAAK,KAAK;YACR,OAAO,QAAQ,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAChE,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,QAAQ,GAAG,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrE,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACvF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,QAAQ,CACtB,UAAuB,EACvB,UAAsD;IAEtD,MAAM,GAAG,GAAG,uBAAuB,CAAC,UAAoB,CAAC,CAAC;IAC1D,mBAAmB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC"}