@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
@@ -1,5 +1,6 @@
1
1
  /*
2
- * Grant Program Management - programs, grants, applicants, applications, milestones, and disbursements.
2
+ * Grant Program Management - programs, grants, applicants, applications,
3
+ * milestones, and disbursements.
3
4
  *
4
5
  * gpm_program__c <- funding program and budget
5
6
  * gpm_grant__c <- grant cycle under a program
@@ -13,26 +14,24 @@
13
14
  * > examples/manifest/grant-program-management/manifest.json
14
15
  */
15
16
 
17
+ import { toCustomCategoryApiName } from '@rippling/rippling-sdk/core/platform/custom-objects';
16
18
  import {
17
- Category,
18
- CustomObject,
19
- CustomObjectFieldSection,
20
- CustomObjectPageLayout,
21
- DateField,
22
- EmailField,
23
- FormulaField,
24
- ListViewDef,
25
- LongTextField,
26
- LookupField,
27
- ManifestBuilder,
28
- NumberField,
29
- ParentChildField,
30
- Rule,
31
- RadioField,
32
- SummaryField,
33
- TextField,
34
- Validation,
35
- } from '@rippling/rippling-sdk/lib/manifest';
19
+ defineBasicTypedPageLayout,
20
+ defineTypedListView,
21
+ defineTypedRule,
22
+ defineTypedValidation,
23
+ registerManifestCustomObjects,
24
+ } from '@rippling/rippling-sdk/core/platform/manifest/custom-objects';
25
+ import { Category, ManifestBuilder, SummaryField } from '@rippling/rippling-sdk/lib/manifest';
26
+ import {
27
+ applicantDefinition,
28
+ applicationDefinition,
29
+ disbursementDefinition,
30
+ grantDefinition,
31
+ GRANTS_CATEGORY,
32
+ milestoneDefinition,
33
+ programDefinition,
34
+ } from './schema';
36
35
 
37
36
  const manifest = new ManifestBuilder({
38
37
  key: 'grant_program_management',
@@ -41,554 +40,261 @@ const manifest = new ManifestBuilder({
41
40
  });
42
41
 
43
42
  const category = new Category(manifest, {
44
- apiName: 'grants__c',
43
+ apiName: toCustomCategoryApiName(GRANTS_CATEGORY),
45
44
  name: 'Grants',
46
45
  description: 'Grant program and funding records',
47
46
  });
48
47
 
49
- const programObj = new CustomObject(manifest, {
50
- apiName: 'gpm_program__c',
51
- name: 'Program',
52
- pluralLabel: 'Programs',
53
- category,
54
- description: 'Funding program with annual budget and focus area',
55
- });
56
-
57
- const programSection = new CustomObjectFieldSection(programObj, {
58
- name: 'Program',
59
- sectionId: 'sec_gpm_program',
60
- });
61
-
62
- const programFocusField = new RadioField(programObj, {
63
- apiName: 'focus_area__c',
64
- displayName: 'Focus area',
65
- description: 'Program focus area',
66
- options: ['Education', 'Workforce', 'Climate', 'Health', 'Housing', 'Community safety'],
67
- required: true,
68
- section: programSection,
69
- });
70
-
71
- const programBudgetCentsField = new NumberField(programObj, {
72
- apiName: 'annual_budget_cents__c',
73
- displayName: 'Annual budget (cents)',
74
- description: 'Annual funding budget in cents',
75
- decimalPlaces: 0,
76
- section: programSection,
77
- });
78
-
79
- const programGuidelinesField = new LongTextField(programObj, {
80
- apiName: 'guidelines__c',
81
- displayName: 'Guidelines',
82
- description: 'Eligibility and operating guidelines',
83
- maxLength: 8000,
84
- section: programSection,
85
- });
86
-
87
- const grantObj = new CustomObject(manifest, {
88
- apiName: 'gpm_grant__c',
89
- name: 'Grant',
90
- pluralLabel: 'Grants',
91
- category,
92
- description: 'Grant cycle under a funding program',
93
- });
94
-
95
- const grantSection = new CustomObjectFieldSection(grantObj, {
96
- name: 'Grant',
97
- sectionId: 'sec_gpm_grant',
98
- });
99
-
100
- const grantProgramRef = new ParentChildField(grantObj, {
101
- apiName: 'program_ref__c',
102
- displayName: 'Program',
103
- target: programObj,
104
- relatedDataLabel: 'Grants',
105
- parentChildType: 'PRIMARY',
106
- enableParentOwnerInheritance: false,
107
- description: 'Program this grant belongs to',
108
- section: grantSection,
109
- });
110
-
111
- const grantStatusField = new RadioField(grantObj, {
112
- apiName: 'status__c',
113
- displayName: 'Status',
114
- description: 'Grant cycle status',
115
- options: ['Planning', 'Open', 'Review', 'Awarded', 'Closed'],
116
- required: true,
117
- section: grantSection,
118
- });
119
-
120
- const grantOpenDateField = new DateField(grantObj, {
121
- apiName: 'open_date__c',
122
- displayName: 'Open date',
123
- description: 'Application open date',
124
- section: grantSection,
125
- });
126
-
127
- const grantCloseDateField = new DateField(grantObj, {
128
- apiName: 'close_date__c',
129
- displayName: 'Close date',
130
- description: 'Application close date',
131
- section: grantSection,
132
- });
133
-
134
- const grantAwardBudgetCentsField = new NumberField(grantObj, {
135
- apiName: 'award_budget_cents__c',
136
- displayName: 'Award budget (cents)',
137
- description: 'Budget allocated to this grant cycle',
138
- decimalPlaces: 0,
139
- section: grantSection,
140
- });
141
-
142
- const applicantObj = new CustomObject(manifest, {
143
- apiName: 'gpm_applicant__c',
144
- name: 'Applicant',
145
- pluralLabel: 'Applicants',
146
- category,
147
- description: 'Applicant organization and contact details',
148
- });
149
-
150
- const applicantSection = new CustomObjectFieldSection(applicantObj, {
151
- name: 'Applicant',
152
- sectionId: 'sec_gpm_applicant',
153
- });
154
-
155
- const applicantLegalNameField = new TextField(applicantObj, {
156
- apiName: 'legal_name__c',
157
- displayName: 'Legal name',
158
- description: 'Applicant organization legal name',
159
- maxLength: 200,
160
- required: true,
161
- section: applicantSection,
162
- });
163
-
164
- const applicantTypeField = new RadioField(applicantObj, {
165
- apiName: 'applicant_type__c',
166
- displayName: 'Applicant type',
167
- description: 'Applicant organization type',
168
- options: ['Nonprofit', 'School', 'Government', 'Small business', 'Community group'],
169
- required: true,
170
- section: applicantSection,
171
- });
172
-
173
- const applicantEmailField = new EmailField(applicantObj, {
174
- apiName: 'contact_email__c',
175
- displayName: 'Contact email',
176
- description: 'Primary applicant contact email',
177
- section: applicantSection,
178
- });
179
-
180
- const applicationObj = new CustomObject(manifest, {
181
- apiName: 'gpm_application__c',
182
- name: 'Application',
183
- pluralLabel: 'Applications',
184
- category,
185
- description: 'Application submitted by an applicant for a grant',
186
- });
187
-
188
- const applicationSection = new CustomObjectFieldSection(applicationObj, {
189
- name: 'Application',
190
- sectionId: 'sec_gpm_application',
191
- });
192
-
193
- const applicationGrantRef = new ParentChildField(applicationObj, {
194
- apiName: 'grant_ref__c',
195
- displayName: 'Grant',
196
- target: grantObj,
197
- relatedDataLabel: 'Applications',
198
- parentChildType: 'PRIMARY',
199
- enableParentOwnerInheritance: false,
200
- description: 'Grant cycle this application targets',
201
- section: applicationSection,
202
- });
203
-
204
- const applicationApplicantRef = new LookupField(applicationObj, {
205
- apiName: 'applicant_ref__c',
206
- displayName: 'Applicant',
207
- target: applicantObj,
208
- relatedDataLabel: 'Applications',
209
- description: 'Applicant submitting this request',
210
- required: true,
211
- section: applicationSection,
212
- });
213
-
214
- const applicationStatusField = new RadioField(applicationObj, {
215
- apiName: 'status__c',
216
- displayName: 'Status',
217
- description: 'Application review state',
218
- options: ['Draft', 'Submitted', 'Eligibility review', 'Panel review', 'Awarded', 'Declined'],
219
- required: true,
220
- section: applicationSection,
221
- });
222
-
223
- const requestedAmountCentsField = new NumberField(applicationObj, {
224
- apiName: 'requested_amount_cents__c',
225
- displayName: 'Requested amount (cents)',
226
- description: 'Requested funding amount in cents',
227
- decimalPlaces: 0,
228
- required: true,
229
- section: applicationSection,
230
- });
231
-
232
- const scoreField = new NumberField(applicationObj, {
233
- apiName: 'review_score__c',
234
- displayName: 'Review score',
235
- description: 'Panel score from 0 to 100',
236
- decimalPlaces: 2,
237
- section: applicationSection,
238
- });
239
-
240
- const proposalSummaryField = new LongTextField(applicationObj, {
241
- apiName: 'proposal_summary__c',
242
- displayName: 'Proposal summary',
243
- description: 'Program plan and impact narrative',
244
- maxLength: 8000,
245
- section: applicationSection,
246
- });
247
-
248
- const milestoneObj = new CustomObject(manifest, {
249
- apiName: 'gpm_milestone__c',
250
- name: 'Milestone',
251
- pluralLabel: 'Milestones',
252
- category,
253
- description: 'Deliverable or report due for an awarded application',
254
- });
255
-
256
- const milestoneSection = new CustomObjectFieldSection(milestoneObj, {
257
- name: 'Milestone',
258
- sectionId: 'sec_gpm_milestone',
259
- });
260
-
261
- const milestoneApplicationRef = new ParentChildField(milestoneObj, {
262
- apiName: 'application_ref__c',
263
- displayName: 'Application',
264
- target: applicationObj,
265
- relatedDataLabel: 'Milestones',
266
- parentChildType: 'PRIMARY',
267
- enableParentOwnerInheritance: true,
268
- description: 'Application this milestone belongs to',
269
- section: milestoneSection,
270
- });
271
-
272
- const milestoneDueDateField = new DateField(milestoneObj, {
273
- apiName: 'due_date__c',
274
- displayName: 'Due date',
275
- description: 'Milestone due date',
276
- required: true,
277
- section: milestoneSection,
278
- });
279
-
280
- const milestoneStatusField = new RadioField(milestoneObj, {
281
- apiName: 'status__c',
282
- displayName: 'Status',
283
- description: 'Milestone status',
284
- options: ['Not started', 'In progress', 'Submitted', 'Accepted', 'Late'],
285
- required: true,
286
- section: milestoneSection,
287
- });
288
-
289
- const disbursementObj = new CustomObject(manifest, {
290
- apiName: 'gpm_disbursement__c',
291
- name: 'Disbursement',
292
- pluralLabel: 'Disbursements',
293
- category,
294
- description: 'Payment tranche tied to an awarded application',
295
- });
296
-
297
- const disbursementSection = new CustomObjectFieldSection(disbursementObj, {
298
- name: 'Disbursement',
299
- sectionId: 'sec_gpm_disbursement',
300
- });
301
-
302
- const disbursementApplicationRef = new ParentChildField(disbursementObj, {
303
- apiName: 'application_ref__c',
304
- displayName: 'Application',
305
- target: applicationObj,
306
- relatedDataLabel: 'Disbursements',
307
- parentChildType: 'PRIMARY',
308
- enableParentOwnerInheritance: true,
309
- description: 'Application funded by this disbursement',
310
- section: disbursementSection,
311
- });
312
-
313
- const disbursementAmountCentsField = new NumberField(disbursementObj, {
314
- apiName: 'amount_cents__c',
315
- displayName: 'Amount (cents)',
316
- description: 'Disbursement amount in cents',
317
- decimalPlaces: 0,
318
- required: true,
319
- section: disbursementSection,
320
- });
321
-
322
- const disbursementStatusField = new RadioField(disbursementObj, {
323
- apiName: 'status__c',
324
- displayName: 'Status',
325
- description: 'Disbursement status',
326
- options: ['Scheduled', 'Approved', 'Paid', 'Held', 'Cancelled'],
327
- required: true,
328
- section: disbursementSection,
329
- });
330
-
331
- const disbursementDateField = new DateField(disbursementObj, {
332
- apiName: 'disbursement_date__c',
333
- displayName: 'Disbursement date',
334
- description: 'Scheduled or actual payment date',
335
- section: disbursementSection,
336
- });
337
-
338
- const grantCountOnProgram = new SummaryField(programObj, {
48
+ const [program, grant, applicant, application, milestone, disbursement] = registerManifestCustomObjects(
49
+ manifest,
50
+ {
51
+ category,
52
+ definitions: [
53
+ programDefinition,
54
+ grantDefinition,
55
+ applicantDefinition,
56
+ applicationDefinition,
57
+ milestoneDefinition,
58
+ disbursementDefinition,
59
+ ] as const,
60
+ },
61
+ );
62
+
63
+ const grantCountOnProgram = new SummaryField(program.object, {
339
64
  apiName: 'grant_count__c',
340
65
  displayName: 'Grants',
341
- aggregates: grantStatusField,
66
+ aggregates: grant.fields.status,
342
67
  using: 'COUNT',
343
- lookup: grantProgramRef,
68
+ lookup: grant.fields.program_ref,
344
69
  description: 'Grant cycles under this program',
345
- section: programSection,
70
+ section: program.sections.program,
346
71
  });
347
72
 
348
- const applicationCountOnGrant = new SummaryField(grantObj, {
73
+ const applicationCountOnGrant = new SummaryField(grant.object, {
349
74
  apiName: 'application_count__c',
350
75
  displayName: 'Applications',
351
- aggregates: applicationApplicantRef,
76
+ aggregates: application.fields.applicant_ref,
352
77
  using: 'COUNT',
353
- lookup: applicationGrantRef,
78
+ lookup: application.fields.grant_ref,
354
79
  description: 'Applications submitted for this grant',
355
- section: grantSection,
80
+ section: grant.sections.grant,
356
81
  });
357
82
 
358
- const requestedAmountOnGrant = new SummaryField(grantObj, {
83
+ const requestedAmountOnGrant = new SummaryField(grant.object, {
359
84
  apiName: 'requested_amount_cents_total__c',
360
85
  displayName: 'Requested amount total (cents)',
361
- aggregates: requestedAmountCentsField,
86
+ aggregates: application.fields.requested_amount_cents,
362
87
  using: 'SUM',
363
- lookup: applicationGrantRef,
88
+ lookup: application.fields.grant_ref,
364
89
  description: 'Total requested funding for this grant',
365
- section: grantSection,
90
+ section: grant.sections.grant,
366
91
  });
367
92
 
368
- const milestoneCountOnApplication = new SummaryField(applicationObj, {
93
+ const milestoneCountOnApplication = new SummaryField(application.object, {
369
94
  apiName: 'milestone_count__c',
370
95
  displayName: 'Milestones',
371
- aggregates: milestoneStatusField,
96
+ aggregates: milestone.fields.status,
372
97
  using: 'COUNT',
373
- lookup: milestoneApplicationRef,
98
+ lookup: milestone.fields.application_ref,
374
99
  description: 'Milestones attached to this application',
375
- section: applicationSection,
100
+ section: application.sections.application,
376
101
  });
377
102
 
378
- const disbursedAmountOnApplication = new SummaryField(applicationObj, {
103
+ const disbursedAmountOnApplication = new SummaryField(application.object, {
379
104
  apiName: 'disbursed_amount_cents__c',
380
105
  displayName: 'Disbursed amount (cents)',
381
- aggregates: disbursementAmountCentsField,
106
+ aggregates: disbursement.fields.amount_cents,
382
107
  using: 'SUM',
383
- lookup: disbursementApplicationRef,
108
+ lookup: disbursement.fields.application_ref,
384
109
  description: 'Total disbursements for this application',
385
- section: applicationSection,
110
+ section: application.sections.application,
386
111
  });
387
112
 
388
- const applicationLabelField = new FormulaField(applicationObj, {
389
- apiName: 'review_label__c',
390
- displayName: 'Review label',
391
- description: 'Review queue label',
392
- fieldType: 'TEXT',
393
- maxLength: 240,
394
- formula: "CONCATENATE(status__c, ' - score ', review_score__c)",
395
- section: applicationSection,
396
- });
397
-
398
- new Validation(grantObj, {
113
+ // ── Validations & defaults ────────────────────────────────────────────────
114
+ defineTypedValidation(grant, {
399
115
  ruleId: 'gpm_grant_close_after_open',
400
116
  displayName: 'Close date must be after open date',
401
- rqlFormula: '(close_date__c <= open_date__c)',
117
+ whenInvalid: (c) => c.lte(c.fields.close_date, c.fields.open_date),
402
118
  errorMessage: 'Close date must be after open date.',
403
119
  ruleDescription: 'Prevents inverted application windows',
404
120
  state: 'ACTIVE',
405
121
  level: 'FIELD',
406
- fieldRef: grantCloseDateField,
122
+ field: 'close_date',
407
123
  });
408
124
 
409
- new Validation(applicationObj, {
125
+ defineTypedValidation(application, {
410
126
  ruleId: 'gpm_requested_amount_positive',
411
127
  displayName: 'Requested amount must be positive',
412
- rqlFormula: '(requested_amount_cents__c <= 0)',
128
+ whenInvalid: (c) => c.lte(c.fields.requested_amount_cents, 0),
413
129
  errorMessage: 'Requested amount must be greater than zero.',
414
130
  ruleDescription: 'Blocks zero-value applications',
415
131
  state: 'ACTIVE',
416
132
  level: 'FIELD',
417
- fieldRef: requestedAmountCentsField,
133
+ field: 'requested_amount_cents',
418
134
  });
419
135
 
420
- new Validation(applicationObj, {
136
+ defineTypedValidation(application, {
421
137
  ruleId: 'gpm_review_score_range',
422
138
  displayName: 'Review score must be 0-100',
423
- rqlFormula: '((review_score__c < 0) OR (review_score__c > 100))',
139
+ whenInvalid: (c) => c.or(c.lt(c.fields.review_score, 0), c.gt(c.fields.review_score, 100)),
424
140
  errorMessage: 'Review score must be between 0 and 100.',
425
141
  ruleDescription: 'Keeps panel scores in range',
426
142
  state: 'ACTIVE',
427
143
  level: 'FIELD',
428
- fieldRef: scoreField,
144
+ field: 'review_score',
429
145
  });
430
146
 
431
- new Rule(applicationObj, {
147
+ defineTypedRule(application, {
432
148
  flowId: 'gpm_default_application_status',
433
149
  flowName: 'Default application status',
434
150
  triggerType: 'CREATE',
435
151
  description: 'New applications start as Draft',
436
- actions: [{ targetField: applicationStatusField, fixedValue: 'Draft' }],
152
+ actions: (rules) => [rules.setField('status').toValue('Draft')],
437
153
  });
438
154
 
439
- new Rule(milestoneObj, {
155
+ defineTypedRule(milestone, {
440
156
  flowId: 'gpm_default_milestone_status',
441
157
  flowName: 'Default milestone status',
442
158
  triggerType: 'CREATE',
443
159
  description: 'New milestones start Not started',
444
- actions: [{ targetField: milestoneStatusField, fixedValue: 'Not started' }],
160
+ actions: (rules) => [rules.setField('status').toValue('Not started')],
445
161
  });
446
162
 
447
- new ListViewDef(programObj, {
163
+ // ── List views ─────────────────────────────────────────────────────────────
164
+ defineTypedListView(program, {
448
165
  viewId: 'view_gpm_programs',
449
166
  name: 'Programs',
450
167
  description: 'Funding programs with budgets and grant counts',
451
- fields: ['name', programFocusField, programBudgetCentsField, grantCountOnProgram],
168
+ fields: ['name', 'focus_area', 'annual_budget_cents', grantCountOnProgram],
452
169
  orderBy: 'name',
453
170
  sortOrder: 'ASC',
454
171
  isPublic: true,
455
172
  objectScope: 'all',
456
173
  });
457
174
 
458
- new ListViewDef(grantObj, {
175
+ defineTypedListView(grant, {
459
176
  viewId: 'view_gpm_grants',
460
177
  name: 'Grants',
461
178
  description: 'Grant cycles with application and requested amount rollups',
462
179
  fields: [
463
180
  'name',
464
- grantProgramRef,
465
- grantStatusField,
466
- grantOpenDateField,
467
- grantCloseDateField,
468
- grantAwardBudgetCentsField,
181
+ 'program_ref',
182
+ 'status',
183
+ 'open_date',
184
+ 'close_date',
185
+ 'award_budget_cents',
469
186
  applicationCountOnGrant,
470
187
  requestedAmountOnGrant,
471
188
  ],
472
- orderBy: grantCloseDateField,
189
+ orderBy: 'close_date',
473
190
  sortOrder: 'ASC',
474
191
  isPublic: true,
475
192
  objectScope: 'all',
476
193
  });
477
194
 
478
- new ListViewDef(applicantObj, {
195
+ defineTypedListView(applicant, {
479
196
  viewId: 'view_gpm_applicants',
480
197
  name: 'Applicants',
481
198
  description: 'Applicant directory',
482
- fields: ['name', applicantLegalNameField, applicantTypeField, applicantEmailField],
483
- orderBy: applicantLegalNameField,
199
+ fields: ['name', 'legal_name', 'applicant_type', 'contact_email'],
200
+ orderBy: 'legal_name',
484
201
  sortOrder: 'ASC',
485
202
  isPublic: true,
486
203
  objectScope: 'all',
487
204
  });
488
205
 
489
- new ListViewDef(applicationObj, {
206
+ defineTypedListView(application, {
490
207
  viewId: 'view_gpm_applications',
491
208
  name: 'Applications',
492
209
  description: 'Application review queue',
493
210
  fields: [
494
211
  'name',
495
- applicationGrantRef,
496
- applicationApplicantRef,
497
- applicationStatusField,
498
- requestedAmountCentsField,
499
- scoreField,
212
+ 'grant_ref',
213
+ 'applicant_ref',
214
+ 'status',
215
+ 'requested_amount_cents',
216
+ 'review_score',
500
217
  milestoneCountOnApplication,
501
218
  disbursedAmountOnApplication,
502
- applicationLabelField,
219
+ 'review_label',
503
220
  ],
504
- orderBy: scoreField,
221
+ orderBy: 'review_score',
505
222
  sortOrder: 'DESC',
506
223
  isPublic: true,
507
224
  objectScope: 'all',
508
225
  });
509
226
 
510
- new ListViewDef(milestoneObj, {
227
+ defineTypedListView(milestone, {
511
228
  viewId: 'view_gpm_milestones',
512
229
  name: 'Milestones',
513
230
  description: 'Deliverables and report deadlines',
514
- fields: ['name', milestoneApplicationRef, milestoneDueDateField, milestoneStatusField],
515
- orderBy: milestoneDueDateField,
231
+ fields: ['name', 'application_ref', 'due_date', 'status'],
232
+ orderBy: 'due_date',
516
233
  sortOrder: 'ASC',
517
234
  isPublic: true,
518
235
  objectScope: 'all',
519
236
  });
520
237
 
521
- new ListViewDef(disbursementObj, {
238
+ defineTypedListView(disbursement, {
522
239
  viewId: 'view_gpm_disbursements',
523
240
  name: 'Disbursements',
524
241
  description: 'Payment tranches by application',
525
- fields: [
526
- 'name',
527
- disbursementApplicationRef,
528
- disbursementAmountCentsField,
529
- disbursementStatusField,
530
- disbursementDateField,
531
- ],
532
- orderBy: disbursementDateField,
242
+ fields: ['name', 'application_ref', 'amount_cents', 'status', 'disbursement_date'],
243
+ orderBy: 'disbursement_date',
533
244
  sortOrder: 'ASC',
534
245
  isPublic: true,
535
246
  objectScope: 'all',
536
247
  });
537
248
 
538
- CustomObjectPageLayout.basic(programObj, {
539
- section: programSection,
540
- fields: ['name', programFocusField, programBudgetCentsField, grantCountOnProgram, programGuidelinesField],
249
+ // ── Page layouts ───────────────────────────────────────────────────────────
250
+ defineBasicTypedPageLayout(program, {
251
+ section: program.sections.program,
252
+ fields: ['name', 'focus_area', 'annual_budget_cents', grantCountOnProgram, 'guidelines'],
541
253
  });
542
254
 
543
- CustomObjectPageLayout.basic(grantObj, {
544
- section: grantSection,
255
+ defineBasicTypedPageLayout(grant, {
256
+ section: grant.sections.grant,
545
257
  fields: [
546
258
  'name',
547
- grantProgramRef,
548
- grantStatusField,
549
- grantOpenDateField,
550
- grantCloseDateField,
551
- grantAwardBudgetCentsField,
259
+ 'program_ref',
260
+ 'status',
261
+ 'open_date',
262
+ 'close_date',
263
+ 'award_budget_cents',
552
264
  applicationCountOnGrant,
553
265
  requestedAmountOnGrant,
554
266
  ],
555
267
  });
556
268
 
557
- CustomObjectPageLayout.basic(applicantObj, {
558
- section: applicantSection,
559
- fields: ['name', applicantLegalNameField, applicantTypeField, applicantEmailField],
269
+ defineBasicTypedPageLayout(applicant, {
270
+ section: applicant.sections.applicant,
271
+ fields: ['name', 'legal_name', 'applicant_type', 'contact_email'],
560
272
  });
561
273
 
562
- CustomObjectPageLayout.basic(applicationObj, {
563
- section: applicationSection,
274
+ defineBasicTypedPageLayout(application, {
275
+ section: application.sections.application,
564
276
  fields: [
565
277
  'name',
566
- applicationGrantRef,
567
- applicationApplicantRef,
568
- applicationStatusField,
569
- requestedAmountCentsField,
570
- scoreField,
278
+ 'grant_ref',
279
+ 'applicant_ref',
280
+ 'status',
281
+ 'requested_amount_cents',
282
+ 'review_score',
571
283
  milestoneCountOnApplication,
572
284
  disbursedAmountOnApplication,
573
- applicationLabelField,
574
- proposalSummaryField,
285
+ 'review_label',
286
+ 'proposal_summary',
575
287
  ],
576
288
  });
577
289
 
578
- CustomObjectPageLayout.basic(milestoneObj, {
579
- section: milestoneSection,
580
- fields: ['name', milestoneApplicationRef, milestoneDueDateField, milestoneStatusField],
290
+ defineBasicTypedPageLayout(milestone, {
291
+ section: milestone.sections.milestone,
292
+ fields: ['name', 'application_ref', 'due_date', 'status'],
581
293
  });
582
294
 
583
- CustomObjectPageLayout.basic(disbursementObj, {
584
- section: disbursementSection,
585
- fields: [
586
- 'name',
587
- disbursementApplicationRef,
588
- disbursementAmountCentsField,
589
- disbursementStatusField,
590
- disbursementDateField,
591
- ],
295
+ defineBasicTypedPageLayout(disbursement, {
296
+ section: disbursement.sections.disbursement,
297
+ fields: ['name', 'application_ref', 'amount_cents', 'status', 'disbursement_date'],
592
298
  });
593
299
 
594
300
  console.log(manifest.preview());