@rippling/rippling-sdk 0.2.0-alpha.108 → 0.2.0-alpha.110

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 (366) hide show
  1. package/client.d.mts +14 -0
  2. package/client.d.mts.map +1 -1
  3. package/client.d.ts +14 -0
  4. package/client.d.ts.map +1 -1
  5. package/client.js +18 -0
  6. package/client.js.map +1 -1
  7. package/client.mjs +18 -0
  8. package/client.mjs.map +1 -1
  9. package/index.d.mts +5 -0
  10. package/index.d.mts.map +1 -1
  11. package/index.d.ts +5 -0
  12. package/index.d.ts.map +1 -1
  13. package/index.js +11 -1
  14. package/index.js.map +1 -1
  15. package/index.mjs +5 -0
  16. package/index.mjs.map +1 -1
  17. package/lib/charts/builders.d.mts +18 -19
  18. package/lib/charts/builders.d.mts.map +1 -1
  19. package/lib/charts/builders.d.ts +18 -19
  20. package/lib/charts/builders.d.ts.map +1 -1
  21. package/lib/charts/builders.js +35 -28
  22. package/lib/charts/builders.js.map +1 -1
  23. package/lib/charts/builders.mjs +35 -28
  24. package/lib/charts/builders.mjs.map +1 -1
  25. package/lib/charts/describe.d.mts +6 -7
  26. package/lib/charts/describe.d.mts.map +1 -1
  27. package/lib/charts/describe.d.ts +6 -7
  28. package/lib/charts/describe.d.ts.map +1 -1
  29. package/lib/charts/describe.js +26 -27
  30. package/lib/charts/describe.js.map +1 -1
  31. package/lib/charts/describe.mjs +27 -28
  32. package/lib/charts/describe.mjs.map +1 -1
  33. package/lib/charts/errors.d.mts +2 -6
  34. package/lib/charts/errors.d.mts.map +1 -1
  35. package/lib/charts/errors.d.ts +2 -6
  36. package/lib/charts/errors.d.ts.map +1 -1
  37. package/lib/charts/errors.js +2 -6
  38. package/lib/charts/errors.js.map +1 -1
  39. package/lib/charts/errors.mjs +2 -6
  40. package/lib/charts/errors.mjs.map +1 -1
  41. package/lib/charts/evaluate.d.mts +5 -7
  42. package/lib/charts/evaluate.d.mts.map +1 -1
  43. package/lib/charts/evaluate.d.ts +5 -7
  44. package/lib/charts/evaluate.d.ts.map +1 -1
  45. package/lib/charts/evaluate.js +21 -35
  46. package/lib/charts/evaluate.js.map +1 -1
  47. package/lib/charts/evaluate.mjs +22 -36
  48. package/lib/charts/evaluate.mjs.map +1 -1
  49. package/lib/charts/schema.d.mts +8 -97
  50. package/lib/charts/schema.d.mts.map +1 -1
  51. package/lib/charts/schema.d.ts +8 -97
  52. package/lib/charts/schema.d.ts.map +1 -1
  53. package/lib/charts/schema.js +186 -65
  54. package/lib/charts/schema.js.map +1 -1
  55. package/lib/charts/schema.mjs +185 -65
  56. package/lib/charts/schema.mjs.map +1 -1
  57. package/lib/charts/types.d.mts +40 -25
  58. package/lib/charts/types.d.mts.map +1 -1
  59. package/lib/charts/types.d.ts +40 -25
  60. package/lib/charts/types.d.ts.map +1 -1
  61. package/lib/charts/types.js +8 -10
  62. package/lib/charts/types.js.map +1 -1
  63. package/lib/charts/types.mjs +8 -10
  64. package/lib/charts/types.mjs.map +1 -1
  65. package/lib/charts/visualization-grammar.d.mts +66 -0
  66. package/lib/charts/visualization-grammar.d.mts.map +1 -0
  67. package/lib/charts/visualization-grammar.d.ts +66 -0
  68. package/lib/charts/visualization-grammar.d.ts.map +1 -0
  69. package/lib/charts/visualization-grammar.js +70 -0
  70. package/lib/charts/visualization-grammar.js.map +1 -0
  71. package/lib/charts/visualization-grammar.mjs +67 -0
  72. package/lib/charts/visualization-grammar.mjs.map +1 -0
  73. package/lib/charts/vocabulary.d.mts +7 -0
  74. package/lib/charts/vocabulary.d.mts.map +1 -0
  75. package/lib/charts/vocabulary.d.ts +7 -0
  76. package/lib/charts/vocabulary.d.ts.map +1 -0
  77. package/lib/charts/vocabulary.js +10 -0
  78. package/lib/charts/vocabulary.js.map +1 -0
  79. package/lib/charts/vocabulary.mjs +7 -0
  80. package/lib/charts/vocabulary.mjs.map +1 -0
  81. package/lib/charts.d.mts +3 -3
  82. package/lib/charts.d.mts.map +1 -1
  83. package/lib/charts.d.ts +3 -3
  84. package/lib/charts.d.ts.map +1 -1
  85. package/lib/charts.js +2 -1
  86. package/lib/charts.js.map +1 -1
  87. package/lib/charts.mjs +1 -1
  88. package/lib/charts.mjs.map +1 -1
  89. package/lib/manifest/composition.d.mts +21 -0
  90. package/lib/manifest/composition.d.mts.map +1 -0
  91. package/lib/manifest/composition.d.ts +21 -0
  92. package/lib/manifest/composition.d.ts.map +1 -0
  93. package/lib/manifest/composition.js +103 -0
  94. package/lib/manifest/composition.js.map +1 -0
  95. package/lib/manifest/composition.mjs +99 -0
  96. package/lib/manifest/composition.mjs.map +1 -0
  97. package/lib/manifest/definitions/_object-records.d.mts +23 -0
  98. package/lib/manifest/definitions/_object-records.d.mts.map +1 -0
  99. package/lib/manifest/definitions/_object-records.d.ts +23 -0
  100. package/lib/manifest/definitions/_object-records.d.ts.map +1 -0
  101. package/lib/manifest/definitions/_object-records.js +151 -0
  102. package/lib/manifest/definitions/_object-records.js.map +1 -0
  103. package/lib/manifest/definitions/_object-records.mjs +147 -0
  104. package/lib/manifest/definitions/_object-records.mjs.map +1 -0
  105. package/lib/manifest/definitions/action.d.mts +7 -0
  106. package/lib/manifest/definitions/action.d.mts.map +1 -0
  107. package/lib/manifest/definitions/action.d.ts +7 -0
  108. package/lib/manifest/definitions/action.d.ts.map +1 -0
  109. package/lib/manifest/definitions/action.js +25 -0
  110. package/lib/manifest/definitions/action.js.map +1 -0
  111. package/lib/manifest/definitions/action.mjs +22 -0
  112. package/lib/manifest/definitions/action.mjs.map +1 -0
  113. package/lib/manifest/definitions/agent.d.mts +51 -0
  114. package/lib/manifest/definitions/agent.d.mts.map +1 -0
  115. package/lib/manifest/definitions/agent.d.ts +51 -0
  116. package/lib/manifest/definitions/agent.d.ts.map +1 -0
  117. package/lib/manifest/definitions/agent.js +65 -0
  118. package/lib/manifest/definitions/agent.js.map +1 -0
  119. package/lib/manifest/definitions/agent.mjs +59 -0
  120. package/lib/manifest/definitions/agent.mjs.map +1 -0
  121. package/lib/manifest/definitions/app.d.mts +3 -0
  122. package/lib/manifest/definitions/app.d.mts.map +1 -0
  123. package/lib/manifest/definitions/app.d.ts +3 -0
  124. package/lib/manifest/definitions/app.d.ts.map +1 -0
  125. package/lib/manifest/definitions/app.js +14 -0
  126. package/lib/manifest/definitions/app.js.map +1 -0
  127. package/lib/manifest/definitions/app.mjs +11 -0
  128. package/lib/manifest/definitions/app.mjs.map +1 -0
  129. package/lib/manifest/definitions/category.d.mts +9 -0
  130. package/lib/manifest/definitions/category.d.mts.map +1 -0
  131. package/lib/manifest/definitions/category.d.ts +9 -0
  132. package/lib/manifest/definitions/category.d.ts.map +1 -0
  133. package/lib/manifest/definitions/category.js +27 -0
  134. package/lib/manifest/definitions/category.js.map +1 -0
  135. package/lib/manifest/definitions/category.mjs +23 -0
  136. package/lib/manifest/definitions/category.mjs.map +1 -0
  137. package/lib/manifest/definitions/component.d.mts +101 -0
  138. package/lib/manifest/definitions/component.d.mts.map +1 -0
  139. package/lib/manifest/definitions/component.d.ts +101 -0
  140. package/lib/manifest/definitions/component.d.ts.map +1 -0
  141. package/lib/manifest/definitions/component.js +106 -0
  142. package/lib/manifest/definitions/component.js.map +1 -0
  143. package/lib/manifest/definitions/component.mjs +97 -0
  144. package/lib/manifest/definitions/component.mjs.map +1 -0
  145. package/lib/manifest/definitions/custom-field-section.d.mts +13 -0
  146. package/lib/manifest/definitions/custom-field-section.d.mts.map +1 -0
  147. package/lib/manifest/definitions/custom-field-section.d.ts +13 -0
  148. package/lib/manifest/definitions/custom-field-section.d.ts.map +1 -0
  149. package/lib/manifest/definitions/custom-field-section.js +15 -0
  150. package/lib/manifest/definitions/custom-field-section.js.map +1 -0
  151. package/lib/manifest/definitions/custom-field-section.mjs +12 -0
  152. package/lib/manifest/definitions/custom-field-section.mjs.map +1 -0
  153. package/lib/manifest/definitions/custom-field.d.mts +10 -0
  154. package/lib/manifest/definitions/custom-field.d.mts.map +1 -0
  155. package/lib/manifest/definitions/custom-field.d.ts +10 -0
  156. package/lib/manifest/definitions/custom-field.d.ts.map +1 -0
  157. package/lib/manifest/definitions/custom-field.js +18 -0
  158. package/lib/manifest/definitions/custom-field.js.map +1 -0
  159. package/lib/manifest/definitions/custom-field.mjs +15 -0
  160. package/lib/manifest/definitions/custom-field.mjs.map +1 -0
  161. package/lib/manifest/definitions/custom-object.d.mts +162 -0
  162. package/lib/manifest/definitions/custom-object.d.mts.map +1 -0
  163. package/lib/manifest/definitions/custom-object.d.ts +162 -0
  164. package/lib/manifest/definitions/custom-object.d.ts.map +1 -0
  165. package/lib/manifest/definitions/custom-object.js +412 -0
  166. package/lib/manifest/definitions/custom-object.js.map +1 -0
  167. package/lib/manifest/definitions/custom-object.mjs +386 -0
  168. package/lib/manifest/definitions/custom-object.mjs.map +1 -0
  169. package/lib/manifest/definitions/custom-skill.d.mts +8 -0
  170. package/lib/manifest/definitions/custom-skill.d.mts.map +1 -0
  171. package/lib/manifest/definitions/custom-skill.d.ts +8 -0
  172. package/lib/manifest/definitions/custom-skill.d.ts.map +1 -0
  173. package/lib/manifest/definitions/custom-skill.js +15 -0
  174. package/lib/manifest/definitions/custom-skill.js.map +1 -0
  175. package/lib/manifest/definitions/custom-skill.mjs +12 -0
  176. package/lib/manifest/definitions/custom-skill.mjs.map +1 -0
  177. package/lib/manifest/definitions/field-section.d.mts +7 -0
  178. package/lib/manifest/definitions/field-section.d.mts.map +1 -0
  179. package/lib/manifest/definitions/field-section.d.ts +7 -0
  180. package/lib/manifest/definitions/field-section.d.ts.map +1 -0
  181. package/lib/manifest/definitions/field-section.js +16 -0
  182. package/lib/manifest/definitions/field-section.js.map +1 -0
  183. package/lib/manifest/definitions/field-section.mjs +13 -0
  184. package/lib/manifest/definitions/field-section.mjs.map +1 -0
  185. package/lib/manifest/definitions/field.d.mts +38 -0
  186. package/lib/manifest/definitions/field.d.mts.map +1 -0
  187. package/lib/manifest/definitions/field.d.ts +38 -0
  188. package/lib/manifest/definitions/field.d.ts.map +1 -0
  189. package/lib/manifest/definitions/field.js +50 -0
  190. package/lib/manifest/definitions/field.js.map +1 -0
  191. package/lib/manifest/definitions/field.mjs +45 -0
  192. package/lib/manifest/definitions/field.mjs.map +1 -0
  193. package/lib/manifest/definitions/function.d.mts +61 -0
  194. package/lib/manifest/definitions/function.d.mts.map +1 -0
  195. package/lib/manifest/definitions/function.d.ts +61 -0
  196. package/lib/manifest/definitions/function.d.ts.map +1 -0
  197. package/lib/manifest/definitions/function.js +79 -0
  198. package/lib/manifest/definitions/function.js.map +1 -0
  199. package/lib/manifest/definitions/function.mjs +73 -0
  200. package/lib/manifest/definitions/function.mjs.map +1 -0
  201. package/lib/manifest/definitions/index.d.mts +22 -0
  202. package/lib/manifest/definitions/index.d.mts.map +1 -0
  203. package/lib/manifest/definitions/index.d.ts +22 -0
  204. package/lib/manifest/definitions/index.d.ts.map +1 -0
  205. package/lib/manifest/definitions/index.js +64 -0
  206. package/lib/manifest/definitions/index.js.map +1 -0
  207. package/lib/manifest/definitions/index.mjs +22 -0
  208. package/lib/manifest/definitions/index.mjs.map +1 -0
  209. package/lib/manifest/definitions/list-view.d.mts +9 -0
  210. package/lib/manifest/definitions/list-view.d.mts.map +1 -0
  211. package/lib/manifest/definitions/list-view.d.ts +9 -0
  212. package/lib/manifest/definitions/list-view.d.ts.map +1 -0
  213. package/lib/manifest/definitions/list-view.js +25 -0
  214. package/lib/manifest/definitions/list-view.js.map +1 -0
  215. package/lib/manifest/definitions/list-view.mjs +22 -0
  216. package/lib/manifest/definitions/list-view.mjs.map +1 -0
  217. package/lib/manifest/definitions/object-search-config.d.mts +13 -0
  218. package/lib/manifest/definitions/object-search-config.d.mts.map +1 -0
  219. package/lib/manifest/definitions/object-search-config.d.ts +13 -0
  220. package/lib/manifest/definitions/object-search-config.d.ts.map +1 -0
  221. package/lib/manifest/definitions/object-search-config.js +25 -0
  222. package/lib/manifest/definitions/object-search-config.js.map +1 -0
  223. package/lib/manifest/definitions/object-search-config.mjs +22 -0
  224. package/lib/manifest/definitions/object-search-config.mjs.map +1 -0
  225. package/lib/manifest/definitions/object-settings.d.mts +24 -0
  226. package/lib/manifest/definitions/object-settings.d.mts.map +1 -0
  227. package/lib/manifest/definitions/object-settings.d.ts +24 -0
  228. package/lib/manifest/definitions/object-settings.d.ts.map +1 -0
  229. package/lib/manifest/definitions/object-settings.js +32 -0
  230. package/lib/manifest/definitions/object-settings.js.map +1 -0
  231. package/lib/manifest/definitions/object-settings.mjs +29 -0
  232. package/lib/manifest/definitions/object-settings.mjs.map +1 -0
  233. package/lib/manifest/definitions/page-layout.d.mts +21 -0
  234. package/lib/manifest/definitions/page-layout.d.mts.map +1 -0
  235. package/lib/manifest/definitions/page-layout.d.ts +21 -0
  236. package/lib/manifest/definitions/page-layout.d.ts.map +1 -0
  237. package/lib/manifest/definitions/page-layout.js +155 -0
  238. package/lib/manifest/definitions/page-layout.js.map +1 -0
  239. package/lib/manifest/definitions/page-layout.mjs +152 -0
  240. package/lib/manifest/definitions/page-layout.mjs.map +1 -0
  241. package/lib/manifest/definitions/page.d.mts +8 -0
  242. package/lib/manifest/definitions/page.d.mts.map +1 -0
  243. package/lib/manifest/definitions/page.d.ts +8 -0
  244. package/lib/manifest/definitions/page.d.ts.map +1 -0
  245. package/lib/manifest/definitions/page.js +15 -0
  246. package/lib/manifest/definitions/page.js.map +1 -0
  247. package/lib/manifest/definitions/page.mjs +12 -0
  248. package/lib/manifest/definitions/page.mjs.map +1 -0
  249. package/lib/manifest/definitions/record-triggered-flow.d.mts +24 -0
  250. package/lib/manifest/definitions/record-triggered-flow.d.mts.map +1 -0
  251. package/lib/manifest/definitions/record-triggered-flow.d.ts +24 -0
  252. package/lib/manifest/definitions/record-triggered-flow.d.ts.map +1 -0
  253. package/lib/manifest/definitions/record-triggered-flow.js +28 -0
  254. package/lib/manifest/definitions/record-triggered-flow.js.map +1 -0
  255. package/lib/manifest/definitions/record-triggered-flow.mjs +25 -0
  256. package/lib/manifest/definitions/record-triggered-flow.mjs.map +1 -0
  257. package/lib/manifest/definitions/validation.d.mts +8 -0
  258. package/lib/manifest/definitions/validation.d.mts.map +1 -0
  259. package/lib/manifest/definitions/validation.d.ts +8 -0
  260. package/lib/manifest/definitions/validation.d.ts.map +1 -0
  261. package/lib/manifest/definitions/validation.js +24 -0
  262. package/lib/manifest/definitions/validation.js.map +1 -0
  263. package/lib/manifest/definitions/validation.mjs +21 -0
  264. package/lib/manifest/definitions/validation.mjs.map +1 -0
  265. package/lib/manifest/definitions/workflow.d.mts +10 -0
  266. package/lib/manifest/definitions/workflow.d.mts.map +1 -0
  267. package/lib/manifest/definitions/workflow.d.ts +10 -0
  268. package/lib/manifest/definitions/workflow.d.ts.map +1 -0
  269. package/lib/manifest/definitions/workflow.js +33 -0
  270. package/lib/manifest/definitions/workflow.js.map +1 -0
  271. package/lib/manifest/definitions/workflow.mjs +29 -0
  272. package/lib/manifest/definitions/workflow.mjs.map +1 -0
  273. package/lib/manifest/index.d.mts +3 -0
  274. package/lib/manifest/index.d.mts.map +1 -1
  275. package/lib/manifest/index.d.ts +3 -0
  276. package/lib/manifest/index.d.ts.map +1 -1
  277. package/lib/manifest/index.js +4 -0
  278. package/lib/manifest/index.js.map +1 -1
  279. package/lib/manifest/index.mjs +3 -0
  280. package/lib/manifest/index.mjs.map +1 -1
  281. package/lib/manifest/package-manifest.d.mts +17 -0
  282. package/lib/manifest/package-manifest.d.mts.map +1 -0
  283. package/lib/manifest/package-manifest.d.ts +17 -0
  284. package/lib/manifest/package-manifest.d.ts.map +1 -0
  285. package/lib/manifest/package-manifest.js +26 -0
  286. package/lib/manifest/package-manifest.js.map +1 -0
  287. package/lib/manifest/package-manifest.mjs +23 -0
  288. package/lib/manifest/package-manifest.mjs.map +1 -0
  289. package/package.json +4 -2
  290. package/resources/index.d.mts +1 -0
  291. package/resources/index.d.mts.map +1 -1
  292. package/resources/index.d.ts +1 -0
  293. package/resources/index.d.ts.map +1 -1
  294. package/resources/index.js +4 -2
  295. package/resources/index.js.map +1 -1
  296. package/resources/index.mjs +1 -0
  297. package/resources/index.mjs.map +1 -1
  298. package/resources/reimbursements.d.mts +1 -1
  299. package/resources/reimbursements.d.ts +1 -1
  300. package/resources/reimbursements.js +1 -1
  301. package/resources/reimbursements.mjs +1 -1
  302. package/resources/spend-categories.d.mts +140 -0
  303. package/resources/spend-categories.d.mts.map +1 -0
  304. package/resources/spend-categories.d.ts +140 -0
  305. package/resources/spend-categories.d.ts.map +1 -0
  306. package/resources/spend-categories.js +83 -0
  307. package/resources/spend-categories.js.map +1 -0
  308. package/resources/spend-categories.mjs +79 -0
  309. package/resources/spend-categories.mjs.map +1 -0
  310. package/src/client.ts +41 -0
  311. package/src/index.ts +17 -0
  312. package/src/lib/charts/README.md +35 -28
  313. package/src/lib/charts/agent-reference.md +73 -0
  314. package/src/lib/charts/builders.ts +51 -35
  315. package/src/lib/charts/capabilities.json +96 -0
  316. package/src/lib/charts/describe.ts +31 -29
  317. package/src/lib/charts/errors.ts +2 -6
  318. package/src/lib/charts/evaluate.ts +25 -38
  319. package/src/lib/charts/schema.ts +232 -66
  320. package/src/lib/charts/types.ts +42 -31
  321. package/src/lib/charts/visualization-grammar.ts +67 -0
  322. package/src/lib/charts/vocabulary.ts +7 -0
  323. package/src/lib/charts.ts +8 -1
  324. package/src/lib/manifest/composition.ts +133 -0
  325. package/src/lib/manifest/definitions/README.md +89 -0
  326. package/src/lib/manifest/definitions/_object-records.ts +218 -0
  327. package/src/lib/manifest/definitions/action.ts +31 -0
  328. package/src/lib/manifest/definitions/agent.ts +149 -0
  329. package/src/lib/manifest/definitions/app.ts +12 -0
  330. package/src/lib/manifest/definitions/category.ts +35 -0
  331. package/src/lib/manifest/definitions/component.ts +241 -0
  332. package/src/lib/manifest/definitions/custom-field-section.ts +39 -0
  333. package/src/lib/manifest/definitions/custom-field.ts +32 -0
  334. package/src/lib/manifest/definitions/custom-object.ts +786 -0
  335. package/src/lib/manifest/definitions/custom-skill.ts +28 -0
  336. package/src/lib/manifest/definitions/field-section.ts +31 -0
  337. package/src/lib/manifest/definitions/field.ts +119 -0
  338. package/src/lib/manifest/definitions/function.ts +198 -0
  339. package/src/lib/manifest/definitions/index.ts +91 -0
  340. package/src/lib/manifest/definitions/list-view.ts +48 -0
  341. package/src/lib/manifest/definitions/object-search-config.ts +44 -0
  342. package/src/lib/manifest/definitions/object-settings.ts +61 -0
  343. package/src/lib/manifest/definitions/page-layout.ts +218 -0
  344. package/src/lib/manifest/definitions/page.ts +28 -0
  345. package/src/lib/manifest/definitions/record-triggered-flow.ts +71 -0
  346. package/src/lib/manifest/definitions/validation.ts +46 -0
  347. package/src/lib/manifest/definitions/workflow.ts +62 -0
  348. package/src/lib/manifest/index.ts +4 -0
  349. package/src/lib/manifest/package-manifest.ts +40 -0
  350. package/src/resources/index.ts +7 -0
  351. package/src/resources/reimbursements.ts +1 -1
  352. package/src/resources/spend-categories.ts +175 -0
  353. package/src/version.ts +1 -1
  354. package/version.d.mts +1 -1
  355. package/version.d.ts +1 -1
  356. package/version.js +1 -1
  357. package/version.mjs +1 -1
  358. package/lib/charts/guards.d.mts +0 -15
  359. package/lib/charts/guards.d.mts.map +0 -1
  360. package/lib/charts/guards.d.ts +0 -15
  361. package/lib/charts/guards.d.ts.map +0 -1
  362. package/lib/charts/guards.js +0 -38
  363. package/lib/charts/guards.js.map +0 -1
  364. package/lib/charts/guards.mjs +0 -34
  365. package/lib/charts/guards.mjs.map +0 -1
  366. package/src/lib/charts/guards.ts +0 -42
@@ -0,0 +1,28 @@
1
+ import {
2
+ defineComponent,
3
+ withApiName,
4
+ detachedManifestScope,
5
+ validateCustomApiName,
6
+ type ComponentDefinition,
7
+ } from './component';
8
+ import { CustomSkill, type CustomSkillProps } from '../custom-skill';
9
+
10
+ /** New skills use API names; the legacy constructor remains available separately. */
11
+ export type DefinedCustomSkillProps = Omit<CustomSkillProps, 'sourceSkillId'> & {
12
+ apiName: `${string}__c`;
13
+ sourceSkillId?: never;
14
+ };
15
+
16
+ export function defineCustomSkill(props: DefinedCustomSkillProps): CustomSkill {
17
+ validateCustomApiName(props.apiName);
18
+ const { apiName, ...config } = props;
19
+ return customSkillComponent.register(
20
+ withApiName(new CustomSkill(detachedManifestScope, config), apiName, { source_skill_id: apiName }),
21
+ props,
22
+ );
23
+ }
24
+
25
+ const customSkillComponent: ComponentDefinition<typeof defineCustomSkill> = defineComponent({
26
+ type: 'CUSTOM_SKILL',
27
+ define: defineCustomSkill,
28
+ });
@@ -0,0 +1,31 @@
1
+ import { defineComponent, withApiName, validateCustomApiName, type ComponentDefinition } from './component';
2
+ import { CustomObjectFieldSection, type CustomObjectFieldSectionProps } from '../custom-object-field-section';
3
+ import { manifestObject, type ObjectReference, scopedDefinition, type ObjectScoped } from './custom-object';
4
+
5
+ export type DefineFieldSectionProps = Omit<CustomObjectFieldSectionProps, 'sectionId' | 'apiName'> & {
6
+ apiName: `${string}__c`;
7
+ };
8
+
9
+ export function defineFieldSection<TObject extends ObjectReference>(
10
+ object: TObject,
11
+ props: DefineFieldSectionProps,
12
+ ): ObjectScoped<TObject, CustomObjectFieldSection> {
13
+ validateCustomApiName(props.apiName);
14
+ return fieldSectionComponent.register(
15
+ scopedDefinition(
16
+ object,
17
+ withApiName(
18
+ new CustomObjectFieldSection(manifestObject(object), { ...props, sectionId: props.apiName }),
19
+ props.apiName,
20
+ ),
21
+ ),
22
+ object,
23
+ props,
24
+ );
25
+ }
26
+
27
+ const fieldSectionComponent: ComponentDefinition<typeof defineFieldSection> = defineComponent({
28
+ type: 'CUSTOM_OBJECT_FIELD_SECTION',
29
+ define: defineFieldSection,
30
+ references: (_definition, object) => [object],
31
+ });
@@ -0,0 +1,119 @@
1
+ import * as legacy from '../../../core/platform/custom-objects/fields';
2
+ import type {
3
+ TextFieldDefinition,
4
+ NumberFieldDefinition,
5
+ RadioFieldDefinition,
6
+ } from '../../../core/platform/custom-objects/types';
7
+ import { defineComponent, type ComponentDefinition } from './component';
8
+ import { Field, type FieldProps } from '../field';
9
+ import {
10
+ scopedDefinition,
11
+ type ObjectScoped,
12
+ manifestObject,
13
+ manifestSection,
14
+ trackFieldSection,
15
+ fieldSectionReferences,
16
+ type ObjectReference,
17
+ type SectionReference,
18
+ } from './custom-object';
19
+
20
+ export type DefineFieldProps<TObject extends ObjectReference> = Omit<FieldProps, 'section'> & {
21
+ section: SectionReference<NoInfer<TObject>>;
22
+ };
23
+
24
+ export function defineField<TObject extends ObjectReference>(
25
+ object: TObject,
26
+ props: DefineFieldProps<TObject>,
27
+ ): ObjectScoped<TObject, Field> {
28
+ const section = manifestSection(object, props.section);
29
+ const field = scopedDefinition(
30
+ object,
31
+ trackFieldSection(new Field(manifestObject(object), { ...props, section }), section),
32
+ );
33
+ return fieldComponent.register(field, object, props);
34
+ }
35
+
36
+ /** Field factories for reusable definitions. Existing standalone factories remain available. */
37
+ export const fields: Readonly<
38
+ Omit<typeof legacy, 'text' | 'number'> & { text: typeof text; number: typeof number; choice: typeof choice }
39
+ > = Object.freeze({ ...legacy, text, number, choice });
40
+
41
+ const fieldComponent: ComponentDefinition<typeof defineField> = defineComponent({
42
+ type: 'CUSTOM_OBJECT_FIELD',
43
+ define: defineField,
44
+ references: (definition, object, props) => () => [
45
+ object,
46
+ ...fieldSectionReferences(definition),
47
+ ...(props.summarySpec == null ?
48
+ []
49
+ : [
50
+ props.summarySpec.aggregates,
51
+ props.summarySpec.lookup,
52
+ ...props.summarySpec.filters.map((filter) => filter.field),
53
+ ]),
54
+ ],
55
+ });
56
+
57
+ interface Presentation<TNullable extends boolean, TSection extends string | undefined = string | undefined> {
58
+ label: string;
59
+ description?: string;
60
+ nullable?: TNullable;
61
+ section?: TSection;
62
+ }
63
+
64
+ type Required<TNullable extends boolean> = TNullable extends true ? false : true;
65
+
66
+ type Rules<TNullable extends boolean> = { readonly nullable: TNullable };
67
+
68
+ function presentation<TNullable extends boolean, TSection extends string | undefined>(
69
+ props: Presentation<TNullable, TSection>,
70
+ ) {
71
+ return {
72
+ displayName: props.label,
73
+ description: props.description ?? '',
74
+ required: !props.nullable as Required<TNullable>,
75
+ nullable: (props.nullable ?? false) as TNullable,
76
+ ...(props.section !== undefined ? { section: props.section } : {}),
77
+ };
78
+ }
79
+
80
+ function text<
81
+ const TNullable extends boolean = false,
82
+ const TSection extends string | undefined = string | undefined,
83
+ >(
84
+ props: Presentation<TNullable, TSection> & { maxLength?: number; unique?: boolean },
85
+ ): TextFieldDefinition<Required<TNullable>, TSection> & Rules<TNullable> {
86
+ return legacy.text({ ...props, ...presentation(props) }) as TextFieldDefinition<
87
+ Required<TNullable>,
88
+ TSection
89
+ > &
90
+ Rules<TNullable>;
91
+ }
92
+
93
+ function number<
94
+ const TNullable extends boolean = false,
95
+ const TSection extends string | undefined = string | undefined,
96
+ >(
97
+ props: Presentation<TNullable, TSection> & { decimalPlaces?: number },
98
+ ): NumberFieldDefinition<Required<TNullable>, TSection> & Rules<TNullable> {
99
+ return legacy.number({ ...props, ...presentation(props) }) as NumberFieldDefinition<
100
+ Required<TNullable>,
101
+ TSection
102
+ > &
103
+ Rules<TNullable>;
104
+ }
105
+
106
+ function choice<
107
+ const TOptions extends readonly string[],
108
+ const TNullable extends boolean = false,
109
+ const TSection extends string | undefined = string | undefined,
110
+ >(
111
+ props: Presentation<TNullable, TSection> & { options: TOptions },
112
+ ): Omit<RadioFieldDefinition<Required<TNullable>, TSection>, '__valueType__'> & {
113
+ readonly __valueType__?: TOptions[number];
114
+ } & Rules<TNullable> {
115
+ return legacy.radio({ ...props, ...presentation(props) }) as Omit<
116
+ RadioFieldDefinition<Required<TNullable>, TSection>,
117
+ '__valueType__'
118
+ > & { readonly __valueType__?: TOptions[number] } & Rules<TNullable>;
119
+ }
@@ -0,0 +1,198 @@
1
+ import type { RipplingSDK } from '../../../client';
2
+ import { FunctionResponse, type FunctionContext } from '../../../functions';
3
+ import type {
4
+ FunctionExecution,
5
+ FunctionExecutionsPageCursorURL,
6
+ ExecutionListLogsResponse,
7
+ } from '../../../resources/functions/executions';
8
+ import type { APIPromise } from '../../../core/api-promise';
9
+ import type { PagePromise } from '../../../core/pagination';
10
+ import { detachedManifestScope, defineComponent, sourceEntry } from './component';
11
+ import { ManifestFunction, type ManifestFunctionProps } from '../manifest-function';
12
+ import type { RequestOptions } from '../../../internal/request-options';
13
+ import type { ExecutionListParams, ExecutionListLogsParams } from '../../../resources/functions/executions';
14
+
15
+ /** Parser shared by a function's caller and handler. */
16
+ export interface ValueParser<TValue> {
17
+ parse(value: unknown): TValue;
18
+ }
19
+
20
+ /** Authenticated execution resources supplied per call. */
21
+ export interface FunctionOperationsContext {
22
+ readonly functions: {
23
+ readonly executions: Pick<
24
+ RipplingSDK['functions']['executions'],
25
+ 'create' | 'list' | 'retrieve' | 'listLogs'
26
+ >;
27
+ };
28
+ }
29
+
30
+ export interface DefinedFunctionProps<TInput, TOutput> extends ManifestFunctionProps {
31
+ /** Handler source file read unchanged by project export. Importing the definition performs no file I/O. */
32
+ source?: URL;
33
+ input?: ValueParser<TInput>;
34
+ output?: ValueParser<TOutput>;
35
+ }
36
+
37
+ /** Execution returned by a function with its declared input/output contract. */
38
+ export type FunctionExecutionResult<TInput, TOutput> = Omit<FunctionExecution, 'inputs' | 'outputs'> & {
39
+ inputs: TInput;
40
+ outputs?: TOutput;
41
+ };
42
+
43
+ export interface FunctionExecutions {
44
+ list(
45
+ ctx: FunctionOperationsContext,
46
+ params?: ExecutionListParams,
47
+ options?: RequestOptions,
48
+ ): PagePromise<FunctionExecutionsPageCursorURL, FunctionExecution>;
49
+ retrieve(
50
+ ctx: FunctionOperationsContext,
51
+ executionID: string,
52
+ options?: RequestOptions,
53
+ ): APIPromise<FunctionExecution>;
54
+ listLogs(
55
+ ctx: FunctionOperationsContext,
56
+ executionID: string,
57
+ params?: Omit<ExecutionListLogsParams, 'function_api_name'>,
58
+ options?: RequestOptions,
59
+ ): APIPromise<ExecutionListLogsResponse>;
60
+ }
61
+
62
+ export interface FunctionClient<TInput, TOutput> {
63
+ execute(input: TInput, options?: RequestOptions): Promise<FunctionExecutionResult<TInput, TOutput>>;
64
+ executions: {
65
+ list(
66
+ params?: ExecutionListParams,
67
+ options?: RequestOptions,
68
+ ): PagePromise<FunctionExecutionsPageCursorURL, FunctionExecution>;
69
+ retrieve(executionID: string, options?: RequestOptions): APIPromise<FunctionExecution>;
70
+ listLogs(
71
+ executionID: string,
72
+ params?: Omit<ExecutionListLogsParams, 'function_api_name'>,
73
+ options?: RequestOptions,
74
+ ): APIPromise<ExecutionListLogsResponse>;
75
+ };
76
+ }
77
+
78
+ export function defineFunction<TInput = unknown, TOutput = unknown>(
79
+ props: DefinedFunctionProps<TInput, TOutput>,
80
+ ): DefinedFunction<TInput, TOutput> {
81
+ return functionComponent.register(new DefinedFunction(props), props);
82
+ }
83
+
84
+ /** A deployable function reference with the same input/output contract at each call site. */
85
+ export class DefinedFunction<TInput = unknown, TOutput = unknown> extends ManifestFunction {
86
+ private _source: URL | undefined;
87
+ readonly input: ValueParser<TInput> | undefined;
88
+ readonly output: ValueParser<TOutput> | undefined;
89
+
90
+ readonly executions: FunctionExecutions = {
91
+ list: (ctx: FunctionOperationsContext, params?: ExecutionListParams, options?: RequestOptions) =>
92
+ ctx.functions.executions.list(this.getApiName(), params, options),
93
+ retrieve: (ctx: FunctionOperationsContext, executionID: string, options?: RequestOptions) =>
94
+ ctx.functions.executions.retrieve(executionID, { function_api_name: this.getApiName() }, options),
95
+ listLogs: (
96
+ ctx: FunctionOperationsContext,
97
+ executionID: string,
98
+ params: Omit<ExecutionListLogsParams, 'function_api_name'> = {},
99
+ options?: RequestOptions,
100
+ ) =>
101
+ ctx.functions.executions.listLogs(
102
+ executionID,
103
+ { ...params, function_api_name: this.getApiName() },
104
+ options,
105
+ ),
106
+ };
107
+
108
+ constructor(props: DefinedFunctionProps<TInput, TOutput>) {
109
+ super(detachedManifestScope, props);
110
+ this.input = props.input;
111
+ this.output = props.output;
112
+ if (props.source !== undefined && props.code !== undefined)
113
+ throw new Error('Define a function with either source or code, not both.');
114
+ if (props.source !== undefined && props.source.protocol !== 'file:')
115
+ throw new Error('Component source must be a file URL.');
116
+ this._source = props.source === undefined ? undefined : new URL(props.source.href);
117
+ }
118
+
119
+ get source(): URL | undefined {
120
+ return this._source;
121
+ }
122
+
123
+ /** Replaces inline code or a file-backed source with the supplied code. */
124
+ override setCode(code: string): this {
125
+ super.setCode(code);
126
+ this._source = undefined;
127
+ return this;
128
+ }
129
+
130
+ /** Wraps a handler with the shared contract. Deployed source must be standalone or use declared npm dependencies. */
131
+ handler(handler: (input: TInput, context: FunctionContext) => TOutput | Promise<TOutput>) {
132
+ return async (event: TInput, context: FunctionContext): Promise<FunctionResponse<TOutput>> => {
133
+ const result = await handler(this.input == null ? event : this.input.parse(event), context);
134
+ return new FunctionResponse({ body: this.output == null ? result : this.output.parse(result) });
135
+ };
136
+ }
137
+
138
+ /** Starts an execution. Asynchronous executions may not have outputs yet. */
139
+ async execute(
140
+ ctx: FunctionOperationsContext,
141
+ input: TInput,
142
+ options?: RequestOptions,
143
+ ): Promise<FunctionExecutionResult<TInput, TOutput>> {
144
+ const inputs = input;
145
+ const { outputs, ...execution } = await ctx.functions.executions.create(
146
+ this.getApiName(),
147
+ { inputs },
148
+ options,
149
+ );
150
+ const body = (outputs as { body: unknown } | null | undefined)?.body;
151
+ return {
152
+ ...execution,
153
+ inputs,
154
+ ...(outputs != null ?
155
+ { outputs: this.output == null ? (body as TOutput) : this.output.parse(body) }
156
+ : {}),
157
+ };
158
+ }
159
+ }
160
+
161
+ interface FunctionMetadata {
162
+ type: 'FUNCTION';
163
+ api_name: string;
164
+ name: string;
165
+ description: string;
166
+ code_draft?: string;
167
+ }
168
+
169
+ const functionComponent = defineComponent({
170
+ type: 'FUNCTION',
171
+ define: defineFunction,
172
+ serialize: (definition) =>
173
+ sourceEntry(definition.toDict() as FunctionMetadata, definition.source, (config, code_draft) => ({
174
+ ...config,
175
+ code_draft,
176
+ })),
177
+ });
178
+
179
+ /** @internal Forward client helpers to the definition operations. */
180
+ export function createFunctionClient<TInput, TOutput>(
181
+ ctx: FunctionOperationsContext,
182
+ definition: DefinedFunction<TInput, TOutput>,
183
+ ): FunctionClient<TInput, TOutput> {
184
+ return {
185
+ execute: (input: TInput, options?: RequestOptions) => definition.execute(ctx, input, options),
186
+ executions: {
187
+ list: (params?: ExecutionListParams, options?: RequestOptions) =>
188
+ definition.executions.list(ctx, params, options),
189
+ retrieve: (executionID: string, options?: RequestOptions) =>
190
+ definition.executions.retrieve(ctx, executionID, options),
191
+ listLogs: (
192
+ executionID: string,
193
+ params?: Omit<ExecutionListLogsParams, 'function_api_name'>,
194
+ options?: RequestOptions,
195
+ ) => definition.executions.listLogs(ctx, executionID, params, options),
196
+ },
197
+ };
198
+ }
@@ -0,0 +1,91 @@
1
+ /** Standalone component definitions composed by defineManifest. */
2
+ export {
3
+ defineComponent,
4
+ type ComponentImplementation,
5
+ type MetadataConfig,
6
+ type MetadataEntry,
7
+ type BuildContext,
8
+ type CompileContext,
9
+ } from './component';
10
+ export { defineAction, type DefineActionProps } from './action';
11
+ export {
12
+ defineAgent,
13
+ DefinedAgent,
14
+ type DefinedAgentProps,
15
+ type AgentOperationsContext,
16
+ type AgentSessions,
17
+ type AgentOperations,
18
+ type AgentClient,
19
+ } from './agent';
20
+ export { defineApp } from './app';
21
+ export { defineCategory, defineCustomObjectCategory, type DefineCustomObjectCategoryProps } from './category';
22
+ export { defineCustomField, type DefineCustomFieldProps } from './custom-field';
23
+ export {
24
+ defineCustomFieldSection,
25
+ type DefinedCustomFieldSection,
26
+ type DefineCustomFieldSectionProps,
27
+ } from './custom-field-section';
28
+ export {
29
+ defineCustomObject,
30
+ extendCustomObject,
31
+ eq,
32
+ ne,
33
+ lt,
34
+ lte,
35
+ gt,
36
+ gte,
37
+ inArray,
38
+ notInArray,
39
+ isNull,
40
+ isNotNull,
41
+ and,
42
+ or,
43
+ not,
44
+ type DefinedCustomObject,
45
+ type CustomObjectOperations,
46
+ type ObjectRecordsContext,
47
+ type ObjectSchemaContext,
48
+ type ObjectRecordListOptions,
49
+ type DefineCustomObjectProps,
50
+ type ObjectRecords,
51
+ type ObjectCreateInput,
52
+ type ObjectUpdateInput,
53
+ type ObjectBulkUpdateInput,
54
+ type ObjectSchema,
55
+ type ObjectSchemaFields,
56
+ type ObjectClient,
57
+ type ObjectFilter,
58
+ } from './custom-object';
59
+ export { defineCustomSkill, type DefinedCustomSkillProps } from './custom-skill';
60
+ export { defineField, fields, type DefineFieldProps } from './field';
61
+ export { defineFieldSection, type DefineFieldSectionProps } from './field-section';
62
+ export {
63
+ defineFunction,
64
+ DefinedFunction,
65
+ type DefinedFunctionProps,
66
+ type FunctionOperationsContext,
67
+ type ValueParser,
68
+ type FunctionExecutions,
69
+ type FunctionExecutionResult,
70
+ type FunctionClient,
71
+ } from './function';
72
+ export { defineListView, type DefineListViewProps } from './list-view';
73
+ export {
74
+ defineObjectSearchConfig,
75
+ type DefineObjectSearchConfigProps,
76
+ type DefinedObjectSearchConfig,
77
+ } from './object-search-config';
78
+ export {
79
+ defineObjectSettings,
80
+ type ObjectSettingsProps,
81
+ type DefinedObjectSettings,
82
+ } from './object-settings';
83
+ export { definePage, type DefinePageProps } from './page';
84
+ export { definePageLayout, type PageLayoutOptions, type DefinedPageLayout } from './page-layout';
85
+ export {
86
+ defineRecordTriggeredFlow,
87
+ type DefinedRuleAction,
88
+ type DefineRecordTriggeredFlowProps,
89
+ } from './record-triggered-flow';
90
+ export { defineValidation, type DefineValidationProps } from './validation';
91
+ export { defineWorkflow, workflowFunction, type DefineWorkflowProps } from './workflow';
@@ -0,0 +1,48 @@
1
+ import { defineComponent, withApiName, type ComponentDefinition } from './component';
2
+ import {
3
+ fieldReferences,
4
+ manifestObject,
5
+ manifestField,
6
+ type ObjectReference,
7
+ type DefinitionFieldReference,
8
+ } from './custom-object';
9
+ import { ListViewDef, type ListViewDefProps } from '../list-view';
10
+
11
+ export type DefineListViewProps<TObject extends ObjectReference> = Omit<
12
+ ListViewDefProps,
13
+ 'viewId' | 'apiName' | 'fields' | 'orderBy'
14
+ > & {
15
+ apiName: string;
16
+ fields: readonly NoInfer<DefinitionFieldReference<TObject>>[];
17
+ orderBy?: NoInfer<DefinitionFieldReference<TObject>>;
18
+ };
19
+
20
+ export function defineListView<TObject extends ObjectReference>(
21
+ object: TObject,
22
+ props: DefineListViewProps<TObject>,
23
+ ): ListViewDef {
24
+ const { fields, orderBy, ...rest } = props;
25
+ return listViewComponent.register(
26
+ withApiName(
27
+ new ListViewDef(manifestObject(object), {
28
+ ...rest,
29
+ viewId: rest.apiName,
30
+ fields: fields.map((field) => manifestField(object, field)),
31
+ ...(orderBy != null ? { orderBy: manifestField(object, orderBy) } : {}),
32
+ }),
33
+ rest.apiName,
34
+ ),
35
+ object,
36
+ props,
37
+ );
38
+ }
39
+
40
+ const listViewComponent: ComponentDefinition<typeof defineListView> = defineComponent({
41
+ type: 'CUSTOM_OBJECT_LIST_VIEW',
42
+ define: defineListView,
43
+ references: (_definition, object, props) => [
44
+ object,
45
+ ...props.fields.flatMap((field) => fieldReferences(object, field)),
46
+ ...(props.orderBy == null ? [] : fieldReferences(object, props.orderBy)),
47
+ ],
48
+ });
@@ -0,0 +1,44 @@
1
+ import { defineComponent, type ComponentDefinition } from './component';
2
+ import {
3
+ fieldReferences,
4
+ manifestObject,
5
+ manifestField,
6
+ type ObjectReference,
7
+ type DefinitionFieldReference,
8
+ } from './custom-object';
9
+
10
+ export interface DefinedObjectSearchConfig {
11
+ toDict(): { type: 'CUSTOM_OBJECT_SEARCH_CONFIG'; model_rql_name: string; search_response_fields: string[] };
12
+ }
13
+
14
+ export type DefineObjectSearchConfigProps<TObject extends ObjectReference> = {
15
+ fields: readonly NoInfer<DefinitionFieldReference<TObject>>[];
16
+ };
17
+
18
+ export function defineObjectSearchConfig<TObject extends ObjectReference>(
19
+ reference: TObject,
20
+ props: DefineObjectSearchConfigProps<TObject>,
21
+ ): DefinedObjectSearchConfig {
22
+ const object = manifestObject(reference);
23
+ const fields = props.fields.map((field) => manifestField(reference, field));
24
+ return objectSearchConfigComponent.register(
25
+ {
26
+ toDict: () => ({
27
+ type: 'CUSTOM_OBJECT_SEARCH_CONFIG' as const,
28
+ model_rql_name: object.getApiName(),
29
+ search_response_fields: fields.map((field) => field.getApiName()),
30
+ }),
31
+ },
32
+ reference,
33
+ props,
34
+ );
35
+ }
36
+
37
+ const objectSearchConfigComponent: ComponentDefinition<typeof defineObjectSearchConfig> = defineComponent({
38
+ type: 'CUSTOM_OBJECT_SEARCH_CONFIG',
39
+ define: defineObjectSearchConfig,
40
+ references: (_definition, object, props) => [
41
+ object,
42
+ ...props.fields.flatMap((field) => fieldReferences(object, field)),
43
+ ],
44
+ });
@@ -0,0 +1,61 @@
1
+ import { defineComponent, type ComponentDefinition } from './component';
2
+ import { manifestObject, type ObjectReference, type ObjectScoped } from './custom-object';
3
+ import type { CustomObjectPageLayout } from '../custom-object-page-layout';
4
+
5
+ export interface ObjectSettingsProps<TObject extends ObjectReference = ObjectReference> {
6
+ allowAttachments?: boolean;
7
+ allowComments?: boolean;
8
+ isSearchable?: boolean;
9
+ defaultLayout?: ObjectScoped<
10
+ TObject,
11
+ Pick<CustomObjectPageLayout, 'getCustomObjectApiName' | 'getLayoutId'>
12
+ >;
13
+ }
14
+
15
+ /** Settings are identified by their parent object, rather than an independent API name. */
16
+ export interface DefinedObjectSettings {
17
+ toDict(): {
18
+ type: 'CUSTOM_OBJECT_SETTINGS';
19
+ setting_id: string;
20
+ object_rql_name: string;
21
+ allow_attachments: boolean;
22
+ allow_comments: boolean;
23
+ is_searchable: boolean;
24
+ layout_config: { default_layout: string } | null;
25
+ };
26
+ }
27
+
28
+ export function defineObjectSettings<TObject extends ObjectReference>(
29
+ reference: TObject,
30
+ props: ObjectSettingsProps<NoInfer<TObject>>,
31
+ ): DefinedObjectSettings {
32
+ const { allowAttachments = false, allowComments = false, isSearchable = false, defaultLayout } = props;
33
+ const object = manifestObject(reference);
34
+ if (defaultLayout != null && defaultLayout.getCustomObjectApiName() !== object.getApiName()) {
35
+ throw new Error('The default layout must belong to the object being configured.');
36
+ }
37
+ return objectSettingsComponent.register(
38
+ {
39
+ toDict: () => ({
40
+ type: 'CUSTOM_OBJECT_SETTINGS' as const,
41
+ setting_id: `${object.getApiName()}_settings`,
42
+ object_rql_name: object.getApiName(),
43
+ allow_attachments: allowAttachments,
44
+ allow_comments: allowComments,
45
+ is_searchable: isSearchable,
46
+ layout_config: defaultLayout == null ? null : { default_layout: defaultLayout.getLayoutId() },
47
+ }),
48
+ },
49
+ reference,
50
+ props,
51
+ );
52
+ }
53
+
54
+ const objectSettingsComponent: ComponentDefinition<typeof defineObjectSettings> = defineComponent({
55
+ type: 'CUSTOM_OBJECT_SETTINGS',
56
+ define: defineObjectSettings,
57
+ references: (_definition, object, props) => [
58
+ object,
59
+ ...(props.defaultLayout == null ? [] : [props.defaultLayout]),
60
+ ],
61
+ });