@salesforce/lds-runtime-mobile 1.228.1 → 1.229.0-dev1

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 (3) hide show
  1. package/dist/main.js +75 -45
  2. package/package.json +16 -16
  3. package/sfdc/main.js +75 -45
package/dist/main.js CHANGED
@@ -1455,6 +1455,72 @@ function makeDurable(environment, { durableStore, instrumentation }) {
1455
1455
  });
1456
1456
  }
1457
1457
 
1458
+ /**
1459
+ * Copyright (c) 2022, Salesforce, Inc.,
1460
+ * All rights reserved.
1461
+ * For full license text, see the LICENSE.txt file
1462
+ */
1463
+
1464
+ const API_NAMESPACE = 'UiApi';
1465
+ const RECORD_REPRESENTATION_NAME = 'RecordRepresentation';
1466
+ const RECORD_VIEW_ENTITY_REPRESENTATION_NAME = 'RecordViewEntityRepresentation';
1467
+ const RECORD_ID_PREFIX = `${API_NAMESPACE}::${RECORD_REPRESENTATION_NAME}:`;
1468
+ const RECORD_VIEW_ENTITY_ID_PREFIX = `${API_NAMESPACE}::${RECORD_VIEW_ENTITY_REPRESENTATION_NAME}:Name:`;
1469
+ const RECORD_FIELDS_KEY_JUNCTION = '__fields__';
1470
+ function isStoreKeyRecordId(key) {
1471
+ return key.indexOf(RECORD_ID_PREFIX) > -1 && key.indexOf(RECORD_FIELDS_KEY_JUNCTION) === -1;
1472
+ }
1473
+ function isStoreKeyRecordViewEntity(key) {
1474
+ return (key.indexOf(RECORD_VIEW_ENTITY_ID_PREFIX) > -1 &&
1475
+ key.indexOf(RECORD_FIELDS_KEY_JUNCTION) === -1);
1476
+ }
1477
+ function isStoreKeyRecordField(key) {
1478
+ return key.indexOf(RECORD_ID_PREFIX) > -1 && key.indexOf(RECORD_FIELDS_KEY_JUNCTION) > -1;
1479
+ }
1480
+ function extractRecordIdFromStoreKey(key) {
1481
+ if (key === undefined ||
1482
+ (key.indexOf(RECORD_ID_PREFIX) === -1 && key.indexOf(RECORD_VIEW_ENTITY_ID_PREFIX) === -1)) {
1483
+ return undefined;
1484
+ }
1485
+ const parts = key.split(':');
1486
+ return parts[parts.length - 1].split('_')[0];
1487
+ }
1488
+ function buildRecordFieldStoreKey(recordKey, fieldName) {
1489
+ return `${recordKey}${RECORD_FIELDS_KEY_JUNCTION}${fieldName}`;
1490
+ }
1491
+ function objectsDeepEqual(lhs, rhs) {
1492
+ if (lhs === rhs)
1493
+ return true;
1494
+ if (typeof lhs !== 'object' || typeof rhs !== 'object' || lhs === null || rhs === null)
1495
+ return false;
1496
+ const lhsKeys = Object.keys(lhs);
1497
+ const rhsKeys = Object.keys(rhs);
1498
+ if (lhsKeys.length !== rhsKeys.length)
1499
+ return false;
1500
+ for (let key of lhsKeys) {
1501
+ if (!rhsKeys.includes(key))
1502
+ return false;
1503
+ if (typeof lhs[key] === 'function' || typeof rhs[key] === 'function') {
1504
+ if (lhs[key].toString() !== rhs[key].toString())
1505
+ return false;
1506
+ }
1507
+ else {
1508
+ if (!objectsDeepEqual(lhs[key], rhs[key]))
1509
+ return false;
1510
+ }
1511
+ }
1512
+ return true;
1513
+ }
1514
+
1515
+ function isStoreRecordError(storeRecord) {
1516
+ return storeRecord.__type === 'error';
1517
+ }
1518
+ function isEntryDurableRecordRepresentation(entry, key) {
1519
+ // Either a DurableRecordRepresentation or StoreRecordError can live at a record key
1520
+ return ((isStoreKeyRecordId(key) || isStoreKeyRecordViewEntity(key)) &&
1521
+ entry.data.__type === undefined);
1522
+ }
1523
+
1458
1524
  /**
1459
1525
  * Copyright (c) 2022, Salesforce, Inc.,
1460
1526
  * All rights reserved.
@@ -4653,7 +4719,11 @@ function makeStoreEval(preconditioner, objectInfoService, userId, contextProvide
4653
4719
  try {
4654
4720
  const { data, seenRecords } = await queryEvaluator(rootQuery, context, eventEmitter);
4655
4721
  const rebuildWithStoreEval = ((originalSnapshot) => {
4656
- return storeEval(config, originalSnapshot, observers, connectionKeyBuilder);
4722
+ return storeEval(config, originalSnapshot, observers, connectionKeyBuilder).then((rebuiltSnapshot) => {
4723
+ return objectsDeepEqual(originalSnapshot.data, rebuiltSnapshot.data)
4724
+ ? originalSnapshot
4725
+ : rebuiltSnapshot;
4726
+ });
4657
4727
  });
4658
4728
  const recordId = generateUniqueRecordId$1();
4659
4729
  // if the non-eval'ed snapshot was an error then we return a synthetic
@@ -6613,49 +6683,6 @@ function makeEnvironmentDraftAware(luvio, env, durableStore, handlers, draftQueu
6613
6683
  });
6614
6684
  }
6615
6685
 
6616
- /**
6617
- * Copyright (c) 2022, Salesforce, Inc.,
6618
- * All rights reserved.
6619
- * For full license text, see the LICENSE.txt file
6620
- */
6621
-
6622
- const API_NAMESPACE = 'UiApi';
6623
- const RECORD_REPRESENTATION_NAME = 'RecordRepresentation';
6624
- const RECORD_VIEW_ENTITY_REPRESENTATION_NAME = 'RecordViewEntityRepresentation';
6625
- const RECORD_ID_PREFIX = `${API_NAMESPACE}::${RECORD_REPRESENTATION_NAME}:`;
6626
- const RECORD_VIEW_ENTITY_ID_PREFIX = `${API_NAMESPACE}::${RECORD_VIEW_ENTITY_REPRESENTATION_NAME}:Name:`;
6627
- const RECORD_FIELDS_KEY_JUNCTION = '__fields__';
6628
- function isStoreKeyRecordId(key) {
6629
- return key.indexOf(RECORD_ID_PREFIX) > -1 && key.indexOf(RECORD_FIELDS_KEY_JUNCTION) === -1;
6630
- }
6631
- function isStoreKeyRecordViewEntity(key) {
6632
- return (key.indexOf(RECORD_VIEW_ENTITY_ID_PREFIX) > -1 &&
6633
- key.indexOf(RECORD_FIELDS_KEY_JUNCTION) === -1);
6634
- }
6635
- function isStoreKeyRecordField(key) {
6636
- return key.indexOf(RECORD_ID_PREFIX) > -1 && key.indexOf(RECORD_FIELDS_KEY_JUNCTION) > -1;
6637
- }
6638
- function extractRecordIdFromStoreKey(key) {
6639
- if (key === undefined ||
6640
- (key.indexOf(RECORD_ID_PREFIX) === -1 && key.indexOf(RECORD_VIEW_ENTITY_ID_PREFIX) === -1)) {
6641
- return undefined;
6642
- }
6643
- const parts = key.split(':');
6644
- return parts[parts.length - 1].split('_')[0];
6645
- }
6646
- function buildRecordFieldStoreKey(recordKey, fieldName) {
6647
- return `${recordKey}${RECORD_FIELDS_KEY_JUNCTION}${fieldName}`;
6648
- }
6649
-
6650
- function isStoreRecordError(storeRecord) {
6651
- return storeRecord.__type === 'error';
6652
- }
6653
- function isEntryDurableRecordRepresentation(entry, key) {
6654
- // Either a DurableRecordRepresentation or StoreRecordError can live at a record key
6655
- return ((isStoreKeyRecordId(key) || isStoreKeyRecordViewEntity(key)) &&
6656
- entry.data.__type === undefined);
6657
- }
6658
-
6659
6686
  function serializeFieldArguments(argumentNodes, variables) {
6660
6687
  const mutableArgumentNodes = Object.assign([], argumentNodes);
6661
6688
  return `args__(${mutableArgumentNodes
@@ -12826,6 +12853,9 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
12826
12853
  if (!rebuildResult.errors) {
12827
12854
  rebuildResult = removeSyntheticFields(rebuildResult, config.query);
12828
12855
  }
12856
+ if (objectsDeepEqual(rebuildResult, originalSnapshot.data)) {
12857
+ return originalSnapshot;
12858
+ }
12829
12859
  // 'originalSnapshot' is the local eval snapshot subscribed. It is always in 'Fulfilled' state. This behavior would change once W-1273462(rebuild non-evaluated snapshot when the graphql local eval rebuild is triggered) is resolved.
12830
12860
  return {
12831
12861
  ...originalSnapshot,
@@ -16731,4 +16761,4 @@ register({
16731
16761
  });
16732
16762
 
16733
16763
  export { getRuntime, registerReportObserver, reportGraphqlQueryParseError };
16734
- // version: 1.228.1-4e6356f71
16764
+ // version: 1.229.0-dev1-f69d054a9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lds-runtime-mobile",
3
- "version": "1.228.1",
3
+ "version": "1.229.0-dev1",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "description": "LDS runtime for mobile/hybrid environments.",
6
6
  "main": "dist/main.js",
@@ -32,25 +32,25 @@
32
32
  "release:corejar": "yarn build && ../core-build/scripts/core.js --name=lds-runtime-mobile"
33
33
  },
34
34
  "dependencies": {
35
- "@salesforce/lds-adapters-uiapi": "*",
36
- "@salesforce/lds-bindings": "*",
37
- "@salesforce/lds-instrumentation": "*",
38
- "@salesforce/lds-priming": "*",
35
+ "@salesforce/lds-adapters-uiapi": "1.229.0-dev1",
36
+ "@salesforce/lds-bindings": "1.229.0-dev1",
37
+ "@salesforce/lds-instrumentation": "1.229.0-dev1",
38
+ "@salesforce/lds-priming": "1.229.0-dev1",
39
39
  "@salesforce/user": "0.0.21",
40
40
  "o11y": "244.0.0"
41
41
  },
42
42
  "devDependencies": {
43
- "@salesforce/lds-adapters-graphql": "*",
44
- "@salesforce/lds-drafts": "*",
45
- "@salesforce/lds-drafts-adapters-uiapi": "*",
46
- "@salesforce/lds-graphql-eval": "*",
47
- "@salesforce/lds-network-adapter": "*",
48
- "@salesforce/lds-network-nimbus": "*",
49
- "@salesforce/lds-store-nimbus": "*",
50
- "@salesforce/lds-store-binary": "*",
51
- "@salesforce/lds-store-sql": "*",
52
- "@salesforce/lds-utils-adapters": "*",
53
- "@salesforce/nimbus-plugin-lds": "*",
43
+ "@salesforce/lds-adapters-graphql": "1.229.0-dev1",
44
+ "@salesforce/lds-drafts": "1.229.0-dev1",
45
+ "@salesforce/lds-drafts-adapters-uiapi": "1.229.0-dev1",
46
+ "@salesforce/lds-graphql-eval": "1.229.0-dev1",
47
+ "@salesforce/lds-network-adapter": "1.229.0-dev1",
48
+ "@salesforce/lds-network-nimbus": "1.229.0-dev1",
49
+ "@salesforce/lds-store-binary": "1.229.0-dev1",
50
+ "@salesforce/lds-store-nimbus": "1.229.0-dev1",
51
+ "@salesforce/lds-store-sql": "1.229.0-dev1",
52
+ "@salesforce/lds-utils-adapters": "1.229.0-dev1",
53
+ "@salesforce/nimbus-plugin-lds": "1.229.0-dev1",
54
54
  "babel-plugin-dynamic-import-node": "^2.3.3",
55
55
  "wait-for-expect": "^3.0.2"
56
56
  },
package/sfdc/main.js CHANGED
@@ -1455,6 +1455,72 @@ function makeDurable(environment, { durableStore, instrumentation }) {
1455
1455
  });
1456
1456
  }
1457
1457
 
1458
+ /**
1459
+ * Copyright (c) 2022, Salesforce, Inc.,
1460
+ * All rights reserved.
1461
+ * For full license text, see the LICENSE.txt file
1462
+ */
1463
+
1464
+ const API_NAMESPACE = 'UiApi';
1465
+ const RECORD_REPRESENTATION_NAME = 'RecordRepresentation';
1466
+ const RECORD_VIEW_ENTITY_REPRESENTATION_NAME = 'RecordViewEntityRepresentation';
1467
+ const RECORD_ID_PREFIX = `${API_NAMESPACE}::${RECORD_REPRESENTATION_NAME}:`;
1468
+ const RECORD_VIEW_ENTITY_ID_PREFIX = `${API_NAMESPACE}::${RECORD_VIEW_ENTITY_REPRESENTATION_NAME}:Name:`;
1469
+ const RECORD_FIELDS_KEY_JUNCTION = '__fields__';
1470
+ function isStoreKeyRecordId(key) {
1471
+ return key.indexOf(RECORD_ID_PREFIX) > -1 && key.indexOf(RECORD_FIELDS_KEY_JUNCTION) === -1;
1472
+ }
1473
+ function isStoreKeyRecordViewEntity(key) {
1474
+ return (key.indexOf(RECORD_VIEW_ENTITY_ID_PREFIX) > -1 &&
1475
+ key.indexOf(RECORD_FIELDS_KEY_JUNCTION) === -1);
1476
+ }
1477
+ function isStoreKeyRecordField(key) {
1478
+ return key.indexOf(RECORD_ID_PREFIX) > -1 && key.indexOf(RECORD_FIELDS_KEY_JUNCTION) > -1;
1479
+ }
1480
+ function extractRecordIdFromStoreKey(key) {
1481
+ if (key === undefined ||
1482
+ (key.indexOf(RECORD_ID_PREFIX) === -1 && key.indexOf(RECORD_VIEW_ENTITY_ID_PREFIX) === -1)) {
1483
+ return undefined;
1484
+ }
1485
+ const parts = key.split(':');
1486
+ return parts[parts.length - 1].split('_')[0];
1487
+ }
1488
+ function buildRecordFieldStoreKey(recordKey, fieldName) {
1489
+ return `${recordKey}${RECORD_FIELDS_KEY_JUNCTION}${fieldName}`;
1490
+ }
1491
+ function objectsDeepEqual(lhs, rhs) {
1492
+ if (lhs === rhs)
1493
+ return true;
1494
+ if (typeof lhs !== 'object' || typeof rhs !== 'object' || lhs === null || rhs === null)
1495
+ return false;
1496
+ const lhsKeys = Object.keys(lhs);
1497
+ const rhsKeys = Object.keys(rhs);
1498
+ if (lhsKeys.length !== rhsKeys.length)
1499
+ return false;
1500
+ for (let key of lhsKeys) {
1501
+ if (!rhsKeys.includes(key))
1502
+ return false;
1503
+ if (typeof lhs[key] === 'function' || typeof rhs[key] === 'function') {
1504
+ if (lhs[key].toString() !== rhs[key].toString())
1505
+ return false;
1506
+ }
1507
+ else {
1508
+ if (!objectsDeepEqual(lhs[key], rhs[key]))
1509
+ return false;
1510
+ }
1511
+ }
1512
+ return true;
1513
+ }
1514
+
1515
+ function isStoreRecordError(storeRecord) {
1516
+ return storeRecord.__type === 'error';
1517
+ }
1518
+ function isEntryDurableRecordRepresentation(entry, key) {
1519
+ // Either a DurableRecordRepresentation or StoreRecordError can live at a record key
1520
+ return ((isStoreKeyRecordId(key) || isStoreKeyRecordViewEntity(key)) &&
1521
+ entry.data.__type === undefined);
1522
+ }
1523
+
1458
1524
  /**
1459
1525
  * Copyright (c) 2022, Salesforce, Inc.,
1460
1526
  * All rights reserved.
@@ -4653,7 +4719,11 @@ function makeStoreEval(preconditioner, objectInfoService, userId, contextProvide
4653
4719
  try {
4654
4720
  const { data, seenRecords } = await queryEvaluator(rootQuery, context, eventEmitter);
4655
4721
  const rebuildWithStoreEval = ((originalSnapshot) => {
4656
- return storeEval(config, originalSnapshot, observers, connectionKeyBuilder);
4722
+ return storeEval(config, originalSnapshot, observers, connectionKeyBuilder).then((rebuiltSnapshot) => {
4723
+ return objectsDeepEqual(originalSnapshot.data, rebuiltSnapshot.data)
4724
+ ? originalSnapshot
4725
+ : rebuiltSnapshot;
4726
+ });
4657
4727
  });
4658
4728
  const recordId = generateUniqueRecordId$1();
4659
4729
  // if the non-eval'ed snapshot was an error then we return a synthetic
@@ -6613,49 +6683,6 @@ function makeEnvironmentDraftAware(luvio, env, durableStore, handlers, draftQueu
6613
6683
  });
6614
6684
  }
6615
6685
 
6616
- /**
6617
- * Copyright (c) 2022, Salesforce, Inc.,
6618
- * All rights reserved.
6619
- * For full license text, see the LICENSE.txt file
6620
- */
6621
-
6622
- const API_NAMESPACE = 'UiApi';
6623
- const RECORD_REPRESENTATION_NAME = 'RecordRepresentation';
6624
- const RECORD_VIEW_ENTITY_REPRESENTATION_NAME = 'RecordViewEntityRepresentation';
6625
- const RECORD_ID_PREFIX = `${API_NAMESPACE}::${RECORD_REPRESENTATION_NAME}:`;
6626
- const RECORD_VIEW_ENTITY_ID_PREFIX = `${API_NAMESPACE}::${RECORD_VIEW_ENTITY_REPRESENTATION_NAME}:Name:`;
6627
- const RECORD_FIELDS_KEY_JUNCTION = '__fields__';
6628
- function isStoreKeyRecordId(key) {
6629
- return key.indexOf(RECORD_ID_PREFIX) > -1 && key.indexOf(RECORD_FIELDS_KEY_JUNCTION) === -1;
6630
- }
6631
- function isStoreKeyRecordViewEntity(key) {
6632
- return (key.indexOf(RECORD_VIEW_ENTITY_ID_PREFIX) > -1 &&
6633
- key.indexOf(RECORD_FIELDS_KEY_JUNCTION) === -1);
6634
- }
6635
- function isStoreKeyRecordField(key) {
6636
- return key.indexOf(RECORD_ID_PREFIX) > -1 && key.indexOf(RECORD_FIELDS_KEY_JUNCTION) > -1;
6637
- }
6638
- function extractRecordIdFromStoreKey(key) {
6639
- if (key === undefined ||
6640
- (key.indexOf(RECORD_ID_PREFIX) === -1 && key.indexOf(RECORD_VIEW_ENTITY_ID_PREFIX) === -1)) {
6641
- return undefined;
6642
- }
6643
- const parts = key.split(':');
6644
- return parts[parts.length - 1].split('_')[0];
6645
- }
6646
- function buildRecordFieldStoreKey(recordKey, fieldName) {
6647
- return `${recordKey}${RECORD_FIELDS_KEY_JUNCTION}${fieldName}`;
6648
- }
6649
-
6650
- function isStoreRecordError(storeRecord) {
6651
- return storeRecord.__type === 'error';
6652
- }
6653
- function isEntryDurableRecordRepresentation(entry, key) {
6654
- // Either a DurableRecordRepresentation or StoreRecordError can live at a record key
6655
- return ((isStoreKeyRecordId(key) || isStoreKeyRecordViewEntity(key)) &&
6656
- entry.data.__type === undefined);
6657
- }
6658
-
6659
6686
  function serializeFieldArguments(argumentNodes, variables) {
6660
6687
  const mutableArgumentNodes = Object.assign([], argumentNodes);
6661
6688
  return `args__(${mutableArgumentNodes
@@ -12826,6 +12853,9 @@ function draftAwareGraphQLAdapterFactory(userId, objectInfoService, store, luvio
12826
12853
  if (!rebuildResult.errors) {
12827
12854
  rebuildResult = removeSyntheticFields(rebuildResult, config.query);
12828
12855
  }
12856
+ if (objectsDeepEqual(rebuildResult, originalSnapshot.data)) {
12857
+ return originalSnapshot;
12858
+ }
12829
12859
  // 'originalSnapshot' is the local eval snapshot subscribed. It is always in 'Fulfilled' state. This behavior would change once W-1273462(rebuild non-evaluated snapshot when the graphql local eval rebuild is triggered) is resolved.
12830
12860
  return {
12831
12861
  ...originalSnapshot,
@@ -16731,4 +16761,4 @@ register({
16731
16761
  });
16732
16762
 
16733
16763
  export { getRuntime, registerReportObserver, reportGraphqlQueryParseError };
16734
- // version: 1.228.1-4e6356f71
16764
+ // version: 1.229.0-dev1-f69d054a9