@party-stack/salesforce-ontology 0.4.0 → 0.4.2

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 (166) hide show
  1. package/README.md +22 -31
  2. package/lib/actionMetadata.d.ts +11 -9
  3. package/lib/actionMetadata.d.ts.map +1 -1
  4. package/lib/actionMetadata.js +19 -30
  5. package/lib/actionMetadata.js.map +1 -1
  6. package/lib/adapter/convertLoadSubsetOptions.d.ts +10 -8
  7. package/lib/adapter/convertLoadSubsetOptions.d.ts.map +1 -1
  8. package/lib/adapter/convertLoadSubsetOptions.js +110 -173
  9. package/lib/adapter/convertLoadSubsetOptions.js.map +1 -1
  10. package/lib/adapter/createSalesforceOntologyBackendAdapter.d.ts +14 -12
  11. package/lib/adapter/createSalesforceOntologyBackendAdapter.d.ts.map +1 -1
  12. package/lib/adapter/createSalesforceOntologyBackendAdapter.js +124 -191
  13. package/lib/adapter/createSalesforceOntologyBackendAdapter.js.map +1 -1
  14. package/lib/adapter/index.d.ts +5 -5
  15. package/lib/adapter/index.js +5 -5
  16. package/lib/adapter/objectCollectionOptions.d.ts +22 -22
  17. package/lib/adapter/objectCollectionOptions.d.ts.map +1 -1
  18. package/lib/adapter/objectCollectionOptions.js +198 -280
  19. package/lib/adapter/objectCollectionOptions.js.map +1 -1
  20. package/lib/adapter/salesforceCodec.d.ts +6 -4
  21. package/lib/adapter/salesforceCodec.d.ts.map +1 -1
  22. package/lib/adapter/salesforceCodec.js +126 -190
  23. package/lib/adapter/salesforceCodec.js.map +1 -1
  24. package/lib/config/index.d.ts +20 -18
  25. package/lib/config/index.d.ts.map +1 -1
  26. package/lib/config/index.js +148 -192
  27. package/lib/config/index.js.map +1 -1
  28. package/lib/connection.d.ts +35 -33
  29. package/lib/connection.d.ts.map +1 -1
  30. package/lib/connection.js +243 -299
  31. package/lib/connection.js.map +1 -1
  32. package/lib/crud.d.ts +5 -3
  33. package/lib/crud.d.ts.map +1 -1
  34. package/lib/crud.js +0 -1
  35. package/lib/index.d.ts +10 -5
  36. package/lib/index.js +10 -5
  37. package/lib/installation/createSalesforceBackendInstallation.d.ts +28 -26
  38. package/lib/installation/createSalesforceBackendInstallation.d.ts.map +1 -1
  39. package/lib/installation/createSalesforceBackendInstallation.js +75 -85
  40. package/lib/installation/createSalesforceBackendInstallation.js.map +1 -1
  41. package/lib/installation/index.d.ts +2 -2
  42. package/lib/installation/index.js +1 -2
  43. package/lib/meta/actionTypeCollectionOptions.d.ts +10 -8
  44. package/lib/meta/actionTypeCollectionOptions.d.ts.map +1 -1
  45. package/lib/meta/actionTypeCollectionOptions.js +105 -212
  46. package/lib/meta/actionTypeCollectionOptions.js.map +1 -1
  47. package/lib/meta/convertMetaActionType.d.ts +4 -2
  48. package/lib/meta/convertMetaActionType.d.ts.map +1 -1
  49. package/lib/meta/convertMetaActionType.js +32 -32
  50. package/lib/meta/convertMetaActionType.js.map +1 -1
  51. package/lib/meta/convertMetaLinkType.d.ts +4 -2
  52. package/lib/meta/convertMetaLinkType.d.ts.map +1 -1
  53. package/lib/meta/convertMetaLinkType.js +39 -45
  54. package/lib/meta/convertMetaLinkType.js.map +1 -1
  55. package/lib/meta/convertMetaLoadSubsetOptions.d.ts +12 -10
  56. package/lib/meta/convertMetaLoadSubsetOptions.d.ts.map +1 -1
  57. package/lib/meta/convertMetaLoadSubsetOptions.js +42 -58
  58. package/lib/meta/convertMetaLoadSubsetOptions.js.map +1 -1
  59. package/lib/meta/convertMetaObjectType.d.ts +4 -2
  60. package/lib/meta/convertMetaObjectType.d.ts.map +1 -1
  61. package/lib/meta/convertMetaObjectType.js +36 -40
  62. package/lib/meta/convertMetaObjectType.js.map +1 -1
  63. package/lib/meta/convertMetaQueryFunctionType.d.ts +4 -2
  64. package/lib/meta/convertMetaQueryFunctionType.d.ts.map +1 -1
  65. package/lib/meta/convertMetaQueryFunctionType.js +27 -25
  66. package/lib/meta/convertMetaQueryFunctionType.js.map +1 -1
  67. package/lib/meta/convertMetaTypeDef.d.ts +10 -8
  68. package/lib/meta/convertMetaTypeDef.d.ts.map +1 -1
  69. package/lib/meta/convertMetaTypeDef.js +196 -188
  70. package/lib/meta/convertMetaTypeDef.js.map +1 -1
  71. package/lib/meta/createSalesforceMetaOntologyBackendAdapter.d.ts +19 -17
  72. package/lib/meta/createSalesforceMetaOntologyBackendAdapter.d.ts.map +1 -1
  73. package/lib/meta/createSalesforceMetaOntologyBackendAdapter.js +38 -40
  74. package/lib/meta/createSalesforceMetaOntologyBackendAdapter.js.map +1 -1
  75. package/lib/meta/entityCollectionOptions.d.ts +10 -8
  76. package/lib/meta/entityCollectionOptions.d.ts.map +1 -1
  77. package/lib/meta/entityCollectionOptions.js +73 -82
  78. package/lib/meta/entityCollectionOptions.js.map +1 -1
  79. package/lib/meta/index.d.ts +7 -7
  80. package/lib/meta/index.js +7 -7
  81. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +7 -5
  82. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +1 -1
  83. package/lib/meta/queryFunctionTypeCollectionOptions.js +53 -91
  84. package/lib/meta/queryFunctionTypeCollectionOptions.js.map +1 -1
  85. package/lib/meta/synthesizeCrudActionTypes.d.ts +4 -2
  86. package/lib/meta/synthesizeCrudActionTypes.d.ts.map +1 -1
  87. package/lib/meta/synthesizeCrudActionTypes.js +77 -116
  88. package/lib/meta/synthesizeCrudActionTypes.js.map +1 -1
  89. package/lib/standardActions.d.ts +2 -0
  90. package/lib/standardActions.d.ts.map +1 -1
  91. package/lib/standardActions.js +22 -20
  92. package/lib/standardActions.js.map +1 -1
  93. package/lib/utils/AsyncIterable.d.ts +2 -0
  94. package/lib/utils/AsyncIterable.d.ts.map +1 -1
  95. package/lib/utils/AsyncIterable.js +20 -23
  96. package/lib/utils/AsyncIterable.js.map +1 -1
  97. package/lib/utils/ids.d.ts +2 -0
  98. package/lib/utils/ids.d.ts.map +1 -1
  99. package/lib/utils/ids.js +23 -19
  100. package/lib/utils/ids.js.map +1 -1
  101. package/package.json +18 -24
  102. package/lib/adapter/convertLoadSubsetOptions.test.d.ts +0 -2
  103. package/lib/adapter/convertLoadSubsetOptions.test.d.ts.map +0 -1
  104. package/lib/adapter/convertLoadSubsetOptions.test.js +0 -80
  105. package/lib/adapter/convertLoadSubsetOptions.test.js.map +0 -1
  106. package/lib/adapter/createSalesforceOntologyBackendAdapter.test.d.ts +0 -2
  107. package/lib/adapter/createSalesforceOntologyBackendAdapter.test.d.ts.map +0 -1
  108. package/lib/adapter/createSalesforceOntologyBackendAdapter.test.js +0 -394
  109. package/lib/adapter/createSalesforceOntologyBackendAdapter.test.js.map +0 -1
  110. package/lib/adapter/index.d.ts.map +0 -1
  111. package/lib/adapter/index.js.map +0 -1
  112. package/lib/adapter/objectCollectionOptions.test.d.ts +0 -2
  113. package/lib/adapter/objectCollectionOptions.test.d.ts.map +0 -1
  114. package/lib/adapter/objectCollectionOptions.test.js +0 -160
  115. package/lib/adapter/objectCollectionOptions.test.js.map +0 -1
  116. package/lib/adapter/salesforceCodec.test.d.ts +0 -2
  117. package/lib/adapter/salesforceCodec.test.d.ts.map +0 -1
  118. package/lib/adapter/salesforceCodec.test.js +0 -57
  119. package/lib/adapter/salesforceCodec.test.js.map +0 -1
  120. package/lib/config/index.test.d.ts +0 -2
  121. package/lib/config/index.test.d.ts.map +0 -1
  122. package/lib/config/index.test.js +0 -177
  123. package/lib/config/index.test.js.map +0 -1
  124. package/lib/connection.test.d.ts +0 -2
  125. package/lib/connection.test.d.ts.map +0 -1
  126. package/lib/connection.test.js +0 -189
  127. package/lib/connection.test.js.map +0 -1
  128. package/lib/crud.js.map +0 -1
  129. package/lib/index.d.ts.map +0 -1
  130. package/lib/index.js.map +0 -1
  131. package/lib/installation/createSalesforceBackendInstallation.test.d.ts +0 -2
  132. package/lib/installation/createSalesforceBackendInstallation.test.d.ts.map +0 -1
  133. package/lib/installation/createSalesforceBackendInstallation.test.js +0 -55
  134. package/lib/installation/createSalesforceBackendInstallation.test.js.map +0 -1
  135. package/lib/installation/index.d.ts.map +0 -1
  136. package/lib/installation/index.js.map +0 -1
  137. package/lib/meta/actionTypeCollectionOptions.test.d.ts +0 -2
  138. package/lib/meta/actionTypeCollectionOptions.test.d.ts.map +0 -1
  139. package/lib/meta/actionTypeCollectionOptions.test.js +0 -192
  140. package/lib/meta/actionTypeCollectionOptions.test.js.map +0 -1
  141. package/lib/meta/convertMetaActionType.test.d.ts +0 -2
  142. package/lib/meta/convertMetaActionType.test.d.ts.map +0 -1
  143. package/lib/meta/convertMetaActionType.test.js +0 -185
  144. package/lib/meta/convertMetaActionType.test.js.map +0 -1
  145. package/lib/meta/convertMetaObjectType.test.d.ts +0 -2
  146. package/lib/meta/convertMetaObjectType.test.d.ts.map +0 -1
  147. package/lib/meta/convertMetaObjectType.test.js +0 -187
  148. package/lib/meta/convertMetaObjectType.test.js.map +0 -1
  149. package/lib/meta/convertMetaQueryFunctionType.test.d.ts +0 -2
  150. package/lib/meta/convertMetaQueryFunctionType.test.d.ts.map +0 -1
  151. package/lib/meta/convertMetaQueryFunctionType.test.js +0 -58
  152. package/lib/meta/convertMetaQueryFunctionType.test.js.map +0 -1
  153. package/lib/meta/entityCollectionOptions.test.d.ts +0 -2
  154. package/lib/meta/entityCollectionOptions.test.d.ts.map +0 -1
  155. package/lib/meta/entityCollectionOptions.test.js +0 -120
  156. package/lib/meta/entityCollectionOptions.test.js.map +0 -1
  157. package/lib/meta/index.d.ts.map +0 -1
  158. package/lib/meta/index.js.map +0 -1
  159. package/lib/meta/queryFunctionTypeCollectionOptions.test.d.ts +0 -2
  160. package/lib/meta/queryFunctionTypeCollectionOptions.test.d.ts.map +0 -1
  161. package/lib/meta/queryFunctionTypeCollectionOptions.test.js +0 -71
  162. package/lib/meta/queryFunctionTypeCollectionOptions.test.js.map +0 -1
  163. package/lib/meta/synthesizeCrudActionTypes.test.d.ts +0 -2
  164. package/lib/meta/synthesizeCrudActionTypes.test.d.ts.map +0 -1
  165. package/lib/meta/synthesizeCrudActionTypes.test.js +0 -153
  166. package/lib/meta/synthesizeCrudActionTypes.test.js.map +0 -1
package/README.md CHANGED
@@ -10,27 +10,23 @@ import {
10
10
  createSalesforceOntologyRoute,
11
11
  } from "@party-stack/salesforce-ontology";
12
12
 
13
- const installation =
14
- await createSalesforceBackendInstallation({
15
- instanceUrl:
16
- "https://example.my.salesforce.com",
17
- apiVersion: "65.0",
18
- runtime,
19
- connections: {
20
- oauth: {
21
- clientId,
22
- redirectUrl:
23
- "http://localhost:1717/oauth/callback",
24
- },
13
+ const installation = await createSalesforceBackendInstallation({
14
+ instanceUrl: "https://example.my.salesforce.com",
15
+ apiVersion: "65.0",
16
+ runtime,
17
+ connections: {
18
+ oauth: {
19
+ clientId,
20
+ redirectUrl: "http://localhost:1717/oauth/callback",
25
21
  },
26
- routes: [
27
- createSalesforceOntologyRoute({
28
- ontologyId:
29
- "salesforce:task-manager",
30
- ir: generatedOntology,
31
- }),
32
- ],
33
- });
22
+ },
23
+ routes: [
24
+ createSalesforceOntologyRoute({
25
+ ontologyId: "salesforce:task-manager",
26
+ ir: generatedOntology,
27
+ }),
28
+ ],
29
+ });
34
30
  ```
35
31
 
36
32
  The connection adapter uses `@party-stack/oauth`, persists refresh tokens
@@ -43,9 +39,7 @@ token-provider/egress agnostic.
43
39
  Consumer projects can export a standard Party Stack pull configuration:
44
40
 
45
41
  ```ts
46
- import {
47
- createSalesforceOntologyPullConfig,
48
- } from "@party-stack/salesforce-ontology/config";
42
+ import { createSalesforceOntologyPullConfig } from "@party-stack/salesforce-ontology/config";
49
43
 
50
44
  export default createSalesforceOntologyPullConfig({
51
45
  instanceUrl,
@@ -53,12 +47,8 @@ export default createSalesforceOntologyPullConfig({
53
47
  ontologyId: "salesforce:task-manager",
54
48
  objectTypeNames: ["Task", "User"],
55
49
  flowActionTypeNames: ["Create_Task_Flow"],
56
- standardActionTypeNames: [
57
- "confirmSalesMeeting",
58
- ],
59
- standardQueryFunctionTypeNames: [
60
- "getAvailableMeetingTimes",
61
- ],
50
+ standardActionTypeNames: ["confirmSalesMeeting"],
51
+ standardQueryFunctionTypeNames: ["getAvailableMeetingTimes"],
62
52
  crudActionTypes: [
63
53
  {
64
54
  objectType: "Task",
@@ -79,6 +69,7 @@ normal `src/ontology/ontology.ts` consumed by
79
69
  `createSalesforceOntologyRoute({ ir })`.
80
70
 
81
71
  See `apps/salesforce-task-manager` for a real-org example.
72
+
82
73
  # salesforce-ontology
83
74
 
84
75
  Salesforce backend adapters for Party Stack LiveOntology.
@@ -86,9 +77,9 @@ Salesforce backend adapters for Party Stack LiveOntology.
86
77
  ## Runtime adapter
87
78
 
88
79
  ```ts
80
+ import { createLiveOntology } from "@party-stack/ontology";
89
81
  import { createSalesforceClient } from "@party-stack/salesforce-client";
90
82
  import { createSalesforceOntologyBackend } from "@party-stack/salesforce-ontology";
91
- import { createLiveOntology } from "@party-stack/ontology";
92
83
 
93
84
  // jsforce-backed client; supply your own token (no OAuth ownership here)
94
85
  const client = createSalesforceClient({
@@ -106,8 +97,8 @@ const ontology = await createLiveOntology({
106
97
  ## Metadata adapter
107
98
 
108
99
  ```ts
109
- import { createSalesforceMetaOntologyBackendAdapter } from "@party-stack/salesforce-ontology/meta";
110
100
  import { createMetaLiveOntology } from "@party-stack/ontology";
101
+ import { createSalesforceMetaOntologyBackendAdapter } from "@party-stack/salesforce-ontology/meta";
111
102
 
112
103
  const meta = await createMetaLiveOntology({
113
104
  backend: () =>
@@ -1,17 +1,19 @@
1
- import type { SalesforceCrudOperation } from "./utils/ids.js";
1
+ import { SalesforceCrudOperation } from "./utils/ids.js";
2
+ //#region src/actionMetadata.d.ts
2
3
  export type SalesforceActionMetadata = {
3
- kind: "flow";
4
- apiName: string;
4
+ kind: "flow";
5
+ apiName: string;
5
6
  } | {
6
- kind: "standard";
7
- apiName: string;
7
+ kind: "standard";
8
+ apiName: string;
8
9
  } | {
9
- kind: "crud";
10
- objectType: string;
11
- operation: SalesforceCrudOperation;
10
+ kind: "crud";
11
+ objectType: string;
12
+ operation: SalesforceCrudOperation;
12
13
  };
13
14
  export declare function salesforceActionMeta(metadata: SalesforceActionMetadata): Record<string, unknown>;
14
15
  export declare function getSalesforceActionMetadata(actionType: {
15
- meta?: Record<string, unknown>;
16
+ meta?: Record<string, unknown>;
16
17
  }): SalesforceActionMetadata | undefined;
18
+ //#endregion
17
19
  //# sourceMappingURL=actionMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionMetadata.d.ts","sourceRoot":"","sources":["../src/actionMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,wBAAwB,GAC9B;IACI,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,GACD;IACI,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB,GACD;IACI,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,uBAAuB,CAAC;CACtC,CAAC;AAER,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,wBAAwB,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,GAAG,wBAAwB,GAAG,SAAS,CAkCvC"}
1
+ {"version":3,"file":"actionMetadata.d.ts","names":[],"sources":["../src/actionMetadata.ts"],"mappings":";;YAEY;EAEF;EACA;;EAGA;EACA;;EAGA;EACA;EACA,WAAW;;wBAGL,qBAAqB,UAAU,2BAA2B;wBAI1D,4BAA4B;EACxC,OAAO;IACP"}
@@ -1,33 +1,22 @@
1
- export function salesforceActionMeta(metadata) {
2
- return { salesforce: metadata };
1
+ //#region src/actionMetadata.ts
2
+ function salesforceActionMeta(metadata) {
3
+ return { salesforce: metadata };
3
4
  }
4
- export function getSalesforceActionMetadata(actionType) {
5
- const value = actionType.meta?.salesforce;
6
- if (typeof value !== "object" ||
7
- value === null ||
8
- Array.isArray(value)) {
9
- return undefined;
10
- }
11
- const metadata = value;
12
- if ((metadata.kind === "flow" ||
13
- metadata.kind === "standard") &&
14
- typeof metadata.apiName === "string") {
15
- return {
16
- kind: metadata.kind,
17
- apiName: metadata.apiName,
18
- };
19
- }
20
- if (metadata.kind === "crud" &&
21
- typeof metadata.objectType === "string" &&
22
- (metadata.operation === "create" ||
23
- metadata.operation === "update" ||
24
- metadata.operation === "delete")) {
25
- return {
26
- kind: "crud",
27
- objectType: metadata.objectType,
28
- operation: metadata.operation,
29
- };
30
- }
31
- return undefined;
5
+ function getSalesforceActionMetadata(actionType) {
6
+ const value = actionType.meta?.salesforce;
7
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return;
8
+ const metadata = value;
9
+ if ((metadata.kind === "flow" || metadata.kind === "standard") && typeof metadata.apiName === "string") return {
10
+ kind: metadata.kind,
11
+ apiName: metadata.apiName
12
+ };
13
+ if (metadata.kind === "crud" && typeof metadata.objectType === "string" && (metadata.operation === "create" || metadata.operation === "update" || metadata.operation === "delete")) return {
14
+ kind: "crud",
15
+ objectType: metadata.objectType,
16
+ operation: metadata.operation
17
+ };
32
18
  }
19
+ //#endregion
20
+ export { getSalesforceActionMetadata, salesforceActionMeta };
21
+
33
22
  //# sourceMappingURL=actionMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionMetadata.js","sourceRoot":"","sources":["../src/actionMetadata.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,oBAAoB,CAChC,QAAkC;IAElC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,UAE3C;IACG,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1C,IACI,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACtB,CAAC;QACC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,KAAgC,CAAC;IAClD,IACI,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;QACrB,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC;QACjC,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EACtC,CAAC;QACC,OAAO;YACH,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC5B,CAAC;IACN,CAAC;IACD,IACI,QAAQ,CAAC,IAAI,KAAK,MAAM;QACxB,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ;YAC5B,QAAQ,CAAC,SAAS,KAAK,QAAQ;YAC/B,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,EACtC,CAAC;QACC,OAAO;YACH,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAChC,CAAC;IACN,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"actionMetadata.js","names":[],"sources":["../src/actionMetadata.ts"],"sourcesContent":["import type { SalesforceCrudOperation } from \"./utils/ids.js\";\n\nexport type SalesforceActionMetadata =\n | {\n kind: \"flow\";\n apiName: string;\n }\n | {\n kind: \"standard\";\n apiName: string;\n }\n | {\n kind: \"crud\";\n objectType: string;\n operation: SalesforceCrudOperation;\n };\n\nexport function salesforceActionMeta(metadata: SalesforceActionMetadata): Record<string, unknown> {\n return { salesforce: metadata };\n}\n\nexport function getSalesforceActionMetadata(actionType: {\n meta?: Record<string, unknown>;\n}): SalesforceActionMetadata | undefined {\n const value = actionType.meta?.salesforce;\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return undefined;\n }\n const metadata = value as Record<string, unknown>;\n if ((metadata.kind === \"flow\" || metadata.kind === \"standard\") && typeof metadata.apiName === \"string\") {\n return {\n kind: metadata.kind,\n apiName: metadata.apiName,\n };\n }\n if (\n metadata.kind === \"crud\" &&\n typeof metadata.objectType === \"string\" &&\n (metadata.operation === \"create\" ||\n metadata.operation === \"update\" ||\n metadata.operation === \"delete\")\n ) {\n return {\n kind: \"crud\",\n objectType: metadata.objectType,\n operation: metadata.operation,\n };\n }\n return undefined;\n}\n"],"mappings":";AAiBA,SAAgB,qBAAqB,UAA6D;CAC9F,OAAO,EAAE,YAAY,SAAS;AAClC;AAEA,SAAgB,4BAA4B,YAEH;CACrC,MAAM,QAAQ,WAAW,MAAM;CAC/B,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GAClE;CAEJ,MAAM,WAAW;CACjB,KAAK,SAAS,SAAS,UAAU,SAAS,SAAS,eAAe,OAAO,SAAS,YAAY,UAC1F,OAAO;EACH,MAAM,SAAS;EACf,SAAS,SAAS;CACtB;CAEJ,IACI,SAAS,SAAS,UAClB,OAAO,SAAS,eAAe,aAC9B,SAAS,cAAc,YACpB,SAAS,cAAc,YACvB,SAAS,cAAc,WAE3B,OAAO;EACH,MAAM;EACN,YAAY,SAAS;EACrB,WAAW,SAAS;CACxB;AAGR"}
@@ -1,18 +1,20 @@
1
1
  import { LoadSubsetOptions } from "@tanstack/db";
2
+ //#region src/adapter/convertLoadSubsetOptions.d.ts
2
3
  export type CompiledSoqlFilter = {
3
- clause?: string;
4
- alwaysFalse: boolean;
4
+ clause?: string;
5
+ alwaysFalse: boolean;
5
6
  };
6
7
  export declare function serializeSoqlLiteral(value: unknown): string;
7
8
  export declare function isAlwaysFalseFilter(filter: CompiledSoqlFilter | undefined): boolean;
8
9
  export declare function convertLoadSubsetFilter(filter: LoadSubsetOptions["where"]): CompiledSoqlFilter | undefined;
9
10
  export declare function convertLoadSubsetOrderBy(orderBy: LoadSubsetOptions["orderBy"]): string | undefined;
10
11
  export declare function buildSoqlQuery(opts: {
11
- objectType: string;
12
- selectedProperties: string[];
13
- where?: CompiledSoqlFilter;
14
- orderBy?: string;
15
- limit?: number;
16
- offset?: number;
12
+ objectType: string;
13
+ selectedProperties: string[];
14
+ where?: CompiledSoqlFilter;
15
+ orderBy?: string;
16
+ limit?: number;
17
+ offset?: number;
17
18
  }): string;
19
+ //#endregion
18
20
  //# sourceMappingURL=convertLoadSubsetOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertLoadSubsetOptions.d.ts","sourceRoot":"","sources":["../../src/adapter/convertLoadSubsetOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,iBAAiB,EAAgD,MAAM,cAAc,CAAC;AAK1G,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC;AAuDF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA6B3D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAEnF;AAoBD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,kBAAkB,GAAG,SAAS,CA4D1G;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAOlG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAkBT"}
1
+ {"version":3,"file":"convertLoadSubsetOptions.d.ts","names":[],"sources":["../../src/adapter/convertLoadSubsetOptions.ts"],"mappings":";;YAKY;EACR;EACA;;wBAwDY,qBAAqB;wBA+BrB,oBAAoB,QAAQ;wBAsB5B,wBAAwB,QAAQ,6BAA6B;wBA8D7D,yBAAyB,SAAS;wBASlC,eAAe;EAC3B;EACA;EACA,QAAQ;EACR;EACA;EACA"}
@@ -1,190 +1,127 @@
1
1
  import { parseOrderByExpression, parseWhereExpression } from "@tanstack/db";
2
2
  import { Temporal } from "temporal-polyfill";
3
+ //#region src/adapter/convertLoadSubsetOptions.ts
3
4
  const ALWAYS_FALSE = "__ALWAYS_FALSE__";
4
5
  function quoteIdentifier(identifier) {
5
- if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(identifier)) {
6
- throw new Error(`Invalid Salesforce identifier "${identifier}".`);
7
- }
8
- return identifier;
6
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(identifier)) throw new Error(`Invalid Salesforce identifier "${identifier}".`);
7
+ return identifier;
9
8
  }
10
9
  function fieldPathToSoql(fieldPath) {
11
- if (fieldPath.length === 0) {
12
- throw new Error("Empty field path.");
13
- }
14
- return fieldPath.map((segment) => quoteIdentifier(String(segment))).join(".");
10
+ if (fieldPath.length === 0) throw new Error("Empty field path.");
11
+ return fieldPath.map((segment) => quoteIdentifier(String(segment))).join(".");
15
12
  }
16
13
  function escapeSoqlString(value) {
17
- let escaped = "";
18
- for (const character of value) {
19
- switch (character) {
20
- case "\\":
21
- escaped += "\\\\";
22
- break;
23
- case "'":
24
- escaped += "\\'";
25
- break;
26
- case "\b":
27
- escaped += "\\b";
28
- break;
29
- case "\f":
30
- escaped += "\\f";
31
- break;
32
- case "\n":
33
- escaped += "\\n";
34
- break;
35
- case "\r":
36
- escaped += "\\r";
37
- break;
38
- case "\t":
39
- escaped += "\\t";
40
- break;
41
- default: {
42
- const codePoint = character.codePointAt(0);
43
- if (codePoint < 0x20 || codePoint === 0x7f) {
44
- throw new Error(`Cannot serialize control character U+${codePoint.toString(16).padStart(4, "0")} to SOQL.`);
45
- }
46
- escaped += character;
47
- }
48
- }
49
- }
50
- return escaped;
14
+ let escaped = "";
15
+ for (const character of value) switch (character) {
16
+ case "\\":
17
+ escaped += "\\\\";
18
+ break;
19
+ case "'":
20
+ escaped += "\\'";
21
+ break;
22
+ case "\b":
23
+ escaped += "\\b";
24
+ break;
25
+ case "\f":
26
+ escaped += "\\f";
27
+ break;
28
+ case "\n":
29
+ escaped += "\\n";
30
+ break;
31
+ case "\r":
32
+ escaped += "\\r";
33
+ break;
34
+ case " ":
35
+ escaped += "\\t";
36
+ break;
37
+ default: {
38
+ const codePoint = character.codePointAt(0);
39
+ if (codePoint < 32 || codePoint === 127) throw new Error(`Cannot serialize control character U+${codePoint.toString(16).padStart(4, "0")} to SOQL.`);
40
+ escaped += character;
41
+ }
42
+ }
43
+ return escaped;
51
44
  }
52
- export function serializeSoqlLiteral(value) {
53
- if (value === null || value === undefined) {
54
- return "null";
55
- }
56
- if (typeof value === "boolean") {
57
- return value ? "true" : "false";
58
- }
59
- if (typeof value === "number") {
60
- if (!Number.isFinite(value)) {
61
- throw new Error(`Cannot serialize non-finite number ${value} to SOQL.`);
62
- }
63
- return String(value);
64
- }
65
- if (typeof value === "bigint") {
66
- return String(value);
67
- }
68
- if (value instanceof Date) {
69
- return value.toISOString();
70
- }
71
- if (value instanceof Temporal.Instant) {
72
- return value.toString();
73
- }
74
- if (value instanceof Temporal.PlainDate || value instanceof Temporal.PlainDateTime) {
75
- return value.toString();
76
- }
77
- if (typeof value === "string") {
78
- return `'${escapeSoqlString(value)}'`;
79
- }
80
- throw new Error(`Unsupported SOQL literal type: ${typeof value}`);
45
+ function serializeSoqlLiteral(value) {
46
+ if (value === null || value === void 0) return "null";
47
+ if (typeof value === "boolean") return value ? "true" : "false";
48
+ if (typeof value === "number") {
49
+ if (!Number.isFinite(value)) throw new Error(`Cannot serialize non-finite number ${value} to SOQL.`);
50
+ return String(value);
51
+ }
52
+ if (typeof value === "bigint") return String(value);
53
+ if (value instanceof Date) return value.toISOString();
54
+ if (value instanceof Temporal.Instant) return value.toString();
55
+ if (value instanceof Temporal.PlainDate || value instanceof Temporal.PlainDateTime) return value.toString();
56
+ if (typeof value === "string") return `'${escapeSoqlString(value)}'`;
57
+ throw new Error(`Unsupported SOQL literal type: ${typeof value}`);
81
58
  }
82
- export function isAlwaysFalseFilter(filter) {
83
- return Boolean(filter?.alwaysFalse);
59
+ function isAlwaysFalseFilter(filter) {
60
+ return Boolean(filter?.alwaysFalse);
84
61
  }
85
62
  function convertInFilter(fieldOrValue, valuesOrField) {
86
- if (!Array.isArray(valuesOrField)) {
87
- throw new Error("Expected the second inArray argument to be an array or field path");
88
- }
89
- if (!Array.isArray(fieldOrValue)) {
90
- return fieldOrValue == null
91
- ? ALWAYS_FALSE
92
- : `${fieldPathToSoql(valuesOrField)} INCLUDES (${serializeSoqlLiteral(fieldOrValue)})`;
93
- }
94
- const literals = valuesOrField
95
- .filter((entry) => entry !== null && entry !== undefined)
96
- .map(serializeSoqlLiteral);
97
- if (literals.length === 0)
98
- return ALWAYS_FALSE;
99
- return `${fieldPathToSoql(fieldOrValue)} IN (${literals.join(", ")})`;
63
+ if (!Array.isArray(valuesOrField)) throw new Error("Expected the second inArray argument to be an array or field path");
64
+ if (!Array.isArray(fieldOrValue)) return fieldOrValue == null ? ALWAYS_FALSE : `${fieldPathToSoql(valuesOrField)} INCLUDES (${serializeSoqlLiteral(fieldOrValue)})`;
65
+ const literals = valuesOrField.filter((entry) => entry !== null && entry !== void 0).map(serializeSoqlLiteral);
66
+ if (literals.length === 0) return ALWAYS_FALSE;
67
+ return `${fieldPathToSoql(fieldOrValue)} IN (${literals.join(", ")})`;
100
68
  }
101
- export function convertLoadSubsetFilter(filter) {
102
- if (!filter)
103
- return undefined;
104
- const compiled = parseWhereExpression(filter, {
105
- handlers: {
106
- and: (...filters) => {
107
- if (filters.includes(ALWAYS_FALSE))
108
- return ALWAYS_FALSE;
109
- const clauses = filters.filter((clause) => clause.length > 0);
110
- if (clauses.length === 0)
111
- return "";
112
- if (clauses.length === 1)
113
- return clauses[0];
114
- return `(${clauses.join(" AND ")})`;
115
- },
116
- or: (...filters) => {
117
- if (filters.every((clause) => clause === ALWAYS_FALSE))
118
- return ALWAYS_FALSE;
119
- const clauses = filters.filter((clause) => clause !== ALWAYS_FALSE && clause.length > 0);
120
- if (clauses.length === 0)
121
- return "";
122
- if (clauses.length === 1)
123
- return clauses[0];
124
- return `(${clauses.join(" OR ")})`;
125
- },
126
- not: (inner) => {
127
- if (inner === ALWAYS_FALSE)
128
- return "";
129
- if (!inner)
130
- return ALWAYS_FALSE;
131
- return `(NOT ${inner})`;
132
- },
133
- eq: (field, value) => value == null
134
- ? `${fieldPathToSoql(field)} = null`
135
- : `${fieldPathToSoql(field)} = ${serializeSoqlLiteral(value)}`,
136
- gt: (field, value) => value == null
137
- ? ALWAYS_FALSE
138
- : `${fieldPathToSoql(field)} > ${serializeSoqlLiteral(value)}`,
139
- gte: (field, value) => value == null
140
- ? ALWAYS_FALSE
141
- : `${fieldPathToSoql(field)} >= ${serializeSoqlLiteral(value)}`,
142
- lt: (field, value) => value == null
143
- ? ALWAYS_FALSE
144
- : `${fieldPathToSoql(field)} < ${serializeSoqlLiteral(value)}`,
145
- lte: (field, value) => value == null
146
- ? ALWAYS_FALSE
147
- : `${fieldPathToSoql(field)} <= ${serializeSoqlLiteral(value)}`,
148
- isUndefined: (field) => `${fieldPathToSoql(field)} = null`,
149
- in: convertInFilter,
150
- like: (field, value) => value === "%" ? "" : `${fieldPathToSoql(field)} LIKE ${serializeSoqlLiteral(value)}`,
151
- ilike: (field, value) =>
152
- // Salesforce LIKE is case-insensitive for most text fields.
153
- value === "%" ? "" : `${fieldPathToSoql(field)} LIKE ${serializeSoqlLiteral(value)}`,
154
- },
155
- }) ?? undefined;
156
- if (compiled === undefined)
157
- return undefined;
158
- if (compiled === ALWAYS_FALSE) {
159
- return { alwaysFalse: true };
160
- }
161
- return { clause: compiled || undefined, alwaysFalse: false };
69
+ function convertLoadSubsetFilter(filter) {
70
+ if (!filter) return void 0;
71
+ const compiled = parseWhereExpression(filter, { handlers: {
72
+ and: (...filters) => {
73
+ if (filters.includes(ALWAYS_FALSE)) return ALWAYS_FALSE;
74
+ const clauses = filters.filter((clause) => clause.length > 0);
75
+ if (clauses.length === 0) return "";
76
+ if (clauses.length === 1) return clauses[0];
77
+ return `(${clauses.join(" AND ")})`;
78
+ },
79
+ or: (...filters) => {
80
+ if (filters.every((clause) => clause === ALWAYS_FALSE)) return ALWAYS_FALSE;
81
+ const clauses = filters.filter((clause) => clause !== ALWAYS_FALSE && clause.length > 0);
82
+ if (clauses.length === 0) return "";
83
+ if (clauses.length === 1) return clauses[0];
84
+ return `(${clauses.join(" OR ")})`;
85
+ },
86
+ not: (inner) => {
87
+ if (inner === ALWAYS_FALSE) return "";
88
+ if (!inner) return ALWAYS_FALSE;
89
+ return `(NOT ${inner})`;
90
+ },
91
+ eq: (field, value) => value == null ? `${fieldPathToSoql(field)} = null` : `${fieldPathToSoql(field)} = ${serializeSoqlLiteral(value)}`,
92
+ gt: (field, value) => value == null ? ALWAYS_FALSE : `${fieldPathToSoql(field)} > ${serializeSoqlLiteral(value)}`,
93
+ gte: (field, value) => value == null ? ALWAYS_FALSE : `${fieldPathToSoql(field)} >= ${serializeSoqlLiteral(value)}`,
94
+ lt: (field, value) => value == null ? ALWAYS_FALSE : `${fieldPathToSoql(field)} < ${serializeSoqlLiteral(value)}`,
95
+ lte: (field, value) => value == null ? ALWAYS_FALSE : `${fieldPathToSoql(field)} <= ${serializeSoqlLiteral(value)}`,
96
+ isUndefined: (field) => `${fieldPathToSoql(field)} = null`,
97
+ in: convertInFilter,
98
+ like: (field, value) => value === "%" ? "" : `${fieldPathToSoql(field)} LIKE ${serializeSoqlLiteral(value)}`,
99
+ ilike: (field, value) => value === "%" ? "" : `${fieldPathToSoql(field)} LIKE ${serializeSoqlLiteral(value)}`
100
+ } }) ?? void 0;
101
+ if (compiled === void 0) return void 0;
102
+ if (compiled === ALWAYS_FALSE) return { alwaysFalse: true };
103
+ return {
104
+ clause: compiled || void 0,
105
+ alwaysFalse: false
106
+ };
162
107
  }
163
- export function convertLoadSubsetOrderBy(orderBy) {
164
- if (!orderBy)
165
- return undefined;
166
- const fields = parseOrderByExpression(orderBy).map((ordering) => {
167
- const field = fieldPathToSoql(ordering.field);
168
- return `${field} ${ordering.direction.toUpperCase()}`;
169
- });
170
- return fields.length > 0 ? fields.join(", ") : undefined;
108
+ function convertLoadSubsetOrderBy(orderBy) {
109
+ if (!orderBy) return void 0;
110
+ const fields = parseOrderByExpression(orderBy).map((ordering) => {
111
+ return `${fieldPathToSoql(ordering.field)} ${ordering.direction.toUpperCase()}`;
112
+ });
113
+ return fields.length > 0 ? fields.join(", ") : void 0;
171
114
  }
172
- export function buildSoqlQuery(opts) {
173
- const objectType = quoteIdentifier(opts.objectType);
174
- const select = opts.selectedProperties.map(quoteIdentifier).join(", ");
175
- const clauses = [`SELECT ${select} FROM ${objectType}`];
176
- if (opts.where?.clause) {
177
- clauses.push(`WHERE ${opts.where.clause}`);
178
- }
179
- if (opts.orderBy) {
180
- clauses.push(`ORDER BY ${opts.orderBy}`);
181
- }
182
- if (opts.limit !== undefined) {
183
- clauses.push(`LIMIT ${Math.max(0, Math.trunc(opts.limit))}`);
184
- }
185
- if (opts.offset !== undefined && opts.offset > 0) {
186
- clauses.push(`OFFSET ${Math.max(0, Math.trunc(opts.offset))}`);
187
- }
188
- return clauses.join(" ");
115
+ function buildSoqlQuery(opts) {
116
+ const objectType = quoteIdentifier(opts.objectType);
117
+ const clauses = [`SELECT ${opts.selectedProperties.map(quoteIdentifier).join(", ")} FROM ${objectType}`];
118
+ if (opts.where?.clause) clauses.push(`WHERE ${opts.where.clause}`);
119
+ if (opts.orderBy) clauses.push(`ORDER BY ${opts.orderBy}`);
120
+ if (opts.limit !== void 0) clauses.push(`LIMIT ${Math.max(0, Math.trunc(opts.limit))}`);
121
+ if (opts.offset !== void 0 && opts.offset > 0) clauses.push(`OFFSET ${Math.max(0, Math.trunc(opts.offset))}`);
122
+ return clauses.join(" ");
189
123
  }
124
+ //#endregion
125
+ export { buildSoqlQuery, convertLoadSubsetFilter, convertLoadSubsetOrderBy, isAlwaysFalseFilter, serializeSoqlLiteral };
126
+
190
127
  //# sourceMappingURL=convertLoadSubsetOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertLoadSubsetOptions.js","sourceRoot":"","sources":["../../src/adapter/convertLoadSubsetOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convertLoadSubsetOptions.js","names":[],"sources":["../../src/adapter/convertLoadSubsetOptions.ts"],"sourcesContent":["import { FieldPath, LoadSubsetOptions, parseOrderByExpression, parseWhereExpression } from \"@tanstack/db\";\nimport { Temporal } from \"temporal-polyfill\";\n\nconst ALWAYS_FALSE = \"__ALWAYS_FALSE__\";\n\nexport type CompiledSoqlFilter = {\n clause?: string;\n alwaysFalse: boolean;\n};\n\nfunction quoteIdentifier(identifier: string): string {\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(identifier)) {\n throw new Error(`Invalid Salesforce identifier \"${identifier}\".`);\n }\n return identifier;\n}\n\nfunction fieldPathToSoql(fieldPath: FieldPath): string {\n if (fieldPath.length === 0) {\n throw new Error(\"Empty field path.\");\n }\n return fieldPath.map((segment) => quoteIdentifier(String(segment))).join(\".\");\n}\n\nfunction escapeSoqlString(value: string): string {\n let escaped = \"\";\n for (const character of value) {\n switch (character) {\n case \"\\\\\":\n escaped += \"\\\\\\\\\";\n break;\n case \"'\":\n escaped += \"\\\\'\";\n break;\n case \"\\b\":\n escaped += \"\\\\b\";\n break;\n case \"\\f\":\n escaped += \"\\\\f\";\n break;\n case \"\\n\":\n escaped += \"\\\\n\";\n break;\n case \"\\r\":\n escaped += \"\\\\r\";\n break;\n case \"\\t\":\n escaped += \"\\\\t\";\n break;\n default: {\n const codePoint = character.codePointAt(0)!;\n if (codePoint < 0x20 || codePoint === 0x7f) {\n throw new Error(\n `Cannot serialize control character U+${codePoint.toString(16).padStart(4, \"0\")} to SOQL.`\n );\n }\n escaped += character;\n }\n }\n }\n return escaped;\n}\n\nexport function serializeSoqlLiteral(value: unknown): string {\n if (value === null || value === undefined) {\n return \"null\";\n }\n if (typeof value === \"boolean\") {\n return value ? \"true\" : \"false\";\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new Error(`Cannot serialize non-finite number ${value} to SOQL.`);\n }\n return String(value);\n }\n if (typeof value === \"bigint\") {\n return String(value);\n }\n if (value instanceof Date) {\n return value.toISOString();\n }\n if (value instanceof Temporal.Instant) {\n return value.toString();\n }\n if (value instanceof Temporal.PlainDate || value instanceof Temporal.PlainDateTime) {\n return value.toString();\n }\n if (typeof value === \"string\") {\n return `'${escapeSoqlString(value)}'`;\n }\n throw new Error(`Unsupported SOQL literal type: ${typeof value}`);\n}\n\nexport function isAlwaysFalseFilter(filter: CompiledSoqlFilter | undefined): boolean {\n return Boolean(filter?.alwaysFalse);\n}\n\nfunction convertInFilter(fieldOrValue: unknown, valuesOrField: unknown): string {\n if (!Array.isArray(valuesOrField)) {\n throw new Error(\"Expected the second inArray argument to be an array or field path\");\n }\n\n if (!Array.isArray(fieldOrValue)) {\n return fieldOrValue == null\n ? ALWAYS_FALSE\n : `${fieldPathToSoql(valuesOrField as FieldPath)} INCLUDES (${serializeSoqlLiteral(fieldOrValue)})`;\n }\n\n const literals = (valuesOrField as unknown[])\n .filter((entry) => entry !== null && entry !== undefined)\n .map(serializeSoqlLiteral);\n if (literals.length === 0) return ALWAYS_FALSE;\n return `${fieldPathToSoql(fieldOrValue as FieldPath)} IN (${literals.join(\", \")})`;\n}\n\nexport function convertLoadSubsetFilter(filter: LoadSubsetOptions[\"where\"]): CompiledSoqlFilter | undefined {\n if (!filter) return undefined;\n\n const compiled =\n parseWhereExpression<string>(filter, {\n handlers: {\n and: (...filters: string[]) => {\n if (filters.includes(ALWAYS_FALSE)) return ALWAYS_FALSE;\n const clauses = filters.filter((clause) => clause.length > 0);\n if (clauses.length === 0) return \"\";\n if (clauses.length === 1) return clauses[0]!;\n return `(${clauses.join(\" AND \")})`;\n },\n or: (...filters: string[]) => {\n if (filters.every((clause) => clause === ALWAYS_FALSE)) return ALWAYS_FALSE;\n const clauses = filters.filter((clause) => clause !== ALWAYS_FALSE && clause.length > 0);\n if (clauses.length === 0) return \"\";\n if (clauses.length === 1) return clauses[0]!;\n return `(${clauses.join(\" OR \")})`;\n },\n not: (inner: string) => {\n if (inner === ALWAYS_FALSE) return \"\";\n if (!inner) return ALWAYS_FALSE;\n return `(NOT ${inner})`;\n },\n eq: (field: FieldPath, value) =>\n value == null\n ? `${fieldPathToSoql(field)} = null`\n : `${fieldPathToSoql(field)} = ${serializeSoqlLiteral(value)}`,\n gt: (field: FieldPath, value) =>\n value == null\n ? ALWAYS_FALSE\n : `${fieldPathToSoql(field)} > ${serializeSoqlLiteral(value)}`,\n gte: (field: FieldPath, value) =>\n value == null\n ? ALWAYS_FALSE\n : `${fieldPathToSoql(field)} >= ${serializeSoqlLiteral(value)}`,\n lt: (field: FieldPath, value) =>\n value == null\n ? ALWAYS_FALSE\n : `${fieldPathToSoql(field)} < ${serializeSoqlLiteral(value)}`,\n lte: (field: FieldPath, value) =>\n value == null\n ? ALWAYS_FALSE\n : `${fieldPathToSoql(field)} <= ${serializeSoqlLiteral(value)}`,\n isUndefined: (field: FieldPath) => `${fieldPathToSoql(field)} = null`,\n in: convertInFilter,\n like: (field: FieldPath, value: string) =>\n value === \"%\" ? \"\" : `${fieldPathToSoql(field)} LIKE ${serializeSoqlLiteral(value)}`,\n ilike: (field: FieldPath, value: string) =>\n // Salesforce LIKE is case-insensitive for most text fields.\n value === \"%\" ? \"\" : `${fieldPathToSoql(field)} LIKE ${serializeSoqlLiteral(value)}`,\n },\n }) ?? undefined;\n\n if (compiled === undefined) return undefined;\n if (compiled === ALWAYS_FALSE) {\n return { alwaysFalse: true };\n }\n return { clause: compiled || undefined, alwaysFalse: false };\n}\n\nexport function convertLoadSubsetOrderBy(orderBy: LoadSubsetOptions[\"orderBy\"]): string | undefined {\n if (!orderBy) return undefined;\n const fields = parseOrderByExpression(orderBy).map((ordering) => {\n const field = fieldPathToSoql(ordering.field);\n return `${field} ${ordering.direction.toUpperCase()}`;\n });\n return fields.length > 0 ? fields.join(\", \") : undefined;\n}\n\nexport function buildSoqlQuery(opts: {\n objectType: string;\n selectedProperties: string[];\n where?: CompiledSoqlFilter;\n orderBy?: string;\n limit?: number;\n offset?: number;\n}): string {\n const objectType = quoteIdentifier(opts.objectType);\n const select = opts.selectedProperties.map(quoteIdentifier).join(\", \");\n const clauses = [`SELECT ${select} FROM ${objectType}`];\n\n if (opts.where?.clause) {\n clauses.push(`WHERE ${opts.where.clause}`);\n }\n if (opts.orderBy) {\n clauses.push(`ORDER BY ${opts.orderBy}`);\n }\n if (opts.limit !== undefined) {\n clauses.push(`LIMIT ${Math.max(0, Math.trunc(opts.limit))}`);\n }\n if (opts.offset !== undefined && opts.offset > 0) {\n clauses.push(`OFFSET ${Math.max(0, Math.trunc(opts.offset))}`);\n }\n return clauses.join(\" \");\n}\n"],"mappings":"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"}
@@ -1,20 +1,22 @@
1
- import { type OntologyBackendAdapter, type OntologyBackendAdapterProvider, type OntologyIR } from "@party-stack/ontology";
2
- import { type SalesforceClient } from "@party-stack/salesforce-client";
3
- import { type SubscribeToSalesforceChangeEvents } from "./objectCollectionOptions.js";
1
+ import { SubscribeToSalesforceChangeEvents } from "./objectCollectionOptions.js";
2
+ import { SalesforceClient } from "@party-stack/salesforce-client";
3
+ import { OntologyBackendAdapter, OntologyBackendAdapterProvider, OntologyIR } from "@party-stack/ontology";
4
+ //#region src/adapter/createSalesforceOntologyBackendAdapter.d.ts
4
5
  export declare function createSalesforceOntologyBackendAdapter(opts: {
5
- client: SalesforceClient;
6
- ir: OntologyIR;
7
- subscribeToChangeEvents?: SubscribeToSalesforceChangeEvents;
8
- live?: boolean;
6
+ client: SalesforceClient;
7
+ ir: OntologyIR;
8
+ subscribeToChangeEvents?: SubscribeToSalesforceChangeEvents;
9
+ live?: boolean;
9
10
  }): OntologyBackendAdapter;
10
11
  export type CreateSalesforceOntologyBackendOptions<Context extends Record<string, unknown> = Record<string, unknown>> = ({
11
- client: SalesforceClient;
12
- subscribeToChangeEvents?: SubscribeToSalesforceChangeEvents;
12
+ client: SalesforceClient;
13
+ subscribeToChangeEvents?: SubscribeToSalesforceChangeEvents;
13
14
  } | {
14
- createClient: (ir: OntologyIR, context: Context) => SalesforceClient | Promise<SalesforceClient>;
15
- subscribeToChangeEvents?: SubscribeToSalesforceChangeEvents;
15
+ createClient: (ir: OntologyIR, context: Context) => SalesforceClient | Promise<SalesforceClient>;
16
+ subscribeToChangeEvents?: SubscribeToSalesforceChangeEvents;
16
17
  }) & {
17
- live?: boolean;
18
+ live?: boolean;
18
19
  };
19
20
  export declare function createSalesforceOntologyBackend<Context extends Record<string, unknown> = Record<string, unknown>>(opts: CreateSalesforceOntologyBackendOptions<Context>): OntologyBackendAdapterProvider<Context>;
21
+ //#endregion
20
22
  //# sourceMappingURL=createSalesforceOntologyBackendAdapter.d.ts.map