@salesforce/lds-runtime-mobile 1.318.0 → 1.320.0

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 (217) hide show
  1. package/dist/main.js +6823 -7054
  2. package/dist/types/NimbusDraftQueue.d.ts +1 -1
  3. package/dist/types/{draftsAdapters → drafts}/AbstractResourceRequestActionHandler.d.ts +21 -22
  4. package/dist/types/drafts/UiApiDraftRecordService.d.ts +43 -0
  5. package/{sfdc/types/draftsAdapters/ContentDocumentCompositeRepresentation → dist/types/drafts/contentDocument}/ContentDocumentCompositeRepresentationActionHandler.d.ts +13 -13
  6. package/{sfdc/types/draftsAdapters/ContentDocumentCompositeRepresentation → dist/types/drafts/contentDocument}/draftAwareAdapters/createContentDocumentAndVersion/index.d.ts +2 -2
  7. package/dist/types/drafts/index.d.ts +14 -0
  8. package/dist/types/{draftsAdapters/QuickActionExecutionRepresentation → drafts/quickActions}/QuickActionExecutionRepresentationHandler.d.ts +8 -13
  9. package/dist/types/drafts/quickActions/UpdateRecordQuickActionExecutionRepresentationHandler.d.ts +29 -0
  10. package/dist/types/{draftsAdapters/QuickActionExecutionRepresentation → drafts/quickActions}/draftAwareAdapters/performQuickAction.d.ts +1 -1
  11. package/{sfdc/types/draftsAdapters/QuickActionExecutionRepresentation → dist/types/drafts/quickActions}/draftAwareAdapters/updateRecordPerformQuickAction.d.ts +1 -1
  12. package/dist/types/drafts/records/actionHandlers/RecordEffectingHandler.d.ts +6 -0
  13. package/dist/types/drafts/records/actionHandlers/UiApiRecordActionHandler.d.ts +63 -0
  14. package/{sfdc/types/draftsAdapters/RecordRepresentation → dist/types/drafts/records}/draftAwareAdapters/createRecord.d.ts +2 -2
  15. package/{sfdc/types/draftsAdapters/RecordRepresentation → dist/types/drafts/records}/draftAwareAdapters/updateRecord.d.ts +2 -2
  16. package/dist/types/{draftsAdapters/RecordRepresentation → drafts/records}/environment/getRecordDraftEnvironment.d.ts +2 -2
  17. package/dist/types/{draftsAdapters/RecordRepresentation → drafts/records}/environment/getRecordsDraftEnvironment.d.ts +2 -2
  18. package/{sfdc/types/draftsAdapters/RecordRepresentation → dist/types/drafts/records}/environment/makeEnvironmentUiApiRecordDraftAware.d.ts +4 -4
  19. package/{sfdc/types/draftsAdapters/RecordRepresentation → dist/types/drafts/records}/records.d.ts +1 -1
  20. package/dist/types/drafts/sideEffects/SideEffectHandler.d.ts +14 -0
  21. package/dist/types/{sideEffects → drafts/sideEffects}/SideEffectService.d.ts +6 -6
  22. package/dist/types/drafts/utils/durableStore.d.ts +3 -0
  23. package/dist/types/durableStore/DurableRecordStore.d.ts +17 -0
  24. package/dist/types/durableStore/NimbusSqliteStore/tables/index.d.ts +0 -1
  25. package/dist/types/graphql/adapter/draftAwareGraphQLAdapterFactory.d.ts +6 -0
  26. package/dist/types/graphql/adapter/environmentAwareGraphQLBatchAdapterFactory.d.ts +4 -0
  27. package/dist/types/graphql/adapter/graphqlEvalAdapterFactory.d.ts +5 -0
  28. package/dist/types/graphql/adapter/utils.d.ts +2 -0
  29. package/dist/types/graphql/adapterFactory.d.ts +3 -0
  30. package/dist/types/graphql/array.d.ts +2 -0
  31. package/dist/types/graphql/base64.d.ts +4 -0
  32. package/dist/types/graphql/constants.d.ts +3 -0
  33. package/dist/types/graphql/context.d.ts +19 -0
  34. package/dist/types/graphql/dataloader.d.ts +26 -0
  35. package/dist/types/graphql/dateLiteral.d.ts +28 -0
  36. package/dist/types/graphql/dateTimePredication.d.ts +33 -0
  37. package/dist/types/graphql/evaluate.d.ts +12 -0
  38. package/dist/types/graphql/events.d.ts +37 -0
  39. package/dist/types/graphql/filterParser.d.ts +6 -0
  40. package/dist/types/graphql/index.d.ts +9 -0
  41. package/dist/types/graphql/instrumentLimits.d.ts +8 -0
  42. package/dist/types/graphql/language.d.ts +33 -0
  43. package/dist/types/graphql/lib.d.ts +52 -0
  44. package/dist/types/graphql/limit.d.ts +9 -0
  45. package/dist/types/graphql/orderByParser.d.ts +10 -0
  46. package/dist/types/graphql/pagination.d.ts +10 -0
  47. package/dist/types/graphql/query.d.ts +56 -0
  48. package/dist/types/graphql/recordLoader.d.ts +4 -0
  49. package/dist/types/graphql/resolvers/basic.d.ts +1 -0
  50. package/dist/types/graphql/resolvers/connection.d.ts +31 -0
  51. package/dist/types/graphql/resolvers/index.d.ts +8 -0
  52. package/dist/types/graphql/resolvers/pagination.d.ts +29 -0
  53. package/dist/types/graphql/schema.d.ts +51 -0
  54. package/dist/types/graphql/scopeParser.d.ts +4 -0
  55. package/dist/types/graphql/snapshot.d.ts +26 -0
  56. package/dist/types/graphql/staleRecords/batchingStaleRecordsAdapter.d.ts +10 -0
  57. package/dist/types/graphql/syntheticFields.d.ts +10 -0
  58. package/dist/types/graphql/typeguards.d.ts +19 -0
  59. package/dist/types/instrumentation/instrumentPrimingSession.d.ts +1 -1
  60. package/dist/types/instrumentation/metrics.d.ts +1 -1
  61. package/dist/types/main.d.ts +1 -0
  62. package/dist/types/priming/ConflictPool.d.ts +31 -0
  63. package/dist/types/priming/Emitter.d.ts +16 -0
  64. package/dist/types/priming/LdsPrimingRecordRefresher.d.ts +1 -1
  65. package/dist/types/priming/LdsRecordRefresher.d.ts +17 -0
  66. package/dist/types/priming/NimbusPrimingNetworkAdapter.d.ts +4 -4
  67. package/dist/types/priming/ObjectInfoLoader.d.ts +10 -0
  68. package/dist/types/priming/PrimingNetworkAdapter.d.ts +5 -0
  69. package/dist/types/priming/PrimingNetworkError.d.ts +5 -0
  70. package/dist/types/priming/PrimingSession.d.ts +67 -0
  71. package/dist/types/priming/PrimingStore.d.ts +27 -0
  72. package/dist/types/priming/RecordIngestor.d.ts +14 -0
  73. package/dist/types/priming/SqlitePrimingStore.d.ts +1 -1
  74. package/dist/types/priming/index.d.ts +10 -0
  75. package/dist/types/priming/metadata/MetadataHandler.d.ts +49 -0
  76. package/dist/types/priming/primingSessionFactory.d.ts +1 -1
  77. package/dist/types/priming/recordLoaders/NetworkRecordLoader.d.ts +16 -0
  78. package/dist/types/priming/recordLoaders/RecordLoader.d.ts +19 -0
  79. package/dist/types/priming/recordLoaders/RecordLoaderGraphQL.d.ts +37 -0
  80. package/dist/types/priming/recordLoaders/RecordLoaderGraphQLBatch.d.ts +11 -0
  81. package/dist/types/priming/recordLoaders/RecordLoaderSOQLComposite.d.ts +14 -0
  82. package/dist/types/priming/recordLoaders/SoqlRecordConverter.d.ts +32 -0
  83. package/dist/types/priming/recordLoaders/api.d.ts +2 -0
  84. package/dist/types/priming/recordLoaders/index.d.ts +4 -0
  85. package/dist/types/priming/typedBatch.d.ts +3 -0
  86. package/dist/types/priming/utils/merge.d.ts +31 -0
  87. package/dist/types/runtime.d.ts +1 -1
  88. package/package.json +14 -16
  89. package/sfdc/main.js +6823 -7054
  90. package/sfdc/types/NimbusDraftQueue.d.ts +1 -1
  91. package/sfdc/types/{draftsAdapters → drafts}/AbstractResourceRequestActionHandler.d.ts +21 -22
  92. package/sfdc/types/drafts/UiApiDraftRecordService.d.ts +43 -0
  93. package/{dist/types/draftsAdapters/ContentDocumentCompositeRepresentation → sfdc/types/drafts/contentDocument}/ContentDocumentCompositeRepresentationActionHandler.d.ts +13 -13
  94. package/{dist/types/draftsAdapters/ContentDocumentCompositeRepresentation → sfdc/types/drafts/contentDocument}/draftAwareAdapters/createContentDocumentAndVersion/index.d.ts +2 -2
  95. package/sfdc/types/drafts/index.d.ts +14 -0
  96. package/sfdc/types/{draftsAdapters/QuickActionExecutionRepresentation → drafts/quickActions}/QuickActionExecutionRepresentationHandler.d.ts +8 -13
  97. package/sfdc/types/drafts/quickActions/UpdateRecordQuickActionExecutionRepresentationHandler.d.ts +29 -0
  98. package/sfdc/types/{draftsAdapters/QuickActionExecutionRepresentation → drafts/quickActions}/draftAwareAdapters/performQuickAction.d.ts +1 -1
  99. package/{dist/types/draftsAdapters/QuickActionExecutionRepresentation → sfdc/types/drafts/quickActions}/draftAwareAdapters/updateRecordPerformQuickAction.d.ts +1 -1
  100. package/sfdc/types/drafts/records/actionHandlers/RecordEffectingHandler.d.ts +6 -0
  101. package/sfdc/types/drafts/records/actionHandlers/UiApiRecordActionHandler.d.ts +63 -0
  102. package/{dist/types/draftsAdapters/RecordRepresentation → sfdc/types/drafts/records}/draftAwareAdapters/createRecord.d.ts +2 -2
  103. package/{dist/types/draftsAdapters/RecordRepresentation → sfdc/types/drafts/records}/draftAwareAdapters/updateRecord.d.ts +2 -2
  104. package/sfdc/types/{draftsAdapters/RecordRepresentation → drafts/records}/environment/getRecordDraftEnvironment.d.ts +2 -2
  105. package/sfdc/types/{draftsAdapters/RecordRepresentation → drafts/records}/environment/getRecordsDraftEnvironment.d.ts +2 -2
  106. package/{dist/types/draftsAdapters/RecordRepresentation → sfdc/types/drafts/records}/environment/makeEnvironmentUiApiRecordDraftAware.d.ts +4 -4
  107. package/{dist/types/draftsAdapters/RecordRepresentation → sfdc/types/drafts/records}/records.d.ts +1 -1
  108. package/sfdc/types/drafts/sideEffects/SideEffectHandler.d.ts +14 -0
  109. package/sfdc/types/{sideEffects → drafts/sideEffects}/SideEffectService.d.ts +6 -6
  110. package/sfdc/types/drafts/utils/durableStore.d.ts +3 -0
  111. package/sfdc/types/durableStore/DurableRecordStore.d.ts +17 -0
  112. package/sfdc/types/durableStore/NimbusSqliteStore/tables/index.d.ts +0 -1
  113. package/sfdc/types/graphql/adapter/draftAwareGraphQLAdapterFactory.d.ts +6 -0
  114. package/sfdc/types/graphql/adapter/environmentAwareGraphQLBatchAdapterFactory.d.ts +4 -0
  115. package/sfdc/types/graphql/adapter/graphqlEvalAdapterFactory.d.ts +5 -0
  116. package/sfdc/types/graphql/adapter/utils.d.ts +2 -0
  117. package/sfdc/types/graphql/adapterFactory.d.ts +3 -0
  118. package/sfdc/types/graphql/array.d.ts +2 -0
  119. package/sfdc/types/graphql/base64.d.ts +4 -0
  120. package/sfdc/types/graphql/constants.d.ts +3 -0
  121. package/sfdc/types/graphql/context.d.ts +19 -0
  122. package/sfdc/types/graphql/dataloader.d.ts +26 -0
  123. package/sfdc/types/graphql/dateLiteral.d.ts +28 -0
  124. package/sfdc/types/graphql/dateTimePredication.d.ts +33 -0
  125. package/sfdc/types/graphql/evaluate.d.ts +12 -0
  126. package/sfdc/types/graphql/events.d.ts +37 -0
  127. package/sfdc/types/graphql/filterParser.d.ts +6 -0
  128. package/sfdc/types/graphql/index.d.ts +9 -0
  129. package/sfdc/types/graphql/instrumentLimits.d.ts +8 -0
  130. package/sfdc/types/graphql/language.d.ts +33 -0
  131. package/sfdc/types/graphql/lib.d.ts +52 -0
  132. package/sfdc/types/graphql/limit.d.ts +9 -0
  133. package/sfdc/types/graphql/orderByParser.d.ts +10 -0
  134. package/sfdc/types/graphql/pagination.d.ts +10 -0
  135. package/sfdc/types/graphql/query.d.ts +56 -0
  136. package/sfdc/types/graphql/recordLoader.d.ts +4 -0
  137. package/sfdc/types/graphql/resolvers/basic.d.ts +1 -0
  138. package/sfdc/types/graphql/resolvers/connection.d.ts +31 -0
  139. package/sfdc/types/graphql/resolvers/index.d.ts +8 -0
  140. package/sfdc/types/graphql/resolvers/pagination.d.ts +29 -0
  141. package/sfdc/types/graphql/schema.d.ts +51 -0
  142. package/sfdc/types/graphql/scopeParser.d.ts +4 -0
  143. package/sfdc/types/graphql/snapshot.d.ts +26 -0
  144. package/sfdc/types/graphql/staleRecords/batchingStaleRecordsAdapter.d.ts +10 -0
  145. package/sfdc/types/graphql/syntheticFields.d.ts +10 -0
  146. package/sfdc/types/graphql/typeguards.d.ts +19 -0
  147. package/sfdc/types/instrumentation/instrumentPrimingSession.d.ts +1 -1
  148. package/sfdc/types/instrumentation/metrics.d.ts +1 -1
  149. package/sfdc/types/main.d.ts +1 -0
  150. package/sfdc/types/priming/ConflictPool.d.ts +31 -0
  151. package/sfdc/types/priming/Emitter.d.ts +16 -0
  152. package/sfdc/types/priming/LdsPrimingRecordRefresher.d.ts +1 -1
  153. package/sfdc/types/priming/LdsRecordRefresher.d.ts +17 -0
  154. package/sfdc/types/priming/NimbusPrimingNetworkAdapter.d.ts +4 -4
  155. package/sfdc/types/priming/ObjectInfoLoader.d.ts +10 -0
  156. package/sfdc/types/priming/PrimingNetworkAdapter.d.ts +5 -0
  157. package/sfdc/types/priming/PrimingNetworkError.d.ts +5 -0
  158. package/sfdc/types/priming/PrimingSession.d.ts +67 -0
  159. package/sfdc/types/priming/PrimingStore.d.ts +27 -0
  160. package/sfdc/types/priming/RecordIngestor.d.ts +14 -0
  161. package/sfdc/types/priming/SqlitePrimingStore.d.ts +1 -1
  162. package/sfdc/types/priming/index.d.ts +10 -0
  163. package/sfdc/types/priming/metadata/MetadataHandler.d.ts +49 -0
  164. package/sfdc/types/priming/primingSessionFactory.d.ts +1 -1
  165. package/sfdc/types/priming/recordLoaders/NetworkRecordLoader.d.ts +16 -0
  166. package/sfdc/types/priming/recordLoaders/RecordLoader.d.ts +19 -0
  167. package/sfdc/types/priming/recordLoaders/RecordLoaderGraphQL.d.ts +37 -0
  168. package/sfdc/types/priming/recordLoaders/RecordLoaderGraphQLBatch.d.ts +11 -0
  169. package/sfdc/types/priming/recordLoaders/RecordLoaderSOQLComposite.d.ts +14 -0
  170. package/sfdc/types/priming/recordLoaders/SoqlRecordConverter.d.ts +32 -0
  171. package/sfdc/types/priming/recordLoaders/api.d.ts +2 -0
  172. package/sfdc/types/priming/recordLoaders/index.d.ts +4 -0
  173. package/sfdc/types/priming/typedBatch.d.ts +3 -0
  174. package/sfdc/types/priming/utils/merge.d.ts +31 -0
  175. package/sfdc/types/runtime.d.ts +1 -1
  176. package/dist/types/draftsAdapters/QuickActionExecutionRepresentation/UpdateRecordQuickActionExecutionRepresentationHandler.d.ts +0 -38
  177. package/dist/types/draftsAdapters/RecordRepresentation/actionHandlers/RecordEffectingHandler.d.ts +0 -6
  178. package/dist/types/draftsAdapters/RecordRepresentation/actionHandlers/UiApiRecordActionHandler.d.ts +0 -84
  179. package/dist/types/draftsAdapters/RecordRepresentation/replayDraftsOnRecord.d.ts +0 -40
  180. package/dist/types/draftsAdapters/UiApiDraftRecordService.d.ts +0 -57
  181. package/dist/types/draftsAdapters/index.d.ts +0 -14
  182. package/dist/types/draftsAdapters/utils/durableStore.d.ts +0 -12
  183. package/dist/types/durableStore/NimbusSqliteStore/tables/LdsDraftIdMapDataTable.d.ts +0 -5
  184. package/sfdc/types/draftsAdapters/QuickActionExecutionRepresentation/UpdateRecordQuickActionExecutionRepresentationHandler.d.ts +0 -38
  185. package/sfdc/types/draftsAdapters/RecordRepresentation/actionHandlers/RecordEffectingHandler.d.ts +0 -6
  186. package/sfdc/types/draftsAdapters/RecordRepresentation/actionHandlers/UiApiRecordActionHandler.d.ts +0 -84
  187. package/sfdc/types/draftsAdapters/RecordRepresentation/replayDraftsOnRecord.d.ts +0 -40
  188. package/sfdc/types/draftsAdapters/UiApiDraftRecordService.d.ts +0 -57
  189. package/sfdc/types/draftsAdapters/index.d.ts +0 -14
  190. package/sfdc/types/draftsAdapters/utils/durableStore.d.ts +0 -12
  191. package/sfdc/types/durableStore/NimbusSqliteStore/tables/LdsDraftIdMapDataTable.d.ts +0 -5
  192. /package/dist/types/{draftsAdapters → drafts}/IdempotentWrite.d.ts +0 -0
  193. /package/dist/types/{draftsAdapters/ContentDocumentCompositeRepresentation → drafts/contentDocument}/draftAwareAdapters/createContentDocumentAndVersion/events.d.ts +0 -0
  194. /package/dist/types/{draftsAdapters/ContentDocumentCompositeRepresentation → drafts/contentDocument}/shared.d.ts +0 -0
  195. /package/dist/types/{draftsAdapters/RecordRepresentation → drafts/records}/DraftRecordRepresentation.d.ts +0 -0
  196. /package/dist/types/{draftsAdapters/RecordRepresentation → drafts/records}/draftAwareAdapters/deleteRecord.d.ts +0 -0
  197. /package/dist/types/{sideEffects → drafts/sideEffects}/SideEffectStore.d.ts +0 -0
  198. /package/dist/types/{sideEffects → drafts/sideEffects}/index.d.ts +0 -0
  199. /package/dist/types/{sideEffects → drafts/sideEffects}/sideEffectEnvironment.d.ts +0 -0
  200. /package/dist/types/{sideEffects → drafts/sideEffects}/sideEffects.d.ts +0 -0
  201. /package/dist/types/{draftsAdapters → drafts}/utils/adapter.d.ts +0 -0
  202. /package/dist/types/{draftsAdapters → drafts}/utils/clone.d.ts +0 -0
  203. /package/dist/types/{draftsAdapters → drafts}/utils/error.d.ts +0 -0
  204. /package/dist/types/{draftsAdapters → drafts}/utils/language.d.ts +0 -0
  205. /package/sfdc/types/{draftsAdapters → drafts}/IdempotentWrite.d.ts +0 -0
  206. /package/sfdc/types/{draftsAdapters/ContentDocumentCompositeRepresentation → drafts/contentDocument}/draftAwareAdapters/createContentDocumentAndVersion/events.d.ts +0 -0
  207. /package/sfdc/types/{draftsAdapters/ContentDocumentCompositeRepresentation → drafts/contentDocument}/shared.d.ts +0 -0
  208. /package/sfdc/types/{draftsAdapters/RecordRepresentation → drafts/records}/DraftRecordRepresentation.d.ts +0 -0
  209. /package/sfdc/types/{draftsAdapters/RecordRepresentation → drafts/records}/draftAwareAdapters/deleteRecord.d.ts +0 -0
  210. /package/sfdc/types/{sideEffects → drafts/sideEffects}/SideEffectStore.d.ts +0 -0
  211. /package/sfdc/types/{sideEffects → drafts/sideEffects}/index.d.ts +0 -0
  212. /package/sfdc/types/{sideEffects → drafts/sideEffects}/sideEffectEnvironment.d.ts +0 -0
  213. /package/sfdc/types/{sideEffects → drafts/sideEffects}/sideEffects.d.ts +0 -0
  214. /package/sfdc/types/{draftsAdapters → drafts}/utils/adapter.d.ts +0 -0
  215. /package/sfdc/types/{draftsAdapters → drafts}/utils/clone.d.ts +0 -0
  216. /package/sfdc/types/{draftsAdapters → drafts}/utils/error.d.ts +0 -0
  217. /package/sfdc/types/{draftsAdapters → drafts}/utils/language.d.ts +0 -0
@@ -20,7 +20,7 @@ export declare class NimbusDraftQueue implements DraftQueue {
20
20
  mergeActions<Data, Response>(_targetActionId: string, _sourceActionId: string): Promise<DraftAction<Data, Response>>;
21
21
  retryAction<Data, Response>(_actionId: string): Promise<DraftAction<Data, Response>>;
22
22
  setMetadata(_actionId: string, _metadata: DraftActionMetadata): Promise<DraftAction<unknown, unknown>>;
23
- addHandler(_handler: ActionHandler<unknown, unknown, unknown>): Promise<void>;
23
+ addHandler(_handler: ActionHandler<unknown, unknown>): Promise<void>;
24
24
  addCustomHandler(_id: string, _executor: CustomActionExecutor): Promise<void>;
25
25
  removeHandler(_id: string): Promise<void>;
26
26
  updateDraftAction<Data, Response>(_action: DraftAction<Data, Response>): Promise<void>;
@@ -1,49 +1,51 @@
1
1
  import type { NetworkAdapter, ResourceRequest, Luvio, DurableStoreKeyMetadataMap } from '@luvio/engine';
2
- import type { DraftAction, CompletedDraftAction, QueueOperation, PendingDraftAction, DraftActionMetadata, DraftQueue } from '@salesforce/lds-drafts';
2
+ import type { DraftAction, CompletedDraftAction, QueueOperation, PendingDraftAction, DraftActionMetadata, DraftQueue, ActionHandler } from '@salesforce/lds-drafts';
3
3
  import { ProcessActionResult } from '@salesforce/lds-drafts';
4
- import type { ActionHandler, DraftIdAndKeyMapping } from '@salesforce/lds-drafts';
4
+ import type { UiApiDraftRecordService } from './UiApiDraftRecordService';
5
5
  export type ResponseIngestionEntry<T = unknown> = {
6
6
  response: T;
7
- synchronousIngest: AbstractResourceRequestActionHandler<T, unknown>['synchronousIngest'];
8
- buildCacheKeysForResponse: AbstractResourceRequestActionHandler<T, unknown>['buildCacheKeysFromResponse'];
7
+ synchronousIngest: AbstractResourceRequestActionHandler<T>['synchronousIngest'];
8
+ buildCacheKeysForResponse: AbstractResourceRequestActionHandler<T>['buildCacheKeysFromResponse'];
9
9
  };
10
+ export interface DraftIdAndKeyMapping {
11
+ draftId: string;
12
+ canonicalId: string;
13
+ draftKey: string;
14
+ canonicalKey: string;
15
+ }
10
16
  export declare const DEFAULT_FIELD_LAST_MODIFIED_DATE = "LastModifiedDate";
11
17
  export declare const DEFAULT_FIELD_CREATED_DATE = "CreatedDate";
12
- export declare abstract class AbstractResourceRequestActionHandler<ResponseType, DraftMetadata> implements ActionHandler<ResourceRequest, DraftMetadata, ResponseType> {
18
+ export declare abstract class AbstractResourceRequestActionHandler<ResponseType> implements ActionHandler<ResourceRequest, ResponseType> {
13
19
  protected readonly draftQueue: DraftQueue;
14
20
  protected readonly networkAdapter: NetworkAdapter;
15
21
  protected readonly getLuvio: () => Luvio;
16
- ephemeralRedirects: {
17
- [key: string]: string;
18
- };
22
+ protected readonly recordService: UiApiDraftRecordService;
19
23
  isIdempotencySupported: boolean;
20
24
  isLdsIdempotencyWriteDisabled: boolean;
21
25
  isBackdatingEnabled: boolean;
22
- constructor(draftQueue: DraftQueue, networkAdapter: NetworkAdapter, getLuvio: () => Luvio);
26
+ constructor(draftQueue: DraftQueue, networkAdapter: NetworkAdapter, getLuvio: () => Luvio, recordService: UiApiDraftRecordService);
23
27
  enqueue(data: ResourceRequest): Promise<PendingDraftAction<ResourceRequest>>;
24
- handleAction(action: DraftAction<ResourceRequest, ResponseType>, actionCompleted: (action: CompletedDraftAction<ResourceRequest, ResponseType>) => Promise<void>, actionErrored: (action: DraftAction<ResourceRequest, ResponseType>, retry: boolean, retryDelayInMs?: number, actionDataChanged?: boolean) => Promise<void>): Promise<ProcessActionResult>;
25
- handleIdempotencyServerError(responseBody: any, action: DraftAction<ResourceRequest, ResponseType>, updateIdempotencyKey: boolean, ...targetErrorCodes: string[]): boolean;
26
- isUiApiErrors(body: any): boolean;
27
- isBackdatingError(body: any, action: DraftAction<ResourceRequest, ResponseType>): any;
28
28
  buildPendingAction(request: ResourceRequest, queue: DraftAction<unknown, unknown>[]): Promise<PendingDraftAction<ResourceRequest>>;
29
- handleActionEnqueued(_action: PendingDraftAction<ResourceRequest>): Promise<void>;
29
+ handleAction(action: DraftAction<ResourceRequest, ResponseType>, actionCompleted: (action: CompletedDraftAction<ResourceRequest, ResponseType>) => Promise<void>, actionErrored: (action: DraftAction<ResourceRequest, ResponseType>, retry: boolean, retryDelayInMs?: number, actionDataChanged?: boolean) => Promise<void>): Promise<ProcessActionResult>;
30
+ handleActionEnqueued(action: PendingDraftAction<ResourceRequest>): Promise<void>;
30
31
  handleActionRemoved(action: DraftAction<ResourceRequest, ResponseType>): Promise<void>;
32
+ handleActionReplaced(target: DraftAction<ResourceRequest, ResponseType>, source: DraftAction<ResourceRequest, ResponseType>): Promise<void>;
33
+ handleActionCompleted(action: CompletedDraftAction<ResourceRequest, ResponseType>, queueOperations: QueueOperation[]): Promise<void>;
31
34
  getQueueOperationsForCompletingDrafts(queue: DraftAction<unknown, unknown>[], action: CompletedDraftAction<ResourceRequest, ResponseType>): QueueOperation[];
32
35
  getRedirectMappings(action: CompletedDraftAction<ResourceRequest, ResponseType>): DraftIdAndKeyMapping[] | undefined;
33
- handleActionCompleted(action: CompletedDraftAction<ResourceRequest, ResponseType>, queueOperations: QueueOperation[], allHandlers: ActionHandler<unknown, unknown, unknown>[]): Promise<void>;
34
36
  handleReplaceAction(targetAction: DraftAction<ResourceRequest, ResponseType>, sourceAction: DraftAction<ResourceRequest, ResponseType>): DraftAction<ResourceRequest, ResponseType>;
35
37
  mergeActions(targetAction: DraftAction<ResourceRequest, ResponseType>, sourceAction: DraftAction<ResourceRequest, ResponseType>): DraftAction<ResourceRequest, ResponseType>;
36
38
  shouldDeleteActionByTagOnRemoval(action: DraftAction<ResourceRequest, ResponseType>): boolean;
37
39
  updateMetadata(_existingMetadata: DraftActionMetadata, incomingMetadata: DraftActionMetadata): DraftActionMetadata;
38
40
  private isActionOfType;
39
- protected reingestRecord(action: DraftAction<ResourceRequest, ResponseType>): Promise<void>;
41
+ private handleIdempotencyServerError;
42
+ private isUiApiErrors;
43
+ private isBackdatingError;
40
44
  getDraftIdsFromAction(action: DraftAction<ResourceRequest, ResponseType>): string[];
41
45
  hasIdempotencySupport(): boolean;
42
- ingestResponses(responses: ResponseIngestionEntry[], action: DraftAction<ResourceRequest, ResponseType>): Promise<void>;
46
+ protected ingestResponses(responses: ResponseIngestionEntry[], action: DraftAction<ResourceRequest, ResponseType>): Promise<void>;
43
47
  evictKey(key: string): Promise<void>;
44
48
  abstract handlerId: string;
45
- abstract canHandlePublish(key: string): boolean;
46
- abstract canRepresentationContainDraftMetadata(representationName: string): boolean;
47
49
  /**
48
50
  * Extracts or synthesizes an id from a given resource request
49
51
  * @throws if the id cannot be determined or synthesized
@@ -54,9 +56,6 @@ export declare abstract class AbstractResourceRequestActionHandler<ResponseType,
54
56
  abstract buildTagForTargetId(id: string): string;
55
57
  abstract buildCacheKeysFromResponse(response: ResponseType): DurableStoreKeyMetadataMap;
56
58
  abstract synchronousIngest(response: ResponseType, action: DraftAction<ResourceRequest, ResponseType>): void;
57
- abstract getDataForAction(action: DraftAction<ResourceRequest, ResponseType>): Promise<ResponseType | undefined>;
58
- abstract getDraftMetadata(key: string): Promise<DraftMetadata | undefined>;
59
- abstract applyDraftsToIncomingData(key: string, data: unknown, draftMetadata: DraftMetadata | undefined, publishFn: (key: string, data: any) => void): void;
60
59
  /**
61
60
  * Returns true if the given targetId is a for a draft-created record
62
61
  *
@@ -0,0 +1,43 @@
1
+ import type { Luvio } from '@luvio/engine';
2
+ import type { DraftAction } from '@salesforce/lds-drafts';
3
+ import type { FieldRepresentation, ObjectInfoService } from './utils/types';
4
+ import type { RecordEffectingHandler } from './records/actionHandlers/RecordEffectingHandler';
5
+ import { type DurableStore } from '@luvio/environments';
6
+ import type { SideEffectStore } from './sideEffects';
7
+ import type { DurableRecordStore } from 'src/durableStore/DurableRecordStore';
8
+ export interface ReferenceIdFieldInfo {
9
+ id: string;
10
+ field: FieldRepresentation;
11
+ }
12
+ export declare class UiApiDraftRecordService {
13
+ private readonly getLuvio;
14
+ private readonly durableStore;
15
+ private readonly objectInfoService;
16
+ private readonly generateId;
17
+ private readonly sideEffectStore;
18
+ private readonly durableRecordStore;
19
+ private recordEffectingHandlers;
20
+ constructor(getLuvio: () => Luvio, durableStore: DurableStore, objectInfoService: ObjectInfoService, generateId: (prefix: string) => string, sideEffectStore: SideEffectStore, durableRecordStore: DurableRecordStore);
21
+ registerRecordHandler(recordHandler: RecordEffectingHandler): void;
22
+ setSideEffectsForActions(changedActions: DraftAction<unknown, unknown>[]): Promise<Set<string>>;
23
+ removeSideEffectsForAction(removedAction: DraftAction<unknown, unknown>): Promise<Set<string>>;
24
+ reapplyRecordSideEffects(recordKeys: Set<string>): Promise<void>;
25
+ synthesizeId(apiName: string): Promise<string>;
26
+ checkDraftPrequisites(apiName: string, fields: Record<string, any>): Promise<{
27
+ ok: boolean;
28
+ status: string;
29
+ fieldNames?: undefined;
30
+ missingRecordReferences?: undefined;
31
+ } | {
32
+ ok: boolean;
33
+ status: string;
34
+ fieldNames: string[];
35
+ missingRecordReferences?: undefined;
36
+ } | {
37
+ ok: boolean;
38
+ status: string;
39
+ missingRecordReferences: ReferenceIdFieldInfo[];
40
+ fieldNames?: undefined;
41
+ }>;
42
+ private recalculateForChangedActions;
43
+ }
@@ -1,33 +1,37 @@
1
1
  import type { DurableStoreKeyMetadataMap, Luvio, NetworkAdapter, ResourceRequest } from '@luvio/engine';
2
+ import type { DraftIdAndKeyMapping } from '../AbstractResourceRequestActionHandler';
2
3
  import { AbstractResourceRequestActionHandler, type ResponseIngestionEntry } from '../AbstractResourceRequestActionHandler';
3
- import type { PendingDraftAction, DraftAction, DraftQueue, CompletedDraftAction, DraftIdAndKeyMapping } from '@salesforce/lds-drafts';
4
- import type { RecordEffectingHandler } from '../RecordRepresentation/actionHandlers/RecordEffectingHandler';
5
- import type { DraftRecordOperation, RecordDraftMetadata } from '../RecordRepresentation/replayDraftsOnRecord';
4
+ import type { PendingDraftAction, DraftAction, DraftQueue, CompletedDraftAction } from '@salesforce/lds-drafts';
5
+ import type { RecordEffectingHandler } from '../records/actionHandlers/RecordEffectingHandler';
6
6
  import type { UiApiDraftRecordService } from '../UiApiDraftRecordService';
7
- import type { ContentDocumentCompositeRepresentation, CreateContentDocumentAndVersionResourceRequestConfig, ObjectInfoRepresentation } from '@salesforce/lds-adapters-uiapi';
7
+ import { type ContentDocumentCompositeRepresentation, type CreateContentDocumentAndVersionResourceRequestConfig, type ObjectInfoRepresentation } from '@salesforce/lds-adapters-uiapi';
8
8
  import type { BinaryStore } from '@salesforce/lds-store-binary';
9
+ import type { ObjectInfoService } from '../utils/types';
10
+ import { type SideEffect } from '../sideEffects/sideEffects';
11
+ import { type SideEffectService } from '../sideEffects/SideEffectService';
9
12
  export declare const HANDLER_ID = "ContentDocumentCompositeRepresentationActionHandler";
10
13
  export interface CreateContentDocumentAndVersionResourceRequest extends Omit<ResourceRequest, 'body' | 'method'> {
11
14
  body: CreateContentDocumentAndVersionResourceRequestConfig['body'];
12
15
  method: 'post';
13
16
  }
14
- export declare class ContentDocumentCompositeRepresentationActionHandler extends AbstractResourceRequestActionHandler<ContentDocumentCompositeRepresentation, RecordDraftMetadata> implements RecordEffectingHandler {
17
+ export declare class ContentDocumentCompositeRepresentationActionHandler extends AbstractResourceRequestActionHandler<ContentDocumentCompositeRepresentation> implements RecordEffectingHandler {
15
18
  protected readonly getLuvio: () => Luvio;
19
+ protected readonly userId: string;
16
20
  private readonly draftRecordService;
21
+ private readonly objectInfoService;
17
22
  protected readonly draftQueue: DraftQueue;
18
23
  protected readonly networkAdapter: NetworkAdapter;
19
24
  readonly isDraftId: (targetId: string) => boolean;
20
25
  private readonly binaryStore;
26
+ private readonly sideEffectService;
21
27
  private binaryStoreUrlsToUpdate;
22
28
  handlerId: string;
23
- constructor(getLuvio: () => Luvio, draftRecordService: UiApiDraftRecordService, draftQueue: DraftQueue, networkAdapter: NetworkAdapter, isDraftId: (targetId: string) => boolean, binaryStore: BinaryStore);
29
+ constructor(getLuvio: () => Luvio, userId: string, draftRecordService: UiApiDraftRecordService, objectInfoService: ObjectInfoService, draftQueue: DraftQueue, networkAdapter: NetworkAdapter, isDraftId: (targetId: string) => boolean, binaryStore: BinaryStore, sideEffectService: SideEffectService);
24
30
  buildPendingAction(request: CreateContentDocumentAndVersionResourceRequest, queue: DraftAction<unknown, unknown>[]): Promise<PendingDraftAction<CreateContentDocumentAndVersionResourceRequest>>;
25
31
  getBackdatingNameEntries(objectInfo: ObjectInfoRepresentation, timestamp: number): {
26
32
  name: string;
27
33
  value: string | File;
28
34
  }[];
29
- canHandlePublish(_key: string): boolean;
30
- canRepresentationContainDraftMetadata(_representationName: string): boolean;
31
35
  getIdFromRequest(_request: ResourceRequest): Promise<string>;
32
36
  getIdFromResponseBody(responseBody: ContentDocumentCompositeRepresentation): string;
33
37
  buildTagForTargetId(id: string): string;
@@ -36,14 +40,10 @@ export declare class ContentDocumentCompositeRepresentationActionHandler extends
36
40
  contentVersionId: string;
37
41
  contentDocumentLinkId: string;
38
42
  };
39
- getDataForAction(action: DraftAction<CreateContentDocumentAndVersionResourceRequest, ContentDocumentCompositeRepresentation>): Promise<ContentDocumentCompositeRepresentation | undefined>;
40
- handleActionEnqueued(action: PendingDraftAction<ResourceRequest>): Promise<void>;
41
43
  handleActionRemoved(action: DraftAction<ResourceRequest, ContentDocumentCompositeRepresentation>): Promise<void>;
42
44
  getRedirectMappings(action: CompletedDraftAction<ResourceRequest, ContentDocumentCompositeRepresentation>): DraftIdAndKeyMapping[] | undefined;
43
- getDraftMetadata(_key: string): Promise<RecordDraftMetadata | undefined>;
44
- applyDraftsToIncomingData(key: string, data: unknown, _draftMetadata: any, publishFn: (key: string, data: any) => void): void;
45
45
  getDraftIdsFromAction(action: DraftAction<ResourceRequest, ContentDocumentCompositeRepresentation>): string[];
46
- draftActionToDraftOperation(queueEntry: DraftAction<CreateContentDocumentAndVersionResourceRequest, ContentDocumentCompositeRepresentation>): DraftRecordOperation[] | undefined;
46
+ draftActionToSideEffects(queueEntry: DraftAction<CreateContentDocumentAndVersionResourceRequest, ContentDocumentCompositeRepresentation>): Promise<SideEffect[]>;
47
47
  buildCacheKeysFromResponse(response: ContentDocumentCompositeRepresentation): DurableStoreKeyMetadataMap;
48
48
  synchronousIngest(response: ContentDocumentCompositeRepresentation, action: DraftAction<ResourceRequest, ContentDocumentCompositeRepresentation>): void;
49
49
  mergeRequestBody<T>(): T;
@@ -2,5 +2,5 @@ import type { Luvio } from '@luvio/engine';
2
2
  import type { BinaryStore } from '@salesforce/lds-store-binary';
3
3
  import type { DraftAwareCreateContentDocumentAndVersionAdapter } from '@salesforce/lds-adapters-uiapi';
4
4
  import type { ContentDocumentCompositeRepresentationActionHandler } from '../../ContentDocumentCompositeRepresentationActionHandler';
5
- import type { DurableStore } from '@luvio/environments';
6
- export declare function createContentDocumentAndVersionDraftAdapterFactory(luvio: Luvio, binaryStore: BinaryStore, actionHandler: ContentDocumentCompositeRepresentationActionHandler, durableStore: DurableStore): DraftAwareCreateContentDocumentAndVersionAdapter;
5
+ import type { DurableRecordStore } from '../../../../durableStore/DurableRecordStore';
6
+ export declare function createContentDocumentAndVersionDraftAdapterFactory(luvio: Luvio, binaryStore: BinaryStore, actionHandler: ContentDocumentCompositeRepresentationActionHandler, durableRecordStore: DurableRecordStore): DraftAwareCreateContentDocumentAndVersionAdapter;
@@ -0,0 +1,14 @@
1
+ export { makeEnvironmentUiApiRecordDraftAware } from './records/environment/makeEnvironmentUiApiRecordDraftAware';
2
+ export { UiApiActionHandler } from './records/actionHandlers/UiApiRecordActionHandler';
3
+ export { UiApiDraftRecordService } from './UiApiDraftRecordService';
4
+ export { QuickActionExecutionRepresentationHandler } from './quickActions/QuickActionExecutionRepresentationHandler';
5
+ export { UpdateRecordQuickActionExecutionRepresentationHandler } from './quickActions/UpdateRecordQuickActionExecutionRepresentationHandler';
6
+ export { createContentDocumentAndVersionDraftAdapterFactory } from './contentDocument/draftAwareAdapters/createContentDocumentAndVersion';
7
+ export { ContentDocumentCompositeRepresentationActionHandler } from './contentDocument/ContentDocumentCompositeRepresentationActionHandler';
8
+ export { createRecordDraftAdapterFactory } from './records/draftAwareAdapters/createRecord';
9
+ export { updateRecordDraftAdapterFactory } from './records/draftAwareAdapters/updateRecord';
10
+ export { deleteRecordDraftAdapterFactory } from './records/draftAwareAdapters/deleteRecord';
11
+ export { performQuickActionDraftAdapterFactory } from './quickActions/draftAwareAdapters/performQuickAction';
12
+ export { performUpdateRecordQuickActionDraftAdapterFactory } from './quickActions/draftAwareAdapters/updateRecordPerformQuickAction';
13
+ export type { DraftRecordRepresentation } from './records/DraftRecordRepresentation';
14
+ export { isCreateContentDocumentAndVersionDraftAdapterEvent } from './contentDocument/draftAwareAdapters/createContentDocumentAndVersion/events';
@@ -1,31 +1,26 @@
1
- import type { DraftAction, DraftQueue, PendingDraftAction } from '@salesforce/lds-drafts';
1
+ import type { DraftAction, DraftQueue } from '@salesforce/lds-drafts';
2
2
  import { AbstractResourceRequestActionHandler } from '../AbstractResourceRequestActionHandler';
3
3
  import type { PerformActionInputRepresentation, QuickActionExecutionRepresentation } from '../../adapters/main';
4
4
  import type { DurableStoreKeyMetadataMap, Luvio, NetworkAdapter, ResourceRequest } from '@luvio/engine';
5
5
  import type { UiApiDraftRecordService } from '../UiApiDraftRecordService';
6
- import type { RecordEffectingHandler } from '../RecordRepresentation/actionHandlers/RecordEffectingHandler';
7
- import type { DraftRecordOperation } from '../RecordRepresentation/replayDraftsOnRecord';
6
+ import type { RecordEffectingHandler } from '../records/actionHandlers/RecordEffectingHandler';
7
+ import { type SideEffectService } from '../sideEffects/SideEffectService';
8
+ import { type SideEffect } from '../sideEffects';
8
9
  export declare const QUICK_ACTION_HANDLER = "QUICK_ACTION_HANDLER";
9
10
  interface PerformQuickActionResourceRequest extends Omit<ResourceRequest, 'body' | 'method'> {
10
11
  body: PerformActionInputRepresentation;
11
12
  method: 'post';
12
13
  }
13
- export declare class QuickActionExecutionRepresentationHandler extends AbstractResourceRequestActionHandler<QuickActionExecutionRepresentation, {}> implements RecordEffectingHandler {
14
+ export declare class QuickActionExecutionRepresentationHandler extends AbstractResourceRequestActionHandler<QuickActionExecutionRepresentation> implements RecordEffectingHandler {
14
15
  private readonly draftRecordService;
15
16
  readonly isDraftId: (targetId: string) => boolean;
17
+ private readonly sideEffectService;
16
18
  handlerId: string;
17
- constructor(getLuvio: () => Luvio, draftRecordService: UiApiDraftRecordService, draftQueue: DraftQueue, networkAdapter: NetworkAdapter, isDraftId: (targetId: string) => boolean);
18
- draftActionToDraftOperation(queueEntry: DraftAction<PerformQuickActionResourceRequest, QuickActionExecutionRepresentation>): DraftRecordOperation[] | undefined;
19
- handleActionEnqueued(action: PendingDraftAction<PerformQuickActionResourceRequest>): Promise<void>;
20
- canHandlePublish(_key: string): boolean;
21
- canRepresentationContainDraftMetadata(_representationName: string): boolean;
19
+ constructor(getLuvio: () => Luvio, draftRecordService: UiApiDraftRecordService, draftQueue: DraftQueue, networkAdapter: NetworkAdapter, isDraftId: (targetId: string) => boolean, sideEffectService: SideEffectService);
20
+ draftActionToSideEffects(queueEntry: DraftAction<PerformQuickActionResourceRequest, QuickActionExecutionRepresentation>): Promise<SideEffect[]>;
22
21
  getIdFromRequest(request: ResourceRequest): Promise<string>;
23
22
  getIdFromResponseBody(responseBody: QuickActionExecutionRepresentation): string;
24
23
  buildTagForTargetId(id: string): string;
25
- getDataForAction(action: DraftAction<ResourceRequest, QuickActionExecutionRepresentation>): Promise<QuickActionExecutionRepresentation | undefined>;
26
- getDraftMetadata(_key: string): Promise<{} | undefined>;
27
- applyDraftsToIncomingData(key: string, data: unknown, _draftMetadata: {} | undefined, publishFn: (key: string, data: any) => void): void;
28
- handleActionRemoved(action: DraftAction<ResourceRequest, QuickActionExecutionRepresentation>): Promise<void>;
29
24
  buildCacheKeysFromResponse(_response: QuickActionExecutionRepresentation): DurableStoreKeyMetadataMap;
30
25
  synchronousIngest(response: QuickActionExecutionRepresentation): void;
31
26
  mergeRequestBody<T>(): T;
@@ -0,0 +1,29 @@
1
+ import type { CompletedDraftAction, DraftAction, DraftQueue, QueueOperation } from '@salesforce/lds-drafts';
2
+ import { AbstractResourceRequestActionHandler } from '../AbstractResourceRequestActionHandler';
3
+ import type { DurableStoreKeyMetadataMap, Luvio, NetworkAdapter, ResourceRequest } from '@luvio/engine';
4
+ import type { PerformActionInputRepresentation, QuickActionExecutionRepresentation } from '../../adapters/main';
5
+ import type { UiApiDraftRecordService } from '../UiApiDraftRecordService';
6
+ import type { RecordEffectingHandler } from '../records/actionHandlers/RecordEffectingHandler';
7
+ import type { SideEffect } from '../sideEffects/sideEffects';
8
+ import { type SideEffectService } from '../sideEffects/SideEffectService';
9
+ export declare const UPDATE_RECORD_QUICK_ACTION_HANDLER = "UPDATE_RECORD_QUICK_ACTION_HANDLER";
10
+ interface PerformUpdateRecordQuickActionResourceRequest extends Omit<ResourceRequest, 'body' | 'method'> {
11
+ body: PerformActionInputRepresentation;
12
+ method: 'patch';
13
+ }
14
+ export declare class UpdateRecordQuickActionExecutionRepresentationHandler extends AbstractResourceRequestActionHandler<QuickActionExecutionRepresentation> implements RecordEffectingHandler {
15
+ private readonly draftRecordService;
16
+ readonly isDraftId: (targetId: string) => boolean;
17
+ private readonly sideEffectService;
18
+ handlerId: string;
19
+ constructor(getLuvio: () => Luvio, draftRecordService: UiApiDraftRecordService, draftQueue: DraftQueue, networkAdapter: NetworkAdapter, isDraftId: (targetId: string) => boolean, sideEffectService: SideEffectService);
20
+ draftActionToSideEffects(queueEntry: DraftAction<PerformUpdateRecordQuickActionResourceRequest, QuickActionExecutionRepresentation>): Promise<SideEffect[]>;
21
+ getIdFromRequest(request: ResourceRequest): Promise<string>;
22
+ getIdFromResponseBody(responseBody: QuickActionExecutionRepresentation): string;
23
+ buildTagForTargetId(id: string): string;
24
+ handleActionCompleted(action: CompletedDraftAction<ResourceRequest, QuickActionExecutionRepresentation>, _queueOperations: QueueOperation[]): Promise<void>;
25
+ buildCacheKeysFromResponse(_response: QuickActionExecutionRepresentation): DurableStoreKeyMetadataMap;
26
+ synchronousIngest(response: QuickActionExecutionRepresentation): void;
27
+ mergeRequestBody<T>(): T;
28
+ }
29
+ export {};
@@ -5,4 +5,4 @@ import type { QuickActionExecutionRepresentationHandler } from '../QuickActionEx
5
5
  * @param actionHandler The UIAPI Record action handler. NOTE: this adapter doesn't
6
6
  * register it with the DraftQueue, runtime should set that up
7
7
  */
8
- export declare function performQuickActionDraftAdapterFactory(actionHandler: QuickActionExecutionRepresentationHandler): DraftAwarePerformQuickActionAdapter;
8
+ export declare function performQuickActionDraftAdapterFactory(actionHandler: QuickActionExecutionRepresentationHandler, userId: string): DraftAwarePerformQuickActionAdapter;
@@ -5,4 +5,4 @@ import type { UpdateRecordQuickActionExecutionRepresentationHandler } from '../U
5
5
  * @param actionHandler The UIAPI Record action handler. NOTE: this adapter doesn't
6
6
  * register it with the DraftQueue, runtime should set that up
7
7
  */
8
- export declare function performUpdateRecordQuickActionDraftAdapterFactory(actionHandler: UpdateRecordQuickActionExecutionRepresentationHandler): DraftAwarePerformUpdateRecordQuickActionAdapter;
8
+ export declare function performUpdateRecordQuickActionDraftAdapterFactory(actionHandler: UpdateRecordQuickActionExecutionRepresentationHandler, userId: string): DraftAwarePerformUpdateRecordQuickActionAdapter;
@@ -0,0 +1,6 @@
1
+ import type { DraftAction } from '@salesforce/lds-drafts';
2
+ import { type SideEffect } from '../../sideEffects/sideEffects';
3
+ export interface RecordEffectingHandler {
4
+ draftActionToSideEffects(queueEntry: DraftAction<unknown, unknown>): Promise<SideEffect[]>;
5
+ handlerId: string;
6
+ }
@@ -0,0 +1,63 @@
1
+ import { type Adapter, type DurableStoreKeyMetadataMap, type Luvio, type NetworkAdapter, type ResourceRequest } from '@luvio/engine';
2
+ import type { GetRecordConfig, RecordRepresentation, RecordInputRepresentation } from '@salesforce/lds-adapters-uiapi';
3
+ import type { CompletedDraftAction, DraftAction, DraftActionMetadata, DraftQueue, PendingDraftAction, QueueOperation } from '@salesforce/lds-drafts';
4
+ import type { ObjectInfoService } from '../../utils/types';
5
+ import type { DraftIdAndKeyMapping } from '../../AbstractResourceRequestActionHandler';
6
+ import { AbstractResourceRequestActionHandler } from '../../AbstractResourceRequestActionHandler';
7
+ import type { SideEffect } from '../../sideEffects/sideEffects';
8
+ import type { UiApiDraftRecordService } from '../../UiApiDraftRecordService';
9
+ import type { RecordEffectingHandler } from './RecordEffectingHandler';
10
+ import { type SideEffectService } from '../../sideEffects/SideEffectService';
11
+ import type { DurableRecordStore } from 'src/durableStore/DurableRecordStore';
12
+ export declare const LDS_ACTION_HANDLER_ID = "LDS_ACTION_HANDLER";
13
+ export declare const LDS_ACTION_METADATA_API_NAME = "LDS_ACTION_METADATA_API_NAME";
14
+ export type FormatDisplayValue = (value: boolean | number | string | null, datatype: string) => null | string;
15
+ interface RecordEndpointResourceRequest extends Omit<ResourceRequest, 'body' | 'method'> {
16
+ body: RecordInputRepresentation;
17
+ method: 'post' | 'patch' | 'delete';
18
+ }
19
+ export type RecordResourceRequest = RecordEndpointResourceRequest;
20
+ export declare class UiApiActionHandler extends AbstractResourceRequestActionHandler<RecordRepresentation> implements RecordEffectingHandler {
21
+ protected readonly getLuvio: () => Luvio;
22
+ protected readonly networkAdapter: NetworkAdapter;
23
+ protected readonly draftQueue: DraftQueue;
24
+ private readonly getRecordAdapter;
25
+ private readonly objectInfoService;
26
+ readonly isDraftId: (targetId: string) => boolean;
27
+ protected readonly recordService: UiApiDraftRecordService;
28
+ private readonly sideEffectService;
29
+ private readonly durableRecordStore;
30
+ handlerId: string;
31
+ constructor(getLuvio: () => Luvio, networkAdapter: NetworkAdapter, draftQueue: DraftQueue, getRecordAdapter: Adapter<GetRecordConfig, RecordRepresentation>, objectInfoService: ObjectInfoService, isDraftId: (targetId: string) => boolean, recordService: UiApiDraftRecordService, sideEffectService: SideEffectService, durableRecordStore: DurableRecordStore);
32
+ buildPendingAction(request: RecordResourceRequest, queue: DraftAction<unknown, unknown>[]): Promise<PendingDraftAction<ResourceRequest>>;
33
+ private getBackdatingFields;
34
+ getRedirectMappings(action: CompletedDraftAction<ResourceRequest, RecordRepresentation>): DraftIdAndKeyMapping[] | undefined;
35
+ handleActionCompleted(completedAction: CompletedDraftAction<ResourceRequest, RecordRepresentation>, queueOperations: QueueOperation[]): Promise<void>;
36
+ private fetchReferenceRecord;
37
+ /**
38
+ * identify the API Name from the record ID and its field representation. For example, ApiName for `001x0000004cKfzAAE` is `Account` if its field info reference to `Account`
39
+ * representation
40
+ * @param id
41
+ * @param fieldInfo
42
+ * @returns apiName
43
+ */
44
+ private identifyApiName;
45
+ buildTagForTargetId(id: string): string;
46
+ getIdFromRequest(request: RecordResourceRequest): Promise<string>;
47
+ getIdFromResponseBody(responseBody: RecordRepresentation): string;
48
+ draftActionToSideEffects(action: DraftAction<RecordResourceRequest, RecordRepresentation>): Promise<SideEffect[]>;
49
+ updateMetadata(existingMetadata: DraftActionMetadata, incomingMetadata: DraftActionMetadata): DraftActionMetadata;
50
+ private getApiNameForRecordId;
51
+ /**
52
+ * Inspects the resource request to ensure this handler can handle it
53
+ * Inspects the resource request for draft id references. Replaces the draft ids
54
+ * with their canonical ids if they exist otherwise returns the request as is
55
+ * @param request The original resource request
56
+ * @returns the request with draft ids replaced or undefined if this handler is not capable of handling it
57
+ */
58
+ private resolveResourceRequest;
59
+ buildCacheKeysFromResponse(record: RecordRepresentation): DurableStoreKeyMetadataMap;
60
+ synchronousIngest(response: RecordRepresentation): void;
61
+ mergeRequestBody<T>(targetBody: T, sourceBody: T): T;
62
+ }
63
+ export {};
@@ -1,9 +1,9 @@
1
1
  import type { DraftAwareCreateRecordAdapter } from '@salesforce/lds-adapters-uiapi';
2
2
  import type { UiApiActionHandler } from '../actionHandlers/UiApiRecordActionHandler';
3
- import type { DurableStore } from '@luvio/environments';
3
+ import type { DurableRecordStore } from 'src/durableStore/DurableRecordStore';
4
4
  /**
5
5
  * @param luvio The runtime's luvio instance
6
6
  * @param actionHandler The UIAPI Record action handler. NOTE: this adapter doesn't
7
7
  * register it with the DraftQueue, runtime should set that up
8
8
  */
9
- export declare function createRecordDraftAdapterFactory(actionHandler: UiApiActionHandler, durableStore: DurableStore): DraftAwareCreateRecordAdapter;
9
+ export declare function createRecordDraftAdapterFactory(actionHandler: UiApiActionHandler, durableRecordStore: DurableRecordStore): DraftAwareCreateRecordAdapter;
@@ -1,9 +1,9 @@
1
1
  import type { DraftAwareUpdateRecordAdapter } from '@salesforce/lds-adapters-uiapi';
2
2
  import type { UiApiActionHandler } from '../actionHandlers/UiApiRecordActionHandler';
3
- import type { DurableStore } from '@luvio/environments';
3
+ import type { DurableRecordStore } from 'src/durableStore/DurableRecordStore';
4
4
  /**
5
5
  * @param luvio The runtime's luvio instance
6
6
  * @param actionHandler The UIAPI Record action handler. NOTE: this adapter doesn't
7
7
  * register it with the DraftQueue, runtime should set that up
8
8
  */
9
- export declare function updateRecordDraftAdapterFactory(actionHandler: UiApiActionHandler, durableStore: DurableStore): DraftAwareUpdateRecordAdapter;
9
+ export declare function updateRecordDraftAdapterFactory(actionHandler: UiApiActionHandler, durableRecordStore: DurableRecordStore): DraftAwareUpdateRecordAdapter;
@@ -1,4 +1,4 @@
1
1
  import type { Luvio } from '@luvio/engine';
2
+ import type { DurableEnvironment } from '@luvio/environments';
2
3
  import type { DraftEnvironmentOptions } from './makeEnvironmentUiApiRecordDraftAware';
3
- import type { DraftAwareEnvironment } from '@salesforce/lds-drafts';
4
- export declare function getRecordDraftEnvironment(luvio: Luvio, env: DraftAwareEnvironment, { isDraftId, durableStore }: DraftEnvironmentOptions): DraftAwareEnvironment;
4
+ export declare function getRecordDraftEnvironment(luvio: Luvio, env: DurableEnvironment, { isDraftId, durableRecordStore }: DraftEnvironmentOptions): DurableEnvironment;
@@ -1,5 +1,5 @@
1
1
  import type { Luvio } from '@luvio/engine';
2
+ import type { DurableEnvironment } from '@luvio/environments';
2
3
  import type { DraftEnvironmentOptions } from './makeEnvironmentUiApiRecordDraftAware';
3
- import type { DraftAwareEnvironment } from '@salesforce/lds-drafts';
4
4
  export declare const RECORDS_ENDPOINT_REGEX: RegExp;
5
- export declare function getRecordsDraftEnvironment(luvio: Luvio, env: DraftAwareEnvironment, { isDraftId }: DraftEnvironmentOptions): DraftAwareEnvironment;
5
+ export declare function getRecordsDraftEnvironment(luvio: Luvio, env: DurableEnvironment, { isDraftId }: DraftEnvironmentOptions): DurableEnvironment;
@@ -1,11 +1,11 @@
1
1
  import type { InMemoryStore, Luvio } from '@luvio/engine';
2
2
  import type { UiApiActionHandler } from '../actionHandlers/UiApiRecordActionHandler';
3
- import type { DraftAwareEnvironment } from '@salesforce/lds-drafts';
4
- import type { DurableStore } from '@luvio/environments';
3
+ import type { DurableEnvironment } from '@luvio/environments';
4
+ import type { DurableRecordStore } from 'src/durableStore/DurableRecordStore';
5
5
  export interface DraftEnvironmentOptions {
6
6
  store: InMemoryStore;
7
7
  handler: UiApiActionHandler;
8
- durableStore: DurableStore;
8
+ durableRecordStore: DurableRecordStore;
9
9
  isDraftId: (id: string) => boolean;
10
10
  }
11
- export declare function makeEnvironmentUiApiRecordDraftAware(luvio: Luvio, options: DraftEnvironmentOptions, env: DraftAwareEnvironment): DraftAwareEnvironment;
11
+ export declare function makeEnvironmentUiApiRecordDraftAware(luvio: Luvio, options: DraftEnvironmentOptions, env: DurableEnvironment): DurableEnvironment;
@@ -1,5 +1,5 @@
1
1
  import type { ResourceRequest, Luvio } from '@luvio/engine';
2
- import type { RecordRepresentation } from '@salesforce/lds-adapters-uiapi';
2
+ import type { RecordRepresentation } from '../../adapters/main';
3
3
  import type { DraftRecordRepresentation } from './DraftRecordRepresentation';
4
4
  export declare const RECORD_ENDPOINT_REGEX: RegExp;
5
5
  /**
@@ -0,0 +1,14 @@
1
+ import type { DurableRecordRepresentation } from '@salesforce/lds-durable-records';
2
+ import type { CreateRecordSideEffect, DeleteRecordSideEffect, UpdateRecordSideEffect } from './sideEffects';
3
+ export interface SideEffectHandler<EntryType, EffectType> {
4
+ apply(entry: EntryType | undefined, effect: EffectType): EntryType | undefined;
5
+ }
6
+ export declare class CreateRecordEffectHandler implements SideEffectHandler<DurableRecordRepresentation | undefined, CreateRecordSideEffect> {
7
+ apply(entry: DurableRecordRepresentation | undefined, effect: CreateRecordSideEffect): DurableRecordRepresentation | undefined;
8
+ }
9
+ export declare class UpdateRecordEffectHandler implements SideEffectHandler<DurableRecordRepresentation, UpdateRecordSideEffect> {
10
+ apply(record: DurableRecordRepresentation | undefined, effect: UpdateRecordSideEffect): DurableRecordRepresentation | undefined;
11
+ }
12
+ export declare class DeleteRecordEffectHandler implements SideEffectHandler<DurableRecordRepresentation, DeleteRecordSideEffect> {
13
+ apply(entry: DurableRecordRepresentation | undefined, effect: DeleteRecordSideEffect): DurableRecordRepresentation | undefined;
14
+ }
@@ -1,16 +1,16 @@
1
- import { type DurableStore } from '@luvio/environments';
2
- import type { FormatDisplayValue } from '../draftsAdapters/RecordRepresentation/actionHandlers/UiApiRecordActionHandler';
3
- import type { ObjectInfoService } from '../utils/ObjectInfoService';
1
+ import type { FormatDisplayValue } from '../records/actionHandlers/UiApiRecordActionHandler';
2
+ import type { ObjectInfoService } from '../utils/types';
4
3
  import type { CreateRecordSideEffect, DeleteRecordSideEffect, UpdateRecordSideEffect } from './sideEffects';
4
+ import type { DurableRecordStore } from 'src/durableStore/DurableRecordStore';
5
5
  export declare class SideEffectService {
6
- private readonly durableStore;
6
+ private readonly durableRecordStore;
7
7
  private readonly objectInfoService;
8
8
  private readonly userId;
9
9
  private readonly formatDisplayValue;
10
- constructor(durableStore: DurableStore, objectInfoService: ObjectInfoService, userId: string, formatDisplayValue: FormatDisplayValue);
10
+ constructor(durableRecordStore: DurableRecordStore, objectInfoService: ObjectInfoService, userId: string, formatDisplayValue: FormatDisplayValue);
11
11
  createRecordCreateSideEffect(recordId: string, draftActionId: string, uniqueId: string, apiName: string, timestamp: number, fields: Record<string, any>): Promise<CreateRecordSideEffect>;
12
12
  createRecordUpdateSideEffect(recordId: string, draftActionId: string, uniqueId: string, apiName: string, timestamp: number, fields: Record<string, any>): Promise<UpdateRecordSideEffect>;
13
- createRecordDeleteSideEffect(recordId: string, draftActionId: string, uniqueId: string, apiName: string, timestamp: number, fields: Record<string, any>): Promise<DeleteRecordSideEffect>;
13
+ createRecordDeleteSideEffect(recordId: string, draftActionId: string, uniqueId: string, apiName: string, timestamp: number): Promise<DeleteRecordSideEffect>;
14
14
  private createSideEffect;
15
15
  private createLink;
16
16
  private synthesizeRecordFromParts;
@@ -0,0 +1,3 @@
1
+ import type { DurableRecordRepresentationField } from '@salesforce/lds-durable-records';
2
+ export declare function isDraftFieldPending(field: DurableRecordRepresentationField): boolean;
3
+ export declare function isDraftFieldMissing(field: DurableRecordRepresentationField): boolean;
@@ -0,0 +1,17 @@
1
+ import { type DurableStore } from '@luvio/environments';
2
+ import type { Luvio, StoreMetadata } from '@luvio/engine';
3
+ import type { DurableRecordRepresentation } from '@salesforce/lds-durable-records';
4
+ import type { SqliteStore } from '@salesforce/lds-store-sql';
5
+ export declare class DurableRecordStore {
6
+ private readonly durableStore;
7
+ private readonly getLuvio;
8
+ constructor(durableStore: DurableStore & SqliteStore, getLuvio: () => Luvio);
9
+ exists(key: string): Promise<boolean>;
10
+ getRecord(key: string): Promise<DurableRecordRepresentation | undefined>;
11
+ getRecords(keys: string[]): Promise<Map<string, DurableRecordRepresentation>>;
12
+ getRecordsWithMetadata(keys: string[]): Promise<Map<string, {
13
+ record: DurableRecordRepresentation;
14
+ metadata: StoreMetadata | undefined;
15
+ }>>;
16
+ private entriesToRecordDirectory;
17
+ }
@@ -1,2 +1 @@
1
1
  export { LdsDraftsDataTable } from './LdsDraftsDataTable';
2
- export { LdsDraftIdMapDataTable } from './LdsDraftIdMapDataTable';
@@ -0,0 +1,6 @@
1
+ import type { Luvio, Snapshot, StoreLookup, CoercedAdapterRequestContext } from '@luvio/engine';
2
+ import type { DraftAwareGraphQLAdapter, GraphQLRepresentation } from '@salesforce/lds-adapters-uiapi';
3
+ import type { SqliteStore } from '@salesforce/lds-store-sql';
4
+ import type { DraftFunctions, ObjectInfoService } from '../types';
5
+ export declare const replaceDraftIdsInVariables: (variables: Record<string, any>, draftFunctions: DraftFunctions, unmappedDraftIDs: Set<string>) => Record<string, any>;
6
+ export declare function draftAwareGraphQLAdapterFactory(userId: string, objectInfoService: ObjectInfoService, store: SqliteStore, luvio: Luvio, isDraftId: (id: string) => boolean, buildCachedSnapshotCachePolicy: (context: any, storeLookup: StoreLookup<GraphQLRepresentation, unknown>) => Snapshot<GraphQLRepresentation, any>, buildNetworkSnapshotCachePolicy: (context: any, coercedAdapterRequestContext: CoercedAdapterRequestContext) => Promise<Snapshot<GraphQLRepresentation, any>>): DraftAwareGraphQLAdapter;
@@ -0,0 +1,4 @@
1
+ import type { CoercedAdapterRequestContext, Luvio, Snapshot, StoreLookup } from '@luvio/engine';
2
+ import type { GraphQLBatchRepresentation, EnvironmentAwareGraphQLBatchAdapter } from '@salesforce/lds-adapters-uiapi';
3
+ import type { ObjectInfoService } from '../types';
4
+ export declare function environmentAwareGraphQLBatchAdapterFactory(objectInfoService: ObjectInfoService, luvio: Luvio, isDraftId: (id: string) => boolean, buildCachedSnapshotCachePolicy: (context: any, storeLookup: StoreLookup<GraphQLBatchRepresentation, unknown>) => Snapshot<GraphQLBatchRepresentation, any>, buildNetworkSnapshotCachePolicy: (context: any, coercedAdapterRequestContext: CoercedAdapterRequestContext) => Promise<Snapshot<GraphQLBatchRepresentation, any>>): EnvironmentAwareGraphQLBatchAdapter;
@@ -0,0 +1,5 @@
1
+ import type { Luvio } from '@luvio/engine';
2
+ import type { DraftAwareGraphQLAdapter } from '@salesforce/lds-adapters-uiapi';
3
+ import type { SqliteStore } from '@salesforce/lds-store-sql';
4
+ import type { ObjectInfoService } from '../types';
5
+ export declare function graphqlEvalAdapterFactory(_userId: string, _objectInfoService: ObjectInfoService, _store: SqliteStore, _luvio: Luvio, _isDraftId: (id: string) => boolean): DraftAwareGraphQLAdapter;
@@ -0,0 +1,2 @@
1
+ import type { Luvio } from '@luvio/engine';
2
+ export declare function getCanonicalIdFunction(luvio: Luvio): (id: string) => string;
@@ -0,0 +1,3 @@
1
+ export { draftAwareGraphQLAdapterFactory } from './adapter/draftAwareGraphQLAdapterFactory';
2
+ export { environmentAwareGraphQLBatchAdapterFactory } from './adapter/environmentAwareGraphQLBatchAdapterFactory';
3
+ export { graphqlEvalAdapterFactory } from './adapter/graphqlEvalAdapterFactory';
@@ -0,0 +1,2 @@
1
+ export declare function removeUndefined<T>(array: T[]): NonNullable<T>[];
2
+ export declare function flat(arr: any[], d?: number): any[];
@@ -0,0 +1,4 @@
1
+ export declare function btoaPolyfill(input: string): string;
2
+ export declare function atobPolyfill(data: string): string;
3
+ export declare const base64encode: (data: string) => string;
4
+ export declare const base64decode: (data: string) => string;
@@ -0,0 +1,3 @@
1
+ export declare const JSON_EXTRACT_PATH_INGESTION_TIMESTAMP = "$.ingestionTimestamp";
2
+ export declare const JSON_EXTRACT_PATH_INGESTION_APINAME = "$.apiName";
3
+ export declare const JSON_EXTRACT_PATH_DRAFTS = "$.drafts";
@@ -0,0 +1,19 @@
1
+ import type { AvailableSnapshot } from '@luvio/engine';
2
+ import type { GraphQLRepresentation } from '@salesforce/lds-adapters-uiapi';
3
+ import type { SqliteResult, SqliteStore, SqliteType } from '@salesforce/lds-store-sql';
4
+ import type { DataLoader } from './dataloader';
5
+ import type { DraftFunctions, LocalEvaluationRuntimeSettings, ObjectInfoMap, RecordRepresentation } from './types';
6
+ export type QueryFunction = (sql: string, params: SqliteType[]) => Promise<SqliteResult>;
7
+ export type ResolverContext = {
8
+ query: QueryFunction;
9
+ objectInfos: ObjectInfoMap;
10
+ eventEmitter: (eventData: unknown) => void;
11
+ settings: LocalEvaluationRuntimeSettings;
12
+ Record: DataLoader<string, RecordRepresentation>;
13
+ snapshot: AvailableSnapshot<GraphQLRepresentation>;
14
+ seenRecordIds: Set<string>;
15
+ possibleStaleRecordMap: Map<string, string[]>;
16
+ draftFunctions?: DraftFunctions;
17
+ mappedCursors: Map<string, string>;
18
+ };
19
+ export declare function createContext(store: SqliteStore, objectInfos: ObjectInfoMap, eventEmitter: (eventData: unknown) => void, settings: LocalEvaluationRuntimeSettings, snapshot: AvailableSnapshot<GraphQLRepresentation>, mappedCursors?: Map<string, string>, draftFunctions?: DraftFunctions): ResolverContext;