@salesforce/lds-runtime-mobile 1.310.0 → 1.311.1
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 +38 -17
- package/package.json +18 -18
- package/sfdc/main.js +38 -17
package/dist/main.js
CHANGED
|
@@ -57,7 +57,7 @@ const { join: join$2, push: push$2, unshift } = Array.prototype;
|
|
|
57
57
|
const { isArray: isArray$5 } = Array;
|
|
58
58
|
const { entries: entries$6, keys: keys$9 } = Object;
|
|
59
59
|
|
|
60
|
-
const UI_API_BASE_URI = '/services/data/
|
|
60
|
+
const UI_API_BASE_URI = '/services/data/v63.0/ui-api';
|
|
61
61
|
|
|
62
62
|
let instrumentation = {
|
|
63
63
|
aggregateUiChunkCount: (_cb) => { },
|
|
@@ -10787,6 +10787,11 @@ function singlePredicateToSql(predicate, defaultAlias, isChildNotPredicate = fal
|
|
|
10787
10787
|
let { alias, leftPath, operator, value, dataType, isCaseSensitive } = predicate;
|
|
10788
10788
|
let binding = [];
|
|
10789
10789
|
let boundValue = extractPredicateValue(value, dataType);
|
|
10790
|
+
// using != does not include null values
|
|
10791
|
+
// using IS NOT predicate will include null values as null also is not the value
|
|
10792
|
+
if (operator === '!=') {
|
|
10793
|
+
operator = 'IS NOT';
|
|
10794
|
+
}
|
|
10790
10795
|
// Handles boolean type field
|
|
10791
10796
|
if (dataType === 'Boolean') {
|
|
10792
10797
|
if (boundValue === null) {
|
|
@@ -10802,13 +10807,8 @@ function singlePredicateToSql(predicate, defaultAlias, isChildNotPredicate = fal
|
|
|
10802
10807
|
boundValue = 0;
|
|
10803
10808
|
}
|
|
10804
10809
|
}
|
|
10805
|
-
if (boundValue === null) {
|
|
10806
|
-
|
|
10807
|
-
operator = 'IS';
|
|
10808
|
-
}
|
|
10809
|
-
else if (operator === '!=') {
|
|
10810
|
-
operator = 'IS NOT';
|
|
10811
|
-
}
|
|
10810
|
+
if (boundValue === null && operator === '=') {
|
|
10811
|
+
operator = 'IS';
|
|
10812
10812
|
}
|
|
10813
10813
|
alias = !alias ? defaultAlias : alias;
|
|
10814
10814
|
let sql;
|
|
@@ -10960,7 +10960,13 @@ function extractPredicateValue(value, dataType) {
|
|
|
10960
10960
|
return value;
|
|
10961
10961
|
}
|
|
10962
10962
|
if (typeof value !== 'object') {
|
|
10963
|
-
|
|
10963
|
+
// GraphQL server treats empty string value as null
|
|
10964
|
+
if (typeof value === 'string' && value.length === 0) {
|
|
10965
|
+
return null;
|
|
10966
|
+
}
|
|
10967
|
+
else if (typeof value === 'string' ||
|
|
10968
|
+
typeof value === 'number' ||
|
|
10969
|
+
typeof value === 'boolean') {
|
|
10964
10970
|
return value;
|
|
10965
10971
|
}
|
|
10966
10972
|
else {
|
|
@@ -16194,7 +16200,7 @@ function mergePageUrls(first, second) {
|
|
|
16194
16200
|
/**
|
|
16195
16201
|
* merge to paging url with different set of fields or optional fields as combined one
|
|
16196
16202
|
* the paging url is like
|
|
16197
|
-
* /services/data/
|
|
16203
|
+
* /services/data/v63.0/ui-api/related-list-records/001R0000006l1xKIAQ/Contacts
|
|
16198
16204
|
* ?fields=Id%2CName&optionalFields=Contact.Id%2CContact.Name&pageSize=50&pageToken=0
|
|
16199
16205
|
* @param path1 url path and query parmeter without domain
|
|
16200
16206
|
* @param path2 url path and query parmeter without domain
|
|
@@ -18274,7 +18280,11 @@ class PrimingSession extends EventEmitter {
|
|
|
18274
18280
|
const unavailableTypes = apiNames.filter((x) => !objectInfoMap[x]);
|
|
18275
18281
|
const availableTypes = apiNames.filter((x) => objectInfoMap[x]);
|
|
18276
18282
|
const unavilableBatches = batches.filter((x) => unavailableTypes.includes(x.type));
|
|
18277
|
-
const availableBatches = batches
|
|
18283
|
+
const availableBatches = batches
|
|
18284
|
+
.filter((x) => !unavailableTypes.includes(x.type))
|
|
18285
|
+
.map((x) => {
|
|
18286
|
+
return { ...x, objectInfo: objectInfoMap[x.type] };
|
|
18287
|
+
});
|
|
18278
18288
|
const unavailableIds = unavilableBatches.reduce((acc, x) => {
|
|
18279
18289
|
acc.push(...x.ids);
|
|
18280
18290
|
return acc;
|
|
@@ -18296,7 +18306,7 @@ const requiredFieldMap = {
|
|
|
18296
18306
|
Id: 'Id',
|
|
18297
18307
|
LastModifiedById: 'LastModifiedById { value }',
|
|
18298
18308
|
LastModifiedDate: 'LastModifiedDate { value }',
|
|
18299
|
-
RecordTypeId: 'RecordTypeId { value }',
|
|
18309
|
+
RecordTypeId: 'RecordTypeId(fallback: true) { value }',
|
|
18300
18310
|
SystemModstamp: 'SystemModstamp { value }',
|
|
18301
18311
|
WeakEtag: 'WeakEtag',
|
|
18302
18312
|
};
|
|
@@ -18363,9 +18373,10 @@ class RecordLoaderGraphQL {
|
|
|
18363
18373
|
missingIds: batchInput.ids,
|
|
18364
18374
|
};
|
|
18365
18375
|
}
|
|
18376
|
+
const objectInfo = batchInput.objectInfo;
|
|
18366
18377
|
const seenRecords = new Set(batchInput.ids);
|
|
18367
18378
|
const records = data.uiapi.query[batchInput.type].edges.map((edge) => {
|
|
18368
|
-
const record = this.generateDurableRecordRepresentation(edge.node);
|
|
18379
|
+
const record = this.generateDurableRecordRepresentation(edge.node, objectInfo);
|
|
18369
18380
|
seenRecords.delete(record.id);
|
|
18370
18381
|
return record;
|
|
18371
18382
|
});
|
|
@@ -18416,7 +18427,7 @@ class RecordLoaderGraphQL {
|
|
|
18416
18427
|
}
|
|
18417
18428
|
`;
|
|
18418
18429
|
}
|
|
18419
|
-
generateDurableRecordRepresentation(node) {
|
|
18430
|
+
generateDurableRecordRepresentation(node, objectInfo) {
|
|
18420
18431
|
const standardRecordFields = new Set(Object.keys(requiredFieldMap).map((x) => `${requiredPrefix}${x}`));
|
|
18421
18432
|
const id = node[`${requiredPrefix}Id`];
|
|
18422
18433
|
const recordTypeId = node[`${requiredPrefix}RecordTypeId`].value;
|
|
@@ -18431,6 +18442,16 @@ class RecordLoaderGraphQL {
|
|
|
18431
18442
|
}, {});
|
|
18432
18443
|
fields['Id'] = { value: id, displayValue: null };
|
|
18433
18444
|
fields['RecordTypeId'] = { value: recordTypeId, displayValue: null };
|
|
18445
|
+
let recordTypeInfo = null;
|
|
18446
|
+
if (recordTypeId !== null &&
|
|
18447
|
+
objectInfo.recordTypeInfos &&
|
|
18448
|
+
objectInfo.recordTypeInfos[recordTypeId]) {
|
|
18449
|
+
const appliedRecordTypeInfo = objectInfo.recordTypeInfos[recordTypeId];
|
|
18450
|
+
// ui-api only applies the record type if its not the default type, otherwise it sets it to null
|
|
18451
|
+
if (appliedRecordTypeInfo.defaultRecordTypeMapping === false) {
|
|
18452
|
+
recordTypeInfo = appliedRecordTypeInfo;
|
|
18453
|
+
}
|
|
18454
|
+
}
|
|
18434
18455
|
return {
|
|
18435
18456
|
apiName: node[`${requiredPrefix}ApiName`],
|
|
18436
18457
|
childRelationships: {},
|
|
@@ -18445,7 +18466,7 @@ class RecordLoaderGraphQL {
|
|
|
18445
18466
|
? node[`${requiredPrefix}LastModifiedDate`].value
|
|
18446
18467
|
: null,
|
|
18447
18468
|
recordTypeId,
|
|
18448
|
-
recordTypeInfo:
|
|
18469
|
+
recordTypeInfo: recordTypeInfo,
|
|
18449
18470
|
systemModstamp: node[`${requiredPrefix}SystemModstamp`] &&
|
|
18450
18471
|
node[`${requiredPrefix}SystemModstamp`].value
|
|
18451
18472
|
? node[`${requiredPrefix}SystemModstamp`].value
|
|
@@ -18503,7 +18524,7 @@ function instrumentPrimingSession(session) {
|
|
|
18503
18524
|
// so eslint doesn't complain about nimbus
|
|
18504
18525
|
/* global __nimbus */
|
|
18505
18526
|
// note this is automatically incremented by scripts/release/bump-api-version.js at each release
|
|
18506
|
-
const apiVersion = `
|
|
18527
|
+
const apiVersion = `v63.0`;
|
|
18507
18528
|
const batchEndPointPath = `/services/data/${apiVersion}/graphql/batch`;
|
|
18508
18529
|
const endPointPath = `/services/data/${apiVersion}/graphql`;
|
|
18509
18530
|
const batchObjectInfoEndpoint = `/services/data/${apiVersion}/ui-api/object-info/batch`;
|
|
@@ -19188,4 +19209,4 @@ register({
|
|
|
19188
19209
|
});
|
|
19189
19210
|
|
|
19190
19211
|
export { O11Y_NAMESPACE_LDS_MOBILE, getRuntime, registerReportObserver, reportGraphqlQueryParseError };
|
|
19191
|
-
// version: 1.
|
|
19212
|
+
// version: 1.311.1-73c3329af5
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/lds-runtime-mobile",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.311.1",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"description": "LDS runtime for mobile/hybrid environments.",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -32,27 +32,27 @@
|
|
|
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-mobile": "^1.
|
|
36
|
-
"@salesforce/lds-bindings": "^1.
|
|
37
|
-
"@salesforce/lds-instrumentation": "^1.
|
|
38
|
-
"@salesforce/lds-priming": "^1.
|
|
35
|
+
"@salesforce/lds-adapters-uiapi-mobile": "^1.311.1",
|
|
36
|
+
"@salesforce/lds-bindings": "^1.311.1",
|
|
37
|
+
"@salesforce/lds-instrumentation": "^1.311.1",
|
|
38
|
+
"@salesforce/lds-priming": "^1.311.1",
|
|
39
39
|
"@salesforce/user": "0.0.21",
|
|
40
40
|
"o11y": "250.7.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@salesforce/lds-adapters-graphql": "^1.
|
|
44
|
-
"@salesforce/lds-drafts": "^1.
|
|
45
|
-
"@salesforce/lds-drafts-adapters-uiapi": "^1.
|
|
46
|
-
"@salesforce/lds-durable-records": "^1.
|
|
47
|
-
"@salesforce/lds-graphql-eval": "^1.
|
|
48
|
-
"@salesforce/lds-graphql-local-evaluation": "^1.
|
|
49
|
-
"@salesforce/lds-network-adapter": "^1.
|
|
50
|
-
"@salesforce/lds-network-nimbus": "^1.
|
|
51
|
-
"@salesforce/lds-store-binary": "^1.
|
|
52
|
-
"@salesforce/lds-store-nimbus": "^1.
|
|
53
|
-
"@salesforce/lds-store-sql": "^1.
|
|
54
|
-
"@salesforce/lds-utils-adapters": "^1.
|
|
55
|
-
"@salesforce/nimbus-plugin-lds": "^1.
|
|
43
|
+
"@salesforce/lds-adapters-graphql": "^1.311.1",
|
|
44
|
+
"@salesforce/lds-drafts": "^1.311.1",
|
|
45
|
+
"@salesforce/lds-drafts-adapters-uiapi": "^1.311.1",
|
|
46
|
+
"@salesforce/lds-durable-records": "^1.311.1",
|
|
47
|
+
"@salesforce/lds-graphql-eval": "^1.311.1",
|
|
48
|
+
"@salesforce/lds-graphql-local-evaluation": "^1.311.1",
|
|
49
|
+
"@salesforce/lds-network-adapter": "^1.311.1",
|
|
50
|
+
"@salesforce/lds-network-nimbus": "^1.311.1",
|
|
51
|
+
"@salesforce/lds-store-binary": "^1.311.1",
|
|
52
|
+
"@salesforce/lds-store-nimbus": "^1.311.1",
|
|
53
|
+
"@salesforce/lds-store-sql": "^1.311.1",
|
|
54
|
+
"@salesforce/lds-utils-adapters": "^1.311.1",
|
|
55
|
+
"@salesforce/nimbus-plugin-lds": "^1.311.1",
|
|
56
56
|
"babel-plugin-dynamic-import-node": "^2.3.3",
|
|
57
57
|
"wait-for-expect": "^3.0.2"
|
|
58
58
|
},
|
package/sfdc/main.js
CHANGED
|
@@ -57,7 +57,7 @@ const { join: join$2, push: push$2, unshift } = Array.prototype;
|
|
|
57
57
|
const { isArray: isArray$5 } = Array;
|
|
58
58
|
const { entries: entries$6, keys: keys$9 } = Object;
|
|
59
59
|
|
|
60
|
-
const UI_API_BASE_URI = '/services/data/
|
|
60
|
+
const UI_API_BASE_URI = '/services/data/v63.0/ui-api';
|
|
61
61
|
|
|
62
62
|
let instrumentation = {
|
|
63
63
|
aggregateUiChunkCount: (_cb) => { },
|
|
@@ -10787,6 +10787,11 @@ function singlePredicateToSql(predicate, defaultAlias, isChildNotPredicate = fal
|
|
|
10787
10787
|
let { alias, leftPath, operator, value, dataType, isCaseSensitive } = predicate;
|
|
10788
10788
|
let binding = [];
|
|
10789
10789
|
let boundValue = extractPredicateValue(value, dataType);
|
|
10790
|
+
// using != does not include null values
|
|
10791
|
+
// using IS NOT predicate will include null values as null also is not the value
|
|
10792
|
+
if (operator === '!=') {
|
|
10793
|
+
operator = 'IS NOT';
|
|
10794
|
+
}
|
|
10790
10795
|
// Handles boolean type field
|
|
10791
10796
|
if (dataType === 'Boolean') {
|
|
10792
10797
|
if (boundValue === null) {
|
|
@@ -10802,13 +10807,8 @@ function singlePredicateToSql(predicate, defaultAlias, isChildNotPredicate = fal
|
|
|
10802
10807
|
boundValue = 0;
|
|
10803
10808
|
}
|
|
10804
10809
|
}
|
|
10805
|
-
if (boundValue === null) {
|
|
10806
|
-
|
|
10807
|
-
operator = 'IS';
|
|
10808
|
-
}
|
|
10809
|
-
else if (operator === '!=') {
|
|
10810
|
-
operator = 'IS NOT';
|
|
10811
|
-
}
|
|
10810
|
+
if (boundValue === null && operator === '=') {
|
|
10811
|
+
operator = 'IS';
|
|
10812
10812
|
}
|
|
10813
10813
|
alias = !alias ? defaultAlias : alias;
|
|
10814
10814
|
let sql;
|
|
@@ -10960,7 +10960,13 @@ function extractPredicateValue(value, dataType) {
|
|
|
10960
10960
|
return value;
|
|
10961
10961
|
}
|
|
10962
10962
|
if (typeof value !== 'object') {
|
|
10963
|
-
|
|
10963
|
+
// GraphQL server treats empty string value as null
|
|
10964
|
+
if (typeof value === 'string' && value.length === 0) {
|
|
10965
|
+
return null;
|
|
10966
|
+
}
|
|
10967
|
+
else if (typeof value === 'string' ||
|
|
10968
|
+
typeof value === 'number' ||
|
|
10969
|
+
typeof value === 'boolean') {
|
|
10964
10970
|
return value;
|
|
10965
10971
|
}
|
|
10966
10972
|
else {
|
|
@@ -16194,7 +16200,7 @@ function mergePageUrls(first, second) {
|
|
|
16194
16200
|
/**
|
|
16195
16201
|
* merge to paging url with different set of fields or optional fields as combined one
|
|
16196
16202
|
* the paging url is like
|
|
16197
|
-
* /services/data/
|
|
16203
|
+
* /services/data/v63.0/ui-api/related-list-records/001R0000006l1xKIAQ/Contacts
|
|
16198
16204
|
* ?fields=Id%2CName&optionalFields=Contact.Id%2CContact.Name&pageSize=50&pageToken=0
|
|
16199
16205
|
* @param path1 url path and query parmeter without domain
|
|
16200
16206
|
* @param path2 url path and query parmeter without domain
|
|
@@ -18274,7 +18280,11 @@ class PrimingSession extends EventEmitter {
|
|
|
18274
18280
|
const unavailableTypes = apiNames.filter((x) => !objectInfoMap[x]);
|
|
18275
18281
|
const availableTypes = apiNames.filter((x) => objectInfoMap[x]);
|
|
18276
18282
|
const unavilableBatches = batches.filter((x) => unavailableTypes.includes(x.type));
|
|
18277
|
-
const availableBatches = batches
|
|
18283
|
+
const availableBatches = batches
|
|
18284
|
+
.filter((x) => !unavailableTypes.includes(x.type))
|
|
18285
|
+
.map((x) => {
|
|
18286
|
+
return { ...x, objectInfo: objectInfoMap[x.type] };
|
|
18287
|
+
});
|
|
18278
18288
|
const unavailableIds = unavilableBatches.reduce((acc, x) => {
|
|
18279
18289
|
acc.push(...x.ids);
|
|
18280
18290
|
return acc;
|
|
@@ -18296,7 +18306,7 @@ const requiredFieldMap = {
|
|
|
18296
18306
|
Id: 'Id',
|
|
18297
18307
|
LastModifiedById: 'LastModifiedById { value }',
|
|
18298
18308
|
LastModifiedDate: 'LastModifiedDate { value }',
|
|
18299
|
-
RecordTypeId: 'RecordTypeId { value }',
|
|
18309
|
+
RecordTypeId: 'RecordTypeId(fallback: true) { value }',
|
|
18300
18310
|
SystemModstamp: 'SystemModstamp { value }',
|
|
18301
18311
|
WeakEtag: 'WeakEtag',
|
|
18302
18312
|
};
|
|
@@ -18363,9 +18373,10 @@ class RecordLoaderGraphQL {
|
|
|
18363
18373
|
missingIds: batchInput.ids,
|
|
18364
18374
|
};
|
|
18365
18375
|
}
|
|
18376
|
+
const objectInfo = batchInput.objectInfo;
|
|
18366
18377
|
const seenRecords = new Set(batchInput.ids);
|
|
18367
18378
|
const records = data.uiapi.query[batchInput.type].edges.map((edge) => {
|
|
18368
|
-
const record = this.generateDurableRecordRepresentation(edge.node);
|
|
18379
|
+
const record = this.generateDurableRecordRepresentation(edge.node, objectInfo);
|
|
18369
18380
|
seenRecords.delete(record.id);
|
|
18370
18381
|
return record;
|
|
18371
18382
|
});
|
|
@@ -18416,7 +18427,7 @@ class RecordLoaderGraphQL {
|
|
|
18416
18427
|
}
|
|
18417
18428
|
`;
|
|
18418
18429
|
}
|
|
18419
|
-
generateDurableRecordRepresentation(node) {
|
|
18430
|
+
generateDurableRecordRepresentation(node, objectInfo) {
|
|
18420
18431
|
const standardRecordFields = new Set(Object.keys(requiredFieldMap).map((x) => `${requiredPrefix}${x}`));
|
|
18421
18432
|
const id = node[`${requiredPrefix}Id`];
|
|
18422
18433
|
const recordTypeId = node[`${requiredPrefix}RecordTypeId`].value;
|
|
@@ -18431,6 +18442,16 @@ class RecordLoaderGraphQL {
|
|
|
18431
18442
|
}, {});
|
|
18432
18443
|
fields['Id'] = { value: id, displayValue: null };
|
|
18433
18444
|
fields['RecordTypeId'] = { value: recordTypeId, displayValue: null };
|
|
18445
|
+
let recordTypeInfo = null;
|
|
18446
|
+
if (recordTypeId !== null &&
|
|
18447
|
+
objectInfo.recordTypeInfos &&
|
|
18448
|
+
objectInfo.recordTypeInfos[recordTypeId]) {
|
|
18449
|
+
const appliedRecordTypeInfo = objectInfo.recordTypeInfos[recordTypeId];
|
|
18450
|
+
// ui-api only applies the record type if its not the default type, otherwise it sets it to null
|
|
18451
|
+
if (appliedRecordTypeInfo.defaultRecordTypeMapping === false) {
|
|
18452
|
+
recordTypeInfo = appliedRecordTypeInfo;
|
|
18453
|
+
}
|
|
18454
|
+
}
|
|
18434
18455
|
return {
|
|
18435
18456
|
apiName: node[`${requiredPrefix}ApiName`],
|
|
18436
18457
|
childRelationships: {},
|
|
@@ -18445,7 +18466,7 @@ class RecordLoaderGraphQL {
|
|
|
18445
18466
|
? node[`${requiredPrefix}LastModifiedDate`].value
|
|
18446
18467
|
: null,
|
|
18447
18468
|
recordTypeId,
|
|
18448
|
-
recordTypeInfo:
|
|
18469
|
+
recordTypeInfo: recordTypeInfo,
|
|
18449
18470
|
systemModstamp: node[`${requiredPrefix}SystemModstamp`] &&
|
|
18450
18471
|
node[`${requiredPrefix}SystemModstamp`].value
|
|
18451
18472
|
? node[`${requiredPrefix}SystemModstamp`].value
|
|
@@ -18503,7 +18524,7 @@ function instrumentPrimingSession(session) {
|
|
|
18503
18524
|
// so eslint doesn't complain about nimbus
|
|
18504
18525
|
/* global __nimbus */
|
|
18505
18526
|
// note this is automatically incremented by scripts/release/bump-api-version.js at each release
|
|
18506
|
-
const apiVersion = `
|
|
18527
|
+
const apiVersion = `v63.0`;
|
|
18507
18528
|
const batchEndPointPath = `/services/data/${apiVersion}/graphql/batch`;
|
|
18508
18529
|
const endPointPath = `/services/data/${apiVersion}/graphql`;
|
|
18509
18530
|
const batchObjectInfoEndpoint = `/services/data/${apiVersion}/ui-api/object-info/batch`;
|
|
@@ -19188,4 +19209,4 @@ register({
|
|
|
19188
19209
|
});
|
|
19189
19210
|
|
|
19190
19211
|
export { O11Y_NAMESPACE_LDS_MOBILE, getRuntime, registerReportObserver, reportGraphqlQueryParseError };
|
|
19191
|
-
// version: 1.
|
|
19212
|
+
// version: 1.311.1-73c3329af5
|