@rippling/rippling-sdk 0.2.0-alpha.109 → 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 (250) hide show
  1. package/client.d.mts +11 -0
  2. package/client.d.mts.map +1 -1
  3. package/client.d.ts +11 -0
  4. package/client.d.ts.map +1 -1
  5. package/client.js +15 -0
  6. package/client.js.map +1 -1
  7. package/client.mjs +15 -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/manifest/composition.d.mts +21 -0
  18. package/lib/manifest/composition.d.mts.map +1 -0
  19. package/lib/manifest/composition.d.ts +21 -0
  20. package/lib/manifest/composition.d.ts.map +1 -0
  21. package/lib/manifest/composition.js +103 -0
  22. package/lib/manifest/composition.js.map +1 -0
  23. package/lib/manifest/composition.mjs +99 -0
  24. package/lib/manifest/composition.mjs.map +1 -0
  25. package/lib/manifest/definitions/_object-records.d.mts +23 -0
  26. package/lib/manifest/definitions/_object-records.d.mts.map +1 -0
  27. package/lib/manifest/definitions/_object-records.d.ts +23 -0
  28. package/lib/manifest/definitions/_object-records.d.ts.map +1 -0
  29. package/lib/manifest/definitions/_object-records.js +151 -0
  30. package/lib/manifest/definitions/_object-records.js.map +1 -0
  31. package/lib/manifest/definitions/_object-records.mjs +147 -0
  32. package/lib/manifest/definitions/_object-records.mjs.map +1 -0
  33. package/lib/manifest/definitions/action.d.mts +7 -0
  34. package/lib/manifest/definitions/action.d.mts.map +1 -0
  35. package/lib/manifest/definitions/action.d.ts +7 -0
  36. package/lib/manifest/definitions/action.d.ts.map +1 -0
  37. package/lib/manifest/definitions/action.js +25 -0
  38. package/lib/manifest/definitions/action.js.map +1 -0
  39. package/lib/manifest/definitions/action.mjs +22 -0
  40. package/lib/manifest/definitions/action.mjs.map +1 -0
  41. package/lib/manifest/definitions/agent.d.mts +51 -0
  42. package/lib/manifest/definitions/agent.d.mts.map +1 -0
  43. package/lib/manifest/definitions/agent.d.ts +51 -0
  44. package/lib/manifest/definitions/agent.d.ts.map +1 -0
  45. package/lib/manifest/definitions/agent.js +65 -0
  46. package/lib/manifest/definitions/agent.js.map +1 -0
  47. package/lib/manifest/definitions/agent.mjs +59 -0
  48. package/lib/manifest/definitions/agent.mjs.map +1 -0
  49. package/lib/manifest/definitions/app.d.mts +3 -0
  50. package/lib/manifest/definitions/app.d.mts.map +1 -0
  51. package/lib/manifest/definitions/app.d.ts +3 -0
  52. package/lib/manifest/definitions/app.d.ts.map +1 -0
  53. package/lib/manifest/definitions/app.js +14 -0
  54. package/lib/manifest/definitions/app.js.map +1 -0
  55. package/lib/manifest/definitions/app.mjs +11 -0
  56. package/lib/manifest/definitions/app.mjs.map +1 -0
  57. package/lib/manifest/definitions/category.d.mts +9 -0
  58. package/lib/manifest/definitions/category.d.mts.map +1 -0
  59. package/lib/manifest/definitions/category.d.ts +9 -0
  60. package/lib/manifest/definitions/category.d.ts.map +1 -0
  61. package/lib/manifest/definitions/category.js +27 -0
  62. package/lib/manifest/definitions/category.js.map +1 -0
  63. package/lib/manifest/definitions/category.mjs +23 -0
  64. package/lib/manifest/definitions/category.mjs.map +1 -0
  65. package/lib/manifest/definitions/component.d.mts +101 -0
  66. package/lib/manifest/definitions/component.d.mts.map +1 -0
  67. package/lib/manifest/definitions/component.d.ts +101 -0
  68. package/lib/manifest/definitions/component.d.ts.map +1 -0
  69. package/lib/manifest/definitions/component.js +106 -0
  70. package/lib/manifest/definitions/component.js.map +1 -0
  71. package/lib/manifest/definitions/component.mjs +97 -0
  72. package/lib/manifest/definitions/component.mjs.map +1 -0
  73. package/lib/manifest/definitions/custom-field-section.d.mts +13 -0
  74. package/lib/manifest/definitions/custom-field-section.d.mts.map +1 -0
  75. package/lib/manifest/definitions/custom-field-section.d.ts +13 -0
  76. package/lib/manifest/definitions/custom-field-section.d.ts.map +1 -0
  77. package/lib/manifest/definitions/custom-field-section.js +15 -0
  78. package/lib/manifest/definitions/custom-field-section.js.map +1 -0
  79. package/lib/manifest/definitions/custom-field-section.mjs +12 -0
  80. package/lib/manifest/definitions/custom-field-section.mjs.map +1 -0
  81. package/lib/manifest/definitions/custom-field.d.mts +10 -0
  82. package/lib/manifest/definitions/custom-field.d.mts.map +1 -0
  83. package/lib/manifest/definitions/custom-field.d.ts +10 -0
  84. package/lib/manifest/definitions/custom-field.d.ts.map +1 -0
  85. package/lib/manifest/definitions/custom-field.js +18 -0
  86. package/lib/manifest/definitions/custom-field.js.map +1 -0
  87. package/lib/manifest/definitions/custom-field.mjs +15 -0
  88. package/lib/manifest/definitions/custom-field.mjs.map +1 -0
  89. package/lib/manifest/definitions/custom-object.d.mts +162 -0
  90. package/lib/manifest/definitions/custom-object.d.mts.map +1 -0
  91. package/lib/manifest/definitions/custom-object.d.ts +162 -0
  92. package/lib/manifest/definitions/custom-object.d.ts.map +1 -0
  93. package/lib/manifest/definitions/custom-object.js +412 -0
  94. package/lib/manifest/definitions/custom-object.js.map +1 -0
  95. package/lib/manifest/definitions/custom-object.mjs +386 -0
  96. package/lib/manifest/definitions/custom-object.mjs.map +1 -0
  97. package/lib/manifest/definitions/custom-skill.d.mts +8 -0
  98. package/lib/manifest/definitions/custom-skill.d.mts.map +1 -0
  99. package/lib/manifest/definitions/custom-skill.d.ts +8 -0
  100. package/lib/manifest/definitions/custom-skill.d.ts.map +1 -0
  101. package/lib/manifest/definitions/custom-skill.js +15 -0
  102. package/lib/manifest/definitions/custom-skill.js.map +1 -0
  103. package/lib/manifest/definitions/custom-skill.mjs +12 -0
  104. package/lib/manifest/definitions/custom-skill.mjs.map +1 -0
  105. package/lib/manifest/definitions/field-section.d.mts +7 -0
  106. package/lib/manifest/definitions/field-section.d.mts.map +1 -0
  107. package/lib/manifest/definitions/field-section.d.ts +7 -0
  108. package/lib/manifest/definitions/field-section.d.ts.map +1 -0
  109. package/lib/manifest/definitions/field-section.js +16 -0
  110. package/lib/manifest/definitions/field-section.js.map +1 -0
  111. package/lib/manifest/definitions/field-section.mjs +13 -0
  112. package/lib/manifest/definitions/field-section.mjs.map +1 -0
  113. package/lib/manifest/definitions/field.d.mts +38 -0
  114. package/lib/manifest/definitions/field.d.mts.map +1 -0
  115. package/lib/manifest/definitions/field.d.ts +38 -0
  116. package/lib/manifest/definitions/field.d.ts.map +1 -0
  117. package/lib/manifest/definitions/field.js +50 -0
  118. package/lib/manifest/definitions/field.js.map +1 -0
  119. package/lib/manifest/definitions/field.mjs +45 -0
  120. package/lib/manifest/definitions/field.mjs.map +1 -0
  121. package/lib/manifest/definitions/function.d.mts +61 -0
  122. package/lib/manifest/definitions/function.d.mts.map +1 -0
  123. package/lib/manifest/definitions/function.d.ts +61 -0
  124. package/lib/manifest/definitions/function.d.ts.map +1 -0
  125. package/lib/manifest/definitions/function.js +79 -0
  126. package/lib/manifest/definitions/function.js.map +1 -0
  127. package/lib/manifest/definitions/function.mjs +73 -0
  128. package/lib/manifest/definitions/function.mjs.map +1 -0
  129. package/lib/manifest/definitions/index.d.mts +22 -0
  130. package/lib/manifest/definitions/index.d.mts.map +1 -0
  131. package/lib/manifest/definitions/index.d.ts +22 -0
  132. package/lib/manifest/definitions/index.d.ts.map +1 -0
  133. package/lib/manifest/definitions/index.js +64 -0
  134. package/lib/manifest/definitions/index.js.map +1 -0
  135. package/lib/manifest/definitions/index.mjs +22 -0
  136. package/lib/manifest/definitions/index.mjs.map +1 -0
  137. package/lib/manifest/definitions/list-view.d.mts +9 -0
  138. package/lib/manifest/definitions/list-view.d.mts.map +1 -0
  139. package/lib/manifest/definitions/list-view.d.ts +9 -0
  140. package/lib/manifest/definitions/list-view.d.ts.map +1 -0
  141. package/lib/manifest/definitions/list-view.js +25 -0
  142. package/lib/manifest/definitions/list-view.js.map +1 -0
  143. package/lib/manifest/definitions/list-view.mjs +22 -0
  144. package/lib/manifest/definitions/list-view.mjs.map +1 -0
  145. package/lib/manifest/definitions/object-search-config.d.mts +13 -0
  146. package/lib/manifest/definitions/object-search-config.d.mts.map +1 -0
  147. package/lib/manifest/definitions/object-search-config.d.ts +13 -0
  148. package/lib/manifest/definitions/object-search-config.d.ts.map +1 -0
  149. package/lib/manifest/definitions/object-search-config.js +25 -0
  150. package/lib/manifest/definitions/object-search-config.js.map +1 -0
  151. package/lib/manifest/definitions/object-search-config.mjs +22 -0
  152. package/lib/manifest/definitions/object-search-config.mjs.map +1 -0
  153. package/lib/manifest/definitions/object-settings.d.mts +24 -0
  154. package/lib/manifest/definitions/object-settings.d.mts.map +1 -0
  155. package/lib/manifest/definitions/object-settings.d.ts +24 -0
  156. package/lib/manifest/definitions/object-settings.d.ts.map +1 -0
  157. package/lib/manifest/definitions/object-settings.js +32 -0
  158. package/lib/manifest/definitions/object-settings.js.map +1 -0
  159. package/lib/manifest/definitions/object-settings.mjs +29 -0
  160. package/lib/manifest/definitions/object-settings.mjs.map +1 -0
  161. package/lib/manifest/definitions/page-layout.d.mts +21 -0
  162. package/lib/manifest/definitions/page-layout.d.mts.map +1 -0
  163. package/lib/manifest/definitions/page-layout.d.ts +21 -0
  164. package/lib/manifest/definitions/page-layout.d.ts.map +1 -0
  165. package/lib/manifest/definitions/page-layout.js +155 -0
  166. package/lib/manifest/definitions/page-layout.js.map +1 -0
  167. package/lib/manifest/definitions/page-layout.mjs +152 -0
  168. package/lib/manifest/definitions/page-layout.mjs.map +1 -0
  169. package/lib/manifest/definitions/page.d.mts +8 -0
  170. package/lib/manifest/definitions/page.d.mts.map +1 -0
  171. package/lib/manifest/definitions/page.d.ts +8 -0
  172. package/lib/manifest/definitions/page.d.ts.map +1 -0
  173. package/lib/manifest/definitions/page.js +15 -0
  174. package/lib/manifest/definitions/page.js.map +1 -0
  175. package/lib/manifest/definitions/page.mjs +12 -0
  176. package/lib/manifest/definitions/page.mjs.map +1 -0
  177. package/lib/manifest/definitions/record-triggered-flow.d.mts +24 -0
  178. package/lib/manifest/definitions/record-triggered-flow.d.mts.map +1 -0
  179. package/lib/manifest/definitions/record-triggered-flow.d.ts +24 -0
  180. package/lib/manifest/definitions/record-triggered-flow.d.ts.map +1 -0
  181. package/lib/manifest/definitions/record-triggered-flow.js +28 -0
  182. package/lib/manifest/definitions/record-triggered-flow.js.map +1 -0
  183. package/lib/manifest/definitions/record-triggered-flow.mjs +25 -0
  184. package/lib/manifest/definitions/record-triggered-flow.mjs.map +1 -0
  185. package/lib/manifest/definitions/validation.d.mts +8 -0
  186. package/lib/manifest/definitions/validation.d.mts.map +1 -0
  187. package/lib/manifest/definitions/validation.d.ts +8 -0
  188. package/lib/manifest/definitions/validation.d.ts.map +1 -0
  189. package/lib/manifest/definitions/validation.js +24 -0
  190. package/lib/manifest/definitions/validation.js.map +1 -0
  191. package/lib/manifest/definitions/validation.mjs +21 -0
  192. package/lib/manifest/definitions/validation.mjs.map +1 -0
  193. package/lib/manifest/definitions/workflow.d.mts +10 -0
  194. package/lib/manifest/definitions/workflow.d.mts.map +1 -0
  195. package/lib/manifest/definitions/workflow.d.ts +10 -0
  196. package/lib/manifest/definitions/workflow.d.ts.map +1 -0
  197. package/lib/manifest/definitions/workflow.js +33 -0
  198. package/lib/manifest/definitions/workflow.js.map +1 -0
  199. package/lib/manifest/definitions/workflow.mjs +29 -0
  200. package/lib/manifest/definitions/workflow.mjs.map +1 -0
  201. package/lib/manifest/index.d.mts +3 -0
  202. package/lib/manifest/index.d.mts.map +1 -1
  203. package/lib/manifest/index.d.ts +3 -0
  204. package/lib/manifest/index.d.ts.map +1 -1
  205. package/lib/manifest/index.js +4 -0
  206. package/lib/manifest/index.js.map +1 -1
  207. package/lib/manifest/index.mjs +3 -0
  208. package/lib/manifest/index.mjs.map +1 -1
  209. package/lib/manifest/package-manifest.d.mts +17 -0
  210. package/lib/manifest/package-manifest.d.mts.map +1 -0
  211. package/lib/manifest/package-manifest.d.ts +17 -0
  212. package/lib/manifest/package-manifest.d.ts.map +1 -0
  213. package/lib/manifest/package-manifest.js +26 -0
  214. package/lib/manifest/package-manifest.js.map +1 -0
  215. package/lib/manifest/package-manifest.mjs +23 -0
  216. package/lib/manifest/package-manifest.mjs.map +1 -0
  217. package/package.json +1 -1
  218. package/src/client.ts +24 -0
  219. package/src/index.ts +17 -0
  220. package/src/lib/manifest/composition.ts +133 -0
  221. package/src/lib/manifest/definitions/README.md +89 -0
  222. package/src/lib/manifest/definitions/_object-records.ts +218 -0
  223. package/src/lib/manifest/definitions/action.ts +31 -0
  224. package/src/lib/manifest/definitions/agent.ts +149 -0
  225. package/src/lib/manifest/definitions/app.ts +12 -0
  226. package/src/lib/manifest/definitions/category.ts +35 -0
  227. package/src/lib/manifest/definitions/component.ts +241 -0
  228. package/src/lib/manifest/definitions/custom-field-section.ts +39 -0
  229. package/src/lib/manifest/definitions/custom-field.ts +32 -0
  230. package/src/lib/manifest/definitions/custom-object.ts +786 -0
  231. package/src/lib/manifest/definitions/custom-skill.ts +28 -0
  232. package/src/lib/manifest/definitions/field-section.ts +31 -0
  233. package/src/lib/manifest/definitions/field.ts +119 -0
  234. package/src/lib/manifest/definitions/function.ts +198 -0
  235. package/src/lib/manifest/definitions/index.ts +91 -0
  236. package/src/lib/manifest/definitions/list-view.ts +48 -0
  237. package/src/lib/manifest/definitions/object-search-config.ts +44 -0
  238. package/src/lib/manifest/definitions/object-settings.ts +61 -0
  239. package/src/lib/manifest/definitions/page-layout.ts +218 -0
  240. package/src/lib/manifest/definitions/page.ts +28 -0
  241. package/src/lib/manifest/definitions/record-triggered-flow.ts +71 -0
  242. package/src/lib/manifest/definitions/validation.ts +46 -0
  243. package/src/lib/manifest/definitions/workflow.ts +62 -0
  244. package/src/lib/manifest/index.ts +4 -0
  245. package/src/lib/manifest/package-manifest.ts +40 -0
  246. package/src/version.ts +1 -1
  247. package/version.d.mts +1 -1
  248. package/version.d.ts +1 -1
  249. package/version.js +1 -1
  250. package/version.mjs +1 -1
@@ -0,0 +1,386 @@
1
+ import { buildProvisionableFieldParams, buildCustomObjectNameFieldDetails, } from "../../../core/platform/custom-objects/provisioning.mjs";
2
+ import { Category } from "../category.mjs";
3
+ import { CustomObject, } from "../custom-object.mjs";
4
+ import { Field } from "../field.mjs";
5
+ import { CustomObjectFieldSection } from "../custom-object-field-section.mjs";
6
+ import { CustomObjectPageLayout } from "../custom-object-page-layout.mjs";
7
+ import { defineCustomObject as createObject, extendCustomObject as extendObject, } from "../../../core/platform/custom-objects/definition.mjs";
8
+ import { createRqlHelpers, } from "../../../core/platform/custom-objects/rql.mjs";
9
+ import { categoryComponent, defineCategory } from "./category.mjs";
10
+ import { defineComponent, detachedManifestScope, withApiName, validateCustomApiName, registeredComponent, } from "./component.mjs";
11
+ import { assertObjectInput, createObjectRecords, } from "./_object-records.mjs";
12
+ export function defineCustomObject(props) {
13
+ const apiName = props['apiName'];
14
+ validateCustomApiName(apiName);
15
+ const name = apiName.slice(0, -3);
16
+ const sourceFields = props['fields'];
17
+ const fields = normalizeFieldNames(sourceFields);
18
+ validateSections(props['sections']);
19
+ const category = props['category'] ??
20
+ defineCategory({
21
+ apiName: `${name}_category__c`,
22
+ name: props['name'],
23
+ description: props['description'],
24
+ });
25
+ validateCustomApiName(typeof category === 'string' ? category : category.apiName);
26
+ const definition = createObject({
27
+ ...props,
28
+ name,
29
+ displayName: props['name'],
30
+ ...(props['pluralName'] === undefined ? {} : { pluralLabel: props['pluralName'] }),
31
+ category: typeof category === 'string' ? category.slice(0, -3) : category,
32
+ fields,
33
+ });
34
+ return customObjectComponent.register(withInputs(definition, Object.keys(sourceFields)), props);
35
+ }
36
+ /** Existing extension semantics, with the same additive field tokens and parsers. */
37
+ export function extendCustomObject(base, extension) {
38
+ const fields = normalizeFieldNames(base.fields);
39
+ const addedFields = normalizeFieldNames(extension.fields ?? {});
40
+ validateSections(extension.sections);
41
+ for (const key of Object.keys(extension.fields ?? {})) {
42
+ if (Object.prototype.hasOwnProperty.call(fields, key.replace(/__c$/, '')))
43
+ throw new Error(`Cannot replace existing custom field ${key} on ${base.apiName}.`);
44
+ }
45
+ const definition = extendObject({ ...base, fields }, { ...extension, fields: addedFields });
46
+ const keys = [...Object.keys(base.fields), ...Object.keys(extension.fields ?? {})];
47
+ return extendedObjectComponent.register(withInputs(definition, keys), base, extension);
48
+ }
49
+ export const eq = (field, value) => query.eq(field, value);
50
+ export const ne = (field, value) => query.ne(field, value);
51
+ export const lt = (field, value) => query.lt(field, value);
52
+ export const lte = (field, value) => query.lte(field, value);
53
+ export const gt = (field, value) => query.gt(field, value);
54
+ export const gte = (field, value) => query.gte(field, value);
55
+ export const inArray = (field, values) => query.in(field, values);
56
+ export const notInArray = (field, values) => query.notIn(field, values);
57
+ export const isNull = (field) => query.isNull(field);
58
+ export const isNotNull = (field) => query.isNotNull(field);
59
+ export const and = (first, ...rest) => query.and(first, ...rest);
60
+ export const or = (first, ...rest) => query.or(first, ...rest);
61
+ export const not = (filter) => query.not(filter);
62
+ /** Enrich the existing immutable schema; normalization and validation stay in the existing factory. */
63
+ function withInputs(definition, keys = Object.keys(definition.fields)) {
64
+ const fields = Object.freeze(Object.fromEntries(keys.map((key) => [
65
+ key,
66
+ Object.freeze({
67
+ ...definition.fields[key.replace(/__c$/, '')],
68
+ logicalName: key,
69
+ objectApiName: definition.apiName,
70
+ }),
71
+ ])));
72
+ const enriched = { ...definition, fields };
73
+ const parser = (operation) => ({
74
+ parse(value) {
75
+ if (value == null || typeof value !== 'object' || Array.isArray(value))
76
+ throw new TypeError('Expected a record object.');
77
+ assertObjectInput(enriched, value, operation);
78
+ return value;
79
+ },
80
+ });
81
+ return Object.freeze({
82
+ ...enriched,
83
+ ...createObjectOperations(enriched),
84
+ fields,
85
+ inputs: Object.freeze({
86
+ create: parser('create'),
87
+ update: parser('update'),
88
+ }),
89
+ });
90
+ }
91
+ function normalizeFieldNames(fields) {
92
+ return Object.fromEntries(Object.entries(fields).map(([apiName, field]) => {
93
+ validateCustomApiName(apiName);
94
+ return [apiName.slice(0, -3), field];
95
+ }));
96
+ }
97
+ function validateSections(sections = {}) {
98
+ for (const [apiName, section] of Object.entries(sections)) {
99
+ validateCustomApiName(apiName);
100
+ if (section.sectionId !== undefined)
101
+ validateCustomApiName(section.sectionId);
102
+ }
103
+ }
104
+ /** Operations capture only the definition; each call supplies its own authenticated transport. */
105
+ function createObjectOperations(definition) {
106
+ return {
107
+ records: createObjectRecords(definition),
108
+ schema: Object.freeze({
109
+ retrieve: (ctx, options) => ctx.customObjects.retrieve(definition.apiName, options),
110
+ fields: Object.freeze({
111
+ list: (ctx, params, options) => ctx.customObjects.fields.list(definition.apiName, params, options),
112
+ }),
113
+ }),
114
+ };
115
+ }
116
+ /** @internal Forward client helpers to the definition operations. */
117
+ export function createObjectClient(ctx, definition) {
118
+ const { records, schema } = createObjectOperations(definition);
119
+ return {
120
+ create: (input) => records.create(ctx, input),
121
+ createMany: (rows, options) => records.createMany(ctx, rows, options),
122
+ get: (recordID) => records.get(ctx, recordID),
123
+ getByExternalID: (externalID) => records.getByExternalID(ctx, externalID),
124
+ update: (recordID, patch) => records.update(ctx, recordID, patch),
125
+ updateMany: (rows, options) => records.updateMany(ctx, rows, options),
126
+ delete: (recordID) => records.delete(ctx, recordID),
127
+ deleteMany: (recordIDs, options) => records.deleteMany(ctx, recordIDs, options),
128
+ list: (options) => records.list(ctx, options),
129
+ query: (options) => records.query(ctx, options),
130
+ schema: { retrieve: (options) => schema.retrieve(ctx, options) },
131
+ fields: {
132
+ list: (params, options) => schema.fields.list(ctx, params, options),
133
+ },
134
+ };
135
+ }
136
+ // Reuse the existing operators, carrying the schema's object identity through typed filters.
137
+ const query = createRqlHelpers({ fields: {} });
138
+ export function scopedDefinition(_object, definition) {
139
+ return definition;
140
+ }
141
+ /** A complete schema is a local dependency; an identity-only target names an existing resource. */
142
+ function isObjectDefinition(value) {
143
+ return 'fields' in value && 'nameField' in value && 'categoryApiName' in value;
144
+ }
145
+ export function fieldReferences(owner, field) {
146
+ return [typeof field === 'object' && 'getApiName' in field ? field : owner];
147
+ }
148
+ const currentFieldSections = new WeakMap();
149
+ /** Keep dependency collection in sync with layout-driven field moves. */
150
+ export function trackFieldSection(field, section) {
151
+ currentFieldSections.set(field, section);
152
+ const assignSection = field._assignSection.bind(field);
153
+ field._assignSection = (section) => {
154
+ assignSection(section);
155
+ currentFieldSections.set(field, typeof section === 'string' ? undefined : section);
156
+ };
157
+ return field;
158
+ }
159
+ export function fieldSectionReferences(field) {
160
+ const section = currentFieldSections.get(field);
161
+ // Schema-owned sections are emitted by the object compiler; authored sections are dependencies.
162
+ return section != null && registeredComponent(section) != null ? [section] : [];
163
+ }
164
+ /** Shared by section serialization and authored/default conflict detection. */
165
+ function fieldSectionApiName(definition, key) {
166
+ const apiName = definition.sections[key]?.sectionId ?? key;
167
+ validateCustomApiName(apiName);
168
+ return apiName;
169
+ }
170
+ /** Reuse the typed SDK's field compiler and the metadata SDK's serializers. */
171
+ function objectMetadata(definition) {
172
+ const existing = registrations.get(definition);
173
+ if (existing != null)
174
+ return existing;
175
+ if (definition.ownerRole != null ||
176
+ definition.enableHistory != null ||
177
+ Object.values(definition.fields).some((field) => field.enableHistory != null || field.restSection != null || field.rqlDefinition != null))
178
+ throw new Error('REST-only object options cannot be compiled to metadata.');
179
+ const category = new Category(detachedManifestScope, {
180
+ apiName: definition.categoryApiName,
181
+ name: definition.categoryDefinition?.displayName ?? definition.category,
182
+ description: definition.categoryDefinition?.description ?? '',
183
+ });
184
+ const components = [];
185
+ const object = new CustomObject({
186
+ _register(component) {
187
+ components.push(component);
188
+ },
189
+ }, {
190
+ apiName: definition.apiName,
191
+ name: definition.displayName,
192
+ category,
193
+ description: definition.description,
194
+ ...(definition.pluralLabel == null ? {} : { pluralLabel: definition.pluralLabel }),
195
+ ...(definition.icon == null ? {} : { icon: definition.icon }),
196
+ nameFieldDetails: buildCustomObjectNameFieldDetails(definition) ?? null,
197
+ });
198
+ const sections = Object.fromEntries(Object.entries(definition.sections).map(([key, section]) => {
199
+ const apiName = fieldSectionApiName(definition, key);
200
+ return [
201
+ key,
202
+ withApiName(new CustomObjectFieldSection(object, { name: section.name, sectionId: apiName }), apiName),
203
+ ];
204
+ }));
205
+ const needsFallback = Object.keys(sections).length === 0 ||
206
+ Object.values(definition.fields).some((field) => field.section == null);
207
+ const generalKey = `${definition.name}_general__c`;
208
+ const defaultSectionApiName = fieldSectionApiName(definition, generalKey);
209
+ const defaultSection = needsFallback ?
210
+ sections[generalKey] ??
211
+ withApiName(new CustomObjectFieldSection(object, { name: 'General', sectionId: defaultSectionApiName }), defaultSectionApiName)
212
+ : undefined;
213
+ const firstSection = defaultSection ?? Object.values(sections)[0];
214
+ withApiName(object, definition.apiName, { default_field_section_api_name: firstSection.getSectionId() });
215
+ // Provisioning needs section handles; here they are deterministic API names instead of destination IDs.
216
+ const provisionable = {
217
+ ...definition,
218
+ sections: Object.fromEntries(Object.entries(sections).map(([key, section]) => [
219
+ key,
220
+ { name: section.getName(), sectionId: section.getSectionId() },
221
+ ])),
222
+ };
223
+ const fields = Object.fromEntries(Object.entries(definition.fields).map(([key, field]) => {
224
+ const section = field.section == null ? defaultSection : sections[field.section];
225
+ if (section == null)
226
+ throw new Error(`Unknown section ${field.section} on ${definition.apiName}.`);
227
+ const { create } = buildProvisionableFieldParams(provisionable, key);
228
+ return [
229
+ key,
230
+ trackFieldSection(new Field(object, {
231
+ apiName: field.apiName,
232
+ displayName: field.displayName,
233
+ description: field.description,
234
+ section,
235
+ dataType: create.data_type,
236
+ required: field.writable ? field.required : null,
237
+ unique: create.is_unique ?? null,
238
+ derivedFieldFormula: create.derived_field_formula ?? null,
239
+ ...(field.formulaAttributeMetas == null ? {} : { formulaAttrMetas: field.formulaAttributeMetas }),
240
+ ...(field.derivedAggregatedField == null ?
241
+ {}
242
+ : { derivedAggregatedField: field.derivedAggregatedField }),
243
+ }), section),
244
+ ];
245
+ }));
246
+ const layoutSections = [
247
+ ...new Set([...Object.values(sections), ...(defaultSection == null ? [] : [defaultSection])]),
248
+ ];
249
+ const layout = withApiName(new CustomObjectPageLayout(object, {
250
+ apiName: 'default',
251
+ layoutId: 'default',
252
+ name: `${definition.displayName} Layout`,
253
+ tabEdits: {
254
+ newTabs: [
255
+ {
256
+ key: 'details',
257
+ name: 'Details',
258
+ type: 'tab_with_sections',
259
+ sections: layoutSections.map((section, index) => ({
260
+ name: section.getName(),
261
+ type: 'fields_section',
262
+ section,
263
+ fields: [
264
+ ...(index === 0 ? [object.standardFields.name] : []),
265
+ ...Object.values(fields).filter((field) => field.getSectionId() === section.getSectionId()),
266
+ ],
267
+ })),
268
+ },
269
+ ],
270
+ systemTabEdits: {},
271
+ tabsOrder: ['details'],
272
+ },
273
+ }), 'default');
274
+ const metadata = {
275
+ object,
276
+ sections,
277
+ defaultSection,
278
+ fields,
279
+ layout,
280
+ components: [...components],
281
+ defaultFieldSectionApiName: firstSection.getSectionId(),
282
+ };
283
+ registrations.set(definition, metadata);
284
+ return metadata;
285
+ }
286
+ const registrations = new WeakMap();
287
+ export function manifestSection(object, reference) {
288
+ if (typeof reference !== 'string') {
289
+ if (reference.getModelApiName() !== manifestObject(object).getApiName())
290
+ throw new Error('Section reference belongs to another object.');
291
+ return reference;
292
+ }
293
+ const registration = objectMetadata(object);
294
+ const section = registration.sections[reference] ?? (reference === 'general' ? registration.defaultSection : undefined);
295
+ if (section == null)
296
+ throw new Error(`Unknown section ${reference} on ${object.apiName}.`);
297
+ return section;
298
+ }
299
+ /** References and compilation reuse one materialized schema; authored children remain explicit roots. */
300
+ export function manifestObject(reference) {
301
+ return objectMetadata(reference).object;
302
+ }
303
+ /** Adapts a typed schema field to the existing layout, view, and rule component APIs. */
304
+ export function manifestField(object, field) {
305
+ const metadata = objectMetadata(object);
306
+ const resolved = metadata.object;
307
+ const candidate = field;
308
+ if (typeof candidate === 'string')
309
+ return resolved.standardField(candidate);
310
+ if ('getApiName' in candidate) {
311
+ if (candidate.getCustomObjectApiName() !== resolved.getApiName())
312
+ throw new Error('Field reference belongs to another object.');
313
+ return candidate;
314
+ }
315
+ if ('objectApiName' in candidate && candidate.objectApiName !== object.apiName)
316
+ throw new Error('Field reference belongs to another object.');
317
+ const registered = metadata.fields[candidate.logicalName];
318
+ if (registered == null)
319
+ throw new Error(`Unknown field ${candidate.logicalName} on ${object.apiName}.`);
320
+ return registered;
321
+ }
322
+ const behavior = {
323
+ type: 'CUSTOM_OBJECT',
324
+ references(definition) {
325
+ const category = definition.categoryDefinition;
326
+ if (category != null && registeredComponent(category) == null)
327
+ categoryComponent.register(category, category);
328
+ return () => [
329
+ ...(category == null ? [] : [category]),
330
+ ...Object.values(registrations.get(definition)?.fields ?? {}).flatMap(fieldSectionReferences),
331
+ ...Object.values(definition.fields).flatMap((field) => field.kind === 'lookup' || field.kind === 'parent-child' ?
332
+ isObjectDefinition(field.target) ? [field.target]
333
+ : []
334
+ : []),
335
+ ];
336
+ },
337
+ compileBatch(definitions, context) {
338
+ const categories = new Set(context.definitions
339
+ .filter((definition) => registeredComponent(definition)?.type === 'CUSTOM_CATEGORY')
340
+ .flatMap((definition) => ('apiName' in definition ? [definition.apiName] : [])));
341
+ // Generate defaults from the complete schema, including base definitions reached through children.
342
+ const schemas = new Map();
343
+ for (const definition of definitions) {
344
+ const previous = schemas.get(definition.apiName);
345
+ if (previous == null) {
346
+ schemas.set(definition.apiName, definition);
347
+ continue;
348
+ }
349
+ schemas.set(definition.apiName, {
350
+ ...previous,
351
+ sections: { ...previous.sections, ...definition.sections },
352
+ fields: Object.fromEntries([...Object.values(previous.fields), ...Object.values(definition.fields)].map((field) => [
353
+ field.apiName,
354
+ field,
355
+ ])),
356
+ });
357
+ }
358
+ const defaults = new Map([...schemas].map(([apiName, schema]) => [apiName, objectMetadata(schema)]));
359
+ return definitions.flatMap((definition) => {
360
+ if (!categories.has(definition.categoryApiName))
361
+ throw new Error(`Include a category definition for ${definition.categoryApiName}, or use a typed category in ${definition.apiName}.`);
362
+ const generated = defaults.get(definition.apiName);
363
+ const authoredSections = new Set(Object.keys(definition.sections).map((key) => fieldSectionApiName(definition, key)));
364
+ const metadata = objectMetadata(definition);
365
+ return metadata.components.map((component) => {
366
+ const config = (component === metadata.layout ? generated.layout : component).toDict();
367
+ if (component === metadata.object)
368
+ config['default_field_section_api_name'] = generated.defaultFieldSectionApiName;
369
+ return {
370
+ config: config,
371
+ fallback: component === metadata.layout ||
372
+ (component === metadata.defaultSection && !authoredSections.has(config['api_name'])),
373
+ };
374
+ });
375
+ });
376
+ },
377
+ };
378
+ const customObjectComponent = defineComponent({
379
+ ...behavior,
380
+ define: defineCustomObject,
381
+ });
382
+ const extendedObjectComponent = defineComponent({
383
+ ...behavior,
384
+ define: extendCustomObject,
385
+ });
386
+ //# sourceMappingURL=custom-object.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object.mjs","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/custom-object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { CustomSkill, type CustomSkillProps } from "../custom-skill.mjs";
2
+ /** New skills use API names; the legacy constructor remains available separately. */
3
+ export type DefinedCustomSkillProps = Omit<CustomSkillProps, 'sourceSkillId'> & {
4
+ apiName: `${string}__c`;
5
+ sourceSkillId?: never;
6
+ };
7
+ export declare function defineCustomSkill(props: DefinedCustomSkillProps): CustomSkill;
8
+ //# sourceMappingURL=custom-skill.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-skill.d.mts","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/custom-skill.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,4BAAwB;AAErE,qFAAqF;AACrF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG;IAC9E,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,GAAG,WAAW,CAO7E"}
@@ -0,0 +1,8 @@
1
+ import { CustomSkill, type CustomSkillProps } from "../custom-skill.js";
2
+ /** New skills use API names; the legacy constructor remains available separately. */
3
+ export type DefinedCustomSkillProps = Omit<CustomSkillProps, 'sourceSkillId'> & {
4
+ apiName: `${string}__c`;
5
+ sourceSkillId?: never;
6
+ };
7
+ export declare function defineCustomSkill(props: DefinedCustomSkillProps): CustomSkill;
8
+ //# sourceMappingURL=custom-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-skill.d.ts","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/custom-skill.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,2BAAwB;AAErE,qFAAqF;AACrF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG;IAC9E,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,GAAG,WAAW,CAO7E"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineCustomSkill = defineCustomSkill;
4
+ const component_1 = require("./component.js");
5
+ const custom_skill_1 = require("../custom-skill.js");
6
+ function defineCustomSkill(props) {
7
+ (0, component_1.validateCustomApiName)(props.apiName);
8
+ const { apiName, ...config } = props;
9
+ return customSkillComponent.register((0, component_1.withApiName)(new custom_skill_1.CustomSkill(component_1.detachedManifestScope, config), apiName, { source_skill_id: apiName }), props);
10
+ }
11
+ const customSkillComponent = (0, component_1.defineComponent)({
12
+ type: 'CUSTOM_SKILL',
13
+ define: defineCustomSkill,
14
+ });
15
+ //# sourceMappingURL=custom-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-skill.js","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/custom-skill.ts"],"names":[],"mappings":";;AAeA,8CAOC;AAtBD,8CAMqB;AACrB,qDAAqE;AAQrE,SAAgB,iBAAiB,CAAC,KAA8B;IAC9D,IAAA,iCAAqB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IACrC,OAAO,oBAAoB,CAAC,QAAQ,CAClC,IAAA,uBAAW,EAAC,IAAI,0BAAW,CAAC,iCAAqB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAClG,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAkD,IAAA,2BAAe,EAAC;IAC1F,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,iBAAiB;CAC1B,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { defineComponent, withApiName, detachedManifestScope, validateCustomApiName, } from "./component.mjs";
2
+ import { CustomSkill } from "../custom-skill.mjs";
3
+ export function defineCustomSkill(props) {
4
+ validateCustomApiName(props.apiName);
5
+ const { apiName, ...config } = props;
6
+ return customSkillComponent.register(withApiName(new CustomSkill(detachedManifestScope, config), apiName, { source_skill_id: apiName }), props);
7
+ }
8
+ const customSkillComponent = defineComponent({
9
+ type: 'CUSTOM_SKILL',
10
+ define: defineCustomSkill,
11
+ });
12
+ //# sourceMappingURL=custom-skill.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-skill.mjs","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/custom-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,qBAAqB,GAEtB,wBAAoB;AACrB,OAAO,EAAE,WAAW,EAAyB,4BAAwB;AAQrE,MAAM,UAAU,iBAAiB,CAAC,KAA8B;IAC9D,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IACrC,OAAO,oBAAoB,CAAC,QAAQ,CAClC,WAAW,CAAC,IAAI,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAClG,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAkD,eAAe,CAAC;IAC1F,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,iBAAiB;CAC1B,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CustomObjectFieldSection, type CustomObjectFieldSectionProps } from "../custom-object-field-section.mjs";
2
+ import { type ObjectReference, type ObjectScoped } from "./custom-object.mjs";
3
+ export type DefineFieldSectionProps = Omit<CustomObjectFieldSectionProps, 'sectionId' | 'apiName'> & {
4
+ apiName: `${string}__c`;
5
+ };
6
+ export declare function defineFieldSection<TObject extends ObjectReference>(object: TObject, props: DefineFieldSectionProps): ObjectScoped<TObject, CustomObjectFieldSection>;
7
+ //# sourceMappingURL=field-section.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-section.d.mts","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/field-section.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,KAAK,6BAA6B,EAAE,2CAAuC;AAC9G,OAAO,EAAkB,KAAK,eAAe,EAAoB,KAAK,YAAY,EAAE,4BAAwB;AAE5G,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,6BAA6B,EAAE,WAAW,GAAG,SAAS,CAAC,GAAG;IACnG,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC;CACzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,eAAe,EAChE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAajD"}
@@ -0,0 +1,7 @@
1
+ import { CustomObjectFieldSection, type CustomObjectFieldSectionProps } from "../custom-object-field-section.js";
2
+ import { type ObjectReference, type ObjectScoped } from "./custom-object.js";
3
+ export type DefineFieldSectionProps = Omit<CustomObjectFieldSectionProps, 'sectionId' | 'apiName'> & {
4
+ apiName: `${string}__c`;
5
+ };
6
+ export declare function defineFieldSection<TObject extends ObjectReference>(object: TObject, props: DefineFieldSectionProps): ObjectScoped<TObject, CustomObjectFieldSection>;
7
+ //# sourceMappingURL=field-section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-section.d.ts","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/field-section.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,KAAK,6BAA6B,EAAE,0CAAuC;AAC9G,OAAO,EAAkB,KAAK,eAAe,EAAoB,KAAK,YAAY,EAAE,2BAAwB;AAE5G,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,6BAA6B,EAAE,WAAW,GAAG,SAAS,CAAC,GAAG;IACnG,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC;CACzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,eAAe,EAChE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAajD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineFieldSection = defineFieldSection;
4
+ const component_1 = require("./component.js");
5
+ const custom_object_field_section_1 = require("../custom-object-field-section.js");
6
+ const custom_object_1 = require("./custom-object.js");
7
+ function defineFieldSection(object, props) {
8
+ (0, component_1.validateCustomApiName)(props.apiName);
9
+ return fieldSectionComponent.register((0, custom_object_1.scopedDefinition)(object, (0, component_1.withApiName)(new custom_object_field_section_1.CustomObjectFieldSection((0, custom_object_1.manifestObject)(object), { ...props, sectionId: props.apiName }), props.apiName)), object, props);
10
+ }
11
+ const fieldSectionComponent = (0, component_1.defineComponent)({
12
+ type: 'CUSTOM_OBJECT_FIELD_SECTION',
13
+ define: defineFieldSection,
14
+ references: (_definition, object) => [object],
15
+ });
16
+ //# sourceMappingURL=field-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-section.js","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/field-section.ts"],"names":[],"mappings":";;AAQA,gDAgBC;AAxBD,8CAA4G;AAC5G,mFAA8G;AAC9G,sDAA4G;AAM5G,SAAgB,kBAAkB,CAChC,MAAe,EACf,KAA8B;IAE9B,IAAA,iCAAqB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,qBAAqB,CAAC,QAAQ,CACnC,IAAA,gCAAgB,EACd,MAAM,EACN,IAAA,uBAAW,EACT,IAAI,sDAAwB,CAAC,IAAA,8BAAc,EAAC,MAAM,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAC5F,KAAK,CAAC,OAAO,CACd,CACF,EACD,MAAM,EACN,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAmD,IAAA,2BAAe,EAAC;IAC5F,IAAI,EAAE,6BAA6B;IACnC,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;CAC9C,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { defineComponent, withApiName, validateCustomApiName } from "./component.mjs";
2
+ import { CustomObjectFieldSection } from "../custom-object-field-section.mjs";
3
+ import { manifestObject, scopedDefinition } from "./custom-object.mjs";
4
+ export function defineFieldSection(object, props) {
5
+ validateCustomApiName(props.apiName);
6
+ return fieldSectionComponent.register(scopedDefinition(object, withApiName(new CustomObjectFieldSection(manifestObject(object), { ...props, sectionId: props.apiName }), props.apiName)), object, props);
7
+ }
8
+ const fieldSectionComponent = defineComponent({
9
+ type: 'CUSTOM_OBJECT_FIELD_SECTION',
10
+ define: defineFieldSection,
11
+ references: (_definition, object) => [object],
12
+ });
13
+ //# sourceMappingURL=field-section.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-section.mjs","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/field-section.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAA4B,wBAAoB;AAC5G,OAAO,EAAE,wBAAwB,EAAsC,2CAAuC;AAC9G,OAAO,EAAE,cAAc,EAAwB,gBAAgB,EAAqB,4BAAwB;AAM5G,MAAM,UAAU,kBAAkB,CAChC,MAAe,EACf,KAA8B;IAE9B,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,qBAAqB,CAAC,QAAQ,CACnC,gBAAgB,CACd,MAAM,EACN,WAAW,CACT,IAAI,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAC5F,KAAK,CAAC,OAAO,CACd,CACF,EACD,MAAM,EACN,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAmD,eAAe,CAAC;IAC5F,IAAI,EAAE,6BAA6B;IACnC,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;CAC9C,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import * as legacy from "../../../core/platform/custom-objects/fields.mjs";
2
+ import type { TextFieldDefinition, NumberFieldDefinition, RadioFieldDefinition } from "../../../core/platform/custom-objects/types.mjs";
3
+ import { Field, type FieldProps } from "../field.mjs";
4
+ import { type ObjectScoped, type ObjectReference, type SectionReference } from "./custom-object.mjs";
5
+ export type DefineFieldProps<TObject extends ObjectReference> = Omit<FieldProps, 'section'> & {
6
+ section: SectionReference<NoInfer<TObject>>;
7
+ };
8
+ export declare function defineField<TObject extends ObjectReference>(object: TObject, props: DefineFieldProps<TObject>): ObjectScoped<TObject, Field>;
9
+ /** Field factories for reusable definitions. Existing standalone factories remain available. */
10
+ export declare const fields: Readonly<Omit<typeof legacy, 'text' | 'number'> & {
11
+ text: typeof text;
12
+ number: typeof number;
13
+ choice: typeof choice;
14
+ }>;
15
+ interface Presentation<TNullable extends boolean, TSection extends string | undefined = string | undefined> {
16
+ label: string;
17
+ description?: string;
18
+ nullable?: TNullable;
19
+ section?: TSection;
20
+ }
21
+ type Required<TNullable extends boolean> = TNullable extends true ? false : true;
22
+ type Rules<TNullable extends boolean> = {
23
+ readonly nullable: TNullable;
24
+ };
25
+ declare function text<const TNullable extends boolean = false, const TSection extends string | undefined = string | undefined>(props: Presentation<TNullable, TSection> & {
26
+ maxLength?: number;
27
+ unique?: boolean;
28
+ }): TextFieldDefinition<Required<TNullable>, TSection> & Rules<TNullable>;
29
+ declare function number<const TNullable extends boolean = false, const TSection extends string | undefined = string | undefined>(props: Presentation<TNullable, TSection> & {
30
+ decimalPlaces?: number;
31
+ }): NumberFieldDefinition<Required<TNullable>, TSection> & Rules<TNullable>;
32
+ declare function choice<const TOptions extends readonly string[], const TNullable extends boolean = false, const TSection extends string | undefined = string | undefined>(props: Presentation<TNullable, TSection> & {
33
+ options: TOptions;
34
+ }): Omit<RadioFieldDefinition<Required<TNullable>, TSection>, '__valueType__'> & {
35
+ readonly __valueType__?: TOptions[number];
36
+ } & Rules<TNullable>;
37
+ export {};
38
+ //# sourceMappingURL=field.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.mts","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/field.ts"],"names":[],"mappings":"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"}