@salesforce/lds-runtime-webruntime 1.428.0-dev1 → 1.428.0-dev11

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.
@@ -1352,6 +1352,7 @@ class HttpCacheControlCommand extends CacheControlCommand {
1352
1352
  constructor(services) {
1353
1353
  super(services);
1354
1354
  this.services = services;
1355
+ this.additionalNullResponses = [];
1355
1356
  }
1356
1357
  requestFromNetwork() {
1357
1358
  return this.fetch();
@@ -1363,6 +1364,15 @@ class HttpCacheControlCommand extends CacheControlCommand {
1363
1364
  return resolvedPromiseLike$2(err$1(toError(reason)));
1364
1365
  }
1365
1366
  }
1367
+ isSemanticNullResponse(response) {
1368
+ return this.additionalNullResponses.includes(response.status);
1369
+ }
1370
+ isProtocolNoBodyStatus(status) {
1371
+ return status === 204 || status === 205;
1372
+ }
1373
+ isUndeclaredNoBodyResponse(response) {
1374
+ return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
1375
+ }
1366
1376
  async coerceError(errorResponse) {
1367
1377
  return toError(errorResponse.statusText);
1368
1378
  }
@@ -1373,12 +1383,26 @@ class HttpCacheControlCommand extends CacheControlCommand {
1373
1383
  return response.then(
1374
1384
  (response2) => {
1375
1385
  if (response2.ok) {
1376
- return response2.json().then(
1377
- (json) => {
1378
- return this.processFetchReturnValue(json);
1379
- },
1380
- (reason) => err$1(toError(reason))
1381
- ).finally(() => {
1386
+ let resultPromise;
1387
+ if (this.isSemanticNullResponse(response2)) {
1388
+ resultPromise = Promise.resolve(ok$2(null));
1389
+ } else if (this.isUndeclaredNoBodyResponse(response2)) {
1390
+ resultPromise = Promise.resolve(
1391
+ err$1(
1392
+ toError(
1393
+ `Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
1394
+ )
1395
+ )
1396
+ );
1397
+ } else {
1398
+ resultPromise = response2.json().then(
1399
+ (json) => {
1400
+ return this.processFetchReturnValue(json);
1401
+ },
1402
+ (reason) => err$1(toError(reason))
1403
+ );
1404
+ }
1405
+ return resultPromise.finally(() => {
1382
1406
  try {
1383
1407
  this.afterRequestHooks({ statusCode: response2.status });
1384
1408
  } catch {
@@ -1562,6 +1586,7 @@ const _FetchNetworkCommand = class _FetchNetworkCommand extends NetworkCommand {
1562
1586
  constructor(services) {
1563
1587
  super(services);
1564
1588
  this.services = services;
1589
+ this.additionalNullResponses = [];
1565
1590
  }
1566
1591
  fetch() {
1567
1592
  try {
@@ -1570,6 +1595,15 @@ const _FetchNetworkCommand = class _FetchNetworkCommand extends NetworkCommand {
1570
1595
  return resolvedPromiseLike$2(err$1(toError(reason)));
1571
1596
  }
1572
1597
  }
1598
+ isSemanticNullResponse(response) {
1599
+ return this.additionalNullResponses.includes(response.status);
1600
+ }
1601
+ isProtocolNoBodyStatus(status) {
1602
+ return status === 204 || status === 205;
1603
+ }
1604
+ isUndeclaredNoBodyResponse(response) {
1605
+ return this.isProtocolNoBodyStatus(response.status) && !this.isSemanticNullResponse(response);
1606
+ }
1573
1607
  async coerceError(errorResponse) {
1574
1608
  return toError(errorResponse.statusText);
1575
1609
  }
@@ -1577,10 +1611,24 @@ const _FetchNetworkCommand = class _FetchNetworkCommand extends NetworkCommand {
1577
1611
  return response.then(
1578
1612
  (response2) => {
1579
1613
  if (response2.ok) {
1580
- return response2.json().then(
1581
- (json) => ok$2(json),
1582
- (reason) => err$1(toError(reason))
1583
- ).finally(() => {
1614
+ let resultPromise;
1615
+ if (this.isSemanticNullResponse(response2)) {
1616
+ resultPromise = Promise.resolve(ok$2(null));
1617
+ } else if (this.isUndeclaredNoBodyResponse(response2)) {
1618
+ resultPromise = Promise.resolve(
1619
+ err$1(
1620
+ toError(
1621
+ `Unexpected ${response2.status} response: no-content status was not declared in the API specification. Declare this response in your OAS without a content property.`
1622
+ )
1623
+ )
1624
+ );
1625
+ } else {
1626
+ resultPromise = response2.json().then(
1627
+ (json) => ok$2(json),
1628
+ (reason) => err$1(toError(reason))
1629
+ );
1630
+ }
1631
+ return resultPromise.finally(() => {
1584
1632
  try {
1585
1633
  this.afterRequestHooks({ statusCode: response2.status });
1586
1634
  } catch {
@@ -3331,7 +3379,7 @@ function buildServiceDescriptor$9(luvio) {
3331
3379
  },
3332
3380
  };
3333
3381
  }
3334
- // version: 1.428.0-dev1-52205c6c54
3382
+ // version: 1.428.0-dev11-659d2de2fa
3335
3383
 
3336
3384
  /**
3337
3385
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -3357,7 +3405,7 @@ function buildServiceDescriptor$8(notifyRecordUpdateAvailable, getNormalizedLuvi
3357
3405
  },
3358
3406
  };
3359
3407
  }
3360
- // version: 1.428.0-dev1-52205c6c54
3408
+ // version: 1.428.0-dev11-659d2de2fa
3361
3409
 
3362
3410
  /*!
3363
3411
  * Copyright (c) 2022, Salesforce, Inc.,
@@ -3444,6 +3492,9 @@ function invalidSchemaResponseWithError(error) {
3444
3492
  return err$1([error]);
3445
3493
  }
3446
3494
  function validateJsonSchema(data, schema, path = "$", document = schema) {
3495
+ return validateJsonSchemaInternal(data, schema, path, document, /* @__PURE__ */ new Map());
3496
+ }
3497
+ function validateJsonSchemaInternal(data, schema, path, document, visited) {
3447
3498
  if (schema === true) return validSchemaResponse();
3448
3499
  if (schema === false)
3449
3500
  return invalidSchemaResponseWithError(
@@ -3452,22 +3503,22 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
3452
3503
  const dataType = data === null ? "null" : Array.isArray(data) ? "array" : typeof data;
3453
3504
  const errorCollector = new JsonSchemaErrorCollector();
3454
3505
  if ("anyOf" in schema) {
3455
- errorCollector.append(validateAnyOf(data, schema, path, document));
3506
+ errorCollector.append(validateAnyOf(data, schema, path, document, visited));
3456
3507
  } else if ("oneOf" in schema) {
3457
- errorCollector.append(validateOneOf(data, schema, path, document));
3508
+ errorCollector.append(validateOneOf(data, schema, path, document, visited));
3458
3509
  } else if ("allOf" in schema) {
3459
- errorCollector.append(validateAllOf(data, schema, path, document));
3510
+ errorCollector.append(validateAllOf(data, schema, path, document, visited));
3460
3511
  } else if ("not" in schema) {
3461
- errorCollector.append(validateNot(data, schema, path, document));
3512
+ errorCollector.append(validateNot(data, schema, path, document, visited));
3462
3513
  } else if ("$ref" in schema) {
3463
- errorCollector.append(validateRef(data, schema, path, document));
3514
+ errorCollector.append(validateRef(data, schema, path, document, visited));
3464
3515
  } else if ("type" in schema) {
3465
3516
  if (schema.type === "object") {
3466
3517
  if (dataType !== "object") {
3467
3518
  errorCollector.add(incorrectTypeError("object", dataType, path));
3468
3519
  } else {
3469
3520
  errorCollector.append(
3470
- validateObject(data, schema, path, document)
3521
+ validateObject(data, schema, path, document, visited)
3471
3522
  );
3472
3523
  }
3473
3524
  } else if (schema.type === "array") {
@@ -3475,7 +3526,7 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
3475
3526
  errorCollector.add(incorrectTypeError("array", dataType, path));
3476
3527
  } else {
3477
3528
  errorCollector.append(
3478
- validateArray(data, schema, path, document)
3529
+ validateArray(data, schema, path, document, visited)
3479
3530
  );
3480
3531
  }
3481
3532
  } else {
@@ -3492,16 +3543,17 @@ function validateJsonSchema(data, schema, path = "$", document = schema) {
3492
3543
  }
3493
3544
  return errorCollector.toValidationResponse();
3494
3545
  }
3495
- function validateAnyOf(data, schema, path, document) {
3546
+ function validateAnyOf(data, schema, path, document, visited) {
3496
3547
  let isValid = false;
3497
3548
  const errorCollector = new JsonSchemaErrorCollector();
3498
3549
  for (let i = 0, { length } = schema.anyOf; i < length; i++) {
3499
3550
  const element = schema.anyOf[i];
3500
- const validationResponse = validateJsonSchema(
3551
+ const validationResponse = validateJsonSchemaInternal(
3501
3552
  data,
3502
3553
  element,
3503
3554
  `${path}.anyOf[${i}]`,
3504
- document
3555
+ document,
3556
+ visited
3505
3557
  );
3506
3558
  if (validationResponse.isOk()) {
3507
3559
  isValid = true;
@@ -3518,13 +3570,22 @@ function validateAnyOf(data, schema, path, document) {
3518
3570
  }
3519
3571
  return validSchemaResponse();
3520
3572
  }
3521
- function validateOneOf(data, schema, path, document) {
3573
+ function validateOneOf(data, schema, path, document, visited) {
3574
+ if (schema.discriminator !== void 0) {
3575
+ return validateDiscriminatedOneOf(data, schema.discriminator, path, document, visited);
3576
+ }
3522
3577
  let validSubShemaPaths = [];
3523
3578
  const errorCollector = new JsonSchemaErrorCollector();
3524
3579
  for (let i = 0, { length } = schema.oneOf; i < length; i++) {
3525
3580
  const element = schema.oneOf[i];
3526
3581
  const oneOfPath = `${path}.oneOf[${i}]`;
3527
- const validationResponse = validateJsonSchema(data, element, oneOfPath, document);
3582
+ const validationResponse = validateJsonSchemaInternal(
3583
+ data,
3584
+ element,
3585
+ oneOfPath,
3586
+ document,
3587
+ visited
3588
+ );
3528
3589
  if (validationResponse.isOk()) {
3529
3590
  validSubShemaPaths.push(oneOfPath);
3530
3591
  } else {
@@ -3546,16 +3607,45 @@ function validateOneOf(data, schema, path, document) {
3546
3607
  }
3547
3608
  return validSchemaResponse();
3548
3609
  }
3549
- function validateAllOf(data, schema, path, document) {
3610
+ function validateDiscriminatedOneOf(data, discriminator, path, document, visited) {
3611
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
3612
+ return invalidSchemaResponseWithError(incorrectTypeError("object", typeof data, path));
3613
+ }
3614
+ const { propertyName, mapping } = discriminator;
3615
+ const discriminatorValue = data[propertyName];
3616
+ if (discriminatorValue === void 0) {
3617
+ return invalidSchemaResponseWithError(
3618
+ new MissingRequiredPropertyError(
3619
+ `Object at path '${path}' is missing required discriminator property '${propertyName}'.`
3620
+ )
3621
+ );
3622
+ }
3623
+ if (typeof discriminatorValue !== "string") {
3624
+ return invalidSchemaResponseWithError(
3625
+ incorrectTypeError("string", typeof discriminatorValue, `${path}.${propertyName}`)
3626
+ );
3627
+ }
3628
+ const targetRef = mapping[discriminatorValue];
3629
+ if (targetRef === void 0) {
3630
+ return invalidSchemaResponseWithError(
3631
+ new JsonSchemaViolationError(
3632
+ `Discriminator value '${discriminatorValue}' at '${path}.${propertyName}' is not in the mapping. Expected one of: [${Object.keys(mapping).join(", ")}].`
3633
+ )
3634
+ );
3635
+ }
3636
+ return validateJsonSchemaInternal(data, { $ref: targetRef }, path, document, visited);
3637
+ }
3638
+ function validateAllOf(data, schema, path, document, visited) {
3550
3639
  let isValid = true;
3551
3640
  const errorCollector = new JsonSchemaErrorCollector();
3552
3641
  for (let i = 0, { length } = schema.allOf; i < length; i++) {
3553
3642
  const element = schema.allOf[i];
3554
- const validationResponse = validateJsonSchema(
3643
+ const validationResponse = validateJsonSchemaInternal(
3555
3644
  data,
3556
3645
  element,
3557
3646
  `${path}.allOf[${i}]`,
3558
- document
3647
+ document,
3648
+ visited
3559
3649
  );
3560
3650
  if (!validationResponse.isOk()) {
3561
3651
  errorCollector.append(validationResponse);
@@ -3569,8 +3659,14 @@ function validateAllOf(data, schema, path, document) {
3569
3659
  }
3570
3660
  return errorCollector.toValidationResponse();
3571
3661
  }
3572
- function validateNot(data, schema, path, document) {
3573
- const validationResponse = validateJsonSchema(data, schema.not, path, document);
3662
+ function validateNot(data, schema, path, document, visited) {
3663
+ const validationResponse = validateJsonSchemaInternal(
3664
+ data,
3665
+ schema.not,
3666
+ path,
3667
+ document,
3668
+ visited
3669
+ );
3574
3670
  if (validationResponse.isOk()) {
3575
3671
  return invalidSchemaResponseWithError(
3576
3672
  new JsonSchemaViolationError(
@@ -3580,7 +3676,7 @@ function validateNot(data, schema, path, document) {
3580
3676
  }
3581
3677
  return validSchemaResponse();
3582
3678
  }
3583
- function validateObject(data, schema, path, document) {
3679
+ function validateObject(data, schema, path, document, visited) {
3584
3680
  const schemaKeys = Object.keys(schema.properties);
3585
3681
  const requiredKeys = new Set(schema.required);
3586
3682
  const schemaKeySet = new Set(schemaKeys);
@@ -3588,11 +3684,12 @@ function validateObject(data, schema, path, document) {
3588
3684
  Object.keys(data).forEach((key) => {
3589
3685
  if (!schemaKeySet.has(key)) {
3590
3686
  errorCollector.append(
3591
- validateJsonSchema(
3687
+ validateJsonSchemaInternal(
3592
3688
  data[key],
3593
3689
  schema.additionalProperties,
3594
3690
  `${path}.additionalProperties[${key}]`,
3595
- document
3691
+ document,
3692
+ visited
3596
3693
  )
3597
3694
  );
3598
3695
  }
@@ -3609,18 +3706,19 @@ function validateObject(data, schema, path, document) {
3609
3706
  }
3610
3707
  if (keyInData) {
3611
3708
  errorCollector.append(
3612
- validateJsonSchema(
3709
+ validateJsonSchemaInternal(
3613
3710
  data[key],
3614
3711
  schema.properties[key],
3615
3712
  `${path}.${key}`,
3616
- document
3713
+ document,
3714
+ visited
3617
3715
  )
3618
3716
  );
3619
3717
  }
3620
3718
  }
3621
3719
  return errorCollector.toValidationResponse();
3622
3720
  }
3623
- function validateArray(data, schema, path, document) {
3721
+ function validateArray(data, schema, path, document, visited) {
3624
3722
  if (schema.minItems !== void 0 && data.length < schema.minItems) {
3625
3723
  return invalidSchemaResponseWithError(
3626
3724
  new MinItemsViolationError(
@@ -3638,7 +3736,13 @@ function validateArray(data, schema, path, document) {
3638
3736
  const errorCollector = new JsonSchemaErrorCollector();
3639
3737
  data.forEach(
3640
3738
  (element, index) => errorCollector.append(
3641
- validateJsonSchema(element, schema.items, `${path}[${index}]`, document)
3739
+ validateJsonSchemaInternal(
3740
+ element,
3741
+ schema.items,
3742
+ `${path}[${index}]`,
3743
+ document,
3744
+ visited
3745
+ )
3642
3746
  )
3643
3747
  );
3644
3748
  return errorCollector.toValidationResponse();
@@ -3673,7 +3777,7 @@ function validateScalar(data, schema, path) {
3673
3777
  }
3674
3778
  return validSchemaResponse();
3675
3779
  }
3676
- function validateRef(data, schema, path, document) {
3780
+ function validateRef(data, schema, path, document, visited) {
3677
3781
  if (!schema.$ref.startsWith("#")) {
3678
3782
  return invalidSchemaResponseWithError(
3679
3783
  new InvalidRefError(
@@ -3681,11 +3785,23 @@ function validateRef(data, schema, path, document) {
3681
3785
  )
3682
3786
  );
3683
3787
  }
3788
+ let refsForData = visited.get(data);
3789
+ if (refsForData !== void 0 && refsForData.has(schema.$ref)) {
3790
+ return validSchemaResponse();
3791
+ }
3792
+ if (refsForData === void 0) {
3793
+ refsForData = /* @__PURE__ */ new Set();
3794
+ visited.set(data, refsForData);
3795
+ }
3796
+ refsForData.add(schema.$ref);
3684
3797
  try {
3685
3798
  const schemaToValidate = findSchemaAtPath(document, schema.$ref);
3686
- return validateJsonSchema(data, schemaToValidate, path, document);
3799
+ return validateJsonSchemaInternal(data, schemaToValidate, path, document, visited);
3687
3800
  } catch (e) {
3688
3801
  return invalidSchemaResponseWithError(e);
3802
+ } finally {
3803
+ refsForData.delete(schema.$ref);
3804
+ if (refsForData.size === 0) visited.delete(data);
3689
3805
  }
3690
3806
  }
3691
3807
  function validateEnum(data, enumValue, path) {
@@ -5213,4 +5329,4 @@ withDefaultLuvio((luvio) => {
5213
5329
  ];
5214
5330
  setServices(services);
5215
5331
  });
5216
- // version: 1.428.0-dev1-c95a813572
5332
+ // version: 1.428.0-dev11-b4d8cf1aec
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lds-runtime-webruntime",
3
- "version": "1.428.0-dev1",
3
+ "version": "1.428.0-dev11",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "description": "LDS engine for Webruntime runtime",
6
6
  "main": "dist/ldsWebruntimeOneStoreInit.js",
@@ -35,46 +35,46 @@
35
35
  "ready": "yarn build && jest --collectCoverage && yarn test:size && yarn release:corejar"
36
36
  },
37
37
  "devDependencies": {
38
- "@conduit-client/service-provisioner": "3.18.0",
39
- "@conduit-client/tools-core": "3.18.0",
38
+ "@conduit-client/service-provisioner": "3.18.1-dev2",
39
+ "@conduit-client/tools-core": "3.18.1-dev2",
40
40
  "jwt-encode": "1.0.1"
41
41
  },
42
42
  "dependencies": {
43
- "@conduit-client/command-aura-network": "3.18.0",
44
- "@conduit-client/command-aura-normalized-cache-control": "3.18.0",
45
- "@conduit-client/command-aura-resource-cache-control": "3.18.0",
46
- "@conduit-client/command-fetch-network": "3.18.0",
47
- "@conduit-client/command-http-normalized-cache-control": "3.18.0",
48
- "@conduit-client/command-ndjson": "3.18.0",
49
- "@conduit-client/command-network": "3.18.0",
50
- "@conduit-client/command-sse": "3.18.0",
51
- "@conduit-client/command-streaming": "3.18.0",
52
- "@conduit-client/jwt-manager": "3.18.0",
53
- "@conduit-client/service-aura-network": "3.18.0",
54
- "@conduit-client/service-bindings-imperative": "3.18.0",
55
- "@conduit-client/service-bindings-lwc": "3.18.0",
56
- "@conduit-client/service-cache": "3.18.0",
57
- "@conduit-client/service-cache-control": "3.18.0",
58
- "@conduit-client/service-cache-inclusion-policy": "3.18.0",
59
- "@conduit-client/service-fetch-network": "3.18.0",
60
- "@conduit-client/service-instrument-command": "3.18.0",
61
- "@conduit-client/service-pubsub": "3.18.0",
62
- "@conduit-client/service-store": "3.18.0",
63
- "@conduit-client/utils": "3.18.0",
43
+ "@conduit-client/command-aura-network": "3.18.1-dev2",
44
+ "@conduit-client/command-aura-normalized-cache-control": "3.18.1-dev2",
45
+ "@conduit-client/command-aura-resource-cache-control": "3.18.1-dev2",
46
+ "@conduit-client/command-fetch-network": "3.18.1-dev2",
47
+ "@conduit-client/command-http-normalized-cache-control": "3.18.1-dev2",
48
+ "@conduit-client/command-ndjson": "3.18.1-dev2",
49
+ "@conduit-client/command-network": "3.18.1-dev2",
50
+ "@conduit-client/command-sse": "3.18.1-dev2",
51
+ "@conduit-client/command-streaming": "3.18.1-dev2",
52
+ "@conduit-client/jwt-manager": "3.18.1-dev2",
53
+ "@conduit-client/service-aura-network": "3.18.1-dev2",
54
+ "@conduit-client/service-bindings-imperative": "3.18.1-dev2",
55
+ "@conduit-client/service-bindings-lwc": "3.18.1-dev2",
56
+ "@conduit-client/service-cache": "3.18.1-dev2",
57
+ "@conduit-client/service-cache-control": "3.18.1-dev2",
58
+ "@conduit-client/service-cache-inclusion-policy": "3.18.1-dev2",
59
+ "@conduit-client/service-fetch-network": "3.18.1-dev2",
60
+ "@conduit-client/service-instrument-command": "3.18.1-dev2",
61
+ "@conduit-client/service-pubsub": "3.18.1-dev2",
62
+ "@conduit-client/service-store": "3.18.1-dev2",
63
+ "@conduit-client/utils": "3.18.1-dev2",
64
64
  "@luvio/network-adapter-composable": "0.160.3",
65
65
  "@luvio/network-adapter-fetch": "0.160.3",
66
66
  "@salesforce/lds-adapters-uiapi-lex": "^1.415.0",
67
- "@salesforce/lds-default-luvio": "^1.428.0-dev1",
68
- "@salesforce/lds-luvio-service": "^1.428.0-dev1",
69
- "@salesforce/lds-luvio-uiapi-records-service": "^1.428.0-dev1"
67
+ "@salesforce/lds-default-luvio": "^1.428.0-dev11",
68
+ "@salesforce/lds-luvio-service": "^1.428.0-dev11",
69
+ "@salesforce/lds-luvio-uiapi-records-service": "^1.428.0-dev11"
70
70
  },
71
71
  "luvioBundlesize": [
72
72
  {
73
73
  "path": "./dist/ldsWebruntimeOneStoreInit.js",
74
74
  "maxSize": {
75
- "none": "160 kB",
75
+ "none": "165.00 kB",
76
76
  "min": "85 kB",
77
- "compressed": "25 kB"
77
+ "compressed": "25.50 kB"
78
78
  }
79
79
  }
80
80
  ],