@blamejs/core 0.8.90 → 0.9.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/lib/websocket.js CHANGED
@@ -77,10 +77,11 @@
77
77
  var nodeCrypto = require("crypto");
78
78
  var zlib = require("zlib");
79
79
  var { EventEmitter } = require("events");
80
- var C = require("./constants");
81
- var requestHelpers = require("./request-helpers");
82
- var safeAsync = require("./safe-async");
83
- var safeBuffer = require("./safe-buffer");
80
+ var C = require("./constants");
81
+ var requestHelpers = require("./request-helpers");
82
+ var safeAsync = require("./safe-async");
83
+ var safeBuffer = require("./safe-buffer");
84
+ var structuredFields = require("./structured-fields");
84
85
  var { FrameworkError } = require("./framework-error");
85
86
  var { boot } = require("./log");
86
87
 
@@ -517,11 +518,16 @@ var DEFLATE_TRAILING = Buffer.from([0x00, 0x00, 0xff, 0xff]);
517
518
  function _parseExtensionHeader(header) {
518
519
  // Sec-WebSocket-Extensions: foo; param=val; param2, bar; ...
519
520
  // Returns [{ name, params: { paramName: value | true } }]
521
+ // RFC 6455 §9.1 + RFC 7230 token-or-quoted-string — param values
522
+ // can technically be quoted-string. Current registered extensions
523
+ // (permessage-deflate) only use token values in practice, but the
524
+ // quote-aware split is defensive against any future extension
525
+ // shipping quoted parameter values.
520
526
  if (!header) return [];
521
- var entries = String(header).split(",");
527
+ var entries = structuredFields.splitTopLevel(String(header), ",");
522
528
  var out = [];
523
529
  for (var i = 0; i < entries.length; i++) {
524
- var parts = entries[i].split(";").map(function (s) { return s.trim(); });
530
+ var parts = structuredFields.splitTopLevel(entries[i], ";").map(function (s) { return s.trim(); });
525
531
  if (!parts[0]) continue;
526
532
  var ext = { name: parts[0].toLowerCase(), params: {} };
527
533
  for (var j = 1; j < parts.length; j++) {
@@ -530,9 +536,9 @@ function _parseExtensionHeader(header) {
530
536
  if (!k) continue;
531
537
  var v = kv.length > 1 ? kv.slice(1).join("=").trim() : true;
532
538
  // Strip surrounding quotes per the token-or-quoted-string grammar.
533
- if (typeof v === "string" && v.length >= 2 &&
534
- v.charAt(0) === '"' && v.charAt(v.length - 1) === '"') {
535
- v = v.slice(1, -1);
539
+ if (typeof v === "string") {
540
+ var _unq = structuredFields.unquoteSfString(v);
541
+ if (_unq !== null) v = _unq;
536
542
  }
537
543
  ext.params[k] = v;
538
544
  }
package/lib/xml-c14n.js CHANGED
@@ -495,5 +495,12 @@ module.exports = {
495
495
  parse: parse,
496
496
  canonicalize: canonicalize,
497
497
  canonicalizeElementById: canonicalizeElementById,
498
+ // Exported so SAML metadata / AuthnRequest builders can interpolate
499
+ // operator-supplied URLs and IDs without raw string concatenation.
500
+ // _escapeAttrValue handles double-quoted attribute-value escaping
501
+ // (`"`, `&`, `<`, CR/LF/HT); _escapeText handles element text-node
502
+ // escaping (`&`, `<`, `>`, CR). Both are RFC 3741 §1.3.x compliant.
503
+ escapeAttrValue: _escapeAttrValue,
504
+ escapeText: _escapeText,
498
505
  XmlC14nError: XmlC14nError,
499
506
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blamejs/core",
3
- "version": "0.8.90",
3
+ "version": "0.9.1",
4
4
  "description": "The Node framework that owns its stack.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "blamejs contributors",
package/sbom.cdx.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
3
3
  "bomFormat": "CycloneDX",
4
4
  "specVersion": "1.6",
5
- "serialNumber": "urn:uuid:860a5246-eb35-4113-adf2-886982273421",
5
+ "serialNumber": "urn:uuid:bffe9a17-1586-474d-aa8f-75dd58525185",
6
6
  "version": 1,
7
7
  "metadata": {
8
- "timestamp": "2026-05-11T19:04:39.738Z",
8
+ "timestamp": "2026-05-11T23:22:03.045Z",
9
9
  "lifecycles": [
10
10
  {
11
11
  "phase": "build"
@@ -19,14 +19,14 @@
19
19
  }
20
20
  ],
21
21
  "component": {
22
- "bom-ref": "@blamejs/core@0.8.90",
22
+ "bom-ref": "@blamejs/core@0.9.1",
23
23
  "type": "library",
24
24
  "name": "blamejs",
25
- "version": "0.8.90",
25
+ "version": "0.9.1",
26
26
  "scope": "required",
27
27
  "author": "blamejs contributors",
28
28
  "description": "The Node framework that owns its stack.",
29
- "purl": "pkg:npm/%40blamejs/core@0.8.90",
29
+ "purl": "pkg:npm/%40blamejs/core@0.9.1",
30
30
  "properties": [],
31
31
  "externalReferences": [
32
32
  {
@@ -54,7 +54,7 @@
54
54
  "components": [],
55
55
  "dependencies": [
56
56
  {
57
- "ref": "@blamejs/core@0.8.90",
57
+ "ref": "@blamejs/core@0.9.1",
58
58
  "dependsOn": []
59
59
  }
60
60
  ]