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

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 (351) hide show
  1. package/client.d.mts +4 -4
  2. package/client.d.mts.map +1 -1
  3. package/client.d.ts +4 -4
  4. package/client.d.ts.map +1 -1
  5. package/client.js.map +1 -1
  6. package/client.mjs.map +1 -1
  7. package/core/platform/custom-objects/category.d.mts +125 -0
  8. package/core/platform/custom-objects/category.d.mts.map +1 -0
  9. package/core/platform/custom-objects/category.d.ts +125 -0
  10. package/core/platform/custom-objects/category.d.ts.map +1 -0
  11. package/core/platform/custom-objects/category.js +188 -0
  12. package/core/platform/custom-objects/category.js.map +1 -0
  13. package/core/platform/custom-objects/category.mjs +178 -0
  14. package/core/platform/custom-objects/category.mjs.map +1 -0
  15. package/core/platform/custom-objects/definition.d.mts +147 -0
  16. package/core/platform/custom-objects/definition.d.mts.map +1 -0
  17. package/core/platform/custom-objects/definition.d.ts +147 -0
  18. package/core/platform/custom-objects/definition.d.ts.map +1 -0
  19. package/core/platform/custom-objects/definition.js +200 -0
  20. package/core/platform/custom-objects/definition.js.map +1 -0
  21. package/core/platform/custom-objects/definition.mjs +190 -0
  22. package/core/platform/custom-objects/definition.mjs.map +1 -0
  23. package/core/platform/custom-objects/fields.d.mts +302 -0
  24. package/core/platform/custom-objects/fields.d.mts.map +1 -0
  25. package/core/platform/custom-objects/fields.d.ts +302 -0
  26. package/core/platform/custom-objects/fields.d.ts.map +1 -0
  27. package/core/platform/custom-objects/fields.js +369 -0
  28. package/core/platform/custom-objects/fields.js.map +1 -0
  29. package/core/platform/custom-objects/fields.mjs +347 -0
  30. package/core/platform/custom-objects/fields.mjs.map +1 -0
  31. package/core/platform/custom-objects/function-runtime.d.mts +42 -0
  32. package/core/platform/custom-objects/function-runtime.d.mts.map +1 -0
  33. package/core/platform/custom-objects/function-runtime.d.ts +42 -0
  34. package/core/platform/custom-objects/function-runtime.d.ts.map +1 -0
  35. package/core/platform/custom-objects/function-runtime.js +38 -0
  36. package/core/platform/custom-objects/function-runtime.js.map +1 -0
  37. package/core/platform/custom-objects/function-runtime.mjs +35 -0
  38. package/core/platform/custom-objects/function-runtime.mjs.map +1 -0
  39. package/core/platform/custom-objects/lifecycle.d.mts +83 -0
  40. package/core/platform/custom-objects/lifecycle.d.mts.map +1 -0
  41. package/core/platform/custom-objects/lifecycle.d.ts +83 -0
  42. package/core/platform/custom-objects/lifecycle.d.ts.map +1 -0
  43. package/core/platform/custom-objects/lifecycle.js +372 -0
  44. package/core/platform/custom-objects/lifecycle.js.map +1 -0
  45. package/core/platform/custom-objects/lifecycle.mjs +367 -0
  46. package/core/platform/custom-objects/lifecycle.mjs.map +1 -0
  47. package/core/platform/custom-objects/manager.d.mts +354 -0
  48. package/core/platform/custom-objects/manager.d.mts.map +1 -0
  49. package/core/platform/custom-objects/manager.d.ts +354 -0
  50. package/core/platform/custom-objects/manager.d.ts.map +1 -0
  51. package/core/platform/custom-objects/manager.js +646 -0
  52. package/core/platform/custom-objects/manager.js.map +1 -0
  53. package/core/platform/custom-objects/manager.mjs +637 -0
  54. package/core/platform/custom-objects/manager.mjs.map +1 -0
  55. package/core/platform/custom-objects/provisioning.d.mts +138 -0
  56. package/core/platform/custom-objects/provisioning.d.mts.map +1 -0
  57. package/core/platform/custom-objects/provisioning.d.ts +138 -0
  58. package/core/platform/custom-objects/provisioning.d.ts.map +1 -0
  59. package/core/platform/custom-objects/provisioning.js +455 -0
  60. package/core/platform/custom-objects/provisioning.js.map +1 -0
  61. package/core/platform/custom-objects/provisioning.mjs +447 -0
  62. package/core/platform/custom-objects/provisioning.mjs.map +1 -0
  63. package/core/platform/custom-objects/rql.d.mts +122 -0
  64. package/core/platform/custom-objects/rql.d.mts.map +1 -0
  65. package/core/platform/custom-objects/rql.d.ts +122 -0
  66. package/core/platform/custom-objects/rql.d.ts.map +1 -0
  67. package/core/platform/custom-objects/rql.js +225 -0
  68. package/core/platform/custom-objects/rql.js.map +1 -0
  69. package/core/platform/custom-objects/rql.mjs +222 -0
  70. package/core/platform/custom-objects/rql.mjs.map +1 -0
  71. package/core/platform/custom-objects/schema-manager.d.mts +203 -0
  72. package/core/platform/custom-objects/schema-manager.d.mts.map +1 -0
  73. package/core/platform/custom-objects/schema-manager.d.ts +203 -0
  74. package/core/platform/custom-objects/schema-manager.d.ts.map +1 -0
  75. package/core/platform/custom-objects/schema-manager.js +256 -0
  76. package/core/platform/custom-objects/schema-manager.js.map +1 -0
  77. package/core/platform/custom-objects/schema-manager.mjs +249 -0
  78. package/core/platform/custom-objects/schema-manager.mjs.map +1 -0
  79. package/core/platform/custom-objects/typed-rql.d.mts +157 -0
  80. package/core/platform/custom-objects/typed-rql.d.mts.map +1 -0
  81. package/core/platform/custom-objects/typed-rql.d.ts +157 -0
  82. package/core/platform/custom-objects/typed-rql.d.ts.map +1 -0
  83. package/core/platform/custom-objects/typed-rql.js +583 -0
  84. package/core/platform/custom-objects/typed-rql.js.map +1 -0
  85. package/core/platform/custom-objects/typed-rql.mjs +580 -0
  86. package/core/platform/custom-objects/typed-rql.mjs.map +1 -0
  87. package/core/platform/custom-objects/types.d.mts +549 -0
  88. package/core/platform/custom-objects/types.d.mts.map +1 -0
  89. package/core/platform/custom-objects/types.d.ts +549 -0
  90. package/core/platform/custom-objects/types.d.ts.map +1 -0
  91. package/core/platform/custom-objects/types.js +20 -0
  92. package/core/platform/custom-objects/types.js.map +1 -0
  93. package/core/platform/custom-objects/types.mjs +17 -0
  94. package/core/platform/custom-objects/types.mjs.map +1 -0
  95. package/core/platform/custom-objects/validation.d.mts +97 -0
  96. package/core/platform/custom-objects/validation.d.mts.map +1 -0
  97. package/core/platform/custom-objects/validation.d.ts +97 -0
  98. package/core/platform/custom-objects/validation.d.ts.map +1 -0
  99. package/core/platform/custom-objects/validation.js +477 -0
  100. package/core/platform/custom-objects/validation.js.map +1 -0
  101. package/core/platform/custom-objects/validation.mjs +465 -0
  102. package/core/platform/custom-objects/validation.mjs.map +1 -0
  103. package/core/platform/custom-objects.d.mts +67 -0
  104. package/core/platform/custom-objects.d.mts.map +1 -0
  105. package/core/platform/custom-objects.d.ts +67 -0
  106. package/core/platform/custom-objects.d.ts.map +1 -0
  107. package/core/platform/custom-objects.js +118 -0
  108. package/core/platform/custom-objects.js.map +1 -0
  109. package/core/platform/custom-objects.mjs +45 -0
  110. package/core/platform/custom-objects.mjs.map +1 -0
  111. package/core/platform/manifest/custom-objects/action.d.mts +58 -0
  112. package/core/platform/manifest/custom-objects/action.d.mts.map +1 -0
  113. package/core/platform/manifest/custom-objects/action.d.ts +58 -0
  114. package/core/platform/manifest/custom-objects/action.d.ts.map +1 -0
  115. package/core/platform/manifest/custom-objects/action.js +44 -0
  116. package/core/platform/manifest/custom-objects/action.js.map +1 -0
  117. package/core/platform/manifest/custom-objects/action.mjs +40 -0
  118. package/core/platform/manifest/custom-objects/action.mjs.map +1 -0
  119. package/core/platform/manifest/custom-objects/conditions.d.mts +240 -0
  120. package/core/platform/manifest/custom-objects/conditions.d.mts.map +1 -0
  121. package/core/platform/manifest/custom-objects/conditions.d.ts +240 -0
  122. package/core/platform/manifest/custom-objects/conditions.d.ts.map +1 -0
  123. package/core/platform/manifest/custom-objects/conditions.js +326 -0
  124. package/core/platform/manifest/custom-objects/conditions.js.map +1 -0
  125. package/core/platform/manifest/custom-objects/conditions.mjs +321 -0
  126. package/core/platform/manifest/custom-objects/conditions.mjs.map +1 -0
  127. package/core/platform/manifest/custom-objects/existing.d.mts +87 -0
  128. package/core/platform/manifest/custom-objects/existing.d.mts.map +1 -0
  129. package/core/platform/manifest/custom-objects/existing.d.ts +87 -0
  130. package/core/platform/manifest/custom-objects/existing.d.ts.map +1 -0
  131. package/core/platform/manifest/custom-objects/existing.js +113 -0
  132. package/core/platform/manifest/custom-objects/existing.js.map +1 -0
  133. package/core/platform/manifest/custom-objects/existing.mjs +109 -0
  134. package/core/platform/manifest/custom-objects/existing.mjs.map +1 -0
  135. package/core/platform/manifest/custom-objects/field-resolution.d.mts +48 -0
  136. package/core/platform/manifest/custom-objects/field-resolution.d.mts.map +1 -0
  137. package/core/platform/manifest/custom-objects/field-resolution.d.ts +48 -0
  138. package/core/platform/manifest/custom-objects/field-resolution.d.ts.map +1 -0
  139. package/core/platform/manifest/custom-objects/field-resolution.js +61 -0
  140. package/core/platform/manifest/custom-objects/field-resolution.js.map +1 -0
  141. package/core/platform/manifest/custom-objects/field-resolution.mjs +58 -0
  142. package/core/platform/manifest/custom-objects/field-resolution.mjs.map +1 -0
  143. package/core/platform/manifest/custom-objects/function-file.d.mts +87 -0
  144. package/core/platform/manifest/custom-objects/function-file.d.mts.map +1 -0
  145. package/core/platform/manifest/custom-objects/function-file.d.ts +87 -0
  146. package/core/platform/manifest/custom-objects/function-file.d.ts.map +1 -0
  147. package/core/platform/manifest/custom-objects/function-file.js +76 -0
  148. package/core/platform/manifest/custom-objects/function-file.js.map +1 -0
  149. package/core/platform/manifest/custom-objects/function-file.mjs +69 -0
  150. package/core/platform/manifest/custom-objects/function-file.mjs.map +1 -0
  151. package/core/platform/manifest/custom-objects/list-view.d.mts +65 -0
  152. package/core/platform/manifest/custom-objects/list-view.d.mts.map +1 -0
  153. package/core/platform/manifest/custom-objects/list-view.d.ts +65 -0
  154. package/core/platform/manifest/custom-objects/list-view.d.ts.map +1 -0
  155. package/core/platform/manifest/custom-objects/list-view.js +33 -0
  156. package/core/platform/manifest/custom-objects/list-view.js.map +1 -0
  157. package/core/platform/manifest/custom-objects/list-view.mjs +30 -0
  158. package/core/platform/manifest/custom-objects/list-view.mjs.map +1 -0
  159. package/core/platform/manifest/custom-objects/object-list-page.d.mts +43 -0
  160. package/core/platform/manifest/custom-objects/object-list-page.d.mts.map +1 -0
  161. package/core/platform/manifest/custom-objects/object-list-page.d.ts +43 -0
  162. package/core/platform/manifest/custom-objects/object-list-page.d.ts.map +1 -0
  163. package/core/platform/manifest/custom-objects/object-list-page.js +54 -0
  164. package/core/platform/manifest/custom-objects/object-list-page.js.map +1 -0
  165. package/core/platform/manifest/custom-objects/object-list-page.mjs +50 -0
  166. package/core/platform/manifest/custom-objects/object-list-page.mjs.map +1 -0
  167. package/core/platform/manifest/custom-objects/page-layout.d.mts +142 -0
  168. package/core/platform/manifest/custom-objects/page-layout.d.mts.map +1 -0
  169. package/core/platform/manifest/custom-objects/page-layout.d.ts +142 -0
  170. package/core/platform/manifest/custom-objects/page-layout.d.ts.map +1 -0
  171. package/core/platform/manifest/custom-objects/page-layout.js +184 -0
  172. package/core/platform/manifest/custom-objects/page-layout.js.map +1 -0
  173. package/core/platform/manifest/custom-objects/page-layout.mjs +180 -0
  174. package/core/platform/manifest/custom-objects/page-layout.mjs.map +1 -0
  175. package/core/platform/manifest/custom-objects/register.d.mts +87 -0
  176. package/core/platform/manifest/custom-objects/register.d.mts.map +1 -0
  177. package/core/platform/manifest/custom-objects/register.d.ts +87 -0
  178. package/core/platform/manifest/custom-objects/register.d.ts.map +1 -0
  179. package/core/platform/manifest/custom-objects/register.js +395 -0
  180. package/core/platform/manifest/custom-objects/register.js.map +1 -0
  181. package/core/platform/manifest/custom-objects/register.mjs +391 -0
  182. package/core/platform/manifest/custom-objects/register.mjs.map +1 -0
  183. package/core/platform/manifest/custom-objects/rule.d.mts +113 -0
  184. package/core/platform/manifest/custom-objects/rule.d.mts.map +1 -0
  185. package/core/platform/manifest/custom-objects/rule.d.ts +113 -0
  186. package/core/platform/manifest/custom-objects/rule.d.ts.map +1 -0
  187. package/core/platform/manifest/custom-objects/rule.js +49 -0
  188. package/core/platform/manifest/custom-objects/rule.js.map +1 -0
  189. package/core/platform/manifest/custom-objects/rule.mjs +45 -0
  190. package/core/platform/manifest/custom-objects/rule.mjs.map +1 -0
  191. package/core/platform/manifest/custom-objects/sdui-page.d.mts +214 -0
  192. package/core/platform/manifest/custom-objects/sdui-page.d.mts.map +1 -0
  193. package/core/platform/manifest/custom-objects/sdui-page.d.ts +214 -0
  194. package/core/platform/manifest/custom-objects/sdui-page.d.ts.map +1 -0
  195. package/core/platform/manifest/custom-objects/sdui-page.js +194 -0
  196. package/core/platform/manifest/custom-objects/sdui-page.js.map +1 -0
  197. package/core/platform/manifest/custom-objects/sdui-page.mjs +182 -0
  198. package/core/platform/manifest/custom-objects/sdui-page.mjs.map +1 -0
  199. package/core/platform/manifest/custom-objects/typed-condition.d.mts +28 -0
  200. package/core/platform/manifest/custom-objects/typed-condition.d.mts.map +1 -0
  201. package/core/platform/manifest/custom-objects/typed-condition.d.ts +28 -0
  202. package/core/platform/manifest/custom-objects/typed-condition.d.ts.map +1 -0
  203. package/core/platform/manifest/custom-objects/typed-condition.js +434 -0
  204. package/core/platform/manifest/custom-objects/typed-condition.js.map +1 -0
  205. package/core/platform/manifest/custom-objects/typed-condition.mjs +431 -0
  206. package/core/platform/manifest/custom-objects/typed-condition.mjs.map +1 -0
  207. package/core/platform/manifest/custom-objects/types.d.mts +29 -0
  208. package/core/platform/manifest/custom-objects/types.d.mts.map +1 -0
  209. package/core/platform/manifest/custom-objects/types.d.ts +29 -0
  210. package/core/platform/manifest/custom-objects/types.d.ts.map +1 -0
  211. package/core/platform/manifest/custom-objects/types.js +3 -0
  212. package/core/platform/manifest/custom-objects/types.js.map +1 -0
  213. package/core/platform/manifest/custom-objects/types.mjs +2 -0
  214. package/core/platform/manifest/custom-objects/types.mjs.map +1 -0
  215. package/core/platform/manifest/custom-objects/validation.d.mts +44 -0
  216. package/core/platform/manifest/custom-objects/validation.d.mts.map +1 -0
  217. package/core/platform/manifest/custom-objects/validation.d.ts +44 -0
  218. package/core/platform/manifest/custom-objects/validation.d.ts.map +1 -0
  219. package/core/platform/manifest/custom-objects/validation.js +30 -0
  220. package/core/platform/manifest/custom-objects/validation.js.map +1 -0
  221. package/core/platform/manifest/custom-objects/validation.mjs +27 -0
  222. package/core/platform/manifest/custom-objects/validation.mjs.map +1 -0
  223. package/core/platform/manifest/custom-objects/workflow.d.mts +47 -0
  224. package/core/platform/manifest/custom-objects/workflow.d.mts.map +1 -0
  225. package/core/platform/manifest/custom-objects/workflow.d.ts +47 -0
  226. package/core/platform/manifest/custom-objects/workflow.d.ts.map +1 -0
  227. package/core/platform/manifest/custom-objects/workflow.js +38 -0
  228. package/core/platform/manifest/custom-objects/workflow.js.map +1 -0
  229. package/core/platform/manifest/custom-objects/workflow.mjs +34 -0
  230. package/core/platform/manifest/custom-objects/workflow.mjs.map +1 -0
  231. package/core/platform/manifest/custom-objects.d.mts +85 -0
  232. package/core/platform/manifest/custom-objects.d.mts.map +1 -0
  233. package/core/platform/manifest/custom-objects.d.ts +85 -0
  234. package/core/platform/manifest/custom-objects.d.ts.map +1 -0
  235. package/core/platform/manifest/custom-objects.js +84 -0
  236. package/core/platform/manifest/custom-objects.js.map +1 -0
  237. package/core/platform/manifest/custom-objects.mjs +55 -0
  238. package/core/platform/manifest/custom-objects.mjs.map +1 -0
  239. package/examples/manifest/custom-object-creation-workflow/custom-object-creation-workflow.ts +26 -44
  240. package/examples/manifest/custom-object-creation-workflow/functions/intake-request-created.ts +20 -0
  241. package/examples/manifest/custom-object-creation-workflow/schema.ts +29 -0
  242. package/examples/manifest/dental-practice-management/dental-practice-management.ts +142 -470
  243. package/examples/manifest/dental-practice-management/functions/chair-schedule.ts +13 -23
  244. package/examples/manifest/dental-practice-management/functions/complete-visit.ts +32 -55
  245. package/examples/manifest/dental-practice-management/functions/operatory-list.ts +13 -23
  246. package/examples/manifest/dental-practice-management/functions/patient-list.ts +13 -23
  247. package/examples/manifest/dental-practice-management/functions/treatment-plan-list.ts +13 -23
  248. package/examples/manifest/dental-practice-management/schema.ts +298 -0
  249. package/examples/manifest/existing-manifest-mutations/existing-manifest-mutations.ts +68 -23
  250. package/examples/manifest/field-service-dispatch/field-service-dispatch.ts +102 -375
  251. package/examples/manifest/field-service-dispatch/schema.ts +248 -0
  252. package/examples/manifest/grant-program-management/grant-program-management.ts +125 -419
  253. package/examples/manifest/grant-program-management/schema.ts +269 -0
  254. package/examples/manifest/gym-membership-management/functions/check-in-desk.ts +13 -23
  255. package/examples/manifest/gym-membership-management/functions/member-list.ts +13 -23
  256. package/examples/manifest/gym-membership-management/functions/today-schedule.ts +13 -23
  257. package/examples/manifest/gym-membership-management/functions/trainer-list.ts +13 -23
  258. package/examples/manifest/gym-membership-management/gym-membership-management.ts +92 -442
  259. package/examples/manifest/gym-membership-management/schema.ts +266 -0
  260. package/examples/manifest/procurement-approval-hub/functions/route-purchase-request.ts +20 -0
  261. package/examples/manifest/procurement-approval-hub/procurement-approval-hub.ts +122 -408
  262. package/examples/manifest/procurement-approval-hub/schema.ts +256 -0
  263. package/examples/manifest/simple-todo-app/functions/mark-done.ts +16 -12
  264. package/examples/manifest/simple-todo-app/functions/todo-list.ts +13 -23
  265. package/examples/manifest/simple-todo-app/schema.ts +60 -0
  266. package/examples/manifest/simple-todo-app/simple-todo-app.ts +40 -109
  267. package/examples/manifest/todo-app-without-object-list-view/functions/todo-page.ts +166 -193
  268. package/examples/manifest/todo-app-without-object-list-view/schema.ts +28 -0
  269. package/examples/manifest/todo-app-without-object-list-view/todo-app-without-object-list-view.ts +24 -47
  270. package/package.json +7 -13
  271. package/resources/custom-objects/custom-objects.d.mts +7 -0
  272. package/resources/custom-objects/custom-objects.d.mts.map +1 -1
  273. package/resources/custom-objects/custom-objects.d.ts +7 -0
  274. package/resources/custom-objects/custom-objects.d.ts.map +1 -1
  275. package/resources/custom-objects/custom-objects.js.map +1 -1
  276. package/resources/custom-objects/custom-objects.mjs.map +1 -1
  277. package/resources/custom-objects/fields.d.mts +170 -15
  278. package/resources/custom-objects/fields.d.mts.map +1 -1
  279. package/resources/custom-objects/fields.d.ts +170 -15
  280. package/resources/custom-objects/fields.d.ts.map +1 -1
  281. package/resources/index.d.mts +2 -2
  282. package/resources/index.d.mts.map +1 -1
  283. package/resources/index.d.ts +2 -2
  284. package/resources/index.d.ts.map +1 -1
  285. package/resources/index.js.map +1 -1
  286. package/resources/index.mjs.map +1 -1
  287. package/resources/leave-program-evaluations.d.mts +510 -3
  288. package/resources/leave-program-evaluations.d.mts.map +1 -1
  289. package/resources/leave-program-evaluations.d.ts +510 -3
  290. package/resources/leave-program-evaluations.d.ts.map +1 -1
  291. package/resources/levels.d.mts +64 -2
  292. package/resources/levels.d.mts.map +1 -1
  293. package/resources/levels.d.ts +64 -2
  294. package/resources/levels.d.ts.map +1 -1
  295. package/resources/levels.js +22 -0
  296. package/resources/levels.js.map +1 -1
  297. package/resources/levels.mjs +22 -0
  298. package/resources/levels.mjs.map +1 -1
  299. package/resources/tracks.d.mts +45 -1
  300. package/resources/tracks.d.mts.map +1 -1
  301. package/resources/tracks.d.ts +45 -1
  302. package/resources/tracks.d.ts.map +1 -1
  303. package/resources/tracks.js +22 -0
  304. package/resources/tracks.js.map +1 -1
  305. package/resources/tracks.mjs +22 -0
  306. package/resources/tracks.mjs.map +1 -1
  307. package/src/client.ts +8 -0
  308. package/src/core/platform/README.md +20 -0
  309. package/src/core/platform/custom-objects/category.ts +294 -0
  310. package/src/core/platform/custom-objects/definition.ts +373 -0
  311. package/src/core/platform/custom-objects/fields.ts +653 -0
  312. package/src/core/platform/custom-objects/function-runtime.ts +76 -0
  313. package/src/core/platform/custom-objects/lifecycle.ts +557 -0
  314. package/src/core/platform/custom-objects/manager.ts +959 -0
  315. package/src/core/platform/custom-objects/provisioning.ts +672 -0
  316. package/src/core/platform/custom-objects/rql.ts +375 -0
  317. package/src/core/platform/custom-objects/schema-manager.ts +351 -0
  318. package/src/core/platform/custom-objects/typed-rql.ts +1273 -0
  319. package/src/core/platform/custom-objects/types.ts +753 -0
  320. package/src/core/platform/custom-objects/validation.ts +573 -0
  321. package/src/core/platform/custom-objects.ts +269 -0
  322. package/src/core/platform/manifest/README.md +26 -0
  323. package/src/core/platform/manifest/custom-objects/action.ts +87 -0
  324. package/src/core/platform/manifest/custom-objects/conditions.ts +762 -0
  325. package/src/core/platform/manifest/custom-objects/existing.ts +221 -0
  326. package/src/core/platform/manifest/custom-objects/field-resolution.ts +116 -0
  327. package/src/core/platform/manifest/custom-objects/function-file.ts +149 -0
  328. package/src/core/platform/manifest/custom-objects/list-view.ts +95 -0
  329. package/src/core/platform/manifest/custom-objects/object-list-page.ts +87 -0
  330. package/src/core/platform/manifest/custom-objects/page-layout.ts +380 -0
  331. package/src/core/platform/manifest/custom-objects/register.ts +555 -0
  332. package/src/core/platform/manifest/custom-objects/rule.ts +192 -0
  333. package/src/core/platform/manifest/custom-objects/sdui-page.ts +515 -0
  334. package/src/core/platform/manifest/custom-objects/typed-condition.ts +617 -0
  335. package/src/core/platform/manifest/custom-objects/types.ts +92 -0
  336. package/src/core/platform/manifest/custom-objects/validation.ts +70 -0
  337. package/src/core/platform/manifest/custom-objects/workflow.ts +71 -0
  338. package/src/core/platform/manifest/custom-objects.ts +203 -0
  339. package/src/pebble-sdui-web-custom-apps-shim.d.ts +3 -0
  340. package/src/resources/custom-objects/custom-objects.ts +8 -0
  341. package/src/resources/custom-objects/fields.ts +239 -14
  342. package/src/resources/index.ts +4 -0
  343. package/src/resources/leave-program-evaluations.ts +610 -3
  344. package/src/resources/levels.ts +93 -1
  345. package/src/resources/tracks.ts +70 -0
  346. package/src/tsconfig.json +1 -1
  347. package/src/version.ts +1 -1
  348. package/version.d.mts +1 -1
  349. package/version.d.ts +1 -1
  350. package/version.js +1 -1
  351. package/version.mjs +1 -1
@@ -0,0 +1,447 @@
1
+ import { provisionCustomObjectCategoryDefinition } from "./category.mjs";
2
+ /**
3
+ * Returns whether one field references another object and therefore benefits from being created after scalar fields.
4
+ *
5
+ * @param field - Typed field definition to inspect.
6
+ * @returns Whether the field is a lookup or parent-child relationship.
7
+ */
8
+ function isRelationshipField(field) {
9
+ return field.kind === 'lookup' || field.kind === 'parent-child';
10
+ }
11
+ /**
12
+ * Returns whether one field uses a formula-field variant.
13
+ *
14
+ * @param field - Typed field definition to inspect.
15
+ * @returns Whether the field is one of the `formula-*` kinds.
16
+ */
17
+ function isFormulaField(field) {
18
+ return field.kind.startsWith('formula-');
19
+ }
20
+ /**
21
+ * Builds the wire-level `data_type` payload expected by the custom-object field REST API.
22
+ *
23
+ * @param field - Typed field definition to compile.
24
+ * @returns REST `data_type` payload for the supplied field definition.
25
+ */
26
+ function buildFieldDataType(field) {
27
+ switch (field.kind) {
28
+ case 'text':
29
+ return {
30
+ field_type: 'TEXT',
31
+ ...(field.maxLength != null ? { max_length: field.maxLength } : {}),
32
+ };
33
+ case 'long-text':
34
+ return {
35
+ field_type: 'LONG_TEXT',
36
+ ...(field.maxLength != null ? { max_length: field.maxLength } : {}),
37
+ };
38
+ case 'email':
39
+ return { field_type: 'EMAIL' };
40
+ case 'url':
41
+ return { field_type: 'URL' };
42
+ case 'phone':
43
+ return { field_type: 'PHONE_NUMBER' };
44
+ case 'number':
45
+ return {
46
+ field_type: 'NUMBER',
47
+ ...(field.decimalPlaces != null ? { num_of_decimal_places: field.decimalPlaces } : {}),
48
+ };
49
+ case 'currency':
50
+ return {
51
+ field_type: 'CURRENCY',
52
+ ...(field.currency != null ? { currency: field.currency } : {}),
53
+ ...(field.decimalPlaces != null ? { num_of_decimal_places: field.decimalPlaces } : {}),
54
+ };
55
+ case 'percentage':
56
+ return { field_type: 'PERCENTAGE', num_of_decimal_places: 2 };
57
+ case 'date':
58
+ return { field_type: 'DATE' };
59
+ case 'datetime':
60
+ return { field_type: 'DATETIME' };
61
+ case 'time':
62
+ return { field_type: 'TIME' };
63
+ case 'select':
64
+ return { field_type: 'SELECT', options_list: [...field.options] };
65
+ case 'radio':
66
+ return { field_type: 'RADIO', options_list: [...field.options] };
67
+ case 'boolean':
68
+ return { field_type: 'BOOLEAN' };
69
+ case 'file':
70
+ return {
71
+ field_type: 'FILE',
72
+ supported_types: field.allowedType === 'any' ? ['*'] : [field.allowedType],
73
+ };
74
+ case 'lookup':
75
+ return {
76
+ field_type: 'OG_REFERENCE_FIELD',
77
+ og_model_rql_name: field.target.apiName,
78
+ edge_type: 'LOOKUP',
79
+ ...(field.relatedDataLabel != null ? { related_data_label: field.relatedDataLabel } : {}),
80
+ ...(field.lookupFilterRqlCondition != null ?
81
+ { lookup_filter_rql_condition: field.lookupFilterRqlCondition }
82
+ : {}),
83
+ };
84
+ case 'parent-child':
85
+ return {
86
+ field_type: 'OG_REFERENCE_FIELD',
87
+ og_model_rql_name: field.target.apiName,
88
+ edge_type: 'PARENT_CHILD',
89
+ ...(field.relatedDataLabel != null ? { related_data_label: field.relatedDataLabel } : {}),
90
+ ...(field.parentChildType != null ? { parent_child_type: field.parentChildType } : {}),
91
+ ...(field.enableParentOwnerInheritance != null ?
92
+ { enable_parent_owner_inheritance: field.enableParentOwnerInheritance }
93
+ : {}),
94
+ };
95
+ case 'formula-text':
96
+ return { field_type: 'TEXT', ...(field.maxLength != null ? { max_length: field.maxLength } : {}) };
97
+ case 'formula-number':
98
+ return { field_type: 'NUMBER' };
99
+ case 'formula-boolean':
100
+ return { field_type: 'BOOLEAN' };
101
+ case 'formula-currency':
102
+ return { field_type: 'CURRENCY' };
103
+ case 'formula-percentage':
104
+ return { field_type: 'PERCENTAGE' };
105
+ case 'formula-date':
106
+ return { field_type: 'DATE' };
107
+ case 'formula-url':
108
+ return { field_type: 'URL' };
109
+ }
110
+ }
111
+ /**
112
+ * Builds REST section metadata for one typed field definition.
113
+ *
114
+ * @param definition - Object definition that owns the field and section map.
115
+ * @param field - Typed field definition whose section metadata should be compiled.
116
+ * @returns Concrete section id string expected by the live REST API, when available.
117
+ * @throws Error when REST provisioning would require a section id that cannot be resolved.
118
+ * @typeParam TDefinition - Object definition that owns the field.
119
+ */
120
+ function buildFieldSection(definition, field) {
121
+ const sectionKey = field.section;
122
+ const sectionOverride = field.restSection;
123
+ const overrideSectionId = typeof sectionOverride === 'string' ? sectionOverride : sectionOverride?.section_id;
124
+ if (sectionKey == null) {
125
+ if (sectionOverride == null)
126
+ return undefined;
127
+ if (overrideSectionId == null) {
128
+ throw new Error('REST field provisioning currently requires a concrete section id string.');
129
+ }
130
+ return overrideSectionId;
131
+ }
132
+ const sections = definition.sections;
133
+ const sectionDefinition = sections[sectionKey];
134
+ if (sectionDefinition == null)
135
+ return overrideSectionId;
136
+ const resolvedSectionId = overrideSectionId ?? sectionDefinition.sectionId;
137
+ if (resolvedSectionId == null) {
138
+ throw new Error(`Field section "${sectionKey}" for "${definition.name}" requires a sectionId for REST provisioning.`);
139
+ }
140
+ return resolvedSectionId;
141
+ }
142
+ /**
143
+ * Builds name-field metadata for REST field updates when the object uses autonumber names.
144
+ *
145
+ * @param definition - Typed object definition whose name-field metadata should be compiled.
146
+ * @returns Name-field metadata payload for the platform-managed `name` field, when needed.
147
+ * @typeParam TDefinition - Object definition being compiled.
148
+ */
149
+ export function buildCustomObjectNameFieldDetails(definition) {
150
+ if (definition.nameField.kind !== 'autonumber')
151
+ return undefined;
152
+ return {
153
+ is_autonumber_field: true,
154
+ autonumber_format: definition.nameField.format,
155
+ ...(definition.nameField.startingNumber != null ?
156
+ { starting_number: definition.nameField.startingNumber }
157
+ : {}),
158
+ };
159
+ }
160
+ /**
161
+ * Builds the object-creation payload for the low-level REST API using a resolved category id.
162
+ *
163
+ * @param definition - Typed object definition to compile.
164
+ * @param categoryIdentifier - Resolved custom-category id or native category id required by the live API.
165
+ * @returns REST object-create payload.
166
+ * @typeParam TDefinition - Object definition being compiled.
167
+ */
168
+ export function buildCustomObjectCreateParams(definition, categoryIdentifier) {
169
+ return {
170
+ category: categoryIdentifier,
171
+ description: definition.description,
172
+ name: definition.name,
173
+ };
174
+ }
175
+ /**
176
+ * Builds the object-update payload used to restore human-facing labels after creation.
177
+ *
178
+ * @param definition - Typed object definition to compile.
179
+ * @param categoryIdentifier - Resolved custom-category id or native category id required by the live API.
180
+ * @returns REST object-update payload.
181
+ * @typeParam TDefinition - Object definition being compiled.
182
+ */
183
+ export function buildCustomObjectUpdateParams(definition, categoryIdentifier) {
184
+ return {
185
+ category: categoryIdentifier,
186
+ description: definition.description,
187
+ ...(definition.enableHistory != null ? { enable_history: definition.enableHistory } : {}),
188
+ name: definition.displayName,
189
+ ...(definition.ownerRole != null ? { owner_role: definition.ownerRole } : {}),
190
+ ...(definition.pluralLabel != null ? { plural_label: definition.pluralLabel } : {}),
191
+ };
192
+ }
193
+ /**
194
+ * Builds field create/update payloads for one logical field in a typed object definition.
195
+ *
196
+ * @param definition - Typed object definition that owns the field.
197
+ * @param fieldName - Logical field name to compile.
198
+ * @returns Frozen create/update payload pair for the field.
199
+ * @typeParam TDefinition - Object definition being compiled.
200
+ * @typeParam TFieldName - Logical field name being compiled.
201
+ */
202
+ export function buildProvisionableFieldParams(definition, fieldName) {
203
+ const field = definition.fields[fieldName];
204
+ const dataType = buildFieldDataType(field);
205
+ const section = buildFieldSection(definition, field);
206
+ const shared = {
207
+ description: field.description,
208
+ data_type: dataType,
209
+ required: field.required,
210
+ ...(field.enableHistory != null ? { enable_history: field.enableHistory } : {}),
211
+ ...(field.formulaAttributeMetas != null ? { formula_attr_metas: field.formulaAttributeMetas } : {}),
212
+ ...(field.rqlDefinition != null ? { rql_definition: field.rqlDefinition } : {}),
213
+ ...(section != null ? { section } : {}),
214
+ ...(isFormulaField(field) ? { derived_field_formula: field.formula } : {}),
215
+ ...('unique' in field && field.unique != null ? { is_unique: field.unique } : {}),
216
+ };
217
+ const create = {
218
+ name: field.logicalName,
219
+ ...shared,
220
+ ...(field.derivedAggregatedField != null ?
221
+ { derived_aggregated_field: field.derivedAggregatedField }
222
+ : {}),
223
+ };
224
+ // The live GA field update path currently does not accept `derived_aggregated_field`, so keep it create-only.
225
+ const update = {
226
+ name: field.displayName,
227
+ ...shared,
228
+ };
229
+ return Object.freeze({ create, update });
230
+ }
231
+ /**
232
+ * Requires a resolved category identifier for one provisioning operation.
233
+ *
234
+ * @param definition - Object definition that needs a category identifier.
235
+ * @param categoryIdentifier - Resolved custom-category id or native category id, if available.
236
+ * @returns Required category identifier.
237
+ * @throws Error when no usable category identifier is available.
238
+ * @typeParam TDefinition - Object definition being provisioned.
239
+ */
240
+ function requireCategoryIdentifier(definition, categoryIdentifier) {
241
+ if (categoryIdentifier != null)
242
+ return categoryIdentifier;
243
+ throw new Error(`A category identifier is required to provision "${definition.apiName}". ` +
244
+ `Provide options.categoryIdentifier or embed/provide a typed category definition.`);
245
+ }
246
+ /**
247
+ * Rejects duplicate object definitions within one batch provisioning request.
248
+ *
249
+ * @param definitions - Typed object definitions to validate for uniqueness.
250
+ * @throws Error when multiple definitions compile to the same object API name.
251
+ */
252
+ function assertUniqueObjectDefinitions(definitions) {
253
+ const seen = new Map();
254
+ for (const definition of definitions) {
255
+ const existingName = seen.get(definition.apiName);
256
+ if (existingName != null) {
257
+ throw new Error(`Duplicate custom object definition for "${definition.apiName}" in batch: ` +
258
+ `"${existingName}" and "${definition.name}".`);
259
+ }
260
+ seen.set(definition.apiName, definition.name);
261
+ }
262
+ }
263
+ /**
264
+ * Collects and deduplicates embedded or explicitly supplied category definitions for a batch provision.
265
+ *
266
+ * @param definitions - Object definitions participating in the batch.
267
+ * @param explicitDefinitions - Optional explicit category definitions supplied by the caller.
268
+ * @returns Frozen deduplicated category-definition list.
269
+ * @throws Error when two definitions for the same category API name disagree on visible metadata.
270
+ */
271
+ function collectCategoryDefinitions(definitions, explicitDefinitions) {
272
+ const categoryDefinitions = explicitDefinitions ?? definitions.map((definition) => definition.categoryDefinition);
273
+ const uniqueDefinitions = new Map();
274
+ for (const definition of categoryDefinitions) {
275
+ if (definition == null)
276
+ continue;
277
+ const existing = uniqueDefinitions.get(definition.apiName);
278
+ if (existing != null) {
279
+ if (existing.displayName !== definition.displayName ||
280
+ existing.description !== definition.description) {
281
+ throw new Error(`Conflicting category definitions for "${definition.apiName}" in batch provisioning.`);
282
+ }
283
+ continue;
284
+ }
285
+ uniqueDefinitions.set(definition.apiName, definition);
286
+ }
287
+ return Object.freeze([...uniqueDefinitions.values()]);
288
+ }
289
+ /**
290
+ * Resolves the category identifier that should be sent to the live object APIs during provisioning.
291
+ *
292
+ * @param client - SDK client used to provision embedded category definitions when needed.
293
+ * @param definition - Typed object definition being provisioned.
294
+ * @param options - Provisioning options that may already contain a category identifier.
295
+ * @returns Resolved custom-category id or native category id.
296
+ * @typeParam TDefinition - Object definition being provisioned.
297
+ */
298
+ async function resolveProvisionedCategoryIdentifier(client, definition, options) {
299
+ const categoryDefinition = options.categoryDefinition ?? definition.categoryDefinition;
300
+ if (categoryDefinition == null) {
301
+ return requireCategoryIdentifier(definition, options.categoryIdentifier);
302
+ }
303
+ const provisionedCategory = await provisionCustomObjectCategoryDefinition(client, categoryDefinition);
304
+ return provisionedCategory.updatedCategory.id;
305
+ }
306
+ /**
307
+ * Updates the platform-managed `name` field when the typed definition uses autonumber metadata.
308
+ *
309
+ * @param client - SDK client used to call the field APIs.
310
+ * @param definition - Typed object definition whose name-field metadata should be applied.
311
+ * @param options - Provisioning behavior flags.
312
+ * @returns Updated `name` field DTO, when a name-field update was required.
313
+ * @typeParam TDefinition - Object definition being provisioned.
314
+ */
315
+ async function updateNameFieldDetailsIfNeeded(client, definition, options) {
316
+ if (!(options.updateNameFieldDetails ?? true))
317
+ return undefined;
318
+ const nameFieldDetails = buildCustomObjectNameFieldDetails(definition);
319
+ if (nameFieldDetails == null)
320
+ return undefined;
321
+ return client.customObjects.fields.update(definition.apiName, 'name', {
322
+ name_field_details: nameFieldDetails,
323
+ });
324
+ }
325
+ /**
326
+ * Provisions every custom field for one object definition in relationship-safe order.
327
+ *
328
+ * @param client - SDK client used to call the field APIs.
329
+ * @param definition - Typed object definition whose fields should be provisioned.
330
+ * @param updateFieldDisplayMetadata - Whether to issue follow-up field updates for display metadata.
331
+ * @returns Frozen maps of created and updated field DTOs keyed by logical field name.
332
+ * @typeParam TDefinition - Object definition being provisioned.
333
+ */
334
+ async function provisionFieldsForDefinition(client, definition, updateFieldDisplayMetadata) {
335
+ const createdFields = {};
336
+ const updatedFields = {};
337
+ const orderedFieldNames = Object.keys(definition.fields).sort((left, right) => {
338
+ const leftField = definition.fields[left];
339
+ const rightField = definition.fields[right];
340
+ return Number(isRelationshipField(leftField)) - Number(isRelationshipField(rightField));
341
+ });
342
+ for (const fieldName of orderedFieldNames) {
343
+ const field = definition.fields[fieldName];
344
+ const params = buildProvisionableFieldParams(definition, fieldName);
345
+ const createdField = await client.customObjects.fields.create(definition.apiName, params.create);
346
+ if (createdField.api_name !== field.apiName) {
347
+ throw new Error(`Field api_name mismatch for "${definition.name}.${String(fieldName)}": expected "${field.apiName}", got "${createdField.api_name}".`);
348
+ }
349
+ createdFields[fieldName] = createdField;
350
+ updatedFields[fieldName] =
351
+ updateFieldDisplayMetadata ?
352
+ await client.customObjects.fields.update(definition.apiName, field.apiName, params.update)
353
+ : createdField;
354
+ }
355
+ return Object.freeze({
356
+ createdFields: Object.freeze(createdFields),
357
+ updatedFields: Object.freeze(updatedFields),
358
+ });
359
+ }
360
+ /**
361
+ * Creates one typed custom object through the REST SDK and returns the backend responses.
362
+ *
363
+ * @param client - SDK client used to call the metadata APIs.
364
+ * @param definition - Typed object definition to provision.
365
+ * @param options - Provisioning behavior flags for categories, display metadata, and name fields.
366
+ * @returns Frozen provisioning result describing the created object, fields, and optional name-field update.
367
+ * @typeParam TDefinition - Object definition being provisioned.
368
+ */
369
+ export async function provisionCustomObjectDefinition(client, definition, options = {}) {
370
+ const updateObjectDisplayMetadata = options.updateObjectDisplayMetadata ?? true;
371
+ const updateFieldDisplayMetadata = options.updateFieldDisplayMetadata ?? true;
372
+ const categoryIdentifier = await resolveProvisionedCategoryIdentifier(client, definition, options);
373
+ const createdObject = await client.customObjects.create(buildCustomObjectCreateParams(definition, categoryIdentifier));
374
+ if (createdObject.api_name !== definition.apiName) {
375
+ throw new Error(`Custom object api_name mismatch for "${definition.name}": expected "${definition.apiName}", got "${createdObject.api_name ?? '<missing>'}".`);
376
+ }
377
+ const updatedObject = updateObjectDisplayMetadata ?
378
+ await client.customObjects.update(definition.apiName, buildCustomObjectUpdateParams(definition, categoryIdentifier))
379
+ : createdObject;
380
+ const updatedNameField = await updateNameFieldDetailsIfNeeded(client, definition, options);
381
+ const fieldResults = await provisionFieldsForDefinition(client, definition, updateFieldDisplayMetadata);
382
+ return Object.freeze({
383
+ definition,
384
+ customObjectApiName: definition.apiName,
385
+ createdObject,
386
+ updatedObject,
387
+ ...(updatedNameField != null ? { updatedNameField } : {}),
388
+ createdFields: fieldResults.createdFields,
389
+ updatedFields: fieldResults.updatedFields,
390
+ });
391
+ }
392
+ /**
393
+ * Provisions multiple typed custom-object definitions through the REST SDK.
394
+ *
395
+ * @param client - SDK client used to call the metadata APIs.
396
+ * @param definitions - Typed object definitions to provision.
397
+ * @param options - Batch provisioning behavior flags.
398
+ * @returns Frozen provisioning results in input order.
399
+ */
400
+ export async function provisionCustomObjectDefinitions(client, definitions, options = {}) {
401
+ assertUniqueObjectDefinitions(definitions);
402
+ const categoryDefinitions = collectCategoryDefinitions(definitions, options.categoryDefinitions);
403
+ const provisionedCategoryIds = new Map();
404
+ for (const categoryDefinition of categoryDefinitions) {
405
+ const provisionedCategory = await provisionCustomObjectCategoryDefinition(client, categoryDefinition);
406
+ provisionedCategoryIds.set(categoryDefinition.apiName, provisionedCategory.updatedCategory.id);
407
+ }
408
+ const objectResults = new Map();
409
+ const updatedNameFields = new Map();
410
+ for (const definition of definitions) {
411
+ const categoryIdentifier = definition.categoryDefinition != null ?
412
+ provisionedCategoryIds.get(definition.categoryDefinition.apiName)
413
+ : options.categoryIdentifiersByObjectApiName?.[definition.apiName];
414
+ const resolvedCategoryIdentifier = requireCategoryIdentifier(definition, categoryIdentifier);
415
+ const createdObject = await client.customObjects.create(buildCustomObjectCreateParams(definition, resolvedCategoryIdentifier));
416
+ if (createdObject.api_name !== definition.apiName) {
417
+ throw new Error(`Custom object api_name mismatch for "${definition.name}": expected "${definition.apiName}", got "${createdObject.api_name ?? '<missing>'}".`);
418
+ }
419
+ const updatedObject = options.updateObjectDisplayMetadata ?? true ?
420
+ await client.customObjects.update(definition.apiName, buildCustomObjectUpdateParams(definition, resolvedCategoryIdentifier))
421
+ : createdObject;
422
+ objectResults.set(definition.apiName, Object.freeze({ created: createdObject, updated: updatedObject }));
423
+ const updatedNameField = await updateNameFieldDetailsIfNeeded(client, definition, options);
424
+ if (updatedNameField != null)
425
+ updatedNameFields.set(definition.apiName, updatedNameField);
426
+ }
427
+ const results = [];
428
+ for (const definition of definitions) {
429
+ const objectResult = objectResults.get(definition.apiName);
430
+ if (objectResult == null) {
431
+ throw new Error(`Missing created object response for "${definition.apiName}".`);
432
+ }
433
+ const fieldResults = await provisionFieldsForDefinition(client, definition, options.updateFieldDisplayMetadata ?? true);
434
+ const updatedNameField = updatedNameFields.get(definition.apiName);
435
+ results.push(Object.freeze({
436
+ definition,
437
+ customObjectApiName: definition.apiName,
438
+ createdObject: objectResult.created,
439
+ updatedObject: objectResult.updated,
440
+ ...(updatedNameField != null ? { updatedNameField } : {}),
441
+ createdFields: fieldResults.createdFields,
442
+ updatedFields: fieldResults.updatedFields,
443
+ }));
444
+ }
445
+ return Object.freeze(results);
446
+ }
447
+ //# sourceMappingURL=provisioning.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provisioning.mjs","sourceRoot":"","sources":["../../../src/core/platform/custom-objects/provisioning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import type { AnyCustomObjectDefinition, FieldNames, FieldValue, LookupReference } from "./types.mjs";
2
+ declare const STANDARD_RQL_FIELD_NAMES: readonly ["id", "name", "created_at", "updated_at", "system_updated_at", "external_id", "owner_role", "created_by", "last_modified_by"];
3
+ type StandardRqlFieldValueByName = {
4
+ id: string;
5
+ name: string;
6
+ created_at: string | null;
7
+ updated_at: string | null;
8
+ system_updated_at: string | null;
9
+ external_id: string | null;
10
+ owner_role: LookupReference<'Employee'> | null;
11
+ created_by: LookupReference<'Employee'> | null;
12
+ last_modified_by: LookupReference<'Employee'> | null;
13
+ };
14
+ /**
15
+ * Standard field-name strings exposed by the typed RQL helper.
16
+ *
17
+ * @typeParam TDefinition - Object definition whose standard fields should be exposed.
18
+ */
19
+ export type StandardRqlFieldName<TDefinition extends AnyCustomObjectDefinition> = (typeof STANDARD_RQL_FIELD_NAMES)[number];
20
+ /**
21
+ * Field-name strings accepted by the typed RQL helper.
22
+ *
23
+ * @typeParam TDefinition - Object definition whose field-name union should be exposed.
24
+ */
25
+ export type RqlFieldName<TDefinition extends AnyCustomObjectDefinition> = StandardRqlFieldName<TDefinition> | FieldNames<TDefinition>;
26
+ /**
27
+ * Field token used by the RQL helper to preserve type information across string compilation.
28
+ *
29
+ * @typeParam TValue - Runtime value type stored in the field.
30
+ * @typeParam TApiName - Wire-level field api name used when rendering RQL.
31
+ */
32
+ export interface RqlFieldToken<TValue = unknown, TApiName extends string = string> {
33
+ readonly kind: 'rql-field-token';
34
+ readonly apiName: TApiName;
35
+ readonly logicalName: string;
36
+ readonly __valueType__?: TValue;
37
+ }
38
+ /**
39
+ * Opaque RQL fragment that can be interpolated into {@link CustomObjectRqlHelpers.rql}.
40
+ */
41
+ export interface RqlFragment {
42
+ readonly kind: 'rql-fragment';
43
+ readonly text: string;
44
+ }
45
+ /**
46
+ * Scope object whose properties autocomplete to the standard and custom fields available on one object definition.
47
+ *
48
+ * @typeParam TDefinition - Object definition whose field tokens should be exposed.
49
+ */
50
+ export type RqlFieldScope<TDefinition extends AnyCustomObjectDefinition> = {
51
+ readonly [K in StandardRqlFieldName<TDefinition>]: RqlFieldToken<StandardRqlFieldValueByName[K], K>;
52
+ } & {
53
+ readonly [K in FieldNames<TDefinition>]: RqlFieldToken<FieldValue<TDefinition['fields'][K]>, TDefinition['fields'][K] extends {
54
+ apiName: infer TApiName extends string;
55
+ } ? TApiName : string>;
56
+ };
57
+ /**
58
+ * Input that the RQL helper knows how to encode as a literal value.
59
+ */
60
+ export type RqlValue = string | number | boolean | null | LookupReference<string> | readonly RqlValue[];
61
+ /**
62
+ * Runtime surface returned by {@link createRqlHelpers}.
63
+ *
64
+ * @typeParam TDefinition - Object definition whose field tokens should be exposed.
65
+ */
66
+ export interface CustomObjectRqlHelpers<TDefinition extends AnyCustomObjectDefinition> {
67
+ /** Object-scoped field tokens used for IntelliSense-friendly property access. */
68
+ readonly fields: RqlFieldScope<TDefinition>;
69
+ /** Converts a field-name string into a typed field token. */
70
+ field<TFieldName extends RqlFieldName<TDefinition>>(fieldName: TFieldName): RqlFieldScope<TDefinition>[TFieldName];
71
+ /** Renders a tagged template into a backend-ready RQL string. */
72
+ rql(strings: TemplateStringsArray, ...values: readonly RqlInterpolation[]): string;
73
+ /** Renders a fragment built by helper functions into a string. */
74
+ render(fragment: RqlFragment): string;
75
+ /** Wraps a raw RQL snippet as a fragment. Use sparingly. */
76
+ raw(text: string): RqlFragment;
77
+ /** Builds an equality comparison fragment. */
78
+ eq<TValue>(field: RqlFieldToken<TValue>, value: RqlComparableValue<TValue> | null): RqlFragment;
79
+ /** Builds an inequality comparison fragment. */
80
+ ne<TValue>(field: RqlFieldToken<TValue>, value: RqlComparableValue<TValue> | null): RqlFragment;
81
+ /** Builds a less-than comparison fragment. */
82
+ lt<TValue extends string | number>(field: RqlFieldToken<TValue>, value: TValue): RqlFragment;
83
+ /** Builds a less-than-or-equal comparison fragment. */
84
+ lte<TValue extends string | number>(field: RqlFieldToken<TValue>, value: TValue): RqlFragment;
85
+ /** Builds a greater-than comparison fragment. */
86
+ gt<TValue extends string | number>(field: RqlFieldToken<TValue>, value: TValue): RqlFragment;
87
+ /** Builds a greater-than-or-equal comparison fragment. */
88
+ gte<TValue extends string | number>(field: RqlFieldToken<TValue>, value: TValue): RqlFragment;
89
+ /** Builds an `IN` comparison fragment. */
90
+ in<TValue>(field: RqlFieldToken<TValue>, values: readonly RqlComparableValue<TValue>[]): RqlFragment;
91
+ /** Builds a `NOT_IN` comparison fragment. */
92
+ notIn<TValue>(field: RqlFieldToken<TValue>, values: readonly RqlComparableValue<TValue>[]): RqlFragment;
93
+ /** Builds an `IS NULL`-style equality fragment. */
94
+ isNull<TValue>(field: RqlFieldToken<TValue>): RqlFragment;
95
+ /** Builds an `IS NOT NULL`-style inequality fragment. */
96
+ isNotNull<TValue>(field: RqlFieldToken<TValue>): RqlFragment;
97
+ /** Builds a parenthesized `AND` fragment. */
98
+ and(...fragments: readonly RqlFragment[]): RqlFragment;
99
+ /** Builds a parenthesized `OR` fragment. */
100
+ or(...fragments: readonly RqlFragment[]): RqlFragment;
101
+ /** Builds a parenthesized `NOT` fragment. */
102
+ not(fragment: RqlFragment): RqlFragment;
103
+ }
104
+ /** Allowed comparison inputs for one field token. */
105
+ export type RqlComparableValue<TValue> = TValue extends LookupReference<string> ? TValue | string : TValue;
106
+ /** Interpolation values accepted by the tagged-template compiler. */
107
+ export type RqlInterpolation = RqlFieldToken | RqlFragment | RqlValue;
108
+ /**
109
+ * Creates a typed RQL helper surface for one custom-object definition.
110
+ *
111
+ * The helper keeps authoring close to raw RQL by combining a tagged-template
112
+ * compiler with IntelliSense-friendly field tokens. Callers write normal RQL in
113
+ * string segments and interpolate typed field references or JavaScript literal
114
+ * values where they want compiler assistance.
115
+ *
116
+ * @param definition - Typed object definition whose field tokens should be exposed.
117
+ * @returns Typed RQL helper surface bound to the supplied object definition.
118
+ * @typeParam TDefinition - Object definition whose field tokens should be exposed.
119
+ */
120
+ export declare function createRqlHelpers<TDefinition extends AnyCustomObjectDefinition>(definition: TDefinition): CustomObjectRqlHelpers<TDefinition>;
121
+ export {};
122
+ //# sourceMappingURL=rql.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rql.d.mts","sourceRoot":"","sources":["../../../src/core/platform/custom-objects/rql.ts"],"names":[],"mappings":"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"}