@rippling/rippling-sdk 0.2.0-alpha.55 → 0.2.0-alpha.56

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 (61) hide show
  1. package/examples/manifest/custom-object-creation-workflow/custom-object-creation-workflow.ts +0 -10
  2. package/examples/manifest/dental-practice-management/dental-practice-management.ts +18 -28
  3. package/examples/manifest/gym-membership-management/gym-membership-management.ts +18 -31
  4. package/examples/manifest/simple-todo-app/simple-todo-app.ts +4 -15
  5. package/lib/manifest/custom-object-page-layout.d.mts +10 -8
  6. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
  7. package/lib/manifest/custom-object-page-layout.d.ts +10 -8
  8. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
  9. package/lib/manifest/custom-object-page-layout.js +47 -23
  10. package/lib/manifest/custom-object-page-layout.js.map +1 -1
  11. package/lib/manifest/custom-object-page-layout.mjs +47 -23
  12. package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
  13. package/lib/manifest/custom-object.d.mts +120 -0
  14. package/lib/manifest/custom-object.d.mts.map +1 -1
  15. package/lib/manifest/custom-object.d.ts +120 -0
  16. package/lib/manifest/custom-object.d.ts.map +1 -1
  17. package/lib/manifest/custom-object.js +62 -0
  18. package/lib/manifest/custom-object.js.map +1 -1
  19. package/lib/manifest/custom-object.mjs +62 -0
  20. package/lib/manifest/custom-object.mjs.map +1 -1
  21. package/lib/manifest/existing-manifest-context.d.mts.map +1 -1
  22. package/lib/manifest/existing-manifest-context.d.ts.map +1 -1
  23. package/lib/manifest/existing-manifest-context.js +3 -1
  24. package/lib/manifest/existing-manifest-context.js.map +1 -1
  25. package/lib/manifest/existing-manifest-context.mjs +3 -1
  26. package/lib/manifest/existing-manifest-context.mjs.map +1 -1
  27. package/lib/manifest/field.d.mts +9 -4
  28. package/lib/manifest/field.d.mts.map +1 -1
  29. package/lib/manifest/field.d.ts +9 -4
  30. package/lib/manifest/field.d.ts.map +1 -1
  31. package/lib/manifest/field.js +14 -4
  32. package/lib/manifest/field.js.map +1 -1
  33. package/lib/manifest/field.mjs +14 -4
  34. package/lib/manifest/field.mjs.map +1 -1
  35. package/lib/manifest/index.d.mts +1 -1
  36. package/lib/manifest/index.d.mts.map +1 -1
  37. package/lib/manifest/index.d.ts +1 -1
  38. package/lib/manifest/index.d.ts.map +1 -1
  39. package/lib/manifest/index.js.map +1 -1
  40. package/lib/manifest/index.mjs +1 -1
  41. package/lib/manifest/index.mjs.map +1 -1
  42. package/lib/manifest/list-view.d.mts +6 -6
  43. package/lib/manifest/list-view.d.mts.map +1 -1
  44. package/lib/manifest/list-view.d.ts +6 -6
  45. package/lib/manifest/list-view.d.ts.map +1 -1
  46. package/lib/manifest/list-view.js +4 -4
  47. package/lib/manifest/list-view.js.map +1 -1
  48. package/lib/manifest/list-view.mjs +4 -4
  49. package/lib/manifest/list-view.mjs.map +1 -1
  50. package/package.json +1 -1
  51. package/src/lib/manifest/custom-object-page-layout.ts +60 -30
  52. package/src/lib/manifest/custom-object.ts +93 -9
  53. package/src/lib/manifest/existing-manifest-context.ts +8 -2
  54. package/src/lib/manifest/field.ts +15 -4
  55. package/src/lib/manifest/index.ts +10 -1
  56. package/src/lib/manifest/list-view.ts +8 -8
  57. package/src/version.ts +1 -1
  58. package/version.d.mts +1 -1
  59. package/version.d.ts +1 -1
  60. package/version.js +1 -1
  61. package/version.mjs +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/lib/manifest/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EACL,UAAU,GAaX,uBAAmB;AAEpB,OAAO,EAAE,GAAG,EAA6C,kBAAc;AAEvE,OAAO,EAAE,QAAQ,EAAsB,uBAAmB;AAE1D,OAAO,EAAE,YAAY,EAA2C,4BAAwB;AAExF,OAAO,EACL,wBAAwB,GAGzB,0CAAsC;AAEvC,OAAO,EACL,sBAAsB,GA0DvB,wCAAoC;AAErC,OAAO,EACL,KAAK;AAML,0EAA0E;AAC1E,qEAAqE;AACrE,SAAS,EAET,aAAa,EAEb,UAAU,EAEV,QAAQ,EAER,UAAU,EAEV,WAAW,EAEX,aAAa,EAEb,eAAe,EAEf,SAAS,EAET,aAAa,EAEb,SAAS,EAET,WAAW,EAEX,UAAU,EAEV,YAAY,EAEZ,SAAS,EAET,WAAW,EAEX,gBAAgB,EAEhB,YAAY,EAEZ,YAAY,GAEb,oBAAgB;AAEjB,OAAO,EACL,uBAAuB,GAIxB,wCAAoC;AAErC,OAAO,EACL,WAAW,GAKZ,wBAAoB;AAErB,OAAO,EACL,eAAe,GAQhB,+BAA2B;AAE5B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,IAAI,QAAQ,GAE7B,gCAA4B;AAE7B,OAAO,EACL,IAAI,GAKL,mBAAe;AAEhB,OAAO,EAAE,QAAQ,EAAsB,wBAAoB;AAE3D,OAAO,EACL,UAAU,GAIX,yBAAqB;AAEtB,OAAO,EACL,QAAQ,GAuBT,uBAAmB"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/lib/manifest/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EACL,UAAU,GAaX,uBAAmB;AAEpB,OAAO,EAAE,GAAG,EAA6C,kBAAc;AAEvE,OAAO,EAAE,QAAQ,EAAsB,uBAAmB;AAE1D,OAAO,EACL,YAAY,GAQb,4BAAwB;AAEzB,OAAO,EACL,wBAAwB,GAGzB,0CAAsC;AAEvC,OAAO,EACL,sBAAsB,GA0DvB,wCAAoC;AAErC,OAAO,EACL,KAAK;AAML,0EAA0E;AAC1E,qEAAqE;AACrE,SAAS,EAET,aAAa,EAEb,UAAU,EAEV,QAAQ,EAER,UAAU,EAEV,WAAW,EAEX,aAAa,EAEb,eAAe,EAEf,SAAS,EAET,aAAa,EAEb,SAAS,EAET,WAAW,EAEX,UAAU,EAEV,YAAY,EAEZ,SAAS,EAET,WAAW,EAEX,gBAAgB,EAEhB,YAAY,EAEZ,YAAY,GAEb,oBAAgB;AAEjB,OAAO,EACL,uBAAuB,GAIxB,wCAAoC;AAErC,OAAO,EACL,WAAW,GAKZ,wBAAoB;AAErB,OAAO,EACL,eAAe,GAQhB,+BAA2B;AAE5B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,IAAI,QAAQ,GAE7B,gCAA4B;AAE7B,OAAO,EACL,IAAI,GAKL,mBAAe;AAEhB,OAAO,EAAE,QAAQ,EAAsB,wBAAoB;AAE3D,OAAO,EACL,UAAU,GAIX,yBAAqB;AAEtB,OAAO,EACL,QAAQ,GAuBT,uBAAmB"}
@@ -1,5 +1,5 @@
1
1
  import { type ObjectScope, type SortOrder } from "./_helpers.mjs";
2
- import type { CustomObject } from "./custom-object.mjs";
2
+ import type { CustomObject, CustomObjectFieldInput } from "./custom-object.mjs";
3
3
  import { type ExistingManifestContextOptions } from "./existing-manifest-context.mjs";
4
4
  import type { Field } from "./field.mjs";
5
5
  import type { ManifestComponentDeletion } from "./manifest-builder.mjs";
@@ -27,11 +27,11 @@ export interface ListViewDefProps {
27
27
  */
28
28
  name: string;
29
29
  /**
30
- * Columns to display, as live {@link Field} references. At least one field is required.
30
+ * Columns to display, as live {@link Field} references or standard field names. At least one field is required.
31
31
  *
32
32
  * Required.
33
33
  */
34
- fields: Field[];
34
+ fields: CustomObjectFieldInput[];
35
35
  /**
36
36
  * Whether this view is visible to all users (`true`) or only the record owner (`false`).
37
37
  *
@@ -50,7 +50,7 @@ export interface ListViewDefProps {
50
50
  *
51
51
  * Optional.
52
52
  */
53
- orderBy?: Field;
53
+ orderBy?: CustomObjectFieldInput;
54
54
  /**
55
55
  * Sort direction. One of `'ASC'` | `'DESC'`. Requires `orderBy` to be set.
56
56
  *
@@ -102,8 +102,8 @@ export interface ListViewDefLoadFromExistingOptions extends ExistingManifestCont
102
102
  * viewId: 'view_gym_all_members',
103
103
  * name: 'All members',
104
104
  * description: 'Directory with membership status',
105
- * fields: [memberDisplayName, memberEmail, memberPhone, memberStatusField, memberJoinDate],
106
- * orderBy: memberLastName,
105
+ * fields: ['name', memberEmail, memberPhone, memberStatusField, memberJoinDate],
106
+ * orderBy: 'name',
107
107
  * sortOrder: 'ASC',
108
108
  * isPublic: true,
109
109
  * objectScope: 'all',
@@ -1 +1 @@
1
- {"version":3,"file":"list-view.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/list-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,uBAAmB;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,4BAAwB;AACpD,OAAO,EAA8B,KAAK,8BAA8B,EAAE,wCAAoC;AAC9G,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAgB;AACrC,OAAO,KAAK,EAAE,yBAAyB,EAAE,+BAA2B;AAQpE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACpD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kCAAmC,SAAQ,8BAA8B;IACxF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,yBAAyB,CAAU;IAEnE,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,0BAA0B,GAAG,yBAAyB;IAQ9F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmD;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB;IAsB/D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kCAAuC,GAAG,WAAW;IAItG,uEAAuE;IACvE,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GACvC,WAAW;IAkBd;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAiB9B"}
1
+ {"version":3,"file":"list-view.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/list-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,uBAAmB;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,4BAAwB;AAC5E,OAAO,EAA8B,KAAK,8BAA8B,EAAE,wCAAoC;AAC9G,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAgB;AACrC,OAAO,KAAK,EAAE,yBAAyB,EAAE,+BAA2B;AAQpE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACpD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kCAAmC,SAAQ,8BAA8B;IACxF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,yBAAyB,CAAU;IAEnE,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,0BAA0B,GAAG,yBAAyB;IAQ9F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmD;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB;IAsB/D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kCAAuC,GAAG,WAAW;IAItG,uEAAuE;IACvE,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GACvC,WAAW;IAkBd;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAiB9B"}
@@ -1,5 +1,5 @@
1
1
  import { type ObjectScope, type SortOrder } from "./_helpers.js";
2
- import type { CustomObject } from "./custom-object.js";
2
+ import type { CustomObject, CustomObjectFieldInput } from "./custom-object.js";
3
3
  import { type ExistingManifestContextOptions } from "./existing-manifest-context.js";
4
4
  import type { Field } from "./field.js";
5
5
  import type { ManifestComponentDeletion } from "./manifest-builder.js";
@@ -27,11 +27,11 @@ export interface ListViewDefProps {
27
27
  */
28
28
  name: string;
29
29
  /**
30
- * Columns to display, as live {@link Field} references. At least one field is required.
30
+ * Columns to display, as live {@link Field} references or standard field names. At least one field is required.
31
31
  *
32
32
  * Required.
33
33
  */
34
- fields: Field[];
34
+ fields: CustomObjectFieldInput[];
35
35
  /**
36
36
  * Whether this view is visible to all users (`true`) or only the record owner (`false`).
37
37
  *
@@ -50,7 +50,7 @@ export interface ListViewDefProps {
50
50
  *
51
51
  * Optional.
52
52
  */
53
- orderBy?: Field;
53
+ orderBy?: CustomObjectFieldInput;
54
54
  /**
55
55
  * Sort direction. One of `'ASC'` | `'DESC'`. Requires `orderBy` to be set.
56
56
  *
@@ -102,8 +102,8 @@ export interface ListViewDefLoadFromExistingOptions extends ExistingManifestCont
102
102
  * viewId: 'view_gym_all_members',
103
103
  * name: 'All members',
104
104
  * description: 'Directory with membership status',
105
- * fields: [memberDisplayName, memberEmail, memberPhone, memberStatusField, memberJoinDate],
106
- * orderBy: memberLastName,
105
+ * fields: ['name', memberEmail, memberPhone, memberStatusField, memberJoinDate],
106
+ * orderBy: 'name',
107
107
  * sortOrder: 'ASC',
108
108
  * isPublic: true,
109
109
  * objectScope: 'all',
@@ -1 +1 @@
1
- {"version":3,"file":"list-view.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/list-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,sBAAmB;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,2BAAwB;AACpD,OAAO,EAA8B,KAAK,8BAA8B,EAAE,uCAAoC;AAC9G,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAgB;AACrC,OAAO,KAAK,EAAE,yBAAyB,EAAE,8BAA2B;AAQpE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACpD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kCAAmC,SAAQ,8BAA8B;IACxF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,yBAAyB,CAAU;IAEnE,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,0BAA0B,GAAG,yBAAyB;IAQ9F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmD;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB;IAsB/D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kCAAuC,GAAG,WAAW;IAItG,uEAAuE;IACvE,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GACvC,WAAW;IAkBd;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAiB9B"}
1
+ {"version":3,"file":"list-view.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/list-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,sBAAmB;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,2BAAwB;AAC5E,OAAO,EAA8B,KAAK,8BAA8B,EAAE,uCAAoC;AAC9G,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAgB;AACrC,OAAO,KAAK,EAAE,yBAAyB,EAAE,8BAA2B;AAQpE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACpD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kCAAmC,SAAQ,8BAA8B;IACxF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,yBAAyB,CAAU;IAEnE,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,0BAA0B,GAAG,yBAAyB;IAQ9F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmD;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD;;;;OAIG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB;IAsB/D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kCAAuC,GAAG,WAAW;IAItG,uEAAuE;IACvE,MAAM,CAAC,sBAAsB,CAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,GACvC,WAAW;IAkBd;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAiB9B"}
@@ -17,8 +17,8 @@ const _existing_component_fields_1 = require("./_existing-component-fields.js");
17
17
  * viewId: 'view_gym_all_members',
18
18
  * name: 'All members',
19
19
  * description: 'Directory with membership status',
20
- * fields: [memberDisplayName, memberEmail, memberPhone, memberStatusField, memberJoinDate],
21
- * orderBy: memberLastName,
20
+ * fields: ['name', memberEmail, memberPhone, memberStatusField, memberJoinDate],
21
+ * orderBy: 'name',
22
22
  * sortOrder: 'ASC',
23
23
  * isPublic: true,
24
24
  * objectScope: 'all',
@@ -62,9 +62,9 @@ class ListViewDef {
62
62
  this._viewId = props.viewId ?? (0, _helpers_1.generateId)('view');
63
63
  this._customObjectApiName = customObject.getApiName();
64
64
  this._name = props.name;
65
- this._fields = [...props.fields];
65
+ this._fields = props.fields.map((field) => customObject._resolveField(field));
66
66
  this._isPublic = props.isPublic;
67
- this._orderBy = props.orderBy;
67
+ this._orderBy = props.orderBy == null ? undefined : customObject._resolveField(props.orderBy);
68
68
  this._sortOrder = props.sortOrder;
69
69
  this._objectScope = props.objectScope ?? 'all';
70
70
  this._description = props.description;
@@ -1 +1 @@
1
- {"version":3,"file":"list-view.js","sourceRoot":"","sources":["../../src/lib/manifest/list-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-view.js","sourceRoot":"","sources":["../../src/lib/manifest/list-view.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,8 @@ import { optionalStringComponentField, requireArrayComponentField, requireBoolea
14
14
  * viewId: 'view_gym_all_members',
15
15
  * name: 'All members',
16
16
  * description: 'Directory with membership status',
17
- * fields: [memberDisplayName, memberEmail, memberPhone, memberStatusField, memberJoinDate],
18
- * orderBy: memberLastName,
17
+ * fields: ['name', memberEmail, memberPhone, memberStatusField, memberJoinDate],
18
+ * orderBy: 'name',
19
19
  * sortOrder: 'ASC',
20
20
  * isPublic: true,
21
21
  * objectScope: 'all',
@@ -59,9 +59,9 @@ export class ListViewDef {
59
59
  this._viewId = props.viewId ?? generateId('view');
60
60
  this._customObjectApiName = customObject.getApiName();
61
61
  this._name = props.name;
62
- this._fields = [...props.fields];
62
+ this._fields = props.fields.map((field) => customObject._resolveField(field));
63
63
  this._isPublic = props.isPublic;
64
- this._orderBy = props.orderBy;
64
+ this._orderBy = props.orderBy == null ? undefined : customObject._resolveField(props.orderBy);
65
65
  this._sortOrder = props.sortOrder;
66
66
  this._objectScope = props.objectScope ?? 'all';
67
67
  this._description = props.description;
@@ -1 +1 @@
1
- {"version":3,"file":"list-view.mjs","sourceRoot":"","sources":["../../src/lib/manifest/list-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-view.mjs","sourceRoot":"","sources":["../../src/lib/manifest/list-view.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rippling/rippling-sdk",
3
- "version": "0.2.0-alpha.55",
3
+ "version": "0.2.0-alpha.56",
4
4
  "description": "The official TypeScript library for the Rippling SDK API",
5
5
  "author": "Rippling SDK <no-reply@rippling.com>",
6
6
  "types": "./index.d.ts",
@@ -1,6 +1,10 @@
1
1
  import { generateId } from './_helpers';
2
2
  import { CustomObjectFieldSection } from './custom-object-field-section';
3
- import type { CustomObject } from './custom-object';
3
+ import type {
4
+ CustomObject,
5
+ CustomObjectFieldInput,
6
+ CustomObjectStandardFieldIdentifier,
7
+ } from './custom-object';
4
8
  import { getExistingManifestContext, type ExistingManifestContextOptions } from './existing-manifest-context';
5
9
  import type { Field } from './field';
6
10
  import type { ManifestComponentDeletion } from './manifest-builder';
@@ -134,14 +138,14 @@ export interface SectionFieldOptions {
134
138
  /** A typed field entry inside a `fields_section`. */
135
139
  export interface SectionField extends SectionFieldOptions {
136
140
  /** Field to display. Required. */
137
- field: Field;
141
+ field: CustomObjectFieldInput;
138
142
  }
139
143
 
140
144
  /** @deprecated Use `SectionField` for object entries or `SectionFieldInput` for field arrays. */
141
145
  export type SectionFieldRef = SectionField;
142
146
 
143
147
  /** One field entry inside a `fields_section`. */
144
- export type SectionFieldInput = Field | SectionField;
148
+ export type SectionFieldInput = CustomObjectFieldInput | SectionField;
145
149
 
146
150
  /** Common edit controls for sections. */
147
151
  export interface PageLayoutSectionOptions {
@@ -655,7 +659,11 @@ function isField(value: unknown): value is Field {
655
659
 
656
660
  function isFieldRef(value: SectionFieldInput): value is SectionField {
657
661
  const candidate = value as { field?: unknown } | null;
658
- return candidate != null && typeof candidate === 'object' && isField(candidate.field);
662
+ return (
663
+ candidate != null &&
664
+ typeof candidate === 'object' &&
665
+ (isField(candidate.field) || typeof candidate.field === 'string')
666
+ );
659
667
  }
660
668
 
661
669
  const LAYOUT_SECTION_KEY = Symbol('CustomObjectPageLayout.layoutSectionKey');
@@ -707,6 +715,10 @@ function assertSameObject(customObject: CustomObject, field: Field, sectionKey:
707
715
  }
708
716
  }
709
717
 
718
+ function assignSectionForLayout(field: Field, section: CustomObjectFieldSection | string): void {
719
+ if (!field.isStandard()) field._assignSection(section);
720
+ }
721
+
710
722
  function assertSectionBelongsTo(customObject: CustomObject, section: CustomObjectFieldSection): void {
711
723
  if (section.getModelApiName() !== customObject.getApiName()) {
712
724
  throw new Error(
@@ -764,16 +776,18 @@ function normalizeSectionField(
764
776
  sectionKey: string,
765
777
  entry: SectionFieldInput,
766
778
  ): SerializedSectionField {
767
- if (isField(entry)) {
768
- assertSameObject(customObject, entry, sectionKey);
769
- entry._assignSection(section);
770
- return toSerializedSectionField(entry.getApiName());
779
+ if (isField(entry) || typeof entry === 'string') {
780
+ const field = customObject._resolveField(entry);
781
+ assertSameObject(customObject, field, sectionKey);
782
+ assignSectionForLayout(field, section);
783
+ return toSerializedSectionField(field.getApiName());
771
784
  }
772
785
 
773
786
  if (isFieldRef(entry)) {
774
- assertSameObject(customObject, entry.field, sectionKey);
775
- entry.field._assignSection(section);
776
- return toSerializedSectionField(entry.field.getApiName(), entry);
787
+ const field = customObject._resolveField(entry.field);
788
+ assertSameObject(customObject, field, sectionKey);
789
+ assignSectionForLayout(field, section);
790
+ return toSerializedSectionField(field.getApiName(), entry);
777
791
  }
778
792
 
779
793
  throw new Error(
@@ -1246,7 +1260,6 @@ function ensureArrayProperty<T>(record: Record<string, any>, key: string, label:
1246
1260
  * apiName: 'default',
1247
1261
  * name: 'Member',
1248
1262
  * layoutId: 'layout_gym_member',
1249
- * headerEdits: { newTitleField: memberDisplayName.getApiName() },
1250
1263
  * tabEdits: {
1251
1264
  * newTabs: [{
1252
1265
  * key: 'member', name: 'Member', type: 'tab_with_sections',
@@ -1254,7 +1267,7 @@ function ensureArrayProperty<T>(record: Record<string, any>, key: string, label:
1254
1267
  * name: 'Profile',
1255
1268
  * type: 'fields_section',
1256
1269
  * section: profileSection,
1257
- * fields: [memberFirstName, memberEmail],
1270
+ * fields: [{ field: 'name', editable: true }, memberEmail],
1258
1271
  * }],
1259
1272
  * }],
1260
1273
  * systemTabEdits: {},
@@ -1286,6 +1299,7 @@ export class CustomObjectPageLayout {
1286
1299
  private readonly _visibilityConditions: VisibilityConditions;
1287
1300
  private readonly _blueprintKey: string | undefined;
1288
1301
  private readonly _fieldSectionLayoutSections: Map<string, FieldSectionLayoutSection[]>;
1302
+ private readonly _customObject: CustomObject;
1289
1303
 
1290
1304
  /**
1291
1305
  * @param customObject - The custom object this layout belongs to.
@@ -1298,6 +1312,7 @@ export class CustomObjectPageLayout {
1298
1312
  this._layoutId = props.layoutId ?? generateId('layout');
1299
1313
  this._apiName = props.apiName;
1300
1314
  this._customObjectApiName = customObject.getApiName();
1315
+ this._customObject = customObject;
1301
1316
  this._name = props.name;
1302
1317
  this._tabEdits = normalizeTabEdits(customObject, props.tabEdits ?? {});
1303
1318
  this._fieldSectionLayoutSections = buildFieldSectionLayoutIndexFromProps(props.tabEdits);
@@ -1337,6 +1352,7 @@ export class CustomObjectPageLayout {
1337
1352
  'object_rql_name',
1338
1353
  CustomObjectPageLayout.componentType,
1339
1354
  ),
1355
+ _customObject: customObject,
1340
1356
  _name: requireStringComponentField(component, 'name', CustomObjectPageLayout.componentType),
1341
1357
  _tabEdits: tabEdits,
1342
1358
  _headerEdits: cloneJson(component['header_edits'] ?? {}),
@@ -1378,7 +1394,7 @@ export class CustomObjectPageLayout {
1378
1394
  * For loaded layouts, this mutates the preserved `tab_edits` JSON in place
1379
1395
  * and normalizes only the inserted field entry.
1380
1396
  */
1381
- addField(field: Field, options: AddPageLayoutFieldOptions): this {
1397
+ addField(field: CustomObjectFieldInput, options: AddPageLayoutFieldOptions): this {
1382
1398
  return this.addFields([field], options);
1383
1399
  }
1384
1400
 
@@ -1389,7 +1405,7 @@ export class CustomObjectPageLayout {
1389
1405
  * pass `section` to choose the typed field section. Use `sectionKey` only
1390
1406
  * when a field section maps to multiple layout sections.
1391
1407
  */
1392
- addFields(fields: Field[], options: AddPageLayoutFieldsOptions): this {
1408
+ addFields(fields: CustomObjectFieldInput[], options: AddPageLayoutFieldsOptions): this {
1393
1409
  if (fields.length === 0) return this;
1394
1410
 
1395
1411
  let fieldSectionForMutation: CustomObjectFieldSection | undefined;
@@ -1465,7 +1481,7 @@ export class CustomObjectPageLayout {
1465
1481
  * `CUSTOM_OBJECT_FIELD` component from the manifest.
1466
1482
  */
1467
1483
  removeField(field: Field | string, options: RemovePageLayoutFieldOptions = {}): this {
1468
- const fieldApiName = typeof field === 'string' ? field : field.getApiName();
1484
+ const fieldApiName = this.fieldApiName(field);
1469
1485
  if (isField(field)) this.assertFieldBelongsToLayout(field);
1470
1486
 
1471
1487
  let sectionKey: string | undefined;
@@ -1843,14 +1859,15 @@ export class CustomObjectPageLayout {
1843
1859
  }
1844
1860
 
1845
1861
  private serializeFieldForMutation(
1846
- field: Field,
1862
+ field: CustomObjectFieldInput,
1847
1863
  fallbackSectionKey: string,
1848
1864
  options: AddPageLayoutFieldOptions,
1849
1865
  fieldSection: CustomObjectFieldSection | undefined,
1850
1866
  ): SerializedSectionField {
1851
- this.assertFieldBelongsToLayout(field);
1852
- this.assignFieldSectionForMutation(field, fallbackSectionKey, fieldSection);
1853
- return toSerializedSectionField(field.getApiName(), options);
1867
+ const resolved = this._resolveField(field);
1868
+ this.assertFieldBelongsToLayout(resolved);
1869
+ this.assignFieldSectionForMutation(resolved, fallbackSectionKey, fieldSection);
1870
+ return toSerializedSectionField(resolved.getApiName(), options);
1854
1871
  }
1855
1872
 
1856
1873
  private normalizeSectionFieldForMutation(
@@ -1858,16 +1875,18 @@ export class CustomObjectPageLayout {
1858
1875
  sectionKey: string,
1859
1876
  entry: SectionFieldInput,
1860
1877
  ): SerializedSectionField {
1861
- if (isField(entry)) {
1862
- this.assertFieldBelongsToLayout(entry);
1863
- entry._assignSection(section);
1864
- return toSerializedSectionField(entry.getApiName());
1878
+ if (isField(entry) || typeof entry === 'string') {
1879
+ const field = this._resolveField(entry);
1880
+ this.assertFieldBelongsToLayout(field);
1881
+ assignSectionForLayout(field, section);
1882
+ return toSerializedSectionField(field.getApiName());
1865
1883
  }
1866
1884
 
1867
1885
  if (isFieldRef(entry)) {
1868
- this.assertFieldBelongsToLayout(entry.field);
1869
- entry.field._assignSection(section);
1870
- return toSerializedSectionField(entry.field.getApiName(), entry);
1886
+ const field = this._resolveField(entry.field);
1887
+ this.assertFieldBelongsToLayout(field);
1888
+ assignSectionForLayout(field, section);
1889
+ return toSerializedSectionField(field.getApiName(), entry);
1871
1890
  }
1872
1891
 
1873
1892
  throw new Error(
@@ -1910,6 +1929,7 @@ export class CustomObjectPageLayout {
1910
1929
  fallbackSectionKey: string,
1911
1930
  fieldSection: CustomObjectFieldSection | undefined,
1912
1931
  ): void {
1932
+ if (field.isStandard()) return;
1913
1933
  const rawFieldSection = fieldSection as CustomObjectFieldSection | string | undefined;
1914
1934
  if (rawFieldSection != null) {
1915
1935
  if (typeof rawFieldSection === 'string') {
@@ -1948,6 +1968,16 @@ export class CustomObjectPageLayout {
1948
1968
  }
1949
1969
  }
1950
1970
 
1971
+ private _resolveField(field: CustomObjectFieldInput): Field {
1972
+ return this._customObject._resolveField(field);
1973
+ }
1974
+
1975
+ private fieldApiName(field: Field | string): FieldRqlName {
1976
+ if (typeof field !== 'string') return field.getApiName();
1977
+ if (field.endsWith('__c')) return field;
1978
+ return this._customObject.standardField(field as CustomObjectStandardFieldIdentifier).getApiName();
1979
+ }
1980
+
1951
1981
  private assertFieldSectionBelongsToLayout(section: CustomObjectFieldSection): void {
1952
1982
  if (section.getModelApiName() !== this._customObjectApiName) {
1953
1983
  throw new Error(
@@ -2222,7 +2252,7 @@ export class CustomObjectPageLayout {
2222
2252
  }
2223
2253
 
2224
2254
  private headerFieldApiName(field: Field | FieldRqlName): FieldRqlName {
2225
- if (typeof field === 'string') return field;
2255
+ if (typeof field === 'string') return this.fieldApiName(field);
2226
2256
  this.assertFieldBelongsToLayout(field);
2227
2257
  return field.getApiName();
2228
2258
  }
@@ -2283,12 +2313,12 @@ export class CustomObjectPageLayout {
2283
2313
  customObject: CustomObject,
2284
2314
  props: {
2285
2315
  section?: CustomObjectFieldSection;
2286
- fields?: Field[];
2316
+ fields?: CustomObjectFieldInput[];
2287
2317
  } = {},
2288
2318
  ): CustomObjectPageLayout {
2289
2319
  const coApiName = customObject.getApiName();
2290
2320
  const coName = customObject.getName();
2291
- const fields = props.fields ?? [];
2321
+ const fields = (props.fields ?? []).map((field) => customObject._resolveField(field));
2292
2322
  const generalSection =
2293
2323
  props.section ??
2294
2324
  (() => {
@@ -1,5 +1,6 @@
1
1
  import { Category } from './category';
2
2
  import { getExistingManifestContext, type ExistingManifestContextOptions } from './existing-manifest-context';
3
+ import { Field } from './field';
3
4
  import type { ManifestComponent, ManifestComponentDeletion, ManifestScope } from './manifest-builder';
4
5
  import { optionalStringComponentField, requireStringComponentField } from './_existing-component-fields';
5
6
 
@@ -11,15 +12,9 @@ import { optionalStringComponentField, requireStringComponentField } from './_ex
11
12
  // ────────────────────────────────────────────────────────────────────────
12
13
 
13
14
  /** Specs for the 9 standard fields every CO ships with. Order matches the backend constant. */
14
- const STANDARD_FIELD_SPECS: ReadonlyArray<{
15
- apiName: string;
16
- displayName: string;
17
- description: string;
18
- dataType: Record<string, any>;
19
- required: boolean;
20
- unique: boolean;
21
- }> = [
15
+ const STANDARD_FIELD_SPECS = [
22
16
  {
17
+ key: 'id',
23
18
  apiName: 'id',
24
19
  displayName: 'ID',
25
20
  description: 'The Rippling ID of a record',
@@ -28,6 +23,7 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
28
23
  unique: true,
29
24
  },
30
25
  {
26
+ key: 'createdAt',
31
27
  apiName: 'created_at',
32
28
  displayName: 'Created Date',
33
29
  description: 'The date and time a record was created',
@@ -36,6 +32,7 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
36
32
  unique: false,
37
33
  },
38
34
  {
35
+ key: 'updatedAt',
39
36
  apiName: 'updated_at',
40
37
  displayName: 'Last Modified Date',
41
38
  description: 'The date and time a record was last updated',
@@ -44,6 +41,7 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
44
41
  unique: false,
45
42
  },
46
43
  {
44
+ key: 'systemUpdatedAt',
47
45
  apiName: 'system_updated_at',
48
46
  displayName: 'System Modified At',
49
47
  description: 'The date and time a record was last updated by the system',
@@ -52,6 +50,7 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
52
50
  unique: false,
53
51
  },
54
52
  {
53
+ key: 'externalId',
55
54
  apiName: 'external_id',
56
55
  displayName: 'External ID',
57
56
  description: 'The external identifier for a record used in third party integrations',
@@ -60,6 +59,7 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
60
59
  unique: true,
61
60
  },
62
61
  {
62
+ key: 'name',
63
63
  apiName: 'name',
64
64
  displayName: 'Name',
65
65
  description: 'A string used to describe a record. This is used for display purposes as well as search',
@@ -68,6 +68,7 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
68
68
  unique: false,
69
69
  },
70
70
  {
71
+ key: 'ownerRole',
71
72
  apiName: 'owner_role',
72
73
  displayName: 'Owner',
73
74
  description:
@@ -82,6 +83,7 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
82
83
  unique: false,
83
84
  },
84
85
  {
86
+ key: 'lastModifiedBy',
85
87
  apiName: 'last_modified_by',
86
88
  displayName: 'Last Modified by',
87
89
  description: 'The Employee who made the latest change.',
@@ -95,6 +97,7 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
95
97
  unique: false,
96
98
  },
97
99
  {
100
+ key: 'createdBy',
98
101
  apiName: 'created_by',
99
102
  displayName: 'Created by',
100
103
  description: 'The Employee who created the record',
@@ -107,7 +110,56 @@ const STANDARD_FIELD_SPECS: ReadonlyArray<{
107
110
  required: false,
108
111
  unique: false,
109
112
  },
110
- ];
113
+ ] as const satisfies ReadonlyArray<{
114
+ key: string;
115
+ apiName: string;
116
+ displayName: string;
117
+ description: string;
118
+ dataType: Record<string, any>;
119
+ required: boolean;
120
+ unique: boolean;
121
+ }>;
122
+
123
+ type StandardFieldSpec = (typeof STANDARD_FIELD_SPECS)[number];
124
+
125
+ export type CustomObjectStandardFieldKey = StandardFieldSpec['key'];
126
+ export type CustomObjectStandardFieldApiName = StandardFieldSpec['apiName'];
127
+ export type CustomObjectStandardFieldIdentifier =
128
+ | CustomObjectStandardFieldKey
129
+ | CustomObjectStandardFieldApiName;
130
+ export type CustomObjectStandardFields = Readonly<Record<CustomObjectStandardFieldKey, Field>>;
131
+ export type CustomObjectFieldInput = Field | CustomObjectStandardFieldIdentifier;
132
+
133
+ const STANDARD_FIELD_SPECS_BY_IDENTIFIER = new Map<string, StandardFieldSpec>();
134
+ for (const spec of STANDARD_FIELD_SPECS) {
135
+ STANDARD_FIELD_SPECS_BY_IDENTIFIER.set(spec.key, spec);
136
+ STANDARD_FIELD_SPECS_BY_IDENTIFIER.set(spec.apiName, spec);
137
+ }
138
+
139
+ function standardFieldSpec(identifier: string): StandardFieldSpec {
140
+ const spec = STANDARD_FIELD_SPECS_BY_IDENTIFIER.get(identifier);
141
+ if (spec != null) return spec;
142
+ throw new Error(
143
+ `Unknown standard field "${identifier}". Use one of: ` +
144
+ STANDARD_FIELD_SPECS.map((candidate) => candidate.key).join(', ') +
145
+ '.',
146
+ );
147
+ }
148
+
149
+ function standardFieldComponent(customObjectApiName: string, spec: StandardFieldSpec): Record<string, any> {
150
+ return new _StandardField(customObjectApiName, spec).toDict();
151
+ }
152
+
153
+ function createStandardFieldsAccessor(customObject: CustomObject): CustomObjectStandardFields {
154
+ const fields = {} as Record<CustomObjectStandardFieldKey, Field>;
155
+ for (const spec of STANDARD_FIELD_SPECS) {
156
+ Object.defineProperty(fields, spec.key, {
157
+ enumerable: true,
158
+ get: () => customObject.standardField(spec.key),
159
+ });
160
+ }
161
+ return Object.freeze(fields) as CustomObjectStandardFields;
162
+ }
111
163
 
112
164
  /**
113
165
  * Minimal `ManifestComponent` that emits a single standard field stub.
@@ -324,6 +376,9 @@ export class CustomObject implements ManifestScope {
324
376
  private _pluralLabel: string | null | undefined;
325
377
  private _nameFieldDetails: Record<string, any> | null | undefined;
326
378
  private _defaultFieldSectionName: string | null | undefined;
379
+ private readonly _standardFieldRefs = new Map<CustomObjectStandardFieldApiName, Field>();
380
+ private _standardFieldResolver: ((apiName: CustomObjectStandardFieldApiName) => Field) | undefined;
381
+ readonly standardFields: CustomObjectStandardFields;
327
382
 
328
383
  /**
329
384
  * @param scope - The manifest or parent scope to register this object with.
@@ -349,6 +404,7 @@ export class CustomObject implements ManifestScope {
349
404
  this._pluralLabel = props.pluralLabel;
350
405
  this._nameFieldDetails = props.nameFieldDetails;
351
406
  this._defaultFieldSectionName = props.defaultFieldSectionName;
407
+ this.standardFields = createStandardFieldsAccessor(this);
352
408
  scope._register(this);
353
409
 
354
410
  // Backend closed-world validation requires these 9 configs for every new CO.
@@ -393,6 +449,34 @@ export class CustomObject implements ManifestScope {
393
449
  return new CustomObject(scope, props);
394
450
  }
395
451
 
452
+ /** Returns a platform-managed standard field on this custom object. */
453
+ standardField(identifier: CustomObjectStandardFieldIdentifier): Field {
454
+ const spec = standardFieldSpec(identifier);
455
+ const cached = this._standardFieldRefs.get(spec.apiName);
456
+ if (cached != null) return cached;
457
+ const field =
458
+ this._standardFieldResolver?.(spec.apiName) ??
459
+ Field._referenceFromExistingComponent(standardFieldComponent(this._apiName, spec));
460
+ this._standardFieldRefs.set(spec.apiName, field);
461
+ return field;
462
+ }
463
+
464
+ /** Alias for {@link standardField}. */
465
+ field(identifier: CustomObjectStandardFieldIdentifier): Field {
466
+ return this.standardField(identifier);
467
+ }
468
+
469
+ /** @internal Resolves object-scoped field inputs accepted by layout/list-view APIs. */
470
+ _resolveField(field: CustomObjectFieldInput): Field {
471
+ return typeof field === 'string' ? this.standardField(field) : field;
472
+ }
473
+
474
+ /** @internal Lets loaded objects return existing standard field refs when present. */
475
+ _setStandardFieldResolver(resolve: (apiName: CustomObjectStandardFieldApiName) => Field): void {
476
+ this._standardFieldResolver = resolve;
477
+ this._standardFieldRefs.clear();
478
+ }
479
+
396
480
  private static iconFromExistingComponent(value: unknown): IconConfig | undefined {
397
481
  if (value == null || typeof value !== 'object') return undefined;
398
482
  const wire = value as Record<string, any>;