@salesforce/lds-worker-api 1.428.0-dev20 → 1.428.0-dev21

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.
@@ -1371,4 +1371,4 @@ if (process.env.NODE_ENV !== 'production') {
1371
1371
  }
1372
1372
 
1373
1373
  export { createPrimingSession, draftManager, draftQueue, evictCacheRecordsByIds, evictExpiredCacheEntries, executeAdapter, executeMutatingAdapter, getImperativeAdapterNames, importLuvioAdapterModule, importOneStoreAdapterModule, invokeAdapter, invokeAdapterWithDraftToMerge, invokeAdapterWithDraftToReplace, invokeAdapterWithMetadata, nimbusDraftQueue, setMetadataTTL, setUiApiRecordTTL, stopEviction, subscribeToAdapter };
1374
- // version: 1.428.0-dev20-1b319a0432
1374
+ // version: 1.428.0-dev21-c9faba50c9
@@ -4274,7 +4274,7 @@ function withDefaultLuvio(callback) {
4274
4274
  }
4275
4275
  callbacks.push(callback);
4276
4276
  }
4277
- // version: 1.428.0-dev20-1b319a0432
4277
+ // version: 1.428.0-dev21-c9faba50c9
4278
4278
 
4279
4279
  // TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
4280
4280
  function instrumentAdapter$1(createFunction, _metadata) {
@@ -5318,7 +5318,7 @@ function createGraphQLWireAdapterConstructor(luvio, adapter, metadata, astResolv
5318
5318
  const { apiFamily, name } = metadata;
5319
5319
  return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
5320
5320
  }
5321
- // version: 1.428.0-dev20-1b319a0432
5321
+ // version: 1.428.0-dev21-c9faba50c9
5322
5322
 
5323
5323
  function isSupportedEntity(_objectApiName) {
5324
5324
  return true;
@@ -32610,7 +32610,7 @@ withDefaultLuvio((luvio) => {
32610
32610
  throttle(60, 60000, setupNotifyAllListRecordUpdateAvailable(luvio));
32611
32611
  throttle(60, 60000, setupNotifyAllListInfoSummaryUpdateAvailable(luvio));
32612
32612
  });
32613
- // version: 1.428.0-dev20-d72ac06681
32613
+ // version: 1.428.0-dev21-133a7da4f5
32614
32614
 
32615
32615
  var draftQueueMaxRetryAttemptsGate = {
32616
32616
  isOpen: function (e) {
@@ -79751,6 +79751,10 @@ const DRAFT_QUEUE_ACTION_UPDATED = 'draft-queue-action-updated';
79751
79751
  const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
79752
79752
  const DRAFT_QUEUE_ACTION_UPLOAD_ERROR = 'draft-queue-action-upload-error';
79753
79753
  const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
79754
+ // Emitted every time a draft's Idempotency-Key is rotated (replaced with a fresh uuid).
79755
+ // Used to triage the WOLI duplicate-record investigation in Splunk — correlate by draftId
79756
+ // with the other draft-queue events. @W-23428669
79757
+ const DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED = 'draft-queue-idempotency-key-rotated';
79754
79758
  /** Content Document */
79755
79759
  const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
79756
79760
  const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
@@ -79866,6 +79870,34 @@ function reportDraftActionUploadError(error, handlerId, attempt) {
79866
79870
  });
79867
79871
  ldsMobileInstrumentation$2.error(normalized, DRAFT_QUEUE_ACTION_UPLOAD_ERROR);
79868
79872
  }
79873
+ /**
79874
+ * Emits a single greppable Splunk log line (and an o11y counter) every time a draft's
79875
+ * Idempotency-Key is rotated — i.e. replaced with a fresh uuid rather than reused on
79876
+ * retry. This is the instrumentation for the WOLI duplicate-record investigation
79877
+ * (@W-23428669): a rotation mid-flight is the mechanism by which an already-committed
79878
+ * write can be re-sent under a new key and duplicated on the server, so recording every
79879
+ * rotation lets us reconstruct, on a future reproduction, exactly where and how often a
79880
+ * key changed for a given draft.
79881
+ *
79882
+ * The message is prefixed with a stable literal ("Idempotency key rotated") so it can be
79883
+ * pulled out of Splunk with a substring match, and carries:
79884
+ * - draftId: the local (client-synthesized) draft-action target id, so this event can be
79885
+ * correlated with the other draft-queue events for the same draft. This is NOT a server
79886
+ * record id or any field value — it is the same local id already surfaced by the queue's
79887
+ * other lifecycle logs, so it introduces no new PII.
79888
+ * - reason: which rotation call site fired, to disambiguate the distinct rotation paths.
79889
+ *
79890
+ * @param draftId the local draft-action target id whose key was rotated
79891
+ * @param reason the rotation call site (see IdempotencyKeyRotationReason)
79892
+ */
79893
+ function reportIdempotencyKeyRotated(draftId, reason) {
79894
+ if (nimbusLogger) {
79895
+ nimbusLogger.logInfo(`Idempotency key rotated: draftId=${draftId}, reason=${reason}`);
79896
+ }
79897
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED, 1, undefined, {
79898
+ reason,
79899
+ });
79900
+ }
79869
79901
  function reportDraftQueueState(state, draftCount) {
79870
79902
  if (nimbusLogger) {
79871
79903
  nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
@@ -80102,6 +80134,7 @@ class AbstractResourceRequestActionHandler {
80102
80134
  // error (shouldRetry stays false). Retained as the default until the fix is
80103
80135
  // enabled; this is the path that duplicated already-committed writes.
80104
80136
  updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80137
+ reportIdempotencyKeyRotated(updatedAction.targetId, 'generic-400-killswitch');
80105
80138
  actionDataChanged = true;
80106
80139
  }
80107
80140
  else if (!this.isServerGeneratedError(response.body)) {
@@ -80133,6 +80166,7 @@ class AbstractResourceRequestActionHandler {
80133
80166
  if (this.hasIdempotencySupport() &&
80134
80167
  updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
80135
80168
  updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80169
+ reportIdempotencyKeyRotated(updatedAction.targetId, 'backdating-collision');
80136
80170
  }
80137
80171
  shouldRetry = true;
80138
80172
  actionDataChanged = true;
@@ -80426,6 +80460,7 @@ class AbstractResourceRequestActionHandler {
80426
80460
  // Updates Idempotency key if target has one
80427
80461
  if (targetData.headers && targetData.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
80428
80462
  merged.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80463
+ reportIdempotencyKeyRotated(merged.targetId, 'merge-actions');
80429
80464
  }
80430
80465
  // overlay metadata
80431
80466
  merged.metadata = { ...targetMetadata, ...sourceMetadata };
@@ -80455,6 +80490,7 @@ class AbstractResourceRequestActionHandler {
80455
80490
  action.data.headers = action.data.headers || {};
80456
80491
  if (updateIdempotencyKey) {
80457
80492
  action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80493
+ reportIdempotencyKeyRotated(action.targetId, 'idempotency-error');
80458
80494
  }
80459
80495
  else {
80460
80496
  delete action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY];
@@ -96512,7 +96548,7 @@ function buildServiceDescriptor$b(luvio) {
96512
96548
  },
96513
96549
  };
96514
96550
  }
96515
- // version: 1.428.0-dev20-d72ac06681
96551
+ // version: 1.428.0-dev21-133a7da4f5
96516
96552
 
96517
96553
  /**
96518
96554
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -96538,7 +96574,7 @@ function buildServiceDescriptor$a(notifyRecordUpdateAvailable, getNormalizedLuvi
96538
96574
  },
96539
96575
  };
96540
96576
  }
96541
- // version: 1.428.0-dev20-d72ac06681
96577
+ // version: 1.428.0-dev21-133a7da4f5
96542
96578
 
96543
96579
  /*!
96544
96580
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -99272,7 +99308,7 @@ register$1({
99272
99308
  id: '@salesforce/lds-network-adapter',
99273
99309
  instrument: instrument$2,
99274
99310
  });
99275
- // version: 1.428.0-dev20-1b319a0432
99311
+ // version: 1.428.0-dev21-c9faba50c9
99276
99312
 
99277
99313
  const { create: create$2, keys: keys$2 } = Object;
99278
99314
  const { stringify, parse } = JSON;
@@ -107342,7 +107378,7 @@ function registerCallback(cb) {
107342
107378
  cb(graphql_v1_import, graphql_imperative$1, graphql_imperative_legacy_v1_import, graphql_state_manager, useOneStoreGraphQL);
107343
107379
  }
107344
107380
  }
107345
- // version: 1.428.0-dev20-d72ac06681
107381
+ // version: 1.428.0-dev21-133a7da4f5
107346
107382
 
107347
107383
  function createFragmentMap(documentNode) {
107348
107384
  const fragments = {};
@@ -136615,7 +136651,7 @@ register$1({
136615
136651
  configuration: { ...configurationForGraphQLAdapters$1 },
136616
136652
  instrument: instrument$1,
136617
136653
  });
136618
- // version: 1.428.0-dev20-d72ac06681
136654
+ // version: 1.428.0-dev21-133a7da4f5
136619
136655
 
136620
136656
  // On core the unstable adapters are re-exported with different names,
136621
136657
  // we want to match them here.
@@ -136767,7 +136803,7 @@ withDefaultLuvio((luvio) => {
136767
136803
  unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
136768
136804
  graphQLImperative = ldsAdapter;
136769
136805
  });
136770
- // version: 1.428.0-dev20-d72ac06681
136806
+ // version: 1.428.0-dev21-133a7da4f5
136771
136807
 
136772
136808
  var gqlApi = /*#__PURE__*/Object.freeze({
136773
136809
  __proto__: null,
@@ -137566,7 +137602,7 @@ const callbacks$1 = [];
137566
137602
  function register(r) {
137567
137603
  callbacks$1.forEach((callback) => callback(r));
137568
137604
  }
137569
- // version: 1.428.0-dev20-1b319a0432
137605
+ // version: 1.428.0-dev21-c9faba50c9
137570
137606
 
137571
137607
  /**
137572
137608
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -138882,4 +138918,4 @@ const { luvio } = getRuntime();
138882
138918
  setDefaultLuvio({ luvio });
138883
138919
 
138884
138920
  export { createPrimingSession, draftManager, draftQueue, evictCacheRecordsByIds, evictExpiredCacheEntries, executeAdapter, executeMutatingAdapter, getImperativeAdapterNames, importLuvioAdapterModule, importOneStoreAdapterModule, invokeAdapter, invokeAdapterWithDraftToMerge, invokeAdapterWithDraftToReplace, invokeAdapterWithMetadata, nimbusDraftQueue, registerReportObserver, setMetadataTTL, setUiApiRecordTTL, stopEviction, subscribeToAdapter };
138885
- // version: 1.428.0-dev20-1b319a0432
138921
+ // version: 1.428.0-dev21-c9faba50c9
@@ -4280,7 +4280,7 @@
4280
4280
  }
4281
4281
  callbacks.push(callback);
4282
4282
  }
4283
- // version: 1.428.0-dev20-1b319a0432
4283
+ // version: 1.428.0-dev21-c9faba50c9
4284
4284
 
4285
4285
  // TODO [TD-0081508]: once that TD is fulfilled we can probably change this file
4286
4286
  function instrumentAdapter$1(createFunction, _metadata) {
@@ -5324,7 +5324,7 @@
5324
5324
  const { apiFamily, name } = metadata;
5325
5325
  return createGraphQLWireAdapterConstructor$1(adapter, `${apiFamily}.${name}`, luvio, astResolver);
5326
5326
  }
5327
- // version: 1.428.0-dev20-1b319a0432
5327
+ // version: 1.428.0-dev21-c9faba50c9
5328
5328
 
5329
5329
  function isSupportedEntity(_objectApiName) {
5330
5330
  return true;
@@ -32616,7 +32616,7 @@
32616
32616
  throttle(60, 60000, setupNotifyAllListRecordUpdateAvailable(luvio));
32617
32617
  throttle(60, 60000, setupNotifyAllListInfoSummaryUpdateAvailable(luvio));
32618
32618
  });
32619
- // version: 1.428.0-dev20-d72ac06681
32619
+ // version: 1.428.0-dev21-133a7da4f5
32620
32620
 
32621
32621
  var draftQueueMaxRetryAttemptsGate = {
32622
32622
  isOpen: function (e) {
@@ -79757,6 +79757,10 @@
79757
79757
  const DRAFT_QUEUE_ACTION_FAILED = 'draft-queue-action-failed';
79758
79758
  const DRAFT_QUEUE_ACTION_UPLOAD_ERROR = 'draft-queue-action-upload-error';
79759
79759
  const DRAFT_QUEUE_TOTAL_MERGE_ACTIONS_CALLS = 'draft-queue-total-mergeActions-calls';
79760
+ // Emitted every time a draft's Idempotency-Key is rotated (replaced with a fresh uuid).
79761
+ // Used to triage the WOLI duplicate-record investigation in Splunk — correlate by draftId
79762
+ // with the other draft-queue events. @W-23428669
79763
+ const DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED = 'draft-queue-idempotency-key-rotated';
79760
79764
  /** Content Document */
79761
79765
  const CREATE_CONTENT_DOCUMENT_AND_VERSION_TOTAL_SYNTHESIZE_CALLS = 'content-document-version-total-synthesize-calls';
79762
79766
  const CREATE_CONTENT_DOCUMENT_AND_VERSION_DRAFT_SYNTHESIZE_ERROR = 'create-content-document-version-draft-synthesize-error';
@@ -79872,6 +79876,34 @@
79872
79876
  });
79873
79877
  ldsMobileInstrumentation$2.error(normalized, DRAFT_QUEUE_ACTION_UPLOAD_ERROR);
79874
79878
  }
79879
+ /**
79880
+ * Emits a single greppable Splunk log line (and an o11y counter) every time a draft's
79881
+ * Idempotency-Key is rotated — i.e. replaced with a fresh uuid rather than reused on
79882
+ * retry. This is the instrumentation for the WOLI duplicate-record investigation
79883
+ * (@W-23428669): a rotation mid-flight is the mechanism by which an already-committed
79884
+ * write can be re-sent under a new key and duplicated on the server, so recording every
79885
+ * rotation lets us reconstruct, on a future reproduction, exactly where and how often a
79886
+ * key changed for a given draft.
79887
+ *
79888
+ * The message is prefixed with a stable literal ("Idempotency key rotated") so it can be
79889
+ * pulled out of Splunk with a substring match, and carries:
79890
+ * - draftId: the local (client-synthesized) draft-action target id, so this event can be
79891
+ * correlated with the other draft-queue events for the same draft. This is NOT a server
79892
+ * record id or any field value — it is the same local id already surfaced by the queue's
79893
+ * other lifecycle logs, so it introduces no new PII.
79894
+ * - reason: which rotation call site fired, to disambiguate the distinct rotation paths.
79895
+ *
79896
+ * @param draftId the local draft-action target id whose key was rotated
79897
+ * @param reason the rotation call site (see IdempotencyKeyRotationReason)
79898
+ */
79899
+ function reportIdempotencyKeyRotated(draftId, reason) {
79900
+ if (nimbusLogger) {
79901
+ nimbusLogger.logInfo(`Idempotency key rotated: draftId=${draftId}, reason=${reason}`);
79902
+ }
79903
+ ldsMobileInstrumentation$2.incrementCounter(DRAFT_QUEUE_IDEMPOTENCY_KEY_ROTATED, 1, undefined, {
79904
+ reason,
79905
+ });
79906
+ }
79875
79907
  function reportDraftQueueState(state, draftCount) {
79876
79908
  if (nimbusLogger) {
79877
79909
  nimbusLogger.logInfo(`Draft state changed: ${state}, depth: ${draftCount}`);
@@ -80108,6 +80140,7 @@
80108
80140
  // error (shouldRetry stays false). Retained as the default until the fix is
80109
80141
  // enabled; this is the path that duplicated already-committed writes.
80110
80142
  updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80143
+ reportIdempotencyKeyRotated(updatedAction.targetId, 'generic-400-killswitch');
80111
80144
  actionDataChanged = true;
80112
80145
  }
80113
80146
  else if (!this.isServerGeneratedError(response.body)) {
@@ -80139,6 +80172,7 @@
80139
80172
  if (this.hasIdempotencySupport() &&
80140
80173
  updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] !== undefined) {
80141
80174
  updatedAction.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80175
+ reportIdempotencyKeyRotated(updatedAction.targetId, 'backdating-collision');
80142
80176
  }
80143
80177
  shouldRetry = true;
80144
80178
  actionDataChanged = true;
@@ -80432,6 +80466,7 @@
80432
80466
  // Updates Idempotency key if target has one
80433
80467
  if (targetData.headers && targetData.headers[HTTP_HEADER_IDEMPOTENCY_KEY]) {
80434
80468
  merged.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80469
+ reportIdempotencyKeyRotated(merged.targetId, 'merge-actions');
80435
80470
  }
80436
80471
  // overlay metadata
80437
80472
  merged.metadata = { ...targetMetadata, ...sourceMetadata };
@@ -80461,6 +80496,7 @@
80461
80496
  action.data.headers = action.data.headers || {};
80462
80497
  if (updateIdempotencyKey) {
80463
80498
  action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY] = uuidv4();
80499
+ reportIdempotencyKeyRotated(action.targetId, 'idempotency-error');
80464
80500
  }
80465
80501
  else {
80466
80502
  delete action.data.headers[HTTP_HEADER_IDEMPOTENCY_KEY];
@@ -96518,7 +96554,7 @@
96518
96554
  },
96519
96555
  };
96520
96556
  }
96521
- // version: 1.428.0-dev20-d72ac06681
96557
+ // version: 1.428.0-dev21-133a7da4f5
96522
96558
 
96523
96559
  /**
96524
96560
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -96544,7 +96580,7 @@
96544
96580
  },
96545
96581
  };
96546
96582
  }
96547
- // version: 1.428.0-dev20-d72ac06681
96583
+ // version: 1.428.0-dev21-133a7da4f5
96548
96584
 
96549
96585
  /*!
96550
96586
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -99278,7 +99314,7 @@
99278
99314
  id: '@salesforce/lds-network-adapter',
99279
99315
  instrument: instrument$2,
99280
99316
  });
99281
- // version: 1.428.0-dev20-1b319a0432
99317
+ // version: 1.428.0-dev21-c9faba50c9
99282
99318
 
99283
99319
  const { create: create$2, keys: keys$2 } = Object;
99284
99320
  const { stringify, parse } = JSON;
@@ -107348,7 +107384,7 @@
107348
107384
  cb(graphql_v1_import, graphql_imperative$1, graphql_imperative_legacy_v1_import, graphql_state_manager, useOneStoreGraphQL);
107349
107385
  }
107350
107386
  }
107351
- // version: 1.428.0-dev20-d72ac06681
107387
+ // version: 1.428.0-dev21-133a7da4f5
107352
107388
 
107353
107389
  function createFragmentMap(documentNode) {
107354
107390
  const fragments = {};
@@ -136621,7 +136657,7 @@
136621
136657
  configuration: { ...configurationForGraphQLAdapters$1 },
136622
136658
  instrument: instrument$1,
136623
136659
  });
136624
- // version: 1.428.0-dev20-d72ac06681
136660
+ // version: 1.428.0-dev21-133a7da4f5
136625
136661
 
136626
136662
  // On core the unstable adapters are re-exported with different names,
136627
136663
  // we want to match them here.
@@ -136773,7 +136809,7 @@
136773
136809
  unstable_graphQL_imperative = createImperativeAdapter(luvio, createInstrumentedAdapter(ldsAdapter, adapterMetadata), adapterMetadata);
136774
136810
  graphQLImperative = ldsAdapter;
136775
136811
  });
136776
- // version: 1.428.0-dev20-d72ac06681
136812
+ // version: 1.428.0-dev21-133a7da4f5
136777
136813
 
136778
136814
  var gqlApi = /*#__PURE__*/Object.freeze({
136779
136815
  __proto__: null,
@@ -137572,7 +137608,7 @@
137572
137608
  function register(r) {
137573
137609
  callbacks$1.forEach((callback) => callback(r));
137574
137610
  }
137575
- // version: 1.428.0-dev20-1b319a0432
137611
+ // version: 1.428.0-dev21-c9faba50c9
137576
137612
 
137577
137613
  /**
137578
137614
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -138909,4 +138945,4 @@
138909
138945
  exports.subscribeToAdapter = subscribeToAdapter;
138910
138946
 
138911
138947
  }));
138912
- // version: 1.428.0-dev20-1b319a0432
138948
+ // version: 1.428.0-dev21-c9faba50c9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lds-worker-api",
3
- "version": "1.428.0-dev20",
3
+ "version": "1.428.0-dev21",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "description": "",
6
6
  "main": "dist/standalone/es/lds-worker-api.js",
@@ -35,14 +35,14 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@oat-sa/rollup-plugin-wildcard-external": "^1.0.0",
38
- "@salesforce/lds-adapters-graphql": "^1.428.0-dev20",
39
- "@salesforce/lds-adapters-uiapi": "^1.428.0-dev20",
40
- "@salesforce/lds-default-luvio": "^1.428.0-dev20",
41
- "@salesforce/lds-drafts": "^1.428.0-dev20",
42
- "@salesforce/lds-graphql-parser": "^1.428.0-dev20",
43
- "@salesforce/lds-luvio-engine": "^1.428.0-dev20",
44
- "@salesforce/lds-runtime-mobile": "^1.428.0-dev20",
45
- "@salesforce/nimbus-plugin-lds": "^1.428.0-dev20",
38
+ "@salesforce/lds-adapters-graphql": "^1.428.0-dev21",
39
+ "@salesforce/lds-adapters-uiapi": "^1.428.0-dev21",
40
+ "@salesforce/lds-default-luvio": "^1.428.0-dev21",
41
+ "@salesforce/lds-drafts": "^1.428.0-dev21",
42
+ "@salesforce/lds-graphql-parser": "^1.428.0-dev21",
43
+ "@salesforce/lds-luvio-engine": "^1.428.0-dev21",
44
+ "@salesforce/lds-runtime-mobile": "^1.428.0-dev21",
45
+ "@salesforce/nimbus-plugin-lds": "^1.428.0-dev21",
46
46
  "ajv": "^8.11.0",
47
47
  "glob": "^7.1.5",
48
48
  "nimbus-types": "^2.0.0-alpha1",