@rippling/rippling-sdk 0.2.0-alpha.32 → 0.2.0-alpha.34

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 (191) hide show
  1. package/client.d.mts +8 -2
  2. package/client.d.mts.map +1 -1
  3. package/client.d.ts +8 -2
  4. package/client.d.ts.map +1 -1
  5. package/client.js +17 -0
  6. package/client.js.map +1 -1
  7. package/client.mjs +17 -0
  8. package/client.mjs.map +1 -1
  9. package/internal/types.d.mts +6 -6
  10. package/internal/types.d.mts.map +1 -1
  11. package/internal/types.d.ts +6 -6
  12. package/internal/types.d.ts.map +1 -1
  13. package/lib/manifest/_helpers.d.mts +91 -0
  14. package/lib/manifest/_helpers.d.mts.map +1 -0
  15. package/lib/manifest/_helpers.d.ts +91 -0
  16. package/lib/manifest/_helpers.d.ts.map +1 -0
  17. package/lib/manifest/_helpers.js +65 -0
  18. package/lib/manifest/_helpers.js.map +1 -0
  19. package/lib/manifest/_helpers.mjs +61 -0
  20. package/lib/manifest/_helpers.mjs.map +1 -0
  21. package/lib/manifest/app.d.mts +45 -0
  22. package/lib/manifest/app.d.mts.map +1 -0
  23. package/lib/manifest/app.d.ts +45 -0
  24. package/lib/manifest/app.d.ts.map +1 -0
  25. package/lib/manifest/app.js +74 -0
  26. package/lib/manifest/app.js.map +1 -0
  27. package/lib/manifest/app.mjs +70 -0
  28. package/lib/manifest/app.mjs.map +1 -0
  29. package/lib/manifest/category.d.mts +23 -0
  30. package/lib/manifest/category.d.mts.map +1 -0
  31. package/lib/manifest/category.d.ts +23 -0
  32. package/lib/manifest/category.d.ts.map +1 -0
  33. package/lib/manifest/category.js +37 -0
  34. package/lib/manifest/category.js.map +1 -0
  35. package/lib/manifest/category.mjs +33 -0
  36. package/lib/manifest/category.mjs.map +1 -0
  37. package/lib/manifest/custom-object-field-section.d.mts +21 -0
  38. package/lib/manifest/custom-object-field-section.d.mts.map +1 -0
  39. package/lib/manifest/custom-object-field-section.d.ts +21 -0
  40. package/lib/manifest/custom-object-field-section.d.ts.map +1 -0
  41. package/lib/manifest/custom-object-field-section.js +42 -0
  42. package/lib/manifest/custom-object-field-section.js.map +1 -0
  43. package/lib/manifest/custom-object-field-section.mjs +38 -0
  44. package/lib/manifest/custom-object-field-section.mjs.map +1 -0
  45. package/lib/manifest/custom-object-page-layout.d.mts +158 -0
  46. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -0
  47. package/lib/manifest/custom-object-page-layout.d.ts +158 -0
  48. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -0
  49. package/lib/manifest/custom-object-page-layout.js +112 -0
  50. package/lib/manifest/custom-object-page-layout.js.map +1 -0
  51. package/lib/manifest/custom-object-page-layout.mjs +108 -0
  52. package/lib/manifest/custom-object-page-layout.mjs.map +1 -0
  53. package/lib/manifest/custom-object.d.mts +52 -0
  54. package/lib/manifest/custom-object.d.mts.map +1 -0
  55. package/lib/manifest/custom-object.d.ts +52 -0
  56. package/lib/manifest/custom-object.d.ts.map +1 -0
  57. package/lib/manifest/custom-object.js +219 -0
  58. package/lib/manifest/custom-object.js.map +1 -0
  59. package/lib/manifest/custom-object.mjs +215 -0
  60. package/lib/manifest/custom-object.mjs.map +1 -0
  61. package/lib/manifest/field.d.mts +276 -0
  62. package/lib/manifest/field.d.mts.map +1 -0
  63. package/lib/manifest/field.d.ts +276 -0
  64. package/lib/manifest/field.d.ts.map +1 -0
  65. package/lib/manifest/field.js +418 -0
  66. package/lib/manifest/field.js.map +1 -0
  67. package/lib/manifest/field.mjs +395 -0
  68. package/lib/manifest/field.mjs.map +1 -0
  69. package/lib/manifest/index.d.mts +15 -0
  70. package/lib/manifest/index.d.mts.map +1 -0
  71. package/lib/manifest/index.d.ts +15 -0
  72. package/lib/manifest/index.d.ts.map +1 -0
  73. package/lib/manifest/index.js +53 -0
  74. package/lib/manifest/index.js.map +1 -0
  75. package/lib/manifest/index.mjs +18 -0
  76. package/lib/manifest/index.mjs.map +1 -0
  77. package/lib/manifest/list-view.d.mts +47 -0
  78. package/lib/manifest/list-view.d.mts.map +1 -0
  79. package/lib/manifest/list-view.d.ts +47 -0
  80. package/lib/manifest/list-view.d.ts.map +1 -0
  81. package/lib/manifest/list-view.js +73 -0
  82. package/lib/manifest/list-view.js.map +1 -0
  83. package/lib/manifest/list-view.mjs +69 -0
  84. package/lib/manifest/list-view.mjs.map +1 -0
  85. package/lib/manifest/manifest-builder.d.mts +44 -0
  86. package/lib/manifest/manifest-builder.d.mts.map +1 -0
  87. package/lib/manifest/manifest-builder.d.ts +44 -0
  88. package/lib/manifest/manifest-builder.d.ts.map +1 -0
  89. package/lib/manifest/manifest-builder.js +69 -0
  90. package/lib/manifest/manifest-builder.js.map +1 -0
  91. package/lib/manifest/manifest-builder.mjs +65 -0
  92. package/lib/manifest/manifest-builder.mjs.map +1 -0
  93. package/lib/manifest/manifest-function.d.mts +39 -0
  94. package/lib/manifest/manifest-function.d.mts.map +1 -0
  95. package/lib/manifest/manifest-function.d.ts +39 -0
  96. package/lib/manifest/manifest-function.d.ts.map +1 -0
  97. package/lib/manifest/manifest-function.js +56 -0
  98. package/lib/manifest/manifest-function.js.map +1 -0
  99. package/lib/manifest/manifest-function.mjs +52 -0
  100. package/lib/manifest/manifest-function.mjs.map +1 -0
  101. package/lib/manifest/rule.d.mts +50 -0
  102. package/lib/manifest/rule.d.mts.map +1 -0
  103. package/lib/manifest/rule.d.ts +50 -0
  104. package/lib/manifest/rule.d.ts.map +1 -0
  105. package/lib/manifest/rule.js +84 -0
  106. package/lib/manifest/rule.js.map +1 -0
  107. package/lib/manifest/rule.mjs +80 -0
  108. package/lib/manifest/rule.mjs.map +1 -0
  109. package/lib/manifest/sdui-page.d.mts +33 -0
  110. package/lib/manifest/sdui-page.d.mts.map +1 -0
  111. package/lib/manifest/sdui-page.d.ts +33 -0
  112. package/lib/manifest/sdui-page.d.ts.map +1 -0
  113. package/lib/manifest/sdui-page.js +52 -0
  114. package/lib/manifest/sdui-page.js.map +1 -0
  115. package/lib/manifest/sdui-page.mjs +48 -0
  116. package/lib/manifest/sdui-page.mjs.map +1 -0
  117. package/lib/manifest/validation.d.mts +41 -0
  118. package/lib/manifest/validation.d.mts.map +1 -0
  119. package/lib/manifest/validation.d.ts +41 -0
  120. package/lib/manifest/validation.d.ts.map +1 -0
  121. package/lib/manifest/validation.js +57 -0
  122. package/lib/manifest/validation.js.map +1 -0
  123. package/lib/manifest/validation.mjs +53 -0
  124. package/lib/manifest/validation.mjs.map +1 -0
  125. package/package.json +11 -1
  126. package/resources/draft-hires.d.mts +22 -0
  127. package/resources/draft-hires.d.mts.map +1 -1
  128. package/resources/draft-hires.d.ts +22 -0
  129. package/resources/draft-hires.d.ts.map +1 -1
  130. package/resources/earnings-inputs.d.mts +104 -1
  131. package/resources/earnings-inputs.d.mts.map +1 -1
  132. package/resources/earnings-inputs.d.ts +104 -1
  133. package/resources/earnings-inputs.d.ts.map +1 -1
  134. package/resources/earnings-inputs.js +17 -0
  135. package/resources/earnings-inputs.js.map +1 -1
  136. package/resources/earnings-inputs.mjs +17 -0
  137. package/resources/earnings-inputs.mjs.map +1 -1
  138. package/resources/files.d.mts +149 -0
  139. package/resources/files.d.mts.map +1 -0
  140. package/resources/files.d.ts +149 -0
  141. package/resources/files.d.ts.map +1 -0
  142. package/resources/files.js +25 -0
  143. package/resources/files.js.map +1 -0
  144. package/resources/files.mjs +21 -0
  145. package/resources/files.mjs.map +1 -0
  146. package/resources/index.d.mts +2 -1
  147. package/resources/index.d.mts.map +1 -1
  148. package/resources/index.d.ts +2 -1
  149. package/resources/index.d.ts.map +1 -1
  150. package/resources/index.js +4 -2
  151. package/resources/index.js.map +1 -1
  152. package/resources/index.mjs +1 -0
  153. package/resources/index.mjs.map +1 -1
  154. package/resources/object-categories.d.mts +1 -1
  155. package/resources/object-categories.d.ts +1 -1
  156. package/resources/object-categories.js +1 -1
  157. package/resources/object-categories.mjs +1 -1
  158. package/resources/report-runs.d.mts +11 -11
  159. package/resources/report-runs.d.ts +11 -11
  160. package/resources/workflow-action-executions.d.mts +17 -2
  161. package/resources/workflow-action-executions.d.mts.map +1 -1
  162. package/resources/workflow-action-executions.d.ts +17 -2
  163. package/resources/workflow-action-executions.d.ts.map +1 -1
  164. package/src/client.ts +29 -0
  165. package/src/internal/types.ts +6 -8
  166. package/src/lib/manifest/_helpers.ts +164 -0
  167. package/src/lib/manifest/app.ts +108 -0
  168. package/src/lib/manifest/category.ts +51 -0
  169. package/src/lib/manifest/custom-object-field-section.ts +54 -0
  170. package/src/lib/manifest/custom-object-page-layout.ts +292 -0
  171. package/src/lib/manifest/custom-object.ts +269 -0
  172. package/src/lib/manifest/field.ts +632 -0
  173. package/src/lib/manifest/index.ts +114 -0
  174. package/src/lib/manifest/list-view.ts +103 -0
  175. package/src/lib/manifest/manifest-builder.ts +97 -0
  176. package/src/lib/manifest/manifest-function.ts +81 -0
  177. package/src/lib/manifest/rule.ts +125 -0
  178. package/src/lib/manifest/sdui-page.ts +72 -0
  179. package/src/lib/manifest/validation.ts +87 -0
  180. package/src/resources/draft-hires.ts +26 -0
  181. package/src/resources/earnings-inputs.ts +140 -0
  182. package/src/resources/files.ts +186 -0
  183. package/src/resources/index.ts +3 -0
  184. package/src/resources/object-categories.ts +1 -1
  185. package/src/resources/report-runs.ts +32 -32
  186. package/src/resources/workflow-action-executions.ts +22 -1
  187. package/src/version.ts +1 -1
  188. package/version.d.mts +1 -1
  189. package/version.d.ts +1 -1
  190. package/version.js +1 -1
  191. package/version.mjs +1 -1
@@ -0,0 +1,158 @@
1
+ import type { CustomObject } from "./custom-object.js";
2
+ import type { Field } from "./field.js";
3
+ /** Edit to a built-in (system) header field. */
4
+ export interface SystemHeaderFieldEdit {
5
+ newRqlField?: string;
6
+ deleted?: boolean;
7
+ }
8
+ /** Custom header field added via newFields. `key` is required + non-empty. */
9
+ export interface NewHeaderField {
10
+ rqlName: string;
11
+ key: string;
12
+ canBeDeleted?: boolean;
13
+ canBeChanged?: boolean;
14
+ canBeMoved?: boolean;
15
+ }
16
+ /**
17
+ * Strict shape for header_edits. Only the keys listed here are accepted by
18
+ * HeaderEditsDTO — anything else is dropped on the wire. Pass `{}` for an
19
+ * empty header.
20
+ */
21
+ export interface HeaderEdits {
22
+ newTitleField?: string | null;
23
+ titleFieldDeleted?: boolean;
24
+ newDescriptionField?: string | null;
25
+ descriptionFieldDeleted?: boolean;
26
+ /** Map of system field key → edit. */
27
+ systemFieldEdits?: Record<string, SystemHeaderFieldEdit>;
28
+ newFields?: NewHeaderField[];
29
+ /** Sort order of header field `key` values (custom + system). */
30
+ headerFieldsOrder?: string[];
31
+ buttons?: string[];
32
+ }
33
+ /** SectionFieldDTO — one field inside a fields_section. */
34
+ export interface SectionField {
35
+ fieldRqlName: string;
36
+ hidden?: boolean;
37
+ editable?: boolean;
38
+ movementOption?: 'tab' | 'free';
39
+ }
40
+ /** FieldsSectionDTO — standard field grid section. */
41
+ export interface FieldsSection {
42
+ type: 'fields_section';
43
+ key: string;
44
+ name: string;
45
+ fields: SectionField[];
46
+ }
47
+ /** Only `fields_section` is modeled today (most common). Add other section
48
+ * types (related_object_section, custom_section, …) explicitly as needed. */
49
+ export type PageLayoutSection = FieldsSection;
50
+ /** PageLayoutTabWithSectionsDTO. */
51
+ export interface TabWithSections {
52
+ type: 'tab_with_sections';
53
+ key: string;
54
+ name: string;
55
+ sections: PageLayoutSection[];
56
+ }
57
+ /** CustomTabDTO — host a custom component as a tab. */
58
+ export interface CustomTab {
59
+ type: 'custom_tab';
60
+ key: string;
61
+ name: string;
62
+ componentKey: string;
63
+ }
64
+ export type PageLayoutTab = TabWithSections | CustomTab;
65
+ /** Layout of fields inside a fields_section. */
66
+ export type SectionFieldsLayout = 'one_column' | 'two_column' | 'three_column' | 'responsive';
67
+ /** SystemSectionEditDTO — edits to a built-in section inside a system tab. */
68
+ export interface SystemSectionEdit {
69
+ newName?: string;
70
+ deleted?: boolean;
71
+ newLayout?: SectionFieldsLayout;
72
+ newFields?: SectionField[];
73
+ newHideName?: boolean;
74
+ }
75
+ /** SystemTabEditDTO — edits to a built-in tab (rename, delete, add sections, …). */
76
+ export interface SystemTabEdit {
77
+ newName?: string;
78
+ deleted?: boolean;
79
+ newSections?: PageLayoutSection[];
80
+ systemSectionEdits?: Record<string, SystemSectionEdit>;
81
+ sectionsOrder?: string[];
82
+ }
83
+ /**
84
+ * Strict shape for tab_edits. Only TabEditsDTO keys allowed.
85
+ *
86
+ * All fields are optional to match `TabEditsDTO`'s `default_factory` (empty
87
+ * list / empty dict). An omitted `tabEdits` defaults to `{}` in the
88
+ * constructor; partial objects rely on backend per-field defaults.
89
+ *
90
+ * - newTabs: tabs to create (each needs a `type` discriminator)
91
+ * - systemTabEdits: edits keyed by built-in tab key
92
+ * - tabsOrder: ordered list of tab `key` values (new + system)
93
+ * - newTabLayout: optional orientation
94
+ */
95
+ export interface TabEdits {
96
+ newTabs?: PageLayoutTab[];
97
+ systemTabEdits?: Record<string, SystemTabEdit>;
98
+ tabsOrder?: string[];
99
+ newTabLayout?: 'vertical' | 'horizontal';
100
+ }
101
+ /**
102
+ * VisibilityConditionDTO. Both fields are required on the Python type — pass
103
+ * empty string / empty object if you genuinely have no formula or AST.
104
+ */
105
+ export interface VisibilityCondition {
106
+ rqlFormula: string;
107
+ layeredConditionsTree: Record<string, any>;
108
+ }
109
+ /** Pass `{}` for "no conditions" — both maps default empty. */
110
+ export interface VisibilityConditions {
111
+ sections?: Record<string, VisibilityCondition>;
112
+ tabs?: Record<string, VisibilityCondition>;
113
+ }
114
+ export interface CustomObjectPageLayoutProps {
115
+ /**
116
+ * Required. Stable `api_name` for the layout. Use `'default'` for the layout
117
+ * that drives **Add** and the default object detail view (per Custom Object
118
+ * — one `default` per object).
119
+ */
120
+ apiName: string;
121
+ /** Required. Display name of the layout. */
122
+ name: string;
123
+ /** Optional. Tab structure (TabEditsDTO). Defaults to empty. */
124
+ tabEdits?: TabEdits;
125
+ /** Optional. Header configuration (HeaderEditsDTO). Defaults to empty. */
126
+ headerEdits?: HeaderEdits;
127
+ /** Optional. Visibility conditions. Defaults to empty (no conditions). */
128
+ visibilityConditions?: VisibilityConditions;
129
+ /** Identity override. Override the layout identifier. @default generateId('layout') */
130
+ layoutId?: string;
131
+ /** Optional. Overwritten at install; defaults to object api_name. */
132
+ blueprintKey?: string;
133
+ }
134
+ export declare class CustomObjectPageLayout {
135
+ private readonly _layoutId;
136
+ private readonly _apiName;
137
+ private readonly _customObjectApiName;
138
+ private readonly _name;
139
+ private readonly _tabEdits;
140
+ private readonly _headerEdits;
141
+ private readonly _visibilityConditions;
142
+ private readonly _blueprintKey;
143
+ /** Build a new layout and auto-register with the CO's scope. */
144
+ constructor(customObject: CustomObject, props: CustomObjectPageLayoutProps);
145
+ /** Backend layout_id used as this layout's identifier. */
146
+ getLayoutId(): string;
147
+ /** Stable api_name for this layout. */
148
+ getApiName(): string;
149
+ /** api_name of the CustomObject this layout lives on. */
150
+ getCustomObjectApiName(): string;
151
+ /** Serialize to the backend `CUSTOM_OBJECT_PAGE_LAYOUT` wire shape. */
152
+ toDict(): Record<string, any>;
153
+ /** Factory for a single-tab "Details" page listing the given fields. */
154
+ static basic(customObject: CustomObject, props?: {
155
+ fields?: Field[];
156
+ }): CustomObjectPageLayout;
157
+ }
158
+ //# sourceMappingURL=custom-object-page-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object-page-layout.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /*
3
+ * The contents of this file were inserted manually and are not generated by Stainless.
4
+ *
5
+ * Custom object page layouts (detail page structure).
6
+ * Backend schema: CUSTOM_OBJECT_PAGE_LAYOUT (v2)
7
+ *
8
+ * CDK-style: `new CustomObjectPageLayout(customObject, props)` auto-registers
9
+ * with the CO's scope. `blueprint_key` defaults to the CO's api_name.
10
+ * For the layout that drives **Add** and the default detail view, use
11
+ * `apiName: 'default'` (one per custom object). `CustomObjectPageLayout.basic`
12
+ * uses `default` automatically.
13
+ *
14
+ * TabEditsDTO / HeaderEditsDTO / VisibilityConditionsDTO are strict
15
+ * dataclasses on the backend. They expect camelCase keys on the wire
16
+ * (newTabs, systemTabEdits, fieldRqlName, newTitleField, ...). Snake_case
17
+ * keys are silently dropped and produce an empty layout on deploy. The
18
+ * interfaces below mirror the DTO field aliases exactly.
19
+ *
20
+ * TS catches misspellings on direct object literals but not on spreads,
21
+ * `as` casts, or loosely-typed variables — so be careful when constructing
22
+ * these objects dynamically.
23
+ *
24
+ * DTO references: types/edits.py, types/layout.py, types/sections.py.
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.CustomObjectPageLayout = void 0;
28
+ const _helpers_1 = require("./_helpers.js");
29
+ // ---------------------------------------------------------------------------
30
+ // Class
31
+ // ---------------------------------------------------------------------------
32
+ class CustomObjectPageLayout {
33
+ /** Build a new layout and auto-register with the CO's scope. */
34
+ constructor(customObject, props) {
35
+ if (!props.apiName)
36
+ throw new Error('CustomObjectPageLayout: apiName cannot be empty');
37
+ if (!props.name)
38
+ throw new Error('CustomObjectPageLayout: name cannot be empty');
39
+ this._layoutId = props.layoutId ?? (0, _helpers_1.generateId)('layout');
40
+ this._apiName = props.apiName;
41
+ this._customObjectApiName = customObject.getApiName();
42
+ this._name = props.name;
43
+ this._tabEdits = props.tabEdits ?? {};
44
+ this._headerEdits = props.headerEdits ?? {};
45
+ this._visibilityConditions = props.visibilityConditions ?? {};
46
+ this._blueprintKey = props.blueprintKey;
47
+ customObject._register(this);
48
+ }
49
+ /** Backend layout_id used as this layout's identifier. */
50
+ getLayoutId() {
51
+ return this._layoutId;
52
+ }
53
+ /** Stable api_name for this layout. */
54
+ getApiName() {
55
+ return this._apiName;
56
+ }
57
+ /** api_name of the CustomObject this layout lives on. */
58
+ getCustomObjectApiName() {
59
+ return this._customObjectApiName;
60
+ }
61
+ /** Serialize to the backend `CUSTOM_OBJECT_PAGE_LAYOUT` wire shape. */
62
+ toDict() {
63
+ const d = {
64
+ type: 'CUSTOM_OBJECT_PAGE_LAYOUT',
65
+ layout_id: this._layoutId,
66
+ api_name: this._apiName,
67
+ object_rql_name: this._customObjectApiName,
68
+ name: this._name,
69
+ // Packaged layouts are never system-created (backend invariant).
70
+ system_created: false,
71
+ tab_edits: this._tabEdits,
72
+ header_edits: this._headerEdits,
73
+ visibility_conditions: this._visibilityConditions,
74
+ blueprint_key: this._blueprintKey ?? this._customObjectApiName,
75
+ };
76
+ return d;
77
+ }
78
+ /** Factory for a single-tab "Details" page listing the given fields. */
79
+ static basic(customObject, props = {}) {
80
+ const coApiName = customObject.getApiName();
81
+ const coName = customObject.getName();
82
+ return new CustomObjectPageLayout(customObject, {
83
+ apiName: 'default',
84
+ name: `${coName} Layout`,
85
+ tabEdits: {
86
+ newTabs: [
87
+ {
88
+ key: 'details',
89
+ name: 'Details',
90
+ type: 'tab_with_sections',
91
+ sections: [
92
+ {
93
+ key: 'general',
94
+ name: 'General',
95
+ type: 'fields_section',
96
+ fields: (props.fields ?? []).map((f) => ({
97
+ fieldRqlName: f.getApiName(),
98
+ })),
99
+ },
100
+ ],
101
+ },
102
+ ],
103
+ systemTabEdits: {},
104
+ tabsOrder: ['details'],
105
+ },
106
+ headerEdits: {},
107
+ visibilityConditions: {},
108
+ });
109
+ }
110
+ }
111
+ exports.CustomObjectPageLayout = CustomObjectPageLayout;
112
+ //# sourceMappingURL=custom-object-page-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object-page-layout.js","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /*
2
+ * The contents of this file were inserted manually and are not generated by Stainless.
3
+ *
4
+ * Custom object page layouts (detail page structure).
5
+ * Backend schema: CUSTOM_OBJECT_PAGE_LAYOUT (v2)
6
+ *
7
+ * CDK-style: `new CustomObjectPageLayout(customObject, props)` auto-registers
8
+ * with the CO's scope. `blueprint_key` defaults to the CO's api_name.
9
+ * For the layout that drives **Add** and the default detail view, use
10
+ * `apiName: 'default'` (one per custom object). `CustomObjectPageLayout.basic`
11
+ * uses `default` automatically.
12
+ *
13
+ * TabEditsDTO / HeaderEditsDTO / VisibilityConditionsDTO are strict
14
+ * dataclasses on the backend. They expect camelCase keys on the wire
15
+ * (newTabs, systemTabEdits, fieldRqlName, newTitleField, ...). Snake_case
16
+ * keys are silently dropped and produce an empty layout on deploy. The
17
+ * interfaces below mirror the DTO field aliases exactly.
18
+ *
19
+ * TS catches misspellings on direct object literals but not on spreads,
20
+ * `as` casts, or loosely-typed variables — so be careful when constructing
21
+ * these objects dynamically.
22
+ *
23
+ * DTO references: types/edits.py, types/layout.py, types/sections.py.
24
+ */
25
+ import { generateId } from "./_helpers.mjs";
26
+ // ---------------------------------------------------------------------------
27
+ // Class
28
+ // ---------------------------------------------------------------------------
29
+ export class CustomObjectPageLayout {
30
+ /** Build a new layout and auto-register with the CO's scope. */
31
+ constructor(customObject, props) {
32
+ if (!props.apiName)
33
+ throw new Error('CustomObjectPageLayout: apiName cannot be empty');
34
+ if (!props.name)
35
+ throw new Error('CustomObjectPageLayout: name cannot be empty');
36
+ this._layoutId = props.layoutId ?? generateId('layout');
37
+ this._apiName = props.apiName;
38
+ this._customObjectApiName = customObject.getApiName();
39
+ this._name = props.name;
40
+ this._tabEdits = props.tabEdits ?? {};
41
+ this._headerEdits = props.headerEdits ?? {};
42
+ this._visibilityConditions = props.visibilityConditions ?? {};
43
+ this._blueprintKey = props.blueprintKey;
44
+ customObject._register(this);
45
+ }
46
+ /** Backend layout_id used as this layout's identifier. */
47
+ getLayoutId() {
48
+ return this._layoutId;
49
+ }
50
+ /** Stable api_name for this layout. */
51
+ getApiName() {
52
+ return this._apiName;
53
+ }
54
+ /** api_name of the CustomObject this layout lives on. */
55
+ getCustomObjectApiName() {
56
+ return this._customObjectApiName;
57
+ }
58
+ /** Serialize to the backend `CUSTOM_OBJECT_PAGE_LAYOUT` wire shape. */
59
+ toDict() {
60
+ const d = {
61
+ type: 'CUSTOM_OBJECT_PAGE_LAYOUT',
62
+ layout_id: this._layoutId,
63
+ api_name: this._apiName,
64
+ object_rql_name: this._customObjectApiName,
65
+ name: this._name,
66
+ // Packaged layouts are never system-created (backend invariant).
67
+ system_created: false,
68
+ tab_edits: this._tabEdits,
69
+ header_edits: this._headerEdits,
70
+ visibility_conditions: this._visibilityConditions,
71
+ blueprint_key: this._blueprintKey ?? this._customObjectApiName,
72
+ };
73
+ return d;
74
+ }
75
+ /** Factory for a single-tab "Details" page listing the given fields. */
76
+ static basic(customObject, props = {}) {
77
+ const coApiName = customObject.getApiName();
78
+ const coName = customObject.getName();
79
+ return new CustomObjectPageLayout(customObject, {
80
+ apiName: 'default',
81
+ name: `${coName} Layout`,
82
+ tabEdits: {
83
+ newTabs: [
84
+ {
85
+ key: 'details',
86
+ name: 'Details',
87
+ type: 'tab_with_sections',
88
+ sections: [
89
+ {
90
+ key: 'general',
91
+ name: 'General',
92
+ type: 'fields_section',
93
+ fields: (props.fields ?? []).map((f) => ({
94
+ fieldRqlName: f.getApiName(),
95
+ })),
96
+ },
97
+ ],
98
+ },
99
+ ],
100
+ systemTabEdits: {},
101
+ tabsOrder: ['details'],
102
+ },
103
+ headerEdits: {},
104
+ visibilityConditions: {},
105
+ });
106
+ }
107
+ }
108
+ //# sourceMappingURL=custom-object-page-layout.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object-page-layout.mjs","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { Category } from "./category.mjs";
2
+ import type { ManifestComponent, ManifestScope } from "./manifest-builder.mjs";
3
+ export interface IconConfig {
4
+ emoji?: string | null;
5
+ ripplingIcon?: string | null;
6
+ s3Bucket?: string;
7
+ s3Key?: string;
8
+ }
9
+ export interface CustomObjectProps {
10
+ /** Required. Unique api_name (must end with `__c`). */
11
+ apiName: string;
12
+ /** Required. Singular display name. */
13
+ name: string;
14
+ /**
15
+ * Required. Category this object belongs to. Accepts a live `Category` ref
16
+ * (the SDK reads its api_name) or a raw api_name string for categories
17
+ * authored outside this manifest (e.g. Rippling-native or cross-package).
18
+ */
19
+ category: Category | string;
20
+ /** Optional. What this entity represents. @default null */
21
+ description?: string | null;
22
+ /** Optional. Icon configuration. @default null */
23
+ icon?: IconConfig | null;
24
+ /** Optional. Plural display form. @default null */
25
+ pluralLabel?: string | null;
26
+ /** Optional. Overrides for autonumber name fields. @default null */
27
+ nameFieldDetails?: Record<string, any> | null;
28
+ /** Optional. Default field section name. @default null */
29
+ defaultFieldSectionName?: string | null;
30
+ }
31
+ export declare class CustomObject implements ManifestScope {
32
+ private readonly _scope;
33
+ private readonly _apiName;
34
+ private readonly _name;
35
+ private readonly _category;
36
+ private _description;
37
+ private _icon;
38
+ private _pluralLabel;
39
+ private _nameFieldDetails;
40
+ private _defaultFieldSectionName;
41
+ /** Build a new CO and auto-register with `scope`; enforces `__c` suffix on `apiName`. */
42
+ constructor(scope: ManifestScope, props: CustomObjectProps);
43
+ /** @internal Scope hook: forward child registration up to the builder. */
44
+ _register(component: ManifestComponent): void;
45
+ /** Backend api_name for this custom object. */
46
+ getApiName(): string;
47
+ /** Singular display name. */
48
+ getName(): string;
49
+ /** Serialize to the backend `CUSTOM_OBJECT` wire shape. */
50
+ toDict(): Record<string, any>;
51
+ }
52
+ //# sourceMappingURL=custom-object.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object.ts"],"names":[],"mappings":"OAsBO,EAAE,QAAQ,EAAE;OACZ,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE;AA4IhD,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kDAAkD;IAClD,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9C,0DAA0D;IAC1D,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,wBAAwB,CAA4B;IAE5D,yFAAyF;gBAC7E,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB;IAqB1D,0EAA0E;IAC1E,SAAS,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAI7C,+CAA+C;IAC/C,UAAU,IAAI,MAAM;IAIpB,6BAA6B;IAC7B,OAAO,IAAI,MAAM;IAIjB,2DAA2D;IAC3D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA0B9B"}
@@ -0,0 +1,52 @@
1
+ import { Category } from "./category.js";
2
+ import type { ManifestComponent, ManifestScope } from "./manifest-builder.js";
3
+ export interface IconConfig {
4
+ emoji?: string | null;
5
+ ripplingIcon?: string | null;
6
+ s3Bucket?: string;
7
+ s3Key?: string;
8
+ }
9
+ export interface CustomObjectProps {
10
+ /** Required. Unique api_name (must end with `__c`). */
11
+ apiName: string;
12
+ /** Required. Singular display name. */
13
+ name: string;
14
+ /**
15
+ * Required. Category this object belongs to. Accepts a live `Category` ref
16
+ * (the SDK reads its api_name) or a raw api_name string for categories
17
+ * authored outside this manifest (e.g. Rippling-native or cross-package).
18
+ */
19
+ category: Category | string;
20
+ /** Optional. What this entity represents. @default null */
21
+ description?: string | null;
22
+ /** Optional. Icon configuration. @default null */
23
+ icon?: IconConfig | null;
24
+ /** Optional. Plural display form. @default null */
25
+ pluralLabel?: string | null;
26
+ /** Optional. Overrides for autonumber name fields. @default null */
27
+ nameFieldDetails?: Record<string, any> | null;
28
+ /** Optional. Default field section name. @default null */
29
+ defaultFieldSectionName?: string | null;
30
+ }
31
+ export declare class CustomObject implements ManifestScope {
32
+ private readonly _scope;
33
+ private readonly _apiName;
34
+ private readonly _name;
35
+ private readonly _category;
36
+ private _description;
37
+ private _icon;
38
+ private _pluralLabel;
39
+ private _nameFieldDetails;
40
+ private _defaultFieldSectionName;
41
+ /** Build a new CO and auto-register with `scope`; enforces `__c` suffix on `apiName`. */
42
+ constructor(scope: ManifestScope, props: CustomObjectProps);
43
+ /** @internal Scope hook: forward child registration up to the builder. */
44
+ _register(component: ManifestComponent): void;
45
+ /** Backend api_name for this custom object. */
46
+ getApiName(): string;
47
+ /** Singular display name. */
48
+ getName(): string;
49
+ /** Serialize to the backend `CUSTOM_OBJECT` wire shape. */
50
+ toDict(): Record<string, any>;
51
+ }
52
+ //# sourceMappingURL=custom-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object.ts"],"names":[],"mappings":"OAsBO,EAAE,QAAQ,EAAE;OACZ,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE;AA4IhD,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kDAAkD;IAClD,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9C,0DAA0D;IAC1D,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,wBAAwB,CAA4B;IAE5D,yFAAyF;gBAC7E,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB;IAqB1D,0EAA0E;IAC1E,SAAS,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAI7C,+CAA+C;IAC/C,UAAU,IAAI,MAAM;IAIpB,6BAA6B;IAC7B,OAAO,IAAI,MAAM;IAIjB,2DAA2D;IAC3D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA0B9B"}