@salesforce/lds-runtime-mobile 1.316.0 → 1.317.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.
- package/dist/main.js +637 -639
- package/dist/types/draftsAdapters/AbstractResourceRequestActionHandler.d.ts +71 -0
- package/dist/types/draftsAdapters/ContentDocumentCompositeRepresentation/ContentDocumentCompositeRepresentationActionHandler.d.ts +2 -2
- package/dist/types/draftsAdapters/IdempotentWrite.d.ts +33 -0
- package/dist/types/draftsAdapters/QuickActionExecutionRepresentation/QuickActionExecutionRepresentationHandler.d.ts +1 -1
- package/dist/types/draftsAdapters/QuickActionExecutionRepresentation/UpdateRecordQuickActionExecutionRepresentationHandler.d.ts +1 -1
- package/dist/types/draftsAdapters/RecordRepresentation/actionHandlers/UiApiRecordActionHandler.d.ts +1 -1
- package/package.json +16 -16
- package/sfdc/main.js +637 -639
- package/sfdc/types/draftsAdapters/AbstractResourceRequestActionHandler.d.ts +71 -0
- package/sfdc/types/draftsAdapters/ContentDocumentCompositeRepresentation/ContentDocumentCompositeRepresentationActionHandler.d.ts +2 -2
- package/sfdc/types/draftsAdapters/IdempotentWrite.d.ts +33 -0
- package/sfdc/types/draftsAdapters/QuickActionExecutionRepresentation/QuickActionExecutionRepresentationHandler.d.ts +1 -1
- package/sfdc/types/draftsAdapters/QuickActionExecutionRepresentation/UpdateRecordQuickActionExecutionRepresentationHandler.d.ts +1 -1
- package/sfdc/types/draftsAdapters/RecordRepresentation/actionHandlers/UiApiRecordActionHandler.d.ts +1 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { NetworkAdapter, ResourceRequest, Luvio, DurableStoreKeyMetadataMap } from '@luvio/engine';
|
|
2
|
+
import type { DraftAction, CompletedDraftAction, QueueOperation, PendingDraftAction, DraftActionMetadata, DraftQueue } from '@salesforce/lds-drafts';
|
|
3
|
+
import { ProcessActionResult } from '@salesforce/lds-drafts';
|
|
4
|
+
import type { ActionHandler, DraftIdAndKeyMapping } from '@salesforce/lds-drafts';
|
|
5
|
+
export type ResponseIngestionEntry<T = unknown> = {
|
|
6
|
+
response: T;
|
|
7
|
+
synchronousIngest: AbstractResourceRequestActionHandler<T, unknown>['synchronousIngest'];
|
|
8
|
+
buildCacheKeysForResponse: AbstractResourceRequestActionHandler<T, unknown>['buildCacheKeysFromResponse'];
|
|
9
|
+
};
|
|
10
|
+
export declare const DEFAULT_FIELD_LAST_MODIFIED_DATE = "LastModifiedDate";
|
|
11
|
+
export declare const DEFAULT_FIELD_CREATED_DATE = "CreatedDate";
|
|
12
|
+
export declare abstract class AbstractResourceRequestActionHandler<ResponseType, DraftMetadata> implements ActionHandler<ResourceRequest, DraftMetadata, ResponseType> {
|
|
13
|
+
protected readonly draftQueue: DraftQueue;
|
|
14
|
+
protected readonly networkAdapter: NetworkAdapter;
|
|
15
|
+
protected readonly getLuvio: () => Luvio;
|
|
16
|
+
ephemeralRedirects: {
|
|
17
|
+
[key: string]: string;
|
|
18
|
+
};
|
|
19
|
+
isIdempotencySupported: boolean;
|
|
20
|
+
isLdsIdempotencyWriteDisabled: boolean;
|
|
21
|
+
isBackdatingEnabled: boolean;
|
|
22
|
+
constructor(draftQueue: DraftQueue, networkAdapter: NetworkAdapter, getLuvio: () => Luvio);
|
|
23
|
+
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
|
+
buildPendingAction(request: ResourceRequest, queue: DraftAction<unknown, unknown>[]): Promise<PendingDraftAction<ResourceRequest>>;
|
|
29
|
+
handleActionEnqueued(_action: PendingDraftAction<ResourceRequest>): Promise<void>;
|
|
30
|
+
handleActionRemoved(action: DraftAction<ResourceRequest, ResponseType>): Promise<void>;
|
|
31
|
+
getQueueOperationsForCompletingDrafts(queue: DraftAction<unknown, unknown>[], action: CompletedDraftAction<ResourceRequest, ResponseType>): QueueOperation[];
|
|
32
|
+
getRedirectMappings(action: CompletedDraftAction<ResourceRequest, ResponseType>): DraftIdAndKeyMapping[] | undefined;
|
|
33
|
+
handleActionCompleted(action: CompletedDraftAction<ResourceRequest, ResponseType>, queueOperations: QueueOperation[], allHandlers: ActionHandler<unknown, unknown, unknown>[]): Promise<void>;
|
|
34
|
+
handleReplaceAction(targetAction: DraftAction<ResourceRequest, ResponseType>, sourceAction: DraftAction<ResourceRequest, ResponseType>): DraftAction<ResourceRequest, ResponseType>;
|
|
35
|
+
mergeActions(targetAction: DraftAction<ResourceRequest, ResponseType>, sourceAction: DraftAction<ResourceRequest, ResponseType>): DraftAction<ResourceRequest, ResponseType>;
|
|
36
|
+
shouldDeleteActionByTagOnRemoval(action: DraftAction<ResourceRequest, ResponseType>): boolean;
|
|
37
|
+
updateMetadata(_existingMetadata: DraftActionMetadata, incomingMetadata: DraftActionMetadata): DraftActionMetadata;
|
|
38
|
+
private isActionOfType;
|
|
39
|
+
protected reingestRecord(action: DraftAction<ResourceRequest, ResponseType>): Promise<void>;
|
|
40
|
+
getDraftIdsFromAction(action: DraftAction<ResourceRequest, ResponseType>): string[];
|
|
41
|
+
hasIdempotencySupport(): boolean;
|
|
42
|
+
ingestResponses(responses: ResponseIngestionEntry[], action: DraftAction<ResourceRequest, ResponseType>): Promise<void>;
|
|
43
|
+
evictKey(key: string): Promise<void>;
|
|
44
|
+
abstract handlerId: string;
|
|
45
|
+
abstract canHandlePublish(key: string): boolean;
|
|
46
|
+
abstract canRepresentationContainDraftMetadata(representationName: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Extracts or synthesizes an id from a given resource request
|
|
49
|
+
* @throws if the id cannot be determined or synthesized
|
|
50
|
+
* @param request the request to get the id from
|
|
51
|
+
*/
|
|
52
|
+
abstract getIdFromRequest(request: ResourceRequest): Promise<string>;
|
|
53
|
+
abstract getIdFromResponseBody(responseBody: ResponseType): string;
|
|
54
|
+
abstract buildTagForTargetId(id: string): string;
|
|
55
|
+
abstract buildCacheKeysFromResponse(response: ResponseType): DurableStoreKeyMetadataMap;
|
|
56
|
+
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
|
+
/**
|
|
61
|
+
* Returns true if the given targetId is a for a draft-created record
|
|
62
|
+
*
|
|
63
|
+
* @param targetId the targetId to check
|
|
64
|
+
*/
|
|
65
|
+
abstract isDraftId(targetId: string): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Overlay the sourceBody over top of the targetBody
|
|
68
|
+
*/
|
|
69
|
+
abstract mergeRequestBody<T = unknown>(targetBody: T, sourceBody: T): T;
|
|
70
|
+
}
|
|
71
|
+
export declare function isResourceRequestAction(action: DraftAction<unknown, unknown>): action is DraftAction<ResourceRequest, unknown>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DurableStoreKeyMetadataMap, Luvio, NetworkAdapter, ResourceRequest } from '@luvio/engine';
|
|
2
|
-
import { AbstractResourceRequestActionHandler } from '
|
|
3
|
-
import type {
|
|
2
|
+
import { AbstractResourceRequestActionHandler, type ResponseIngestionEntry } from '../AbstractResourceRequestActionHandler';
|
|
3
|
+
import type { PendingDraftAction, DraftAction, DraftQueue, CompletedDraftAction, DraftIdAndKeyMapping } from '@salesforce/lds-drafts';
|
|
4
4
|
import type { RecordEffectingHandler } from '../RecordRepresentation/actionHandlers/RecordEffectingHandler';
|
|
5
5
|
import type { DraftRecordOperation, RecordDraftMetadata } from '../RecordRepresentation/replayDraftsOnRecord';
|
|
6
6
|
import type { UiApiDraftRecordService } from '../UiApiDraftRecordService';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { HttpStatusCode, Headers } from '@luvio/engine';
|
|
2
|
+
export interface UIApiError {
|
|
3
|
+
errorCode: string;
|
|
4
|
+
message: string | null;
|
|
5
|
+
}
|
|
6
|
+
export declare const enum IdempotentWriteSpecificHttpStatusCode {
|
|
7
|
+
RequestTimeout = 408,
|
|
8
|
+
Conflict = 409,
|
|
9
|
+
BadGateway = 502,
|
|
10
|
+
ServiceUnavailable = 503,
|
|
11
|
+
UnProcessableEntity = 422
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The http status code which could be returned from idempotent write.
|
|
15
|
+
*/
|
|
16
|
+
export type IdempotentWriteHttpStatusCode = IdempotentWriteSpecificHttpStatusCode | HttpStatusCode;
|
|
17
|
+
export declare const HTTP_HEADER_RETRY_AFTER = "Retry-After";
|
|
18
|
+
export declare const HTTP_HEADER_IDEMPOTENCY_KEY = "Idempotency-Key";
|
|
19
|
+
export declare const ERROR_CODE_IDEMPOTENCY_FEATURE_NOT_ENABLED = "IDEMPOTENCY_FEATURE_NOT_ENABLED";
|
|
20
|
+
export declare const ERROR_CODE_IDEMPOTENCY_NOT_SUPPORTED = "IDEMPOTENCY_NOT_SUPPORTED";
|
|
21
|
+
export declare const ERROR_CODE_IDEMPOTENCY_KEY_USED_DIFFERENT_USER = "IDEMPOTENCY_KEY_USED_DIFFERENT_USER";
|
|
22
|
+
export declare const ERROR_CODE_IDEMPOTENCY_CONCURRENT_REQUEST = "IDEMPOTENCY_CONCURRENT_REQUEST";
|
|
23
|
+
export declare const ERROR_CODE_IDEMPOTENCY_KEY_ALREADY_USED = "IDEMPOTENCY_KEY_ALREADY_USED";
|
|
24
|
+
export declare const ERROR_CODE_IDEMPOTENCY_BACKEND_OPERATION_ERROR = "IDEMPOTENCY_BACKEND_OPERATION_ERROR";
|
|
25
|
+
/**
|
|
26
|
+
* Get the retry after in milliseconds from the response headers, undefined if not specified.
|
|
27
|
+
* The header could have two different format.
|
|
28
|
+
* Retry-After: <http-date>, like Wed, 21 Oct 2015 07:28:00 GMT
|
|
29
|
+
* Retry-After: <delay-seconds>, like 1.5s
|
|
30
|
+
* @param headers http headers
|
|
31
|
+
* @returns the time to delat in millisconds.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getRetryAfterInMs(headers?: Headers): number | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DraftAction, DraftQueue, PendingDraftAction } from '@salesforce/lds-drafts';
|
|
2
|
-
import { AbstractResourceRequestActionHandler } from '
|
|
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';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ActionHandler, CompletedDraftAction, DraftAction, DraftQueue, PendingDraftAction, QueueOperation } from '@salesforce/lds-drafts';
|
|
2
|
-
import { AbstractResourceRequestActionHandler } from '
|
|
2
|
+
import { AbstractResourceRequestActionHandler } from '../AbstractResourceRequestActionHandler';
|
|
3
3
|
import type { DurableStoreKeyMetadataMap, Luvio, NetworkAdapter, ResourceRequest } from '@luvio/engine';
|
|
4
4
|
import type { PerformActionInputRepresentation, QuickActionExecutionRepresentation } from '../../adapters/main';
|
|
5
5
|
import type { UiApiDraftRecordService } from '../UiApiDraftRecordService';
|
package/sfdc/types/draftsAdapters/RecordRepresentation/actionHandlers/UiApiRecordActionHandler.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Adapter, DurableStoreKeyMetadataMap, Luvio, NetworkAdapter, Resour
|
|
|
2
2
|
import type { GetRecordConfig, ObjectInfoRepresentation, RecordRepresentation, RecordRepresentationNormalized, RecordInputRepresentation } from '../../../adapters/main';
|
|
3
3
|
import type { ActionHandler, CompletedDraftAction, DraftAction, DraftActionMetadata, DraftIdAndKeyMapping, DraftQueue, PendingDraftAction, QueueOperation } from '@salesforce/lds-drafts';
|
|
4
4
|
import type { FieldRepresentation, ObjectInfoService } from '../../utils/types';
|
|
5
|
-
import { AbstractResourceRequestActionHandler } from '
|
|
5
|
+
import { AbstractResourceRequestActionHandler } from '../../AbstractResourceRequestActionHandler';
|
|
6
6
|
import type { DraftRecordOperation, RecordDraftMetadata } from '../replayDraftsOnRecord';
|
|
7
7
|
import type { UiApiDraftRecordService, ReferenceIdFieldInfo } from '../../UiApiDraftRecordService';
|
|
8
8
|
import type { RecordEffectingHandler } from './RecordEffectingHandler';
|