@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.
- package/client.d.mts +11 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts +11 -0
- package/client.d.ts.map +1 -1
- package/client.js +15 -0
- package/client.js.map +1 -1
- package/client.mjs +15 -0
- package/client.mjs.map +1 -1
- package/index.d.mts +5 -0
- package/index.d.mts.map +1 -1
- package/index.d.ts +5 -0
- package/index.d.ts.map +1 -1
- package/index.js +11 -1
- package/index.js.map +1 -1
- package/index.mjs +5 -0
- package/index.mjs.map +1 -1
- package/lib/manifest/composition.d.mts +21 -0
- package/lib/manifest/composition.d.mts.map +1 -0
- package/lib/manifest/composition.d.ts +21 -0
- package/lib/manifest/composition.d.ts.map +1 -0
- package/lib/manifest/composition.js +103 -0
- package/lib/manifest/composition.js.map +1 -0
- package/lib/manifest/composition.mjs +99 -0
- package/lib/manifest/composition.mjs.map +1 -0
- package/lib/manifest/definitions/_object-records.d.mts +23 -0
- package/lib/manifest/definitions/_object-records.d.mts.map +1 -0
- package/lib/manifest/definitions/_object-records.d.ts +23 -0
- package/lib/manifest/definitions/_object-records.d.ts.map +1 -0
- package/lib/manifest/definitions/_object-records.js +151 -0
- package/lib/manifest/definitions/_object-records.js.map +1 -0
- package/lib/manifest/definitions/_object-records.mjs +147 -0
- package/lib/manifest/definitions/_object-records.mjs.map +1 -0
- package/lib/manifest/definitions/action.d.mts +7 -0
- package/lib/manifest/definitions/action.d.mts.map +1 -0
- package/lib/manifest/definitions/action.d.ts +7 -0
- package/lib/manifest/definitions/action.d.ts.map +1 -0
- package/lib/manifest/definitions/action.js +25 -0
- package/lib/manifest/definitions/action.js.map +1 -0
- package/lib/manifest/definitions/action.mjs +22 -0
- package/lib/manifest/definitions/action.mjs.map +1 -0
- package/lib/manifest/definitions/agent.d.mts +51 -0
- package/lib/manifest/definitions/agent.d.mts.map +1 -0
- package/lib/manifest/definitions/agent.d.ts +51 -0
- package/lib/manifest/definitions/agent.d.ts.map +1 -0
- package/lib/manifest/definitions/agent.js +65 -0
- package/lib/manifest/definitions/agent.js.map +1 -0
- package/lib/manifest/definitions/agent.mjs +59 -0
- package/lib/manifest/definitions/agent.mjs.map +1 -0
- package/lib/manifest/definitions/app.d.mts +3 -0
- package/lib/manifest/definitions/app.d.mts.map +1 -0
- package/lib/manifest/definitions/app.d.ts +3 -0
- package/lib/manifest/definitions/app.d.ts.map +1 -0
- package/lib/manifest/definitions/app.js +14 -0
- package/lib/manifest/definitions/app.js.map +1 -0
- package/lib/manifest/definitions/app.mjs +11 -0
- package/lib/manifest/definitions/app.mjs.map +1 -0
- package/lib/manifest/definitions/category.d.mts +9 -0
- package/lib/manifest/definitions/category.d.mts.map +1 -0
- package/lib/manifest/definitions/category.d.ts +9 -0
- package/lib/manifest/definitions/category.d.ts.map +1 -0
- package/lib/manifest/definitions/category.js +27 -0
- package/lib/manifest/definitions/category.js.map +1 -0
- package/lib/manifest/definitions/category.mjs +23 -0
- package/lib/manifest/definitions/category.mjs.map +1 -0
- package/lib/manifest/definitions/component.d.mts +101 -0
- package/lib/manifest/definitions/component.d.mts.map +1 -0
- package/lib/manifest/definitions/component.d.ts +101 -0
- package/lib/manifest/definitions/component.d.ts.map +1 -0
- package/lib/manifest/definitions/component.js +106 -0
- package/lib/manifest/definitions/component.js.map +1 -0
- package/lib/manifest/definitions/component.mjs +97 -0
- package/lib/manifest/definitions/component.mjs.map +1 -0
- package/lib/manifest/definitions/custom-field-section.d.mts +13 -0
- package/lib/manifest/definitions/custom-field-section.d.mts.map +1 -0
- package/lib/manifest/definitions/custom-field-section.d.ts +13 -0
- package/lib/manifest/definitions/custom-field-section.d.ts.map +1 -0
- package/lib/manifest/definitions/custom-field-section.js +15 -0
- package/lib/manifest/definitions/custom-field-section.js.map +1 -0
- package/lib/manifest/definitions/custom-field-section.mjs +12 -0
- package/lib/manifest/definitions/custom-field-section.mjs.map +1 -0
- package/lib/manifest/definitions/custom-field.d.mts +10 -0
- package/lib/manifest/definitions/custom-field.d.mts.map +1 -0
- package/lib/manifest/definitions/custom-field.d.ts +10 -0
- package/lib/manifest/definitions/custom-field.d.ts.map +1 -0
- package/lib/manifest/definitions/custom-field.js +18 -0
- package/lib/manifest/definitions/custom-field.js.map +1 -0
- package/lib/manifest/definitions/custom-field.mjs +15 -0
- package/lib/manifest/definitions/custom-field.mjs.map +1 -0
- package/lib/manifest/definitions/custom-object.d.mts +162 -0
- package/lib/manifest/definitions/custom-object.d.mts.map +1 -0
- package/lib/manifest/definitions/custom-object.d.ts +162 -0
- package/lib/manifest/definitions/custom-object.d.ts.map +1 -0
- package/lib/manifest/definitions/custom-object.js +412 -0
- package/lib/manifest/definitions/custom-object.js.map +1 -0
- package/lib/manifest/definitions/custom-object.mjs +386 -0
- package/lib/manifest/definitions/custom-object.mjs.map +1 -0
- package/lib/manifest/definitions/custom-skill.d.mts +8 -0
- package/lib/manifest/definitions/custom-skill.d.mts.map +1 -0
- package/lib/manifest/definitions/custom-skill.d.ts +8 -0
- package/lib/manifest/definitions/custom-skill.d.ts.map +1 -0
- package/lib/manifest/definitions/custom-skill.js +15 -0
- package/lib/manifest/definitions/custom-skill.js.map +1 -0
- package/lib/manifest/definitions/custom-skill.mjs +12 -0
- package/lib/manifest/definitions/custom-skill.mjs.map +1 -0
- package/lib/manifest/definitions/field-section.d.mts +7 -0
- package/lib/manifest/definitions/field-section.d.mts.map +1 -0
- package/lib/manifest/definitions/field-section.d.ts +7 -0
- package/lib/manifest/definitions/field-section.d.ts.map +1 -0
- package/lib/manifest/definitions/field-section.js +16 -0
- package/lib/manifest/definitions/field-section.js.map +1 -0
- package/lib/manifest/definitions/field-section.mjs +13 -0
- package/lib/manifest/definitions/field-section.mjs.map +1 -0
- package/lib/manifest/definitions/field.d.mts +38 -0
- package/lib/manifest/definitions/field.d.mts.map +1 -0
- package/lib/manifest/definitions/field.d.ts +38 -0
- package/lib/manifest/definitions/field.d.ts.map +1 -0
- package/lib/manifest/definitions/field.js +50 -0
- package/lib/manifest/definitions/field.js.map +1 -0
- package/lib/manifest/definitions/field.mjs +45 -0
- package/lib/manifest/definitions/field.mjs.map +1 -0
- package/lib/manifest/definitions/function.d.mts +61 -0
- package/lib/manifest/definitions/function.d.mts.map +1 -0
- package/lib/manifest/definitions/function.d.ts +61 -0
- package/lib/manifest/definitions/function.d.ts.map +1 -0
- package/lib/manifest/definitions/function.js +79 -0
- package/lib/manifest/definitions/function.js.map +1 -0
- package/lib/manifest/definitions/function.mjs +73 -0
- package/lib/manifest/definitions/function.mjs.map +1 -0
- package/lib/manifest/definitions/index.d.mts +22 -0
- package/lib/manifest/definitions/index.d.mts.map +1 -0
- package/lib/manifest/definitions/index.d.ts +22 -0
- package/lib/manifest/definitions/index.d.ts.map +1 -0
- package/lib/manifest/definitions/index.js +64 -0
- package/lib/manifest/definitions/index.js.map +1 -0
- package/lib/manifest/definitions/index.mjs +22 -0
- package/lib/manifest/definitions/index.mjs.map +1 -0
- package/lib/manifest/definitions/list-view.d.mts +9 -0
- package/lib/manifest/definitions/list-view.d.mts.map +1 -0
- package/lib/manifest/definitions/list-view.d.ts +9 -0
- package/lib/manifest/definitions/list-view.d.ts.map +1 -0
- package/lib/manifest/definitions/list-view.js +25 -0
- package/lib/manifest/definitions/list-view.js.map +1 -0
- package/lib/manifest/definitions/list-view.mjs +22 -0
- package/lib/manifest/definitions/list-view.mjs.map +1 -0
- package/lib/manifest/definitions/object-search-config.d.mts +13 -0
- package/lib/manifest/definitions/object-search-config.d.mts.map +1 -0
- package/lib/manifest/definitions/object-search-config.d.ts +13 -0
- package/lib/manifest/definitions/object-search-config.d.ts.map +1 -0
- package/lib/manifest/definitions/object-search-config.js +25 -0
- package/lib/manifest/definitions/object-search-config.js.map +1 -0
- package/lib/manifest/definitions/object-search-config.mjs +22 -0
- package/lib/manifest/definitions/object-search-config.mjs.map +1 -0
- package/lib/manifest/definitions/object-settings.d.mts +24 -0
- package/lib/manifest/definitions/object-settings.d.mts.map +1 -0
- package/lib/manifest/definitions/object-settings.d.ts +24 -0
- package/lib/manifest/definitions/object-settings.d.ts.map +1 -0
- package/lib/manifest/definitions/object-settings.js +32 -0
- package/lib/manifest/definitions/object-settings.js.map +1 -0
- package/lib/manifest/definitions/object-settings.mjs +29 -0
- package/lib/manifest/definitions/object-settings.mjs.map +1 -0
- package/lib/manifest/definitions/page-layout.d.mts +21 -0
- package/lib/manifest/definitions/page-layout.d.mts.map +1 -0
- package/lib/manifest/definitions/page-layout.d.ts +21 -0
- package/lib/manifest/definitions/page-layout.d.ts.map +1 -0
- package/lib/manifest/definitions/page-layout.js +155 -0
- package/lib/manifest/definitions/page-layout.js.map +1 -0
- package/lib/manifest/definitions/page-layout.mjs +152 -0
- package/lib/manifest/definitions/page-layout.mjs.map +1 -0
- package/lib/manifest/definitions/page.d.mts +8 -0
- package/lib/manifest/definitions/page.d.mts.map +1 -0
- package/lib/manifest/definitions/page.d.ts +8 -0
- package/lib/manifest/definitions/page.d.ts.map +1 -0
- package/lib/manifest/definitions/page.js +15 -0
- package/lib/manifest/definitions/page.js.map +1 -0
- package/lib/manifest/definitions/page.mjs +12 -0
- package/lib/manifest/definitions/page.mjs.map +1 -0
- package/lib/manifest/definitions/record-triggered-flow.d.mts +24 -0
- package/lib/manifest/definitions/record-triggered-flow.d.mts.map +1 -0
- package/lib/manifest/definitions/record-triggered-flow.d.ts +24 -0
- package/lib/manifest/definitions/record-triggered-flow.d.ts.map +1 -0
- package/lib/manifest/definitions/record-triggered-flow.js +28 -0
- package/lib/manifest/definitions/record-triggered-flow.js.map +1 -0
- package/lib/manifest/definitions/record-triggered-flow.mjs +25 -0
- package/lib/manifest/definitions/record-triggered-flow.mjs.map +1 -0
- package/lib/manifest/definitions/validation.d.mts +8 -0
- package/lib/manifest/definitions/validation.d.mts.map +1 -0
- package/lib/manifest/definitions/validation.d.ts +8 -0
- package/lib/manifest/definitions/validation.d.ts.map +1 -0
- package/lib/manifest/definitions/validation.js +24 -0
- package/lib/manifest/definitions/validation.js.map +1 -0
- package/lib/manifest/definitions/validation.mjs +21 -0
- package/lib/manifest/definitions/validation.mjs.map +1 -0
- package/lib/manifest/definitions/workflow.d.mts +10 -0
- package/lib/manifest/definitions/workflow.d.mts.map +1 -0
- package/lib/manifest/definitions/workflow.d.ts +10 -0
- package/lib/manifest/definitions/workflow.d.ts.map +1 -0
- package/lib/manifest/definitions/workflow.js +33 -0
- package/lib/manifest/definitions/workflow.js.map +1 -0
- package/lib/manifest/definitions/workflow.mjs +29 -0
- package/lib/manifest/definitions/workflow.mjs.map +1 -0
- package/lib/manifest/index.d.mts +3 -0
- package/lib/manifest/index.d.mts.map +1 -1
- package/lib/manifest/index.d.ts +3 -0
- package/lib/manifest/index.d.ts.map +1 -1
- package/lib/manifest/index.js +4 -0
- package/lib/manifest/index.js.map +1 -1
- package/lib/manifest/index.mjs +3 -0
- package/lib/manifest/index.mjs.map +1 -1
- package/lib/manifest/package-manifest.d.mts +17 -0
- package/lib/manifest/package-manifest.d.mts.map +1 -0
- package/lib/manifest/package-manifest.d.ts +17 -0
- package/lib/manifest/package-manifest.d.ts.map +1 -0
- package/lib/manifest/package-manifest.js +26 -0
- package/lib/manifest/package-manifest.js.map +1 -0
- package/lib/manifest/package-manifest.mjs +23 -0
- package/lib/manifest/package-manifest.mjs.map +1 -0
- package/package.json +1 -1
- package/src/client.ts +24 -0
- package/src/index.ts +17 -0
- package/src/lib/manifest/composition.ts +133 -0
- package/src/lib/manifest/definitions/README.md +89 -0
- package/src/lib/manifest/definitions/_object-records.ts +218 -0
- package/src/lib/manifest/definitions/action.ts +31 -0
- package/src/lib/manifest/definitions/agent.ts +149 -0
- package/src/lib/manifest/definitions/app.ts +12 -0
- package/src/lib/manifest/definitions/category.ts +35 -0
- package/src/lib/manifest/definitions/component.ts +241 -0
- package/src/lib/manifest/definitions/custom-field-section.ts +39 -0
- package/src/lib/manifest/definitions/custom-field.ts +32 -0
- package/src/lib/manifest/definitions/custom-object.ts +786 -0
- package/src/lib/manifest/definitions/custom-skill.ts +28 -0
- package/src/lib/manifest/definitions/field-section.ts +31 -0
- package/src/lib/manifest/definitions/field.ts +119 -0
- package/src/lib/manifest/definitions/function.ts +198 -0
- package/src/lib/manifest/definitions/index.ts +91 -0
- package/src/lib/manifest/definitions/list-view.ts +48 -0
- package/src/lib/manifest/definitions/object-search-config.ts +44 -0
- package/src/lib/manifest/definitions/object-settings.ts +61 -0
- package/src/lib/manifest/definitions/page-layout.ts +218 -0
- package/src/lib/manifest/definitions/page.ts +28 -0
- package/src/lib/manifest/definitions/record-triggered-flow.ts +71 -0
- package/src/lib/manifest/definitions/validation.ts +46 -0
- package/src/lib/manifest/definitions/workflow.ts +62 -0
- package/src/lib/manifest/index.ts +4 -0
- package/src/lib/manifest/package-manifest.ts +40 -0
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { CustomObject, type CustomObjectStandardFieldIdentifier } from "../custom-object.js";
|
|
2
|
+
import { Field } from "../field.js";
|
|
3
|
+
import { CustomObjectFieldSection } from "../custom-object-field-section.js";
|
|
4
|
+
import type { RipplingSDK } from "../../../client.js";
|
|
5
|
+
import { extendCustomObject as extendObject } from "../../../core/platform/custom-objects/definition.js";
|
|
6
|
+
import type { CustomObjectCategoryDefinition } from "../../../core/platform/custom-objects/category.js";
|
|
7
|
+
import type { CustomObjectRecordsClient, TypedBatchWriteOptions, TypedRecordPageOptions, TypedRecordQueryOptions, TypedRecordPage } from "../../../core/platform/custom-objects/manager.js";
|
|
8
|
+
import { type RqlFieldToken, type RqlComparableValue, type RqlFragment } from "../../../core/platform/custom-objects/rql.js";
|
|
9
|
+
import type { AnyCustomObjectDefinition, CustomObjectDefinition, FieldDefinitions, SectionDefinitions, NameFieldDefinition, RecordShape, LogicalCustomObjectName, LogicalCategoryName } from "../../../core/platform/custom-objects/types.js";
|
|
10
|
+
import type { RequestOptions } from "../../../internal/request-options.js";
|
|
11
|
+
import type { FieldListParams, CustomObjectField, CustomObjectFieldsPageCursorURL } from "../../../resources/custom-objects/fields.js";
|
|
12
|
+
import type { CustomObject as DeployedCustomObject } from "../../../resources/custom-objects/custom-objects.js";
|
|
13
|
+
import type { APIPromise } from "../../../core/api-promise.js";
|
|
14
|
+
import type { PagePromise } from "../../../core/pagination.js";
|
|
15
|
+
import type { ValueParser } from "./function.js";
|
|
16
|
+
import { type ObjectCreateInput, type ObjectUpdateInput, type ObjectBulkUpdateInput } from "./_object-records.js";
|
|
17
|
+
export type { ObjectCreateInput, ObjectUpdateInput, ObjectBulkUpdateInput } from "./_object-records.js";
|
|
18
|
+
export type DefineCustomObjectProps<A extends `${string}__c`, F extends FieldDefinitions, C extends string = `${Unsuffixed<A>}_category`, S extends SectionDefinitions = {}, N extends NameFieldDefinition = {
|
|
19
|
+
kind: 'text';
|
|
20
|
+
}> = Omit<ObjectOptions<S, F, N>, 'pluralLabel'> & {
|
|
21
|
+
apiName: A;
|
|
22
|
+
name: string;
|
|
23
|
+
pluralName?: string;
|
|
24
|
+
category?: CategoryInput<C>;
|
|
25
|
+
};
|
|
26
|
+
export type DefinedCustomObject<D extends {
|
|
27
|
+
fields: object;
|
|
28
|
+
apiName: string;
|
|
29
|
+
}> = Omit<D, 'fields' | 'inputs' | 'records' | 'schema'> & {
|
|
30
|
+
readonly fields: {
|
|
31
|
+
readonly [K in keyof D['fields']]: Omit<D['fields'][K], 'apiName'> & {
|
|
32
|
+
readonly apiName: `${Unsuffixed<Extract<K, string>>}__c`;
|
|
33
|
+
readonly objectApiName: D['apiName'];
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
readonly records: D extends AnyCustomObjectDefinition ? Readonly<ObjectRecords<D>> : never;
|
|
37
|
+
readonly schema: D extends AnyCustomObjectDefinition ? Readonly<ObjectSchema> : never;
|
|
38
|
+
readonly inputs: D extends AnyCustomObjectDefinition ? {
|
|
39
|
+
readonly create: ValueParser<ObjectCreateInput<D>>;
|
|
40
|
+
readonly update: ValueParser<ObjectUpdateInput<D>>;
|
|
41
|
+
} : never;
|
|
42
|
+
};
|
|
43
|
+
/** Authenticated records transport supplied at the operation's call site. */
|
|
44
|
+
export interface ObjectRecordsContext {
|
|
45
|
+
readonly customObjects: {
|
|
46
|
+
readonly records: CustomObjectRecordsClient;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** Schema resources supplied at the operation's call site. */
|
|
50
|
+
export interface ObjectSchemaContext {
|
|
51
|
+
readonly customObjects: Pick<RipplingSDK['customObjects'], 'retrieve' | 'fields'>;
|
|
52
|
+
}
|
|
53
|
+
export type ObjectRecordListOptions<D extends AnyCustomObjectDefinition> = TypedRecordPageOptions & {
|
|
54
|
+
where?: ObjectFilter<D['apiName']>;
|
|
55
|
+
};
|
|
56
|
+
/** Typed record operations; supply an authenticated client at each call. */
|
|
57
|
+
export interface ObjectRecords<D extends AnyCustomObjectDefinition> {
|
|
58
|
+
create(ctx: ObjectRecordsContext, input: ObjectCreateInput<D>): Promise<RecordShape<D>>;
|
|
59
|
+
createMany(ctx: ObjectRecordsContext, rows: readonly ObjectCreateInput<D>[], options?: TypedBatchWriteOptions): Promise<readonly RecordShape<D>[]>;
|
|
60
|
+
get(ctx: ObjectRecordsContext, recordID: string): Promise<RecordShape<D>>;
|
|
61
|
+
getByExternalID(ctx: ObjectRecordsContext, externalID: string): Promise<RecordShape<D>>;
|
|
62
|
+
update(ctx: ObjectRecordsContext, recordID: string, patch: ObjectUpdateInput<D>): Promise<RecordShape<D>>;
|
|
63
|
+
updateMany(ctx: ObjectRecordsContext, rows: readonly ObjectBulkUpdateInput<D>[], options?: TypedBatchWriteOptions): Promise<readonly RecordShape<D>[]>;
|
|
64
|
+
delete(ctx: ObjectRecordsContext, recordID: string): Promise<void>;
|
|
65
|
+
deleteMany(ctx: ObjectRecordsContext, recordIDs: readonly string[], options?: TypedBatchWriteOptions): Promise<void>;
|
|
66
|
+
/** List records with optional typed filters and cursor pagination. */
|
|
67
|
+
list(ctx: ObjectRecordsContext, options?: ObjectRecordListOptions<D>): Promise<TypedRecordPage<D>>;
|
|
68
|
+
/** Run a raw RQL filter with cursor pagination. */
|
|
69
|
+
query(ctx: ObjectRecordsContext, options?: TypedRecordQueryOptions): Promise<TypedRecordPage<D>>;
|
|
70
|
+
}
|
|
71
|
+
/** Deployed object metadata, separate from the local field definitions. */
|
|
72
|
+
export interface ObjectSchema {
|
|
73
|
+
retrieve(ctx: ObjectSchemaContext, options?: RequestOptions): APIPromise<DeployedCustomObject>;
|
|
74
|
+
readonly fields: Readonly<ObjectSchemaFields>;
|
|
75
|
+
}
|
|
76
|
+
export interface ObjectSchemaFields {
|
|
77
|
+
list(ctx: ObjectSchemaContext, params?: FieldListParams, options?: RequestOptions): PagePromise<CustomObjectFieldsPageCursorURL, CustomObjectField>;
|
|
78
|
+
}
|
|
79
|
+
export interface CustomObjectOperations<D extends AnyCustomObjectDefinition> {
|
|
80
|
+
readonly records: Readonly<ObjectRecords<D>>;
|
|
81
|
+
readonly schema: Readonly<ObjectSchema>;
|
|
82
|
+
}
|
|
83
|
+
/** The same operations with the authenticated client supplied by client.objects(definition). */
|
|
84
|
+
export interface ObjectClient<D extends AnyCustomObjectDefinition> {
|
|
85
|
+
create(input: ObjectCreateInput<D>): Promise<RecordShape<D>>;
|
|
86
|
+
createMany(rows: readonly ObjectCreateInput<D>[], options?: TypedBatchWriteOptions): Promise<readonly RecordShape<D>[]>;
|
|
87
|
+
get(recordID: string): Promise<RecordShape<D>>;
|
|
88
|
+
getByExternalID(externalID: string): Promise<RecordShape<D>>;
|
|
89
|
+
update(recordID: string, patch: ObjectUpdateInput<D>): Promise<RecordShape<D>>;
|
|
90
|
+
updateMany(rows: readonly ObjectBulkUpdateInput<D>[], options?: TypedBatchWriteOptions): Promise<readonly RecordShape<D>[]>;
|
|
91
|
+
delete(recordID: string): Promise<void>;
|
|
92
|
+
deleteMany(recordIDs: readonly string[], options?: TypedBatchWriteOptions): Promise<void>;
|
|
93
|
+
list(options?: ObjectRecordListOptions<D>): Promise<TypedRecordPage<D>>;
|
|
94
|
+
query(options?: TypedRecordQueryOptions): Promise<TypedRecordPage<D>>;
|
|
95
|
+
schema: {
|
|
96
|
+
retrieve(options?: RequestOptions): APIPromise<DeployedCustomObject>;
|
|
97
|
+
};
|
|
98
|
+
fields: {
|
|
99
|
+
list(params?: FieldListParams, options?: RequestOptions): PagePromise<CustomObjectFieldsPageCursorURL, CustomObjectField>;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export type ObjectFilter<A extends string> = RqlFragment & {
|
|
103
|
+
readonly [filterOwner]: A;
|
|
104
|
+
};
|
|
105
|
+
export declare function defineCustomObject<const A extends `${string}__c`, const F extends FieldDefinitions, C extends string = `${Unsuffixed<A>}_category`, S extends SectionDefinitions = {}, N extends NameFieldDefinition = {
|
|
106
|
+
kind: 'text';
|
|
107
|
+
}>(props: DefineCustomObjectProps<A, F, C, S, N>): DefinedCustomObject<CustomObjectDefinition<LogicalCustomObjectName<Unsuffixed<A>>, LogicalCategoryName<C>, S, F, N>>;
|
|
108
|
+
/** Existing extension semantics, with the same additive field tokens and parsers. */
|
|
109
|
+
export declare function extendCustomObject<B extends AnyCustomObjectDefinition, S extends SectionDefinitions = {}, F extends FieldDefinitions = {}>(base: B, extension: Omit<Parameters<typeof extendObject<B, S, F>>[1], 'fields'> & {
|
|
110
|
+
fields?: Extract<keyof B['fields'], keyof F> extends never ? F & ApiNamedMap<F> : never;
|
|
111
|
+
sections?: ApiNamedMap<S>;
|
|
112
|
+
}): DefinedCustomObject<ReturnType<typeof extendObject<B, S, F>>>;
|
|
113
|
+
export declare const eq: <T, const A extends string>(field: FieldToken<T, A>, value: RqlComparableValue<NoInfer<T>> | null) => ObjectFilter<A>;
|
|
114
|
+
export declare const ne: <T, const A extends string>(field: FieldToken<T, A>, value: RqlComparableValue<NoInfer<T>> | null) => ObjectFilter<A>;
|
|
115
|
+
export declare const lt: <T extends string | number, const A extends string>(field: FieldToken<T | null, A>, value: NoInfer<T>) => ObjectFilter<A>;
|
|
116
|
+
export declare const lte: <T extends string | number, const A extends string>(field: FieldToken<T | null, A>, value: NoInfer<T>) => ObjectFilter<A>;
|
|
117
|
+
export declare const gt: <T extends string | number, const A extends string>(field: FieldToken<T | null, A>, value: NoInfer<T>) => ObjectFilter<A>;
|
|
118
|
+
export declare const gte: <T extends string | number, const A extends string>(field: FieldToken<T | null, A>, value: NoInfer<T>) => ObjectFilter<A>;
|
|
119
|
+
export declare const inArray: <T, const A extends string>(field: FieldToken<T, A>, values: readonly RqlComparableValue<NoInfer<T>>[]) => ObjectFilter<A>;
|
|
120
|
+
export declare const notInArray: <T, const A extends string>(field: FieldToken<T, A>, values: readonly RqlComparableValue<NoInfer<T>>[]) => ObjectFilter<A>;
|
|
121
|
+
export declare const isNull: <T, const A extends string>(field: FieldToken<T, A>) => ObjectFilter<A>;
|
|
122
|
+
export declare const isNotNull: <T, const A extends string>(field: FieldToken<T, A>) => ObjectFilter<A>;
|
|
123
|
+
export declare const and: <const A extends string>(first: ObjectFilter<A>, ...rest: ObjectFilter<NoInfer<A>>[]) => ObjectFilter<A>;
|
|
124
|
+
export declare const or: <const A extends string>(first: ObjectFilter<A>, ...rest: ObjectFilter<NoInfer<A>>[]) => ObjectFilter<A>;
|
|
125
|
+
export declare const not: <const A extends string>(filter: ObjectFilter<A>) => ObjectFilter<A>;
|
|
126
|
+
type Unsuffixed<N extends string> = N extends `${infer Name}__c` ? Name : N;
|
|
127
|
+
type ApiNamedMap<T> = {
|
|
128
|
+
[K in keyof T]: string extends K ? T[K] : K extends `${string}__c` ? T[K] : never;
|
|
129
|
+
};
|
|
130
|
+
type CategoryInput<N extends string> = `${N}__c` | CustomObjectCategoryDefinition<LogicalCategoryName<N>>;
|
|
131
|
+
type ObjectOptions<S extends SectionDefinitions, F extends FieldDefinitions, N extends NameFieldDefinition> = Pick<AnyCustomObjectDefinition, 'description' | 'pluralLabel' | 'icon' | 'ownerRole' | 'enableHistory'> & {
|
|
132
|
+
sections?: S & ApiNamedMap<S>;
|
|
133
|
+
fields: F & ApiNamedMap<F> & {
|
|
134
|
+
[K in keyof F]: string extends Exclude<F[K]['section'], undefined> ? F[K] : Exclude<F[K]['section'], undefined> extends keyof NoInfer<S> ? F[K] : never;
|
|
135
|
+
};
|
|
136
|
+
nameField?: N;
|
|
137
|
+
};
|
|
138
|
+
/** @internal Forward client helpers to the definition operations. */
|
|
139
|
+
export declare function createObjectClient<D extends AnyCustomObjectDefinition>(ctx: ObjectRecordsContext & ObjectSchemaContext, definition: D): ObjectClient<D>;
|
|
140
|
+
declare const filterOwner: unique symbol;
|
|
141
|
+
type FieldToken<T, A extends string> = Pick<RqlFieldToken<T>, 'apiName' | '__valueType__'> & {
|
|
142
|
+
readonly objectApiName: A;
|
|
143
|
+
};
|
|
144
|
+
declare const objectScope: unique symbol;
|
|
145
|
+
/** Carry parent identity through helpers while still accepting existing constructor instances. */
|
|
146
|
+
export type ObjectScoped<TObject extends ObjectReference, TDefinition> = TDefinition & {
|
|
147
|
+
readonly [objectScope]: TObject['apiName'];
|
|
148
|
+
};
|
|
149
|
+
export declare function scopedDefinition<TObject extends ObjectReference, TDefinition extends object>(_object: TObject, definition: TDefinition): ObjectScoped<TObject, TDefinition>;
|
|
150
|
+
export declare function fieldReferences<TObject extends ObjectReference>(owner: TObject, field: DefinitionFieldReference<TObject>): object[];
|
|
151
|
+
/** Keep dependency collection in sync with layout-driven field moves. */
|
|
152
|
+
export declare function trackFieldSection<T extends Field>(field: T, section: CustomObjectFieldSection): T;
|
|
153
|
+
export declare function fieldSectionReferences(field: Field): object[];
|
|
154
|
+
export type ObjectReference = AnyCustomObjectDefinition;
|
|
155
|
+
export type DefinitionFieldReference<TObject extends ObjectReference> = TObject['fields'][keyof TObject['fields']] | ObjectScoped<TObject, Field> | CustomObjectStandardFieldIdentifier;
|
|
156
|
+
export type SectionReference<TObject extends ObjectReference> = ObjectScoped<TObject, CustomObjectFieldSection> | Extract<keyof TObject['sections'], string> | 'general';
|
|
157
|
+
export declare function manifestSection<TObject extends ObjectReference>(object: TObject, reference: SectionReference<TObject>): CustomObjectFieldSection;
|
|
158
|
+
/** References and compilation reuse one materialized schema; authored children remain explicit roots. */
|
|
159
|
+
export declare function manifestObject(reference: ObjectReference): CustomObject;
|
|
160
|
+
/** Adapts a typed schema field to the existing layout, view, and rule component APIs. */
|
|
161
|
+
export declare function manifestField<TObject extends ObjectReference>(object: TObject, field: NoInfer<DefinitionFieldReference<TObject>>): Field;
|
|
162
|
+
//# sourceMappingURL=custom-object.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-object.d.ts","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/custom-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.not = exports.or = exports.and = exports.isNotNull = exports.isNull = exports.notInArray = exports.inArray = exports.gte = exports.gt = exports.lte = exports.lt = exports.ne = exports.eq = void 0;
|
|
4
|
+
exports.defineCustomObject = defineCustomObject;
|
|
5
|
+
exports.extendCustomObject = extendCustomObject;
|
|
6
|
+
exports.createObjectClient = createObjectClient;
|
|
7
|
+
exports.scopedDefinition = scopedDefinition;
|
|
8
|
+
exports.fieldReferences = fieldReferences;
|
|
9
|
+
exports.trackFieldSection = trackFieldSection;
|
|
10
|
+
exports.fieldSectionReferences = fieldSectionReferences;
|
|
11
|
+
exports.manifestSection = manifestSection;
|
|
12
|
+
exports.manifestObject = manifestObject;
|
|
13
|
+
exports.manifestField = manifestField;
|
|
14
|
+
const provisioning_1 = require("../../../core/platform/custom-objects/provisioning.js");
|
|
15
|
+
const category_1 = require("../category.js");
|
|
16
|
+
const custom_object_1 = require("../custom-object.js");
|
|
17
|
+
const field_1 = require("../field.js");
|
|
18
|
+
const custom_object_field_section_1 = require("../custom-object-field-section.js");
|
|
19
|
+
const custom_object_page_layout_1 = require("../custom-object-page-layout.js");
|
|
20
|
+
const definition_1 = require("../../../core/platform/custom-objects/definition.js");
|
|
21
|
+
const rql_1 = require("../../../core/platform/custom-objects/rql.js");
|
|
22
|
+
const category_2 = require("./category.js");
|
|
23
|
+
const component_1 = require("./component.js");
|
|
24
|
+
const _object_records_1 = require("./_object-records.js");
|
|
25
|
+
function defineCustomObject(props) {
|
|
26
|
+
const apiName = props['apiName'];
|
|
27
|
+
(0, component_1.validateCustomApiName)(apiName);
|
|
28
|
+
const name = apiName.slice(0, -3);
|
|
29
|
+
const sourceFields = props['fields'];
|
|
30
|
+
const fields = normalizeFieldNames(sourceFields);
|
|
31
|
+
validateSections(props['sections']);
|
|
32
|
+
const category = props['category'] ??
|
|
33
|
+
(0, category_2.defineCategory)({
|
|
34
|
+
apiName: `${name}_category__c`,
|
|
35
|
+
name: props['name'],
|
|
36
|
+
description: props['description'],
|
|
37
|
+
});
|
|
38
|
+
(0, component_1.validateCustomApiName)(typeof category === 'string' ? category : category.apiName);
|
|
39
|
+
const definition = (0, definition_1.defineCustomObject)({
|
|
40
|
+
...props,
|
|
41
|
+
name,
|
|
42
|
+
displayName: props['name'],
|
|
43
|
+
...(props['pluralName'] === undefined ? {} : { pluralLabel: props['pluralName'] }),
|
|
44
|
+
category: typeof category === 'string' ? category.slice(0, -3) : category,
|
|
45
|
+
fields,
|
|
46
|
+
});
|
|
47
|
+
return customObjectComponent.register(withInputs(definition, Object.keys(sourceFields)), props);
|
|
48
|
+
}
|
|
49
|
+
/** Existing extension semantics, with the same additive field tokens and parsers. */
|
|
50
|
+
function extendCustomObject(base, extension) {
|
|
51
|
+
const fields = normalizeFieldNames(base.fields);
|
|
52
|
+
const addedFields = normalizeFieldNames(extension.fields ?? {});
|
|
53
|
+
validateSections(extension.sections);
|
|
54
|
+
for (const key of Object.keys(extension.fields ?? {})) {
|
|
55
|
+
if (Object.prototype.hasOwnProperty.call(fields, key.replace(/__c$/, '')))
|
|
56
|
+
throw new Error(`Cannot replace existing custom field ${key} on ${base.apiName}.`);
|
|
57
|
+
}
|
|
58
|
+
const definition = (0, definition_1.extendCustomObject)({ ...base, fields }, { ...extension, fields: addedFields });
|
|
59
|
+
const keys = [...Object.keys(base.fields), ...Object.keys(extension.fields ?? {})];
|
|
60
|
+
return extendedObjectComponent.register(withInputs(definition, keys), base, extension);
|
|
61
|
+
}
|
|
62
|
+
const eq = (field, value) => query.eq(field, value);
|
|
63
|
+
exports.eq = eq;
|
|
64
|
+
const ne = (field, value) => query.ne(field, value);
|
|
65
|
+
exports.ne = ne;
|
|
66
|
+
const lt = (field, value) => query.lt(field, value);
|
|
67
|
+
exports.lt = lt;
|
|
68
|
+
const lte = (field, value) => query.lte(field, value);
|
|
69
|
+
exports.lte = lte;
|
|
70
|
+
const gt = (field, value) => query.gt(field, value);
|
|
71
|
+
exports.gt = gt;
|
|
72
|
+
const gte = (field, value) => query.gte(field, value);
|
|
73
|
+
exports.gte = gte;
|
|
74
|
+
const inArray = (field, values) => query.in(field, values);
|
|
75
|
+
exports.inArray = inArray;
|
|
76
|
+
const notInArray = (field, values) => query.notIn(field, values);
|
|
77
|
+
exports.notInArray = notInArray;
|
|
78
|
+
const isNull = (field) => query.isNull(field);
|
|
79
|
+
exports.isNull = isNull;
|
|
80
|
+
const isNotNull = (field) => query.isNotNull(field);
|
|
81
|
+
exports.isNotNull = isNotNull;
|
|
82
|
+
const and = (first, ...rest) => query.and(first, ...rest);
|
|
83
|
+
exports.and = and;
|
|
84
|
+
const or = (first, ...rest) => query.or(first, ...rest);
|
|
85
|
+
exports.or = or;
|
|
86
|
+
const not = (filter) => query.not(filter);
|
|
87
|
+
exports.not = not;
|
|
88
|
+
/** Enrich the existing immutable schema; normalization and validation stay in the existing factory. */
|
|
89
|
+
function withInputs(definition, keys = Object.keys(definition.fields)) {
|
|
90
|
+
const fields = Object.freeze(Object.fromEntries(keys.map((key) => [
|
|
91
|
+
key,
|
|
92
|
+
Object.freeze({
|
|
93
|
+
...definition.fields[key.replace(/__c$/, '')],
|
|
94
|
+
logicalName: key,
|
|
95
|
+
objectApiName: definition.apiName,
|
|
96
|
+
}),
|
|
97
|
+
])));
|
|
98
|
+
const enriched = { ...definition, fields };
|
|
99
|
+
const parser = (operation) => ({
|
|
100
|
+
parse(value) {
|
|
101
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value))
|
|
102
|
+
throw new TypeError('Expected a record object.');
|
|
103
|
+
(0, _object_records_1.assertObjectInput)(enriched, value, operation);
|
|
104
|
+
return value;
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
return Object.freeze({
|
|
108
|
+
...enriched,
|
|
109
|
+
...createObjectOperations(enriched),
|
|
110
|
+
fields,
|
|
111
|
+
inputs: Object.freeze({
|
|
112
|
+
create: parser('create'),
|
|
113
|
+
update: parser('update'),
|
|
114
|
+
}),
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function normalizeFieldNames(fields) {
|
|
118
|
+
return Object.fromEntries(Object.entries(fields).map(([apiName, field]) => {
|
|
119
|
+
(0, component_1.validateCustomApiName)(apiName);
|
|
120
|
+
return [apiName.slice(0, -3), field];
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
function validateSections(sections = {}) {
|
|
124
|
+
for (const [apiName, section] of Object.entries(sections)) {
|
|
125
|
+
(0, component_1.validateCustomApiName)(apiName);
|
|
126
|
+
if (section.sectionId !== undefined)
|
|
127
|
+
(0, component_1.validateCustomApiName)(section.sectionId);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** Operations capture only the definition; each call supplies its own authenticated transport. */
|
|
131
|
+
function createObjectOperations(definition) {
|
|
132
|
+
return {
|
|
133
|
+
records: (0, _object_records_1.createObjectRecords)(definition),
|
|
134
|
+
schema: Object.freeze({
|
|
135
|
+
retrieve: (ctx, options) => ctx.customObjects.retrieve(definition.apiName, options),
|
|
136
|
+
fields: Object.freeze({
|
|
137
|
+
list: (ctx, params, options) => ctx.customObjects.fields.list(definition.apiName, params, options),
|
|
138
|
+
}),
|
|
139
|
+
}),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/** @internal Forward client helpers to the definition operations. */
|
|
143
|
+
function createObjectClient(ctx, definition) {
|
|
144
|
+
const { records, schema } = createObjectOperations(definition);
|
|
145
|
+
return {
|
|
146
|
+
create: (input) => records.create(ctx, input),
|
|
147
|
+
createMany: (rows, options) => records.createMany(ctx, rows, options),
|
|
148
|
+
get: (recordID) => records.get(ctx, recordID),
|
|
149
|
+
getByExternalID: (externalID) => records.getByExternalID(ctx, externalID),
|
|
150
|
+
update: (recordID, patch) => records.update(ctx, recordID, patch),
|
|
151
|
+
updateMany: (rows, options) => records.updateMany(ctx, rows, options),
|
|
152
|
+
delete: (recordID) => records.delete(ctx, recordID),
|
|
153
|
+
deleteMany: (recordIDs, options) => records.deleteMany(ctx, recordIDs, options),
|
|
154
|
+
list: (options) => records.list(ctx, options),
|
|
155
|
+
query: (options) => records.query(ctx, options),
|
|
156
|
+
schema: { retrieve: (options) => schema.retrieve(ctx, options) },
|
|
157
|
+
fields: {
|
|
158
|
+
list: (params, options) => schema.fields.list(ctx, params, options),
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
// Reuse the existing operators, carrying the schema's object identity through typed filters.
|
|
163
|
+
const query = (0, rql_1.createRqlHelpers)({ fields: {} });
|
|
164
|
+
function scopedDefinition(_object, definition) {
|
|
165
|
+
return definition;
|
|
166
|
+
}
|
|
167
|
+
/** A complete schema is a local dependency; an identity-only target names an existing resource. */
|
|
168
|
+
function isObjectDefinition(value) {
|
|
169
|
+
return 'fields' in value && 'nameField' in value && 'categoryApiName' in value;
|
|
170
|
+
}
|
|
171
|
+
function fieldReferences(owner, field) {
|
|
172
|
+
return [typeof field === 'object' && 'getApiName' in field ? field : owner];
|
|
173
|
+
}
|
|
174
|
+
const currentFieldSections = new WeakMap();
|
|
175
|
+
/** Keep dependency collection in sync with layout-driven field moves. */
|
|
176
|
+
function trackFieldSection(field, section) {
|
|
177
|
+
currentFieldSections.set(field, section);
|
|
178
|
+
const assignSection = field._assignSection.bind(field);
|
|
179
|
+
field._assignSection = (section) => {
|
|
180
|
+
assignSection(section);
|
|
181
|
+
currentFieldSections.set(field, typeof section === 'string' ? undefined : section);
|
|
182
|
+
};
|
|
183
|
+
return field;
|
|
184
|
+
}
|
|
185
|
+
function fieldSectionReferences(field) {
|
|
186
|
+
const section = currentFieldSections.get(field);
|
|
187
|
+
// Schema-owned sections are emitted by the object compiler; authored sections are dependencies.
|
|
188
|
+
return section != null && (0, component_1.registeredComponent)(section) != null ? [section] : [];
|
|
189
|
+
}
|
|
190
|
+
/** Shared by section serialization and authored/default conflict detection. */
|
|
191
|
+
function fieldSectionApiName(definition, key) {
|
|
192
|
+
const apiName = definition.sections[key]?.sectionId ?? key;
|
|
193
|
+
(0, component_1.validateCustomApiName)(apiName);
|
|
194
|
+
return apiName;
|
|
195
|
+
}
|
|
196
|
+
/** Reuse the typed SDK's field compiler and the metadata SDK's serializers. */
|
|
197
|
+
function objectMetadata(definition) {
|
|
198
|
+
const existing = registrations.get(definition);
|
|
199
|
+
if (existing != null)
|
|
200
|
+
return existing;
|
|
201
|
+
if (definition.ownerRole != null ||
|
|
202
|
+
definition.enableHistory != null ||
|
|
203
|
+
Object.values(definition.fields).some((field) => field.enableHistory != null || field.restSection != null || field.rqlDefinition != null))
|
|
204
|
+
throw new Error('REST-only object options cannot be compiled to metadata.');
|
|
205
|
+
const category = new category_1.Category(component_1.detachedManifestScope, {
|
|
206
|
+
apiName: definition.categoryApiName,
|
|
207
|
+
name: definition.categoryDefinition?.displayName ?? definition.category,
|
|
208
|
+
description: definition.categoryDefinition?.description ?? '',
|
|
209
|
+
});
|
|
210
|
+
const components = [];
|
|
211
|
+
const object = new custom_object_1.CustomObject({
|
|
212
|
+
_register(component) {
|
|
213
|
+
components.push(component);
|
|
214
|
+
},
|
|
215
|
+
}, {
|
|
216
|
+
apiName: definition.apiName,
|
|
217
|
+
name: definition.displayName,
|
|
218
|
+
category,
|
|
219
|
+
description: definition.description,
|
|
220
|
+
...(definition.pluralLabel == null ? {} : { pluralLabel: definition.pluralLabel }),
|
|
221
|
+
...(definition.icon == null ? {} : { icon: definition.icon }),
|
|
222
|
+
nameFieldDetails: (0, provisioning_1.buildCustomObjectNameFieldDetails)(definition) ?? null,
|
|
223
|
+
});
|
|
224
|
+
const sections = Object.fromEntries(Object.entries(definition.sections).map(([key, section]) => {
|
|
225
|
+
const apiName = fieldSectionApiName(definition, key);
|
|
226
|
+
return [
|
|
227
|
+
key,
|
|
228
|
+
(0, component_1.withApiName)(new custom_object_field_section_1.CustomObjectFieldSection(object, { name: section.name, sectionId: apiName }), apiName),
|
|
229
|
+
];
|
|
230
|
+
}));
|
|
231
|
+
const needsFallback = Object.keys(sections).length === 0 ||
|
|
232
|
+
Object.values(definition.fields).some((field) => field.section == null);
|
|
233
|
+
const generalKey = `${definition.name}_general__c`;
|
|
234
|
+
const defaultSectionApiName = fieldSectionApiName(definition, generalKey);
|
|
235
|
+
const defaultSection = needsFallback ?
|
|
236
|
+
sections[generalKey] ??
|
|
237
|
+
(0, component_1.withApiName)(new custom_object_field_section_1.CustomObjectFieldSection(object, { name: 'General', sectionId: defaultSectionApiName }), defaultSectionApiName)
|
|
238
|
+
: undefined;
|
|
239
|
+
const firstSection = defaultSection ?? Object.values(sections)[0];
|
|
240
|
+
(0, component_1.withApiName)(object, definition.apiName, { default_field_section_api_name: firstSection.getSectionId() });
|
|
241
|
+
// Provisioning needs section handles; here they are deterministic API names instead of destination IDs.
|
|
242
|
+
const provisionable = {
|
|
243
|
+
...definition,
|
|
244
|
+
sections: Object.fromEntries(Object.entries(sections).map(([key, section]) => [
|
|
245
|
+
key,
|
|
246
|
+
{ name: section.getName(), sectionId: section.getSectionId() },
|
|
247
|
+
])),
|
|
248
|
+
};
|
|
249
|
+
const fields = Object.fromEntries(Object.entries(definition.fields).map(([key, field]) => {
|
|
250
|
+
const section = field.section == null ? defaultSection : sections[field.section];
|
|
251
|
+
if (section == null)
|
|
252
|
+
throw new Error(`Unknown section ${field.section} on ${definition.apiName}.`);
|
|
253
|
+
const { create } = (0, provisioning_1.buildProvisionableFieldParams)(provisionable, key);
|
|
254
|
+
return [
|
|
255
|
+
key,
|
|
256
|
+
trackFieldSection(new field_1.Field(object, {
|
|
257
|
+
apiName: field.apiName,
|
|
258
|
+
displayName: field.displayName,
|
|
259
|
+
description: field.description,
|
|
260
|
+
section,
|
|
261
|
+
dataType: create.data_type,
|
|
262
|
+
required: field.writable ? field.required : null,
|
|
263
|
+
unique: create.is_unique ?? null,
|
|
264
|
+
derivedFieldFormula: create.derived_field_formula ?? null,
|
|
265
|
+
...(field.formulaAttributeMetas == null ? {} : { formulaAttrMetas: field.formulaAttributeMetas }),
|
|
266
|
+
...(field.derivedAggregatedField == null ?
|
|
267
|
+
{}
|
|
268
|
+
: { derivedAggregatedField: field.derivedAggregatedField }),
|
|
269
|
+
}), section),
|
|
270
|
+
];
|
|
271
|
+
}));
|
|
272
|
+
const layoutSections = [
|
|
273
|
+
...new Set([...Object.values(sections), ...(defaultSection == null ? [] : [defaultSection])]),
|
|
274
|
+
];
|
|
275
|
+
const layout = (0, component_1.withApiName)(new custom_object_page_layout_1.CustomObjectPageLayout(object, {
|
|
276
|
+
apiName: 'default',
|
|
277
|
+
layoutId: 'default',
|
|
278
|
+
name: `${definition.displayName} Layout`,
|
|
279
|
+
tabEdits: {
|
|
280
|
+
newTabs: [
|
|
281
|
+
{
|
|
282
|
+
key: 'details',
|
|
283
|
+
name: 'Details',
|
|
284
|
+
type: 'tab_with_sections',
|
|
285
|
+
sections: layoutSections.map((section, index) => ({
|
|
286
|
+
name: section.getName(),
|
|
287
|
+
type: 'fields_section',
|
|
288
|
+
section,
|
|
289
|
+
fields: [
|
|
290
|
+
...(index === 0 ? [object.standardFields.name] : []),
|
|
291
|
+
...Object.values(fields).filter((field) => field.getSectionId() === section.getSectionId()),
|
|
292
|
+
],
|
|
293
|
+
})),
|
|
294
|
+
},
|
|
295
|
+
],
|
|
296
|
+
systemTabEdits: {},
|
|
297
|
+
tabsOrder: ['details'],
|
|
298
|
+
},
|
|
299
|
+
}), 'default');
|
|
300
|
+
const metadata = {
|
|
301
|
+
object,
|
|
302
|
+
sections,
|
|
303
|
+
defaultSection,
|
|
304
|
+
fields,
|
|
305
|
+
layout,
|
|
306
|
+
components: [...components],
|
|
307
|
+
defaultFieldSectionApiName: firstSection.getSectionId(),
|
|
308
|
+
};
|
|
309
|
+
registrations.set(definition, metadata);
|
|
310
|
+
return metadata;
|
|
311
|
+
}
|
|
312
|
+
const registrations = new WeakMap();
|
|
313
|
+
function manifestSection(object, reference) {
|
|
314
|
+
if (typeof reference !== 'string') {
|
|
315
|
+
if (reference.getModelApiName() !== manifestObject(object).getApiName())
|
|
316
|
+
throw new Error('Section reference belongs to another object.');
|
|
317
|
+
return reference;
|
|
318
|
+
}
|
|
319
|
+
const registration = objectMetadata(object);
|
|
320
|
+
const section = registration.sections[reference] ?? (reference === 'general' ? registration.defaultSection : undefined);
|
|
321
|
+
if (section == null)
|
|
322
|
+
throw new Error(`Unknown section ${reference} on ${object.apiName}.`);
|
|
323
|
+
return section;
|
|
324
|
+
}
|
|
325
|
+
/** References and compilation reuse one materialized schema; authored children remain explicit roots. */
|
|
326
|
+
function manifestObject(reference) {
|
|
327
|
+
return objectMetadata(reference).object;
|
|
328
|
+
}
|
|
329
|
+
/** Adapts a typed schema field to the existing layout, view, and rule component APIs. */
|
|
330
|
+
function manifestField(object, field) {
|
|
331
|
+
const metadata = objectMetadata(object);
|
|
332
|
+
const resolved = metadata.object;
|
|
333
|
+
const candidate = field;
|
|
334
|
+
if (typeof candidate === 'string')
|
|
335
|
+
return resolved.standardField(candidate);
|
|
336
|
+
if ('getApiName' in candidate) {
|
|
337
|
+
if (candidate.getCustomObjectApiName() !== resolved.getApiName())
|
|
338
|
+
throw new Error('Field reference belongs to another object.');
|
|
339
|
+
return candidate;
|
|
340
|
+
}
|
|
341
|
+
if ('objectApiName' in candidate && candidate.objectApiName !== object.apiName)
|
|
342
|
+
throw new Error('Field reference belongs to another object.');
|
|
343
|
+
const registered = metadata.fields[candidate.logicalName];
|
|
344
|
+
if (registered == null)
|
|
345
|
+
throw new Error(`Unknown field ${candidate.logicalName} on ${object.apiName}.`);
|
|
346
|
+
return registered;
|
|
347
|
+
}
|
|
348
|
+
const behavior = {
|
|
349
|
+
type: 'CUSTOM_OBJECT',
|
|
350
|
+
references(definition) {
|
|
351
|
+
const category = definition.categoryDefinition;
|
|
352
|
+
if (category != null && (0, component_1.registeredComponent)(category) == null)
|
|
353
|
+
category_2.categoryComponent.register(category, category);
|
|
354
|
+
return () => [
|
|
355
|
+
...(category == null ? [] : [category]),
|
|
356
|
+
...Object.values(registrations.get(definition)?.fields ?? {}).flatMap(fieldSectionReferences),
|
|
357
|
+
...Object.values(definition.fields).flatMap((field) => field.kind === 'lookup' || field.kind === 'parent-child' ?
|
|
358
|
+
isObjectDefinition(field.target) ? [field.target]
|
|
359
|
+
: []
|
|
360
|
+
: []),
|
|
361
|
+
];
|
|
362
|
+
},
|
|
363
|
+
compileBatch(definitions, context) {
|
|
364
|
+
const categories = new Set(context.definitions
|
|
365
|
+
.filter((definition) => (0, component_1.registeredComponent)(definition)?.type === 'CUSTOM_CATEGORY')
|
|
366
|
+
.flatMap((definition) => ('apiName' in definition ? [definition.apiName] : [])));
|
|
367
|
+
// Generate defaults from the complete schema, including base definitions reached through children.
|
|
368
|
+
const schemas = new Map();
|
|
369
|
+
for (const definition of definitions) {
|
|
370
|
+
const previous = schemas.get(definition.apiName);
|
|
371
|
+
if (previous == null) {
|
|
372
|
+
schemas.set(definition.apiName, definition);
|
|
373
|
+
continue;
|
|
374
|
+
}
|
|
375
|
+
schemas.set(definition.apiName, {
|
|
376
|
+
...previous,
|
|
377
|
+
sections: { ...previous.sections, ...definition.sections },
|
|
378
|
+
fields: Object.fromEntries([...Object.values(previous.fields), ...Object.values(definition.fields)].map((field) => [
|
|
379
|
+
field.apiName,
|
|
380
|
+
field,
|
|
381
|
+
])),
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
const defaults = new Map([...schemas].map(([apiName, schema]) => [apiName, objectMetadata(schema)]));
|
|
385
|
+
return definitions.flatMap((definition) => {
|
|
386
|
+
if (!categories.has(definition.categoryApiName))
|
|
387
|
+
throw new Error(`Include a category definition for ${definition.categoryApiName}, or use a typed category in ${definition.apiName}.`);
|
|
388
|
+
const generated = defaults.get(definition.apiName);
|
|
389
|
+
const authoredSections = new Set(Object.keys(definition.sections).map((key) => fieldSectionApiName(definition, key)));
|
|
390
|
+
const metadata = objectMetadata(definition);
|
|
391
|
+
return metadata.components.map((component) => {
|
|
392
|
+
const config = (component === metadata.layout ? generated.layout : component).toDict();
|
|
393
|
+
if (component === metadata.object)
|
|
394
|
+
config['default_field_section_api_name'] = generated.defaultFieldSectionApiName;
|
|
395
|
+
return {
|
|
396
|
+
config: config,
|
|
397
|
+
fallback: component === metadata.layout ||
|
|
398
|
+
(component === metadata.defaultSection && !authoredSections.has(config['api_name'])),
|
|
399
|
+
};
|
|
400
|
+
});
|
|
401
|
+
});
|
|
402
|
+
},
|
|
403
|
+
};
|
|
404
|
+
const customObjectComponent = (0, component_1.defineComponent)({
|
|
405
|
+
...behavior,
|
|
406
|
+
define: defineCustomObject,
|
|
407
|
+
});
|
|
408
|
+
const extendedObjectComponent = (0, component_1.defineComponent)({
|
|
409
|
+
...behavior,
|
|
410
|
+
define: extendCustomObject,
|
|
411
|
+
});
|
|
412
|
+
//# sourceMappingURL=custom-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-object.js","sourceRoot":"","sources":["../../../src/lib/manifest/definitions/custom-object.ts"],"names":[],"mappings":"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"}
|