@floegence/flowersec-core 2.2.0 → 2.3.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/README.md CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  `@floegence/flowersec-core` is the ESM-only Flowersec v2 SDK for browsers and Node.js. Its public package surface is limited to the root, `/browser`, `/node`, and `/proxy` entrypoints.
4
4
 
5
- Flowersec 2.2.0 is the coordinated TypeScript SDK release.
5
+ Flowersec 2.3.0 is the coordinated TypeScript SDK release.
6
6
 
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- npm install @floegence/flowersec-core@2.2.0
10
+ npm install @floegence/flowersec-core@2.3.0
11
11
  ```
12
12
 
13
13
  ## Public API
@@ -454,12 +454,17 @@ function normalizeCandidateURL(kind, carrier, raw) {
454
454
  default:
455
455
  throw invalidCandidate("carrier registry");
456
456
  }
457
- if (scheme !== expectedScheme)
457
+ const loopbackPlaintext = carrier === "websocket" && scheme === "ws" && kind === "direct" && isLoopbackHost(normalizedAuthority);
458
+ if (scheme !== expectedScheme && !loopbackPlaintext)
458
459
  throw invalidCandidate("carrier scheme");
459
460
  if (carrier !== "raw_quic" && path !== expectedPath)
460
461
  throw invalidCandidate("carrier URL path");
461
462
  return `${scheme}://${normalizedAuthority}${path}`;
462
463
  }
464
+ function isLoopbackHost(authority) {
465
+ const host = authority.startsWith("[") ? authority.slice(1, authority.indexOf("]")) : authority.split(":")[0];
466
+ return host === "127.0.0.1" || host === "::1";
467
+ }
463
468
  function normalizeAuthority(authority) {
464
469
  let host;
465
470
  let portText = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floegence/flowersec-core",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Flowersec core TypeScript library for carrier-neutral encrypted sessions and multiplexed streams.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "bomFormat": "CycloneDX",
3
3
  "specVersion": "1.5",
4
- "serialNumber": "urn:uuid:bc52a8d0-b65e-526a-8c9c-99b53b08194a",
4
+ "serialNumber": "urn:uuid:cf8e8ff3-da93-5d33-8d7d-3757e60b3f70",
5
5
  "version": 1,
6
6
  "metadata": {
7
7
  "component": {
8
8
  "type": "library",
9
9
  "name": "@floegence/flowersec-core",
10
- "version": "2.2.0",
11
- "purl": "pkg:npm/%40floegence/flowersec-core@2.2.0",
12
- "bom-ref": "pkg:npm/%40floegence/flowersec-core@2.2.0"
10
+ "version": "2.3.0",
11
+ "purl": "pkg:npm/%40floegence/flowersec-core@2.3.0",
12
+ "bom-ref": "pkg:npm/%40floegence/flowersec-core@2.3.0"
13
13
  },
14
14
  "properties": [
15
15
  {
16
16
  "name": "flowersec:source-inventory-sha256",
17
- "value": "230e833276df3ab620d06a6d76b6db45f0dd7ad16f5085e9bc60fba0384c5313"
17
+ "value": "ff5c9ce47b84ad4cc8a7e9ca5d1605dbaaeaae54743cb071442e146cbc1ca912"
18
18
  }
19
19
  ]
20
20
  },
@@ -2290,7 +2290,7 @@
2290
2290
  ],
2291
2291
  "dependencies": [
2292
2292
  {
2293
- "ref": "pkg:npm/%40floegence/flowersec-core@2.2.0",
2293
+ "ref": "pkg:npm/%40floegence/flowersec-core@2.3.0",
2294
2294
  "dependsOn": [
2295
2295
  "pkg:npm/%40fails-components/webtransport-transport-http3-quiche@1.6.7",
2296
2296
  "pkg:npm/%40fails-components/webtransport@1.6.7",
package/sbom/spdx.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "dataLicense": "CC0-1.0",
4
4
  "SPDXID": "SPDXRef-DOCUMENT",
5
5
  "name": "flowersec-ts",
6
- "documentNamespace": "https://github.com/floegence/flowersec/sbom/flowersec-ts/230e833276df3ab620d06a6d76b6db45f0dd7ad16f5085e9bc60fba0384c5313",
6
+ "documentNamespace": "https://github.com/floegence/flowersec/sbom/flowersec-ts/ff5c9ce47b84ad4cc8a7e9ca5d1605dbaaeaae54743cb071442e146cbc1ca912",
7
7
  "creationInfo": {
8
8
  "created": "1970-01-01T00:00:00Z",
9
9
  "creators": [
@@ -13,19 +13,19 @@
13
13
  "packages": [
14
14
  {
15
15
  "name": "@floegence/flowersec-core",
16
- "SPDXID": "SPDXRef-Package-45974058f041ba37d617",
17
- "versionInfo": "2.2.0",
16
+ "SPDXID": "SPDXRef-Package-7a598ff0897002980d8f",
17
+ "versionInfo": "2.3.0",
18
18
  "downloadLocation": "NOASSERTION",
19
19
  "filesAnalyzed": false,
20
20
  "licenseConcluded": "NOASSERTION",
21
21
  "licenseDeclared": "NOASSERTION",
22
22
  "copyrightText": "NOASSERTION",
23
- "comment": "Flowersec source inventory SHA-256: 230e833276df3ab620d06a6d76b6db45f0dd7ad16f5085e9bc60fba0384c5313",
23
+ "comment": "Flowersec source inventory SHA-256: ff5c9ce47b84ad4cc8a7e9ca5d1605dbaaeaae54743cb071442e146cbc1ca912",
24
24
  "externalRefs": [
25
25
  {
26
26
  "referenceCategory": "PACKAGE-MANAGER",
27
27
  "referenceType": "purl",
28
- "referenceLocator": "pkg:npm/%40floegence/flowersec-core@2.2.0"
28
+ "referenceLocator": "pkg:npm/%40floegence/flowersec-core@2.3.0"
29
29
  }
30
30
  ]
31
31
  },
@@ -1411,7 +1411,7 @@
1411
1411
  {
1412
1412
  "spdxElementId": "SPDXRef-DOCUMENT",
1413
1413
  "relationshipType": "DESCRIBES",
1414
- "relatedSpdxElement": "SPDXRef-Package-45974058f041ba37d617"
1414
+ "relatedSpdxElement": "SPDXRef-Package-7a598ff0897002980d8f"
1415
1415
  },
1416
1416
  {
1417
1417
  "spdxElementId": "SPDXRef-Package-789c0f508771e385c5e8",
@@ -1459,37 +1459,37 @@
1459
1459
  "relatedSpdxElement": "SPDXRef-Package-1a7f123f21a1eaf4fd69"
1460
1460
  },
1461
1461
  {
1462
- "spdxElementId": "SPDXRef-Package-45974058f041ba37d617",
1462
+ "spdxElementId": "SPDXRef-Package-7a598ff0897002980d8f",
1463
1463
  "relationshipType": "DEPENDS_ON",
1464
1464
  "relatedSpdxElement": "SPDXRef-Package-789c0f508771e385c5e8"
1465
1465
  },
1466
1466
  {
1467
- "spdxElementId": "SPDXRef-Package-45974058f041ba37d617",
1467
+ "spdxElementId": "SPDXRef-Package-7a598ff0897002980d8f",
1468
1468
  "relationshipType": "DEPENDS_ON",
1469
1469
  "relatedSpdxElement": "SPDXRef-Package-4b35e4821b43dc47a168"
1470
1470
  },
1471
1471
  {
1472
- "spdxElementId": "SPDXRef-Package-45974058f041ba37d617",
1472
+ "spdxElementId": "SPDXRef-Package-7a598ff0897002980d8f",
1473
1473
  "relationshipType": "DEPENDS_ON",
1474
1474
  "relatedSpdxElement": "SPDXRef-Package-24f128c8779cacb70e46"
1475
1475
  },
1476
1476
  {
1477
- "spdxElementId": "SPDXRef-Package-45974058f041ba37d617",
1477
+ "spdxElementId": "SPDXRef-Package-7a598ff0897002980d8f",
1478
1478
  "relationshipType": "DEPENDS_ON",
1479
1479
  "relatedSpdxElement": "SPDXRef-Package-6a42d288421aaee354ff"
1480
1480
  },
1481
1481
  {
1482
- "spdxElementId": "SPDXRef-Package-45974058f041ba37d617",
1482
+ "spdxElementId": "SPDXRef-Package-7a598ff0897002980d8f",
1483
1483
  "relationshipType": "DEPENDS_ON",
1484
1484
  "relatedSpdxElement": "SPDXRef-Package-d976986d5d79eddc7789"
1485
1485
  },
1486
1486
  {
1487
- "spdxElementId": "SPDXRef-Package-45974058f041ba37d617",
1487
+ "spdxElementId": "SPDXRef-Package-7a598ff0897002980d8f",
1488
1488
  "relationshipType": "DEPENDS_ON",
1489
1489
  "relatedSpdxElement": "SPDXRef-Package-f8b45a289df643042b94"
1490
1490
  },
1491
1491
  {
1492
- "spdxElementId": "SPDXRef-Package-45974058f041ba37d617",
1492
+ "spdxElementId": "SPDXRef-Package-7a598ff0897002980d8f",
1493
1493
  "relationshipType": "DEPENDS_ON",
1494
1494
  "relatedSpdxElement": "SPDXRef-Package-38fe7b92bdac2a86fb61"
1495
1495
  },