Sign In

@hellocoop/httpsig

Package Overview
Dependencies
Maintainers
2
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hellocoop/httpsig - npm Package Compare versions

Comparing version
2.0.1
to
2.1.0
+49
dist/structured-fields.d.ts
/**
* RFC 8941 Structured Field Values for HTTP
*
* This is the package's single structured-field implementation. Every header
* it reads or writes -- Signature, Signature-Input, Signature-Key,
* Signature-Error, Accept-Signature, Accept-Signature-Scheme,
* Accept-Signature-Alg -- goes through it, and it is exported so that
* consumers parsing neighbouring fields (AAuth-Requirement, a Dictionary;
* AAuth-Capabilities, a List of Tokens) do not write a fourth one.
*
* The implementation is vendored, not depended on: see
* `src/vendor/structured-headers/README.md` for what was taken, from which
* version, and why. This module is the seam -- nothing outside it should
* import from `vendor/` directly.
*
* Shapes, briefly:
*
* Dictionary Map<string, Item | InnerList>
* List (Item | InnerList)[]
* Item [BareItem, Parameters]
* InnerList [Item[], Parameters]
* Parameters Map<string, BareItem>
* BareItem number | string | Token | ByteSequence | boolean
*
* A `Token` is a bare word (`hwk`, `Ed25519`); a `string` is a quoted
* sf-string. They are distinct types, and the distinction is load-bearing:
* `requirement=interaction` and `requirement="interaction"` are different
* values, and a parser that erases the difference cannot round-trip.
*/
export { parseDictionary, parseList, parseItem, ParseError, } from './vendor/structured-headers/parser.js';
export { serializeDictionary, serializeList, serializeItem, serializeInnerList, serializeBareItem, serializeParameters, SerializeError, } from './vendor/structured-headers/serializer.js';
export { Token } from './vendor/structured-headers/token.js';
export { ByteSequence } from './vendor/structured-headers/types.js';
export { isInnerList, isByteSequence, isValidTokenStr, isValidKeyStr, } from './vendor/structured-headers/util.js';
export type { Dictionary, List, Item, InnerList, Parameters, BareItem, } from './vendor/structured-headers/types.js';
import { BareItem } from './vendor/structured-headers/types.js';
/**
* Read a Bare Item that is expected to carry text.
*
* Returns the value of a String or a Token, and throws for anything else. The
* Token case is deliberate leniency: several fields in this family are
* specified to carry Strings, but a sender that omits the quotes produces a
* Token that means the same thing to a human and parses unambiguously. Values
* that cannot be text -- Integers, Decimals, Booleans, Byte Sequences -- are
* rejected rather than stringified, so a type confusion surfaces as an error
* instead of a plausible-looking string.
*/
export declare function bareItemToString(value: BareItem): string;
//# sourceMappingURL=structured-fields.d.ts.map
{"version":3,"file":"structured-fields.d.ts","sourceRoot":"","sources":["../src/structured-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACH,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,GACb,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACH,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GACjB,MAAM,2CAA2C,CAAA;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EACH,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,GAChB,MAAM,qCAAqC,CAAA;AAE5C,YAAY,EACR,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,GACX,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAA;AAG/D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAUxD"}
"use strict";
/**
* RFC 8941 Structured Field Values for HTTP
*
* This is the package's single structured-field implementation. Every header
* it reads or writes -- Signature, Signature-Input, Signature-Key,
* Signature-Error, Accept-Signature, Accept-Signature-Scheme,
* Accept-Signature-Alg -- goes through it, and it is exported so that
* consumers parsing neighbouring fields (AAuth-Requirement, a Dictionary;
* AAuth-Capabilities, a List of Tokens) do not write a fourth one.
*
* The implementation is vendored, not depended on: see
* `src/vendor/structured-headers/README.md` for what was taken, from which
* version, and why. This module is the seam -- nothing outside it should
* import from `vendor/` directly.
*
* Shapes, briefly:
*
* Dictionary Map<string, Item | InnerList>
* List (Item | InnerList)[]
* Item [BareItem, Parameters]
* InnerList [Item[], Parameters]
* Parameters Map<string, BareItem>
* BareItem number | string | Token | ByteSequence | boolean
*
* A `Token` is a bare word (`hwk`, `Ed25519`); a `string` is a quoted
* sf-string. They are distinct types, and the distinction is load-bearing:
* `requirement=interaction` and `requirement="interaction"` are different
* values, and a parser that erases the difference cannot round-trip.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidKeyStr = exports.isValidTokenStr = exports.isByteSequence = exports.isInnerList = exports.ByteSequence = exports.Token = exports.SerializeError = exports.serializeParameters = exports.serializeBareItem = exports.serializeInnerList = exports.serializeItem = exports.serializeList = exports.serializeDictionary = exports.ParseError = exports.parseItem = exports.parseList = exports.parseDictionary = void 0;
exports.bareItemToString = bareItemToString;
var parser_js_1 = require("./vendor/structured-headers/parser.js");
Object.defineProperty(exports, "parseDictionary", { enumerable: true, get: function () { return parser_js_1.parseDictionary; } });
Object.defineProperty(exports, "parseList", { enumerable: true, get: function () { return parser_js_1.parseList; } });
Object.defineProperty(exports, "parseItem", { enumerable: true, get: function () { return parser_js_1.parseItem; } });
Object.defineProperty(exports, "ParseError", { enumerable: true, get: function () { return parser_js_1.ParseError; } });
var serializer_js_1 = require("./vendor/structured-headers/serializer.js");
Object.defineProperty(exports, "serializeDictionary", { enumerable: true, get: function () { return serializer_js_1.serializeDictionary; } });
Object.defineProperty(exports, "serializeList", { enumerable: true, get: function () { return serializer_js_1.serializeList; } });
Object.defineProperty(exports, "serializeItem", { enumerable: true, get: function () { return serializer_js_1.serializeItem; } });
Object.defineProperty(exports, "serializeInnerList", { enumerable: true, get: function () { return serializer_js_1.serializeInnerList; } });
Object.defineProperty(exports, "serializeBareItem", { enumerable: true, get: function () { return serializer_js_1.serializeBareItem; } });
Object.defineProperty(exports, "serializeParameters", { enumerable: true, get: function () { return serializer_js_1.serializeParameters; } });
Object.defineProperty(exports, "SerializeError", { enumerable: true, get: function () { return serializer_js_1.SerializeError; } });
var token_js_1 = require("./vendor/structured-headers/token.js");
Object.defineProperty(exports, "Token", { enumerable: true, get: function () { return token_js_1.Token; } });
var types_js_1 = require("./vendor/structured-headers/types.js");
Object.defineProperty(exports, "ByteSequence", { enumerable: true, get: function () { return types_js_1.ByteSequence; } });
var util_js_1 = require("./vendor/structured-headers/util.js");
Object.defineProperty(exports, "isInnerList", { enumerable: true, get: function () { return util_js_1.isInnerList; } });
Object.defineProperty(exports, "isByteSequence", { enumerable: true, get: function () { return util_js_1.isByteSequence; } });
Object.defineProperty(exports, "isValidTokenStr", { enumerable: true, get: function () { return util_js_1.isValidTokenStr; } });
Object.defineProperty(exports, "isValidKeyStr", { enumerable: true, get: function () { return util_js_1.isValidKeyStr; } });
const token_js_2 = require("./vendor/structured-headers/token.js");
/**
* Read a Bare Item that is expected to carry text.
*
* Returns the value of a String or a Token, and throws for anything else. The
* Token case is deliberate leniency: several fields in this family are
* specified to carry Strings, but a sender that omits the quotes produces a
* Token that means the same thing to a human and parses unambiguously. Values
* that cannot be text -- Integers, Decimals, Booleans, Byte Sequences -- are
* rejected rather than stringified, so a type confusion surfaces as an error
* instead of a plausible-looking string.
*/
function bareItemToString(value) {
if (typeof value === 'string') {
return value;
}
if (value instanceof token_js_2.Token) {
return value.toString();
}
throw new TypeError(`Expected a Structured Field String or Token, got ${typeof value}`);
}
//# sourceMappingURL=structured-fields.js.map
{"version":3,"file":"structured-fields.js","sourceRoot":"","sources":["../src/structured-fields.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;AAmDH,4CAUC;AA3DD,mEAK8C;AAJ1C,4GAAA,eAAe,OAAA;AACf,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AACT,uGAAA,UAAU,OAAA;AAGd,2EAQkD;AAP9C,oHAAA,mBAAmB,OAAA;AACnB,8GAAA,aAAa,OAAA;AACb,8GAAA,aAAa,OAAA;AACb,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,oHAAA,mBAAmB,OAAA;AACnB,+GAAA,cAAc,OAAA;AAGlB,iEAA4D;AAAnD,iGAAA,KAAK,OAAA;AACd,iEAAmE;AAA1D,wGAAA,YAAY,OAAA;AACrB,+DAK4C;AAJxC,sGAAA,WAAW,OAAA;AACX,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,wGAAA,aAAa,OAAA;AAajB,mEAA4D;AAE5D;;;;;;;;;;GAUG;AACH,SAAgB,gBAAgB,CAAC,KAAe;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,IAAI,KAAK,YAAY,gBAAK,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC;IACD,MAAM,IAAI,SAAS,CACf,oDAAoD,OAAO,KAAK,EAAE,CACrE,CAAA;AACL,CAAC"}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/index.ts
*/
export * from './serializer.js';
export * from './parser.js';
export * from './types.js';
export * from './util.js';
export { Token } from './token.js';
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vendor/structured-headers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA"}
"use strict";
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/index.ts
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Token = void 0;
__exportStar(require("./serializer.js"), exports);
__exportStar(require("./parser.js"), exports);
__exportStar(require("./types.js"), exports);
__exportStar(require("./util.js"), exports);
var token_js_1 = require("./token.js");
Object.defineProperty(exports, "Token", { enumerable: true, get: function () { return token_js_1.Token; } });
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vendor/structured-headers/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,kDAA+B;AAC/B,8CAA2B;AAC3B,6CAA0B;AAC1B,4CAAyB;AACzB,uCAAkC;AAAzB,iGAAA,KAAK,OAAA"}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/parser.ts
*/
import { Dictionary, List, Item } from './types.js';
export declare function parseDictionary(input: string): Dictionary;
export declare function parseList(input: string): List;
export declare function parseItem(input: string): Item;
export declare class ParseError extends Error {
constructor(position: number, message: string);
}
export default class Parser {
input: string;
pos: number;
constructor(input: string);
parseDictionary(): Dictionary;
parseList(): List;
parseItem(standaloneItem?: boolean): Item;
private parseItemOrInnerList;
private parseInnerList;
private parseBareItem;
private parseParameters;
private parseIntegerOrDecimal;
private parseString;
private parseToken;
private parseByteSequence;
private parseBoolean;
private parseKey;
/**
* Looks at the next character without advancing the cursor.
*
* Returns undefined if we were at the end of the string.
*/
private lookChar;
/**
* Checks if the next character is 'char', and fail otherwise.
*/
private expectChar;
private getChar;
private eof;
private skipOWS;
private skipWS;
private checkTrail;
}
//# sourceMappingURL=parser.d.ts.map
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/vendor/structured-headers/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,UAAU,EACV,IAAI,EACJ,IAAI,EAKP,MAAM,YAAY,CAAA;AAMnB,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAGzD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACrB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGhD;AAED,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;gBAEC,KAAK,EAAE,MAAM;IAKzB,eAAe,IAAI,UAAU;IA8B7B,SAAS,IAAI,IAAI;IAuBjB,SAAS,CAAC,cAAc,GAAE,OAAc,GAAG,IAAI;IAS/C,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,qBAAqB;IAmE7B,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,QAAQ;IAqBhB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,UAAU;CASrB"}
"use strict";
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/parser.ts
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParseError = void 0;
exports.parseDictionary = parseDictionary;
exports.parseList = parseList;
exports.parseItem = parseItem;
const types_js_1 = require("./types.js");
const token_js_1 = require("./token.js");
const util_js_1 = require("./util.js");
function parseDictionary(input) {
const parser = new Parser(input);
return parser.parseDictionary();
}
function parseList(input) {
const parser = new Parser(input);
return parser.parseList();
}
function parseItem(input) {
const parser = new Parser(input);
return parser.parseItem();
}
class ParseError extends Error {
constructor(position, message) {
super(`Parse error: ${message} at offset ${position}`);
}
}
exports.ParseError = ParseError;
class Parser {
input;
pos;
constructor(input) {
this.input = input;
this.pos = 0;
}
parseDictionary() {
this.skipWS();
const dictionary = new Map();
while (!this.eof()) {
const thisKey = this.parseKey();
let member;
if (this.lookChar() === '=') {
this.pos++;
member = this.parseItemOrInnerList();
}
else {
member = [true, this.parseParameters()];
}
dictionary.set(thisKey, member);
this.skipOWS();
if (this.eof()) {
return dictionary;
}
this.expectChar(',');
this.pos++;
this.skipOWS();
if (this.eof()) {
throw new ParseError(this.pos, 'Dictionary contained a trailing comma');
}
}
return dictionary;
}
parseList() {
this.skipWS();
const members = [];
while (!this.eof()) {
members.push(this.parseItemOrInnerList());
this.skipOWS();
if (this.eof()) {
return members;
}
this.expectChar(',');
this.pos++;
this.skipOWS();
if (this.eof()) {
throw new ParseError(this.pos, 'A list may not end with a trailing comma');
}
}
return members;
}
parseItem(standaloneItem = true) {
if (standaloneItem)
this.skipWS();
const result = [this.parseBareItem(), this.parseParameters()];
if (standaloneItem)
this.checkTrail();
return result;
}
parseItemOrInnerList() {
if (this.lookChar() === '(') {
return this.parseInnerList();
}
else {
return this.parseItem(false);
}
}
parseInnerList() {
this.expectChar('(');
this.pos++;
const innerList = [];
while (!this.eof()) {
this.skipWS();
if (this.lookChar() === ')') {
this.pos++;
return [innerList, this.parseParameters()];
}
innerList.push(this.parseItem(false));
const nextChar = this.lookChar();
if (nextChar !== ' ' && nextChar !== ')') {
throw new ParseError(this.pos, 'Expected a whitespace or ) after every item in an inner list');
}
}
throw new ParseError(this.pos, 'Could not find end of inner list');
}
parseBareItem() {
const char = this.lookChar();
if (char === undefined) {
throw new ParseError(this.pos, 'Unexpected end of string');
}
if (char.match(/^[-0-9]/)) {
return this.parseIntegerOrDecimal();
}
if (char === '"') {
return this.parseString();
}
if (char.match(/^[A-Za-z*]/)) {
return this.parseToken();
}
if (char === ':') {
return this.parseByteSequence();
}
if (char === '?') {
return this.parseBoolean();
}
throw new ParseError(this.pos, 'Unexpected input');
}
parseParameters() {
const parameters = new Map();
while (!this.eof()) {
const char = this.lookChar();
if (char !== ';') {
break;
}
this.pos++;
this.skipWS();
const key = this.parseKey();
let value = true;
if (this.lookChar() === '=') {
this.pos++;
value = this.parseBareItem();
}
parameters.set(key, value);
}
return parameters;
}
parseIntegerOrDecimal() {
let type = 'integer';
let sign = 1;
let inputNumber = '';
if (this.lookChar() === '-') {
sign = -1;
this.pos++;
}
// The spec wants this check but it's unreachable code.
//if (this.eof()) {
// throw new ParseError(this.pos, 'Empty integer');
//}
if (!isDigit(this.lookChar())) {
throw new ParseError(this.pos, 'Expected a digit (0-9)');
}
while (!this.eof()) {
const char = this.getChar();
if (isDigit(char)) {
inputNumber += char;
}
else if (type === 'integer' && char === '.') {
if (inputNumber.length > 12) {
throw new ParseError(this.pos, 'Exceeded maximum decimal length');
}
inputNumber += '.';
type = 'decimal';
}
else {
// We need to 'prepend' the character, so it's just a rewind
this.pos--;
break;
}
if (type === 'integer' && inputNumber.length > 15) {
throw new ParseError(this.pos, 'Exceeded maximum integer length');
}
if (type === 'decimal' && inputNumber.length > 16) {
throw new ParseError(this.pos, 'Exceeded maximum decimal length');
}
}
if (type === 'integer') {
return parseInt(inputNumber, 10) * sign;
}
else {
if (inputNumber.endsWith('.')) {
throw new ParseError(this.pos, 'Decimal cannot end on a period');
}
if (inputNumber.split('.')[1].length > 3) {
throw new ParseError(this.pos, 'Number of digits after the decimal point cannot exceed 3');
}
return parseFloat(inputNumber) * sign;
}
}
parseString() {
let outputString = '';
this.expectChar('"');
this.pos++;
while (!this.eof()) {
const char = this.getChar();
if (char === '\\') {
if (this.eof()) {
throw new ParseError(this.pos, 'Unexpected end of input');
}
const nextChar = this.getChar();
if (nextChar !== '\\' && nextChar !== '"') {
throw new ParseError(this.pos, 'A backslash must be followed by another backslash or double quote');
}
outputString += nextChar;
}
else if (char === '"') {
return outputString;
}
else if (!(0, util_js_1.isAscii)(char)) {
throw new ParseError(this.pos, 'Strings must be in the ASCII range');
}
else {
outputString += char;
}
}
throw new ParseError(this.pos, 'Unexpected end of input');
}
parseToken() {
// The specification wants this check, but it's an unreachable code block.
// if (!/^[A-Za-z*]/.test(this.lookChar())) {
// throw new ParseError(this.pos, 'A token must begin with an asterisk or letter (A-Z, a-z)');
//}
let outputString = '';
while (!this.eof()) {
const char = this.lookChar();
if (char === undefined ||
!/^[:/!#$%&'*+\-.^_`|~A-Za-z0-9]$/.test(char)) {
return new token_js_1.Token(outputString);
}
outputString += this.getChar();
}
return new token_js_1.Token(outputString);
}
parseByteSequence() {
this.expectChar(':');
this.pos++;
const endPos = this.input.indexOf(':', this.pos);
if (endPos === -1) {
throw new ParseError(this.pos, 'Could not find a closing ":" character to mark end of Byte Sequence');
}
const b64Content = this.input.substring(this.pos, endPos);
this.pos += b64Content.length + 1;
if (!/^[A-Za-z0-9+/=]*$/.test(b64Content)) {
throw new ParseError(this.pos, 'ByteSequence does not contain a valid base64 string');
}
return new types_js_1.ByteSequence(b64Content);
}
parseBoolean() {
this.expectChar('?');
this.pos++;
const char = this.getChar();
if (char === '1') {
return true;
}
if (char === '0') {
return false;
}
throw new ParseError(this.pos, 'Unexpected character. Expected a "1" or a "0"');
}
parseKey() {
if (!this.lookChar()?.match(/^[a-z*]/)) {
throw new ParseError(this.pos, 'A key must begin with an asterisk or letter (a-z)');
}
let outputString = '';
while (!this.eof()) {
const char = this.lookChar();
if (char === undefined || !/^[a-z0-9_\-.*]$/.test(char)) {
return outputString;
}
outputString += this.getChar();
}
return outputString;
}
/**
* Looks at the next character without advancing the cursor.
*
* Returns undefined if we were at the end of the string.
*/
lookChar() {
return this.input[this.pos];
}
/**
* Checks if the next character is 'char', and fail otherwise.
*/
expectChar(char) {
if (this.lookChar() !== char) {
throw new ParseError(this.pos, `Expected ${char}`);
}
}
getChar() {
return this.input[this.pos++];
}
eof() {
return this.pos >= this.input.length;
}
// Advances the pointer to skip all whitespace.
skipOWS() {
while (true) {
const c = this.input.substr(this.pos, 1);
if (c === ' ' || c === '\t') {
this.pos++;
}
else {
break;
}
}
}
// Advances the pointer to skip all spaces
skipWS() {
while (this.lookChar() === ' ') {
this.pos++;
}
}
// At the end of parsing, we need to make sure there are no bytes after the
// header except whitespace.
checkTrail() {
this.skipWS();
if (!this.eof()) {
throw new ParseError(this.pos, 'Unexpected characters at end of input');
}
}
}
exports.default = Parser;
const isDigitRegex = /^[0-9]$/;
function isDigit(char) {
if (char === undefined)
return false;
return isDigitRegex.test(char);
}
//# sourceMappingURL=parser.js.map
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/vendor/structured-headers/parser.ts"],"names":[],"mappings":"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"}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/serializer.ts
*/
import { BareItem, ByteSequence, Dictionary, InnerList, Item, List, Parameters } from './types.js';
import { Token } from './token.js';
export declare class SerializeError extends Error {
}
export declare function serializeList(input: List): string;
export declare function serializeDictionary(input: Dictionary): string;
export declare function serializeItem(input: Item): string;
export declare function serializeInnerList(input: InnerList): string;
export declare function serializeBareItem(input: BareItem): string;
export declare function serializeInteger(input: number): string;
export declare function serializeDecimal(input: number): string;
export declare function serializeString(input: string): string;
export declare function serializeBoolean(input: boolean): string;
export declare function serializeByteSequence(input: ByteSequence): string;
export declare function serializeToken(input: Token): string;
export declare function serializeParameters(input: Parameters): string;
export declare function serializeKey(input: string): string;
//# sourceMappingURL=serializer.d.ts.map
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../src/vendor/structured-headers/serializer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,UAAU,EACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIlC,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAE5C,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAUjD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAiB7D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAEjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAoBzD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUtD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEnD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAU7D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOlD"}
"use strict";
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/serializer.ts
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.SerializeError = void 0;
exports.serializeList = serializeList;
exports.serializeDictionary = serializeDictionary;
exports.serializeItem = serializeItem;
exports.serializeInnerList = serializeInnerList;
exports.serializeBareItem = serializeBareItem;
exports.serializeInteger = serializeInteger;
exports.serializeDecimal = serializeDecimal;
exports.serializeString = serializeString;
exports.serializeBoolean = serializeBoolean;
exports.serializeByteSequence = serializeByteSequence;
exports.serializeToken = serializeToken;
exports.serializeParameters = serializeParameters;
exports.serializeKey = serializeKey;
const types_js_1 = require("./types.js");
const token_js_1 = require("./token.js");
const util_js_1 = require("./util.js");
class SerializeError extends Error {
}
exports.SerializeError = SerializeError;
function serializeList(input) {
return input
.map((value) => {
if ((0, util_js_1.isInnerList)(value)) {
return serializeInnerList(value);
}
else {
return serializeItem(value);
}
})
.join(', ');
}
function serializeDictionary(input) {
return Array.from(input.entries())
.map(([key, value]) => {
let out = serializeKey(key);
if (value[0] === true) {
out += serializeParameters(value[1]);
}
else {
out += '=';
if ((0, util_js_1.isInnerList)(value)) {
out += serializeInnerList(value);
}
else {
out += serializeItem(value);
}
}
return out;
})
.join(', ');
}
function serializeItem(input) {
return serializeBareItem(input[0]) + serializeParameters(input[1]);
}
function serializeInnerList(input) {
return `(${input[0].map((value) => serializeItem(value)).join(' ')})${serializeParameters(input[1])}`;
}
function serializeBareItem(input) {
if (typeof input === 'number') {
if (Number.isInteger(input)) {
return serializeInteger(input);
}
return serializeDecimal(input);
}
if (typeof input === 'string') {
return serializeString(input);
}
if (input instanceof token_js_1.Token) {
return serializeToken(input);
}
if (input instanceof types_js_1.ByteSequence) {
return serializeByteSequence(input);
}
if (typeof input === 'boolean') {
return serializeBoolean(input);
}
throw new SerializeError(`Cannot serialize values of type ${typeof input}`);
}
function serializeInteger(input) {
if (input < -999_999_999_999_999 || input > 999_999_999_999_999) {
throw new SerializeError('Structured headers can only encode integers in the range range of -999,999,999,999,999 to 999,999,999,999,999 inclusive');
}
return input.toString();
}
function serializeDecimal(input) {
const out = input.toFixed(3).replace(/0+$/, '');
const signifantDigits = out.split('.')[0].replace('-', '').length;
if (signifantDigits > 12) {
throw new SerializeError('Fractional numbers are not allowed to have more than 12 significant digits before the decimal point');
}
return out;
}
function serializeString(input) {
if (!(0, util_js_1.isAscii)(input)) {
throw new SerializeError('Only ASCII strings may be serialized');
}
return `"${input.replace(/("|\\)/g, (v) => '\\' + v)}"`;
}
function serializeBoolean(input) {
return input ? '?1' : '?0';
}
function serializeByteSequence(input) {
return `:${input.toBase64()}:`;
}
function serializeToken(input) {
return input.toString();
}
function serializeParameters(input) {
return Array.from(input)
.map(([key, value]) => {
let out = ';' + serializeKey(key);
if (value !== true) {
out += '=' + serializeBareItem(value);
}
return out;
})
.join('');
}
function serializeKey(input) {
if (!(0, util_js_1.isValidKeyStr)(input)) {
throw new SerializeError('Keys in dictionaries must only contain lowercase letter, numbers, _-*. and must start with a letter or *');
}
return input;
}
//# sourceMappingURL=serializer.js.map
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/vendor/structured-headers/serializer.ts"],"names":[],"mappings":"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"}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/token.ts
*/
export declare class Token {
private value;
constructor(value: string);
toString(): string;
}
//# sourceMappingURL=token.d.ts.map
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/vendor/structured-headers/token.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,qBAAa,KAAK;IACd,OAAO,CAAC,KAAK,CAAQ;gBACT,KAAK,EAAE,MAAM;IASzB,QAAQ,IAAI,MAAM;CAGrB"}
"use strict";
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/token.ts
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Token = void 0;
const util_js_1 = require("./util.js");
class Token {
value;
constructor(value) {
if (!(0, util_js_1.isValidTokenStr)(value)) {
throw new TypeError("Invalid character in Token string. Tokens must start with *, A-Z and the rest of the string may only contain a-z, A-Z, 0-9, :/!#$%&'*+-.^_`|~");
}
this.value = value;
}
toString() {
return this.value;
}
}
exports.Token = Token;
//# sourceMappingURL=token.js.map
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/vendor/structured-headers/token.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAA2C;AAE3C,MAAa,KAAK;IACN,KAAK,CAAQ;IACrB,YAAY,KAAa;QACrB,IAAI,CAAC,IAAA,yBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,SAAS,CACf,+IAA+I,CAClJ,CAAA;QACL,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ;AAdD,sBAcC"}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/types.ts
*/
import { Token } from './token.js';
/**
* Lists are arrays of zero or more members, each of which can be an Item
* or an Inner List, both of which can be Parameterized
*/
export type List = (InnerList | Item)[];
/**
* An Inner List is an array of zero or more Items. Both the individual Items
* and the Inner List itself can be Parameterized.
*/
export type InnerList = [Item[], Parameters];
/**
* Parameters are an ordered map of key-value pairs that are associated with
* an Item or Inner List. The keys are unique within the scope of the
* Parameters they occur within, and the values are bare items (i.e., they
* themselves cannot be parameterized
*/
export type Parameters = Map<string, BareItem>;
/**
* Dictionaries are ordered maps of key-value pairs, where the keys are short
* textual strings and the values are Items or arrays of Items, both of which
* can be Parameterized.
*
* There can be zero or more members, and their keys are unique in the scope
* of the Dictionary they occur within.
*/
export type Dictionary = Map<string, Item | InnerList>;
export declare class ByteSequence {
base64Value: string;
constructor(base64Value: string);
toBase64(): string;
}
export type BareItem = number | string | Token | ByteSequence | boolean;
export type Item = [BareItem, Parameters];
//# sourceMappingURL=types.d.ts.map
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vendor/structured-headers/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAA;AAEvC;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC,CAAA;AAEtD,qBAAa,YAAY;IACrB,WAAW,EAAE,MAAM,CAAA;gBACP,WAAW,EAAE,MAAM;IAI/B,QAAQ,IAAI,MAAM;CAGrB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,OAAO,CAAA;AAEvE,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA"}
"use strict";
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/types.ts
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ByteSequence = void 0;
class ByteSequence {
base64Value;
constructor(base64Value) {
this.base64Value = base64Value;
}
toBase64() {
return this.base64Value;
}
}
exports.ByteSequence = ByteSequence;
//# sourceMappingURL=types.js.map
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/vendor/structured-headers/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkCH,MAAa,YAAY;IACrB,WAAW,CAAQ;IACnB,YAAY,WAAmB;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;CACJ;AATD,oCASC"}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/util.ts
*/
import { Item, InnerList, BareItem, ByteSequence } from './types.js';
export declare function isAscii(str: string): boolean;
export declare function isValidTokenStr(str: string): boolean;
export declare function isValidKeyStr(str: string): boolean;
export declare function isInnerList(input: Item | InnerList): input is InnerList;
export declare function isByteSequence(input: BareItem): input is ByteSequence;
//# sourceMappingURL=util.d.ts.map
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/vendor/structured-headers/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAMpE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,SAAS,CAEvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,YAAY,CAErE"}
"use strict";
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/util.ts
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.isAscii = isAscii;
exports.isValidTokenStr = isValidTokenStr;
exports.isValidKeyStr = isValidKeyStr;
exports.isInnerList = isInnerList;
exports.isByteSequence = isByteSequence;
const asciiRe = /^[\x20-\x7E]*$/;
const tokenRe = /^[a-zA-Z*][:/!#$%&'*+\-.^_`|~A-Za-z0-9]*$/;
const keyRe = /^[a-z*][*\-_.a-z0-9]*$/;
function isAscii(str) {
return asciiRe.test(str);
}
function isValidTokenStr(str) {
return tokenRe.test(str);
}
function isValidKeyStr(str) {
return keyRe.test(str);
}
function isInnerList(input) {
return Array.isArray(input[0]);
}
function isByteSequence(input) {
return typeof input === 'object' && 'base64Value' in input;
}
//# sourceMappingURL=util.js.map
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/vendor/structured-headers/util.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAQH,0BAEC;AAED,0CAEC;AAED,sCAEC;AAED,kCAEC;AAED,wCAEC;AAtBD,MAAM,OAAO,GAAG,gBAAgB,CAAA;AAChC,MAAM,OAAO,GAAG,2CAA2C,CAAA;AAC3D,MAAM,KAAK,GAAG,wBAAwB,CAAA;AAEtC,SAAgB,OAAO,CAAC,GAAW;IAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,SAAgB,eAAe,CAAC,GAAW;IACvC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED,SAAgB,WAAW,CAAC,KAAuB;IAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC;AAED,SAAgB,cAAc,CAAC,KAAe;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,IAAI,KAAK,CAAA;AAC9D,CAAC"}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/index.ts
*/
export * from './serializer.js'
export * from './parser.js'
export * from './types.js'
export * from './util.js'
export { Token } from './token.js'
MIT License
Copyright (c) 2018-2023 Bad Gateway Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/parser.ts
*/
import {
Dictionary,
List,
Item,
BareItem,
Parameters,
InnerList,
ByteSequence,
} from './types.js'
import { Token } from './token.js'
import { isAscii } from './util.js'
export function parseDictionary(input: string): Dictionary {
const parser = new Parser(input)
return parser.parseDictionary()
}
export function parseList(input: string): List {
const parser = new Parser(input)
return parser.parseList()
}
export function parseItem(input: string): Item {
const parser = new Parser(input)
return parser.parseItem()
}
export class ParseError extends Error {
constructor(position: number, message: string) {
super(`Parse error: ${message} at offset ${position}`)
}
}
export default class Parser {
input: string
pos: number
constructor(input: string) {
this.input = input
this.pos = 0
}
parseDictionary(): Dictionary {
this.skipWS()
const dictionary = new Map()
while (!this.eof()) {
const thisKey = this.parseKey()
let member
if (this.lookChar() === '=') {
this.pos++
member = this.parseItemOrInnerList()
} else {
member = [true, this.parseParameters()]
}
dictionary.set(thisKey, member)
this.skipOWS()
if (this.eof()) {
return dictionary
}
this.expectChar(',')
this.pos++
this.skipOWS()
if (this.eof()) {
throw new ParseError(
this.pos,
'Dictionary contained a trailing comma',
)
}
}
return dictionary
}
parseList(): List {
this.skipWS()
const members: List = []
while (!this.eof()) {
members.push(this.parseItemOrInnerList())
this.skipOWS()
if (this.eof()) {
return members
}
this.expectChar(',')
this.pos++
this.skipOWS()
if (this.eof()) {
throw new ParseError(
this.pos,
'A list may not end with a trailing comma',
)
}
}
return members
}
parseItem(standaloneItem: boolean = true): Item {
if (standaloneItem) this.skipWS()
const result: Item = [this.parseBareItem(), this.parseParameters()]
if (standaloneItem) this.checkTrail()
return result
}
private parseItemOrInnerList(): Item | InnerList {
if (this.lookChar() === '(') {
return this.parseInnerList()
} else {
return this.parseItem(false)
}
}
private parseInnerList(): InnerList {
this.expectChar('(')
this.pos++
const innerList: Item[] = []
while (!this.eof()) {
this.skipWS()
if (this.lookChar() === ')') {
this.pos++
return [innerList, this.parseParameters()]
}
innerList.push(this.parseItem(false))
const nextChar = this.lookChar()
if (nextChar !== ' ' && nextChar !== ')') {
throw new ParseError(
this.pos,
'Expected a whitespace or ) after every item in an inner list',
)
}
}
throw new ParseError(this.pos, 'Could not find end of inner list')
}
private parseBareItem(): BareItem {
const char = this.lookChar()
if (char === undefined) {
throw new ParseError(this.pos, 'Unexpected end of string')
}
if (char.match(/^[-0-9]/)) {
return this.parseIntegerOrDecimal()
}
if (char === '"') {
return this.parseString()
}
if (char.match(/^[A-Za-z*]/)) {
return this.parseToken()
}
if (char === ':') {
return this.parseByteSequence()
}
if (char === '?') {
return this.parseBoolean()
}
throw new ParseError(this.pos, 'Unexpected input')
}
private parseParameters(): Parameters {
const parameters = new Map()
while (!this.eof()) {
const char = this.lookChar()
if (char !== ';') {
break
}
this.pos++
this.skipWS()
const key = this.parseKey()
let value: BareItem = true
if (this.lookChar() === '=') {
this.pos++
value = this.parseBareItem()
}
parameters.set(key, value)
}
return parameters
}
private parseIntegerOrDecimal(): number {
let type: 'integer' | 'decimal' = 'integer'
let sign = 1
let inputNumber = ''
if (this.lookChar() === '-') {
sign = -1
this.pos++
}
// The spec wants this check but it's unreachable code.
//if (this.eof()) {
// throw new ParseError(this.pos, 'Empty integer');
//}
if (!isDigit(this.lookChar())) {
throw new ParseError(this.pos, 'Expected a digit (0-9)')
}
while (!this.eof()) {
const char = this.getChar()
if (isDigit(char)) {
inputNumber += char
} else if (type === 'integer' && char === '.') {
if (inputNumber.length > 12) {
throw new ParseError(
this.pos,
'Exceeded maximum decimal length',
)
}
inputNumber += '.'
type = 'decimal'
} else {
// We need to 'prepend' the character, so it's just a rewind
this.pos--
break
}
if (type === 'integer' && inputNumber.length > 15) {
throw new ParseError(
this.pos,
'Exceeded maximum integer length',
)
}
if (type === 'decimal' && inputNumber.length > 16) {
throw new ParseError(
this.pos,
'Exceeded maximum decimal length',
)
}
}
if (type === 'integer') {
return parseInt(inputNumber, 10) * sign
} else {
if (inputNumber.endsWith('.')) {
throw new ParseError(this.pos, 'Decimal cannot end on a period')
}
if (inputNumber.split('.')[1].length > 3) {
throw new ParseError(
this.pos,
'Number of digits after the decimal point cannot exceed 3',
)
}
return parseFloat(inputNumber) * sign
}
}
private parseString(): string {
let outputString = ''
this.expectChar('"')
this.pos++
while (!this.eof()) {
const char = this.getChar()
if (char === '\\') {
if (this.eof()) {
throw new ParseError(this.pos, 'Unexpected end of input')
}
const nextChar = this.getChar()
if (nextChar !== '\\' && nextChar !== '"') {
throw new ParseError(
this.pos,
'A backslash must be followed by another backslash or double quote',
)
}
outputString += nextChar
} else if (char === '"') {
return outputString
} else if (!isAscii(char)) {
throw new ParseError(
this.pos,
'Strings must be in the ASCII range',
)
} else {
outputString += char
}
}
throw new ParseError(this.pos, 'Unexpected end of input')
}
private parseToken(): Token {
// The specification wants this check, but it's an unreachable code block.
// if (!/^[A-Za-z*]/.test(this.lookChar())) {
// throw new ParseError(this.pos, 'A token must begin with an asterisk or letter (A-Z, a-z)');
//}
let outputString = ''
while (!this.eof()) {
const char = this.lookChar()
if (
char === undefined ||
!/^[:/!#$%&'*+\-.^_`|~A-Za-z0-9]$/.test(char)
) {
return new Token(outputString)
}
outputString += this.getChar()
}
return new Token(outputString)
}
private parseByteSequence(): ByteSequence {
this.expectChar(':')
this.pos++
const endPos = this.input.indexOf(':', this.pos)
if (endPos === -1) {
throw new ParseError(
this.pos,
'Could not find a closing ":" character to mark end of Byte Sequence',
)
}
const b64Content = this.input.substring(this.pos, endPos)
this.pos += b64Content.length + 1
if (!/^[A-Za-z0-9+/=]*$/.test(b64Content)) {
throw new ParseError(
this.pos,
'ByteSequence does not contain a valid base64 string',
)
}
return new ByteSequence(b64Content)
}
private parseBoolean(): boolean {
this.expectChar('?')
this.pos++
const char = this.getChar()
if (char === '1') {
return true
}
if (char === '0') {
return false
}
throw new ParseError(
this.pos,
'Unexpected character. Expected a "1" or a "0"',
)
}
private parseKey(): string {
if (!this.lookChar()?.match(/^[a-z*]/)) {
throw new ParseError(
this.pos,
'A key must begin with an asterisk or letter (a-z)',
)
}
let outputString = ''
while (!this.eof()) {
const char = this.lookChar()
if (char === undefined || !/^[a-z0-9_\-.*]$/.test(char)) {
return outputString
}
outputString += this.getChar()
}
return outputString
}
/**
* Looks at the next character without advancing the cursor.
*
* Returns undefined if we were at the end of the string.
*/
private lookChar(): string | undefined {
return this.input[this.pos]
}
/**
* Checks if the next character is 'char', and fail otherwise.
*/
private expectChar(char: string): void {
if (this.lookChar() !== char) {
throw new ParseError(this.pos, `Expected ${char}`)
}
}
private getChar(): string {
return this.input[this.pos++]
}
private eof(): boolean {
return this.pos >= this.input.length
}
// Advances the pointer to skip all whitespace.
private skipOWS(): void {
while (true) {
const c = this.input.substr(this.pos, 1)
if (c === ' ' || c === '\t') {
this.pos++
} else {
break
}
}
}
// Advances the pointer to skip all spaces
private skipWS(): void {
while (this.lookChar() === ' ') {
this.pos++
}
}
// At the end of parsing, we need to make sure there are no bytes after the
// header except whitespace.
private checkTrail(): void {
this.skipWS()
if (!this.eof()) {
throw new ParseError(
this.pos,
'Unexpected characters at end of input',
)
}
}
}
const isDigitRegex = /^[0-9]$/
function isDigit(char: string | undefined): boolean {
if (char === undefined) return false
return isDigitRegex.test(char)
}
# Vendored: `structured-headers`
An RFC 8941 (Structured Field Values for HTTP) parser and serializer.
| | |
| ------------- | ------------------------------------------ |
| Upstream | https://github.com/evert/structured-header |
| Package | `structured-headers` |
| Version taken | **1.0.1** |
| Licence | MIT — see `LICENSE` in this directory |
| Copyright | 2018-2023 Bad Gateway Inc. (Evert Pot) |
## What was taken
The whole parser and serializer, from upstream `src/`:
| This directory | Upstream |
| --------------- | ------------------- |
| `parser.ts` | `src/parser.ts` |
| `serializer.ts` | `src/serializer.ts` |
| `types.ts` | `src/types.ts` |
| `token.ts` | `src/token.ts` |
| `util.ts` | `src/util.ts` |
| `index.ts` | `src/index.ts` |
Nothing else from the package was taken: no build config, no tests, no browser
bundle.
This directory is listed in the package's `files`, so the MIT licence text
travels with every published copy of the compiled output, as the licence
requires.
## Why vendored rather than depended on
`@hellocoop/httpsig` has zero runtime dependencies, deliberately. It verifies
HTTP message signatures, so every package in its dependency closure is a
package that can silently change how a signature is checked. The same reasoning
produced the hand-written JWT verification in `src/utils/` — written by reading
`jose` rather than importing it.
A copy that is read, reviewed, and pinned is a different risk than a version
range resolved at install time. `structured-headers` is itself zero-dependency
and MIT, so copying it costs nothing in licence terms and removes the supply
chain entirely.
## Why the whole grammar rather than a subset
`Signature-Input` is a Dictionary of Inner Lists with parameters, which
exercises nearly every production RFC 8941 defines — Strings with escapes,
Tokens, Integers, Byte Sequences, and parameters on both the inner items and
the Inner List itself. `Signature` is a Dictionary of Byte Sequences.
`Signature-Key` is a Dictionary of Tokens with String parameters. A partial
copy covering "just the Dictionary bits" would have to grow into the rest
anyway, and that growth is how a divergent fourth implementation gets written.
## What was changed
Formatting only, to match this repository's Prettier configuration (4-space
indent, no semicolons, single quotes) and its ESM-style `.js` import
specifiers. No logic, no control flow, no error messages, and no exported names
were changed, so this directory stays diffable against upstream `src/` when
upstream fixes something.
The copy is byte-identical to upstream once the repository's Prettier
configuration is applied and the `.js` specifiers are removed. That is
checkable:
```sh
# from the repository root, with structured-headers@1.0.1 in node_modules
mkdir -p /tmp/sh && cp node_modules/structured-headers/src/*.ts /tmp/sh/
npx prettier --tab-width 4 --no-semi --single-quote --trailing-comma all \
--write '/tmp/sh/*.ts'
for f in parser serializer types token util index; do
sed '1,5d' httpsig/src/vendor/structured-headers/$f.ts \
| sed "s/\.js'/'/g" \
| diff -u /tmp/sh/$f.ts - || echo "DIVERGED: $f"
done
```
(`sed '1,5d'` drops the vendoring header comment added to each file.)
## Upgrading
1. Read the upstream changelog between the pinned version and the new one.
2. Re-copy `src/`, reformat, restore the `.js` import specifiers.
3. Update the version in this README.
4. Run `npm test` in `httpsig/` — `tests/test-structured-fields.ts` covers the
shapes this package depends on, including the ones naive parsers get wrong.
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/serializer.ts
*/
import {
BareItem,
ByteSequence,
Dictionary,
InnerList,
Item,
List,
Parameters,
} from './types.js'
import { Token } from './token.js'
import { isAscii, isInnerList, isValidKeyStr } from './util.js'
export class SerializeError extends Error {}
export function serializeList(input: List): string {
return input
.map((value) => {
if (isInnerList(value)) {
return serializeInnerList(value)
} else {
return serializeItem(value)
}
})
.join(', ')
}
export function serializeDictionary(input: Dictionary): string {
return Array.from(input.entries())
.map(([key, value]) => {
let out = serializeKey(key)
if (value[0] === true) {
out += serializeParameters(value[1])
} else {
out += '='
if (isInnerList(value)) {
out += serializeInnerList(value)
} else {
out += serializeItem(value)
}
}
return out
})
.join(', ')
}
export function serializeItem(input: Item): string {
return serializeBareItem(input[0]) + serializeParameters(input[1])
}
export function serializeInnerList(input: InnerList): string {
return `(${input[0].map((value) => serializeItem(value)).join(' ')})${serializeParameters(input[1])}`
}
export function serializeBareItem(input: BareItem): string {
if (typeof input === 'number') {
if (Number.isInteger(input)) {
return serializeInteger(input)
}
return serializeDecimal(input)
}
if (typeof input === 'string') {
return serializeString(input)
}
if (input instanceof Token) {
return serializeToken(input)
}
if (input instanceof ByteSequence) {
return serializeByteSequence(input)
}
if (typeof input === 'boolean') {
return serializeBoolean(input)
}
throw new SerializeError(`Cannot serialize values of type ${typeof input}`)
}
export function serializeInteger(input: number): string {
if (input < -999_999_999_999_999 || input > 999_999_999_999_999) {
throw new SerializeError(
'Structured headers can only encode integers in the range range of -999,999,999,999,999 to 999,999,999,999,999 inclusive',
)
}
return input.toString()
}
export function serializeDecimal(input: number): string {
const out = input.toFixed(3).replace(/0+$/, '')
const signifantDigits = out.split('.')[0].replace('-', '').length
if (signifantDigits > 12) {
throw new SerializeError(
'Fractional numbers are not allowed to have more than 12 significant digits before the decimal point',
)
}
return out
}
export function serializeString(input: string): string {
if (!isAscii(input)) {
throw new SerializeError('Only ASCII strings may be serialized')
}
return `"${input.replace(/("|\\)/g, (v) => '\\' + v)}"`
}
export function serializeBoolean(input: boolean): string {
return input ? '?1' : '?0'
}
export function serializeByteSequence(input: ByteSequence): string {
return `:${input.toBase64()}:`
}
export function serializeToken(input: Token): string {
return input.toString()
}
export function serializeParameters(input: Parameters): string {
return Array.from(input)
.map(([key, value]) => {
let out = ';' + serializeKey(key)
if (value !== true) {
out += '=' + serializeBareItem(value)
}
return out
})
.join('')
}
export function serializeKey(input: string): string {
if (!isValidKeyStr(input)) {
throw new SerializeError(
'Keys in dictionaries must only contain lowercase letter, numbers, _-*. and must start with a letter or *',
)
}
return input
}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/token.ts
*/
import { isValidTokenStr } from './util.js'
export class Token {
private value: string
constructor(value: string) {
if (!isValidTokenStr(value)) {
throw new TypeError(
"Invalid character in Token string. Tokens must start with *, A-Z and the rest of the string may only contain a-z, A-Z, 0-9, :/!#$%&'*+-.^_`|~",
)
}
this.value = value
}
toString(): string {
return this.value
}
}
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/types.ts
*/
import { Token } from './token.js'
/**
* Lists are arrays of zero or more members, each of which can be an Item
* or an Inner List, both of which can be Parameterized
*/
export type List = (InnerList | Item)[]
/**
* An Inner List is an array of zero or more Items. Both the individual Items
* and the Inner List itself can be Parameterized.
*/
export type InnerList = [Item[], Parameters]
/**
* Parameters are an ordered map of key-value pairs that are associated with
* an Item or Inner List. The keys are unique within the scope of the
* Parameters they occur within, and the values are bare items (i.e., they
* themselves cannot be parameterized
*/
export type Parameters = Map<string, BareItem>
/**
* Dictionaries are ordered maps of key-value pairs, where the keys are short
* textual strings and the values are Items or arrays of Items, both of which
* can be Parameterized.
*
* There can be zero or more members, and their keys are unique in the scope
* of the Dictionary they occur within.
*/
export type Dictionary = Map<string, Item | InnerList>
export class ByteSequence {
base64Value: string
constructor(base64Value: string) {
this.base64Value = base64Value
}
toBase64(): string {
return this.base64Value
}
}
export type BareItem = number | string | Token | ByteSequence | boolean
export type Item = [BareItem, Parameters]
/**
* Vendored from structured-headers v1.0.1 (MIT). See README.md in this
* directory. Upstream: src/util.ts
*/
import { Item, InnerList, BareItem, ByteSequence } from './types.js'
const asciiRe = /^[\x20-\x7E]*$/
const tokenRe = /^[a-zA-Z*][:/!#$%&'*+\-.^_`|~A-Za-z0-9]*$/
const keyRe = /^[a-z*][*\-_.a-z0-9]*$/
export function isAscii(str: string): boolean {
return asciiRe.test(str)
}
export function isValidTokenStr(str: string): boolean {
return tokenRe.test(str)
}
export function isValidKeyStr(str: string): boolean {
return keyRe.test(str)
}
export function isInnerList(input: Item | InnerList): input is InnerList {
return Array.isArray(input[0])
}
export function isByteSequence(input: BareItem): input is ByteSequence {
return typeof input === 'object' && 'base64Value' in input
}
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,mBAAmB,EACnB,0BAA0B,EAI7B,MAAM,YAAY,CAAA;AAmFnB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CACjB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,EAAE,mBAAmB,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GAChD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAChC,wBAAgB,KAAK,CACjB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE,GACpD,OAAO,CAAC,0BAA0B,CAAC,CAAA;AACtC,wBAAgB,KAAK,CACjB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,QAAQ,CAAC,CAAA"}
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,mBAAmB,EACnB,0BAA0B,EAI7B,MAAM,YAAY,CAAA;AAoFnB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CACjB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,EAAE,mBAAmB,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GAChD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAChC,wBAAgB,KAAK,CACjB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,EAAE,mBAAmB,GAAG;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE,GACpD,OAAO,CAAC,0BAA0B,CAAC,CAAA;AACtC,wBAAgB,KAAK,CACjB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,QAAQ,CAAC,CAAA"}

@@ -172,6 +172,6 @@ "use strict";

headers.set('signature-input', signatureInputHeader);
// Add signature params to component values
const componentList = components.map((c) => `"${c}"`).join(' ');
const signatureParams = `(${componentList});created=${created}`;
componentValues.set('@signature-params', signatureParams);
// Add signature params to component values. Serialized from the same
// structure the Signature-Input header was built from, so the header and
// the signature base cannot disagree.
componentValues.set('@signature-params', (0, signature_js_1.generateSignatureParams)(components, created));
components.push('@signature-params');

@@ -178,0 +178,0 @@ // Generate signature base

@@ -1,1 +0,1 @@

{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"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"}

@@ -9,2 +9,14 @@ /**

export { generateSignatureErrorHeader, parseSignatureError, generateAcceptSignatureHeader, parseAcceptSignature, generateAcceptSignatureSchemeHeader, parseAcceptSignatureScheme, generateAcceptSignatureAlgHeader, parseAcceptSignatureAlg, } from './utils/signature.js';
/**
* RFC 8941 Structured Field Values.
*
* Exported so that consumers parsing neighbouring structured fields --
* AAuth-Requirement is a Dictionary, AAuth-Capabilities a List of Tokens --
* use the implementation this package already carries instead of hand-rolling
* one. Hand-rolled 8941 fails on quoting, escaping and byte sequences every
* time; a `;` inside a quoted `url` is enough to break a naive parameter
* split.
*/
export { parseDictionary, parseList, parseItem, serializeDictionary, serializeList, serializeItem, serializeInnerList, serializeBareItem, serializeParameters, bareItemToString, isInnerList, isByteSequence, isValidTokenStr, isValidKeyStr, Token, ByteSequence, ParseError, SerializeError, } from './structured-fields.js';
export type { Dictionary, List, Item, InnerList, Parameters, BareItem, } from './structured-fields.js';
export { generateKeyPair, determineAlgorithm, SUPPORTED_ALGORITHMS, } from './utils/crypto.js';

@@ -11,0 +23,0 @@ export type { GenerateKeyPairOptions, GeneratableAlgorithm, KeyPair, } from './utils/crypto.js';

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EACH,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,GACpB,MAAM,cAAc,CAAA;AAErB,OAAO,EACH,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,mCAAmC,EACnC,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,GAC1B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACR,sBAAsB,EACtB,oBAAoB,EACpB,OAAO,GACV,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,YAAY,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACxB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,YAAY,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EACH,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,GACpB,MAAM,cAAc,CAAA;AAErB,OAAO,EACH,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,mCAAmC,EACnC,0BAA0B,EAC1B,gCAAgC,EAChC,uBAAuB,GAC1B,MAAM,sBAAsB,CAAA;AAE7B;;;;;;;;;GASG;AACH,OAAO,EACH,eAAe,EACf,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,KAAK,EACL,YAAY,EACZ,UAAU,EACV,cAAc,GACjB,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EACR,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,GACX,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACR,sBAAsB,EACtB,oBAAoB,EACpB,OAAO,GACV,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,YAAY,EACR,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACxB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,YAAY,CAAA"}

@@ -7,3 +7,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_COMPONENTS_BODY = exports.DEFAULT_COMPONENTS_GET = exports.VALID_DERIVED_COMPONENTS = exports.calculateThumbprint = exports.SignatureVerificationError = exports.SUPPORTED_ALGORITHMS = exports.determineAlgorithm = exports.generateKeyPair = exports.parseAcceptSignatureAlg = exports.generateAcceptSignatureAlgHeader = exports.parseAcceptSignatureScheme = exports.generateAcceptSignatureSchemeHeader = exports.parseAcceptSignature = exports.generateAcceptSignatureHeader = exports.parseSignatureError = exports.generateSignatureErrorHeader = exports.nextJsPagesVerify = exports.nextJsVerify = exports.fastifyVerify = exports.expressVerify = exports.verify = void 0;
exports.DEFAULT_COMPONENTS_BODY = exports.DEFAULT_COMPONENTS_GET = exports.VALID_DERIVED_COMPONENTS = exports.calculateThumbprint = exports.SignatureVerificationError = exports.SUPPORTED_ALGORITHMS = exports.determineAlgorithm = exports.generateKeyPair = exports.SerializeError = exports.ParseError = exports.ByteSequence = exports.Token = exports.isValidKeyStr = exports.isValidTokenStr = exports.isByteSequence = exports.isInnerList = exports.bareItemToString = exports.serializeParameters = exports.serializeBareItem = exports.serializeInnerList = exports.serializeItem = exports.serializeList = exports.serializeDictionary = exports.parseItem = exports.parseList = exports.parseDictionary = exports.parseAcceptSignatureAlg = exports.generateAcceptSignatureAlgHeader = exports.parseAcceptSignatureScheme = exports.generateAcceptSignatureSchemeHeader = exports.parseAcceptSignature = exports.generateAcceptSignatureHeader = exports.parseSignatureError = exports.generateSignatureErrorHeader = exports.nextJsPagesVerify = exports.nextJsVerify = exports.fastifyVerify = exports.expressVerify = exports.verify = void 0;
var fetch_js_1 = require("./fetch.js");

@@ -27,2 +27,31 @@ Object.defineProperty(exports, "fetch", { enumerable: true, get: function () { return fetch_js_1.fetch; } });

Object.defineProperty(exports, "parseAcceptSignatureAlg", { enumerable: true, get: function () { return signature_js_1.parseAcceptSignatureAlg; } });
/**
* RFC 8941 Structured Field Values.
*
* Exported so that consumers parsing neighbouring structured fields --
* AAuth-Requirement is a Dictionary, AAuth-Capabilities a List of Tokens --
* use the implementation this package already carries instead of hand-rolling
* one. Hand-rolled 8941 fails on quoting, escaping and byte sequences every
* time; a `;` inside a quoted `url` is enough to break a naive parameter
* split.
*/
var structured_fields_js_1 = require("./structured-fields.js");
Object.defineProperty(exports, "parseDictionary", { enumerable: true, get: function () { return structured_fields_js_1.parseDictionary; } });
Object.defineProperty(exports, "parseList", { enumerable: true, get: function () { return structured_fields_js_1.parseList; } });
Object.defineProperty(exports, "parseItem", { enumerable: true, get: function () { return structured_fields_js_1.parseItem; } });
Object.defineProperty(exports, "serializeDictionary", { enumerable: true, get: function () { return structured_fields_js_1.serializeDictionary; } });
Object.defineProperty(exports, "serializeList", { enumerable: true, get: function () { return structured_fields_js_1.serializeList; } });
Object.defineProperty(exports, "serializeItem", { enumerable: true, get: function () { return structured_fields_js_1.serializeItem; } });
Object.defineProperty(exports, "serializeInnerList", { enumerable: true, get: function () { return structured_fields_js_1.serializeInnerList; } });
Object.defineProperty(exports, "serializeBareItem", { enumerable: true, get: function () { return structured_fields_js_1.serializeBareItem; } });
Object.defineProperty(exports, "serializeParameters", { enumerable: true, get: function () { return structured_fields_js_1.serializeParameters; } });
Object.defineProperty(exports, "bareItemToString", { enumerable: true, get: function () { return structured_fields_js_1.bareItemToString; } });
Object.defineProperty(exports, "isInnerList", { enumerable: true, get: function () { return structured_fields_js_1.isInnerList; } });
Object.defineProperty(exports, "isByteSequence", { enumerable: true, get: function () { return structured_fields_js_1.isByteSequence; } });
Object.defineProperty(exports, "isValidTokenStr", { enumerable: true, get: function () { return structured_fields_js_1.isValidTokenStr; } });
Object.defineProperty(exports, "isValidKeyStr", { enumerable: true, get: function () { return structured_fields_js_1.isValidKeyStr; } });
Object.defineProperty(exports, "Token", { enumerable: true, get: function () { return structured_fields_js_1.Token; } });
Object.defineProperty(exports, "ByteSequence", { enumerable: true, get: function () { return structured_fields_js_1.ByteSequence; } });
Object.defineProperty(exports, "ParseError", { enumerable: true, get: function () { return structured_fields_js_1.ParseError; } });
Object.defineProperty(exports, "SerializeError", { enumerable: true, get: function () { return structured_fields_js_1.SerializeError; } });
var crypto_js_1 = require("./utils/crypto.js");

@@ -29,0 +58,0 @@ Object.defineProperty(exports, "generateKeyPair", { enumerable: true, get: function () { return crypto_js_1.generateKeyPair; } });

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAAkC;AAAzB,iGAAA,KAAK,OAAA;AACd,yCAAoC;AAA3B,mGAAA,MAAM,OAAA;AAEf,2CAKqB;AAJjB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,0GAAA,YAAY,OAAA;AACZ,+GAAA,iBAAiB,OAAA;AAGrB,qDAS6B;AARzB,4HAAA,4BAA4B,OAAA;AAC5B,mHAAA,mBAAmB,OAAA;AACnB,6HAAA,6BAA6B,OAAA;AAC7B,oHAAA,oBAAoB,OAAA;AACpB,mIAAA,mCAAmC,OAAA;AACnC,0HAAA,0BAA0B,OAAA;AAC1B,gIAAA,gCAAgC,OAAA;AAChC,uHAAA,uBAAuB,OAAA;AAG3B,+CAI0B;AAHtB,4GAAA,eAAe,OAAA;AACf,+GAAA,kBAAkB,OAAA;AAClB,iHAAA,oBAAoB,OAAA;AAQxB,yCAAwD;AAA/C,uHAAA,0BAA0B,OAAA;AAEnC,uDAA2D;AAAlD,oHAAA,mBAAmB,OAAA;AAiB5B,uCAImB;AAHf,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,mHAAA,uBAAuB,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAAkC;AAAzB,iGAAA,KAAK,OAAA;AACd,yCAAoC;AAA3B,mGAAA,MAAM,OAAA;AAEf,2CAKqB;AAJjB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,0GAAA,YAAY,OAAA;AACZ,+GAAA,iBAAiB,OAAA;AAGrB,qDAS6B;AARzB,4HAAA,4BAA4B,OAAA;AAC5B,mHAAA,mBAAmB,OAAA;AACnB,6HAAA,6BAA6B,OAAA;AAC7B,oHAAA,oBAAoB,OAAA;AACpB,mIAAA,mCAAmC,OAAA;AACnC,0HAAA,0BAA0B,OAAA;AAC1B,gIAAA,gCAAgC,OAAA;AAChC,uHAAA,uBAAuB,OAAA;AAG3B;;;;;;;;;GASG;AACH,+DAmB+B;AAlB3B,uHAAA,eAAe,OAAA;AACf,iHAAA,SAAS,OAAA;AACT,iHAAA,SAAS,OAAA;AACT,2HAAA,mBAAmB,OAAA;AACnB,qHAAA,aAAa,OAAA;AACb,qHAAA,aAAa,OAAA;AACb,0HAAA,kBAAkB,OAAA;AAClB,yHAAA,iBAAiB,OAAA;AACjB,2HAAA,mBAAmB,OAAA;AACnB,wHAAA,gBAAgB,OAAA;AAChB,mHAAA,WAAW,OAAA;AACX,sHAAA,cAAc,OAAA;AACd,uHAAA,eAAe,OAAA;AACf,qHAAA,aAAa,OAAA;AACb,6GAAA,KAAK,OAAA;AACL,oHAAA,YAAY,OAAA;AACZ,kHAAA,UAAU,OAAA;AACV,sHAAA,cAAc,OAAA;AAYlB,+CAI0B;AAHtB,4GAAA,eAAe,OAAA;AACf,+GAAA,kBAAkB,OAAA;AAClB,iHAAA,oBAAoB,OAAA;AAQxB,yCAAwD;AAA/C,uHAAA,0BAA0B,OAAA;AAEnC,uDAA2D;AAAlD,oHAAA,mBAAmB,OAAA;AAiB5B,uCAImB;AAHf,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,mHAAA,uBAAuB,OAAA"}
/**
* Type definitions for @hellocoop/httpsig
*/
import type { InnerList } from './structured-fields.js';
/**

@@ -117,4 +118,10 @@ * Valid derived components from RFC 9421 Section 2.2

export interface ParsedSignatureInput {
/** The Dictionary key this signature is under. */
label: string;
/** The covered component identifiers, unquoted. */
components: string[];
/**
* The Inner List parameters, as Structured Field values: `created` is an
* Integer, a quoted `keyid` is a string, a bare one is a `Token`.
*/
params: {

@@ -124,2 +131,9 @@ created: number;

};
/**
* The parsed Inner List exactly as the signer sent it. Serializing this is
* how `@signature-params` is reproduced for the signature base -- it is
* covered by the signature, so every parameter must survive the round
* trip, including ones this implementation does not act on.
*/
signatureParams: InnerList;
}

@@ -126,0 +140,0 @@ export interface ParsedSignatureKey {

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;GAEG;AACU,QAAA,wBAAwB,GAAG;IACpC,SAAS;IACT,aAAa;IACb,YAAY;IACZ,SAAS;IACT,iBAAiB;IACjB,OAAO;IACP,QAAQ;IACR,cAAc;IACd,SAAS;CACH,CAAA;AAEV;;;GAGG;AACU,QAAA,sBAAsB,GAAG;IAClC,SAAS;IACT,YAAY;IACZ,OAAO;IACP,eAAe;CACT,CAAA;AAEV;;;GAGG;AACU,QAAA,uBAAuB,GAAG;IACnC,SAAS;IACT,YAAY;IACZ,OAAO;IACP,cAAc;IACd,eAAe;CACT,CAAA"}
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH;;GAEG;AACU,QAAA,wBAAwB,GAAG;IACpC,SAAS;IACT,aAAa;IACb,YAAY;IACZ,SAAS;IACT,iBAAiB;IACjB,OAAO;IACP,QAAQ;IACR,cAAc;IACd,SAAS;CACH,CAAA;AAEV;;;GAGG;AACU,QAAA,sBAAsB,GAAG;IAClC,SAAS;IACT,YAAY;IACZ,OAAO;IACP,eAAe;CACT,CAAA;AAEV;;;GAGG;AACU,QAAA,uBAAuB,GAAG;IACnC,SAAS;IACT,YAAY;IACZ,OAAO;IACP,cAAc;IACd,eAAe;CACT,CAAA"}

@@ -21,2 +21,7 @@ /**

/**
* Generate the `@signature-params` component value: the serialized Inner List
* that the Signature-Input dictionary member for `label` carries.
*/
export declare function generateSignatureParams(components: string[], created: number): string;
/**
* Generate Signature-Key header value as RFC 8941 Dictionary

@@ -38,3 +43,8 @@ * Format: label=scheme;param1="value1";param2="value2"

/**
* Parse Signature-Input header
* Parse Signature-Input header: a Dictionary of Inner Lists with parameters.
*
* The Inner List is kept alongside the extracted component names, because
* `@signature-params` is the serialization of that Inner List and is covered
* by the signature. Re-deriving it from the extracted parts would risk
* dropping a parameter the signer included.
*/

@@ -41,0 +51,0 @@ export declare function parseSignatureInput(header: string): ParsedSignatureInput[];

@@ -1,1 +0,1 @@

{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EAEd,qBAAqB,EACxB,MAAM,aAAa,CAAA;AAGpB;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,MAAM,EAAE,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,MAAM,CAYR;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,GAChB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,gBAAgB,EAC9B,SAAS,CAAC,EAAE,UAAU,GACvB,MAAM,CA0DR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,GACtB,MAAM,CAGR;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,EAAE,CA+C1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAiItE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CACxC,cAAc,EAAE,cAAc,GAC/B,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAuClE;AA0BD;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CACzC,MAAM,EAAE,qBAAqB,GAC9B,MAAM,CAaR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAmC1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAuBtE"}
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EAEd,qBAAqB,EAExB,MAAM,aAAa,CAAA;AA+CpB;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,MAAM,EAAE,EACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,MAAM,CAYR;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,GAChB,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACnC,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,gBAAgB,EAC9B,SAAS,CAAC,EAAE,UAAU,GACvB,MAAM,CAgER;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,GACtB,MAAM,CAYR;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,EAAE,CA4D1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAkItE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CACxC,cAAc,EAAE,cAAc,GAC/B,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA+ClE;AA2BD;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CACzC,MAAM,EAAE,qBAAqB,GAC9B,MAAM,CAiBR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAmC1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAsBtE"}

@@ -8,2 +8,3 @@ "use strict";

exports.generateSignatureInputHeader = generateSignatureInputHeader;
exports.generateSignatureParams = generateSignatureParams;
exports.generateSignatureKeyHeader = generateSignatureKeyHeader;

@@ -25,3 +26,24 @@ exports.generateSignatureHeader = generateSignatureHeader;

const errors_js_1 = require("../errors.js");
const structured_fields_js_1 = require("../structured-fields.js");
/**
* Build the Inner List that a Signature-Input dictionary member carries: the
* covered component identifiers, parameterized with `created`.
*
* Serialized, this is also the `@signature-params` component value. Both the
* header and the signature base are produced from this one structure so they
* cannot drift apart.
*/
function buildSignatureParams(components, created) {
const items = components.map((component) => [
component,
new Map(),
]);
return [items, new Map([['created', created]])];
}
/** Wrap a parse failure in a message naming the field that failed. */
function parseFailure(field, error) {
const detail = error instanceof Error ? error.message : String(error);
return new Error(`Invalid ${field} format: ${detail}`);
}
/**
* Generate signature base string from components

@@ -51,6 +73,12 @@ */

function generateSignatureInputHeader(label, components, created) {
const componentList = components.map((c) => `"${c}"`).join(' ');
return `${label}=(${componentList});created=${created}`;
return (0, structured_fields_js_1.serializeDictionary)(new Map([[label, buildSignatureParams(components, created)]]));
}
/**
* Generate the `@signature-params` component value: the serialized Inner List
* that the Signature-Input dictionary member for `label` carries.
*/
function generateSignatureParams(components, created) {
return (0, structured_fields_js_1.serializeInnerList)(buildSignatureParams(components, created));
}
/**
* Generate Signature-Key header value as RFC 8941 Dictionary

@@ -63,2 +91,6 @@ * Format: label=scheme;param1="value1";param2="value2"

function generateSignatureKeyHeader(label, signatureKey, publicJwk) {
/** One-member Dictionary: label=<scheme token>;<string parameters>. */
const oneMember = (scheme, params) => (0, structured_fields_js_1.serializeDictionary)(new Map([
[label, [new structured_fields_js_1.Token(scheme), new Map(params)]],
]));
if (signatureKey.type === 'hwk') {

@@ -76,30 +108,29 @@ if (!publicJwk) {

const params = [
`alg="${publicJwk.alg}"`,
`kty="${publicJwk.kty}"`,
['alg', publicJwk.alg],
['kty', publicJwk.kty],
];
if (publicJwk.crv)
params.push(`crv="${publicJwk.crv}"`);
params.push(['crv', publicJwk.crv]);
if (publicJwk.x)
params.push(`x="${publicJwk.x}"`);
params.push(['x', publicJwk.x]);
if (publicJwk.y)
params.push(`y="${publicJwk.y}"`);
params.push(['y', publicJwk.y]);
if (publicJwk.n)
params.push(`n="${publicJwk.n}"`);
params.push(['n', publicJwk.n]);
if (publicJwk.e)
params.push(`e="${publicJwk.e}"`);
return `${label}=hwk;${params.join(';')}`;
params.push(['e', publicJwk.e]);
return oneMember('hwk', params);
}
if (signatureKey.type === 'jwt') {
return `${label}=jwt;jwt="${signatureKey.jwt}"`;
return oneMember('jwt', [['jwt', signatureKey.jwt]]);
}
if (signatureKey.type === 'jkt_jwt') {
return `${label}=jkt-jwt;jwt="${signatureKey.jwt}"`;
return oneMember('jkt-jwt', [['jwt', signatureKey.jwt]]);
}
if (signatureKey.type === 'jwks_uri') {
const params = [
`id="${signatureKey.id}"`,
`dwk="${signatureKey.dwk}"`,
`kid="${signatureKey.kid}"`,
];
return `${label}=jwks_uri;${params.join(';')}`;
return oneMember('jwks_uri', [
['id', signatureKey.id],
['dwk', signatureKey.dwk],
['kid', signatureKey.kid],
]);
}

@@ -118,4 +149,11 @@ // Note: x509 scheme not yet implemented

function generateSignatureHeader(label, signature) {
const encoded = (0, base64_js_1.base64Encode)(signature);
return `${label}=:${encoded}:`;
return (0, structured_fields_js_1.serializeDictionary)(new Map([
[
label,
[
new structured_fields_js_1.ByteSequence((0, base64_js_1.base64Encode)(signature)),
new Map(),
],
],
]));
}

@@ -148,39 +186,52 @@ /**

/**
* Parse Signature-Input header
* Parse Signature-Input header: a Dictionary of Inner Lists with parameters.
*
* The Inner List is kept alongside the extracted component names, because
* `@signature-params` is the serialization of that Inner List and is covered
* by the signature. Re-deriving it from the extracted parts would risk
* dropping a parameter the signer included.
*/
function parseSignatureInput(header) {
let dictionary;
try {
dictionary = (0, structured_fields_js_1.parseDictionary)(header);
}
catch (error) {
throw parseFailure('Signature-Input', error);
}
const results = [];
// Split by comma to handle multiple signatures
const parts = header.split(',').map((p) => p.trim());
for (const part of parts) {
// Format: label=(components);params
// Note: component list can be empty, so use * instead of +
const match = part.match(/^([^=]+)=\(([^)]*)\);(.+)$/);
if (!match) {
throw new Error(`Invalid Signature-Input format: ${part}`);
for (const [label, member] of dictionary) {
if (!(0, structured_fields_js_1.isInnerList)(member)) {
throw new Error(`Invalid Signature-Input format: member "${label}" is not an Inner List of covered components`);
}
const label = match[1].trim();
const componentsStr = match[2];
const paramsStr = match[3];
// Parse components
const components = componentsStr
.split(/\s+/)
.map((c) => c.replace(/"/g, ''))
.filter((c) => c);
// Parse parameters
const params = {};
const paramPairs = paramsStr.split(';').map((p) => p.trim());
for (const pair of paramPairs) {
const [key, value] = pair.split('=').map((s) => s.trim());
if (key === 'created') {
params.created = parseInt(value, 10);
const [items, parameters] = member;
const components = [];
for (const [bareItem, itemParameters] of items) {
if (typeof bareItem !== 'string') {
throw new Error('Invalid Signature-Input format: a covered component identifier must be a String');
}
else {
params[key] = value;
// Component parameters (;req, ;bs, ;sf, ;key, ;name) change what
// the component value is and how the signature base line is
// written. This implementation does not produce them, so rather
// than silently signing over a base that ignores them, refuse.
if (itemParameters.size > 0) {
throw new Error(`Unsupported component parameters on "${bareItem}" in Signature-Input`);
}
components.push(bareItem);
}
if (!params.created) {
const params = {};
for (const [key, value] of parameters) {
params[key] = value;
}
// `created` is an Integer. A signer that omits it, or sends it as a
// String, leaves the signature unbounded in time.
if (typeof params.created !== 'number') {
throw new Error('Signature-Input missing required parameter: created');
}
results.push({ label, components, params });
results.push({
label,
components,
params: params,
signatureParams: member,
});
}

@@ -202,34 +253,35 @@ return results;

function parseSignatureKey(header) {
const trimmed = header.trim();
// Check for multiple members (commas outside of quoted strings indicate multiple dictionary members)
// Simple check: if there's a comma not inside quotes, reject
let inQuote = false;
for (let i = 0; i < trimmed.length; i++) {
if (trimmed[i] === '"' && (i === 0 || trimmed[i - 1] !== '\\')) {
inQuote = !inQuote;
}
else if (trimmed[i] === ',' && !inQuote) {
throw new Error('Invalid Signature-Key: must have exactly one dictionary member');
}
const malformed = new Error('Invalid Signature-Key: must be RFC 8941 Dictionary with format label=scheme;params');
let dictionary;
try {
dictionary = (0, structured_fields_js_1.parseDictionary)(header);
}
// RFC 8941 Dictionary format: label=scheme;param1="value1";param2="value2"
// Match: label=token followed by optional parameters
// Note: [\w-]+ allows hyphens in labels and scheme names (e.g., sig-b26, jkt-jwt)
const match = trimmed.match(/^([\w-]+)=([\w-]+)(.*)$/);
if (!match) {
throw new Error('Invalid Signature-Key: must be RFC 8941 Dictionary with format label=scheme;params');
catch {
throw malformed;
}
const label = match[1];
const scheme = match[2];
const paramsStr = match[3];
// Parse parameters (semicolon-separated)
// Exactly one member: the label the Signature and Signature-Input entries
// are keyed by. More than one leaves which key signed the request
// undetermined.
if (dictionary.size !== 1) {
throw new Error('Invalid Signature-Key: must have exactly one dictionary member');
}
const [label, member] = [...dictionary][0];
// The member is an Item whose bare value is the scheme Token. An Inner
// List, a String, a number, or a bare member (`sig` alone, meaning ?1) is
// not a Signature-Key.
if ((0, structured_fields_js_1.isInnerList)(member) || !(member[0] instanceof structured_fields_js_1.Token)) {
throw malformed;
}
const scheme = member[0].toString();
// Scheme parameters are Strings. A Token is accepted for the same value --
// a sender that omits the quotes around, say, `kty=EC` is unambiguous --
// but anything that is not text is a type confusion, not a value.
const params = {};
if (paramsStr) {
// Note: [\w-]+ allows hyphens in parameter names (e.g., jkt-jwt)
const paramMatches = paramsStr.matchAll(/;([\w-]+)=(?:"([^"]*)"|(\w+))/g);
for (const paramMatch of paramMatches) {
const key = paramMatch[1];
const value = paramMatch[2] !== undefined ? paramMatch[2] : paramMatch[3]; // quoted or unquoted value
params[key] = value;
for (const [key, value] of member[1]) {
try {
params[key] = (0, structured_fields_js_1.bareItemToString)(value);
}
catch {
throw (0, errors_js_1.invalidKey)(`Signature-Key ${key} parameter must be a String or Token`);
}
}

@@ -252,2 +304,4 @@ if (!['hwk', 'jwt', 'jkt-jwt', 'jwks_uri'].includes(scheme)) {

}
// The hwk parameters are the JWK: alg and kty are checked present
// above, the rest are the key material for whichever kty it is.
return [{ label, type: 'hwk', value: params }];

@@ -311,10 +365,12 @@ }

function generateSignatureErrorHeader(signatureError) {
const parts = [`error=${signatureError.error}`];
const dictionary = new Map([
['error', [new structured_fields_js_1.Token(signatureError.error), new Map()]],
]);
if (signatureError.required_input) {
const inputList = signatureError.required_input
.map((c) => `"${c}"`)
.join(' ');
parts.push(`required_input=(${inputList})`);
dictionary.set('required_input', [
signatureError.required_input.map((c) => [c, new Map()]),
new Map(),
]);
}
return parts.join(', ');
return (0, structured_fields_js_1.serializeDictionary)(dictionary);
}

@@ -325,9 +381,14 @@ /**

function parseSignatureError(header) {
const trimmed = header.trim();
// Parse error token
const errorMatch = trimmed.match(/error=([\w]+)/);
if (!errorMatch) {
let dictionary;
try {
dictionary = (0, structured_fields_js_1.parseDictionary)(header);
}
catch (error) {
throw parseFailure('Signature-Error', error);
}
const errorMember = dictionary.get('error');
if (errorMember === undefined || (0, structured_fields_js_1.isInnerList)(errorMember)) {
throw new Error('Invalid Signature-Error: missing error member');
}
const error = errorMatch[1];
const error = (0, structured_fields_js_1.bareItemToString)(errorMember[0]);
const validCodes = [

@@ -351,8 +412,8 @@ 'unsupported_algorithm',

// Parse required_input inner list
const inputMatch = trimmed.match(/required_input=\(([^)]*)\)/);
if (inputMatch) {
result.required_input = inputMatch[1]
.split(/\s+/)
.map((c) => c.replace(/"/g, ''))
.filter((c) => c);
const inputMember = dictionary.get('required_input');
if (inputMember !== undefined) {
if (!(0, structured_fields_js_1.isInnerList)(inputMember)) {
throw new Error('Invalid Signature-Error: required_input must be an Inner List');
}
result.required_input = inputMember[0].map(([component]) => (0, structured_fields_js_1.bareItemToString)(component));
}

@@ -366,7 +427,7 @@ return result;

for (const value of values) {
if (!/^[A-Za-z*][A-Za-z0-9!#$%&'*+\-.^_`|~:/]*$/.test(value)) {
if (!(0, structured_fields_js_1.isValidTokenStr)(value)) {
throw new Error(`Value is not a valid Structured Field Token: ${value}`);
}
}
return values.join(', ');
return (0, structured_fields_js_1.serializeList)(values.map((value) => [new structured_fields_js_1.Token(value), new Map()]));
}

@@ -377,6 +438,7 @@ /**

function parseTokenList(header) {
return header
.split(',')
.map((v) => v.trim())
.filter((v) => /^[A-Za-z*][A-Za-z0-9!#$%&'*+\-.^_`|~:/]*$/.test(v));
return (0, structured_fields_js_1.parseList)(header)
.filter((member) => !(0, structured_fields_js_1.isInnerList)(member))
.map(([bareItem]) => bareItem)
.filter((bareItem) => bareItem instanceof structured_fields_js_1.Token)
.map((token) => token.toString());
}

@@ -425,11 +487,14 @@ /**

const { label = 'sig', components, alg, tag } = params;
const componentList = components.map((c) => `"${c}"`).join(' ');
let header = `${label}=(${componentList})`;
const parameters = new Map();
if (alg) {
header += `;alg="${alg}"`;
parameters.set('alg', alg);
}
if (tag) {
header += `;tag="${tag}"`;
parameters.set('tag', tag);
}
return header;
const innerList = [
components.map((c) => [c, new Map()]),
parameters,
];
return (0, structured_fields_js_1.serializeDictionary)(new Map([[label, innerList]]));
}

@@ -441,28 +506,29 @@ /**

function parseAcceptSignature(header) {
const trimmed = header.trim();
// Match: label=(components);params
const match = trimmed.match(/^([\w-]+)=\(([^)]*)\)(.*)$/);
if (!match) {
throw new Error('Invalid Accept-Signature format');
const malformed = new Error('Invalid Accept-Signature format');
let dictionary;
try {
dictionary = (0, structured_fields_js_1.parseDictionary)(header);
}
const label = match[1];
const componentsStr = match[2];
const paramsStr = match[3];
const components = componentsStr
.split(/\s+/)
.map((c) => c.replace(/"/g, ''))
.filter((c) => c);
const result = { label, components };
if (paramsStr) {
// Parse alg string parameter
const algMatch = paramsStr.match(/;alg="([^"]*)"/);
if (algMatch) {
result.alg = algMatch[1];
}
// Parse tag string parameter
const tagMatch = paramsStr.match(/;tag="([^"]*)"/);
if (tagMatch) {
result.tag = tagMatch[1];
}
catch {
throw malformed;
}
if (dictionary.size !== 1) {
throw malformed;
}
const [label, member] = [...dictionary][0];
if (!(0, structured_fields_js_1.isInnerList)(member)) {
throw malformed;
}
const result = {
label,
components: member[0].map(([component]) => (0, structured_fields_js_1.bareItemToString)(component)),
};
const alg = member[1].get('alg');
if (alg !== undefined) {
result.alg = (0, structured_fields_js_1.bareItemToString)(alg);
}
const tag = member[1].get('tag');
if (tag !== undefined) {
result.tag = (0, structured_fields_js_1.bareItemToString)(tag);
}
return result;

@@ -474,16 +540,16 @@ }

function parseSignature(header) {
let dictionary;
try {
dictionary = (0, structured_fields_js_1.parseDictionary)(header);
}
catch (error) {
throw parseFailure('Signature', error);
}
const results = new Map();
// Split by comma for multiple signatures
const entries = header.split(/,(?=\s*\w+=)/);
for (const entry of entries) {
const trimmed = entry.trim();
for (const [label, member] of dictionary) {
// Format: label=:base64:
const match = trimmed.match(/^([^=]+)=:([^:]+):$/);
if (!match) {
throw new Error(`Invalid Signature format: ${trimmed}`);
if ((0, structured_fields_js_1.isInnerList)(member) || !(0, structured_fields_js_1.isByteSequence)(member[0])) {
throw new Error(`Invalid Signature format: member "${label}" is not a Byte Sequence`);
}
const label = match[1].trim();
const base64 = match[2];
const signature = Buffer.from(base64, 'base64');
results.set(label, new Uint8Array(signature));
results.set(label, (0, base64_js_1.base64Decode)(member[0].toBase64()));
}

@@ -490,0 +556,0 @@ return results;

@@ -1,1 +0,1 @@

{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,aAAa,EACb,aAAa,EACb,kBAAkB,EAErB,MAAM,YAAY,CAAA;AAoZnB;;GAEG;AACH,wBAAsB,MAAM,CACxB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAwT7B"}
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,aAAa,EACb,aAAa,EACb,kBAAkB,EAErB,MAAM,YAAY,CAAA;AAqZnB;;GAEG;AACH,wBAAsB,MAAM,CACxB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAkT7B"}

@@ -42,2 +42,3 @@ "use strict";

const signature_js_1 = require("./utils/signature.js");
const structured_fields_js_1 = require("./structured-fields.js");
const base64_js_1 = require("./utils/base64.js");

@@ -486,17 +487,9 @@ const thumbprint_js_1 = require("./utils/thumbprint.js");

// `alg` does not change which operation the verifier performs.
const componentList = components.map((c) => `"${c}"`).join(' ');
const paramPairs = Object.entries(params)
.map(([key, value]) => {
if (typeof value === 'number') {
return `${key}=${value}`;
}
// String values from parsing may already have quotes
const stringValue = String(value);
if (stringValue.startsWith('"') && stringValue.endsWith('"')) {
return `${key}=${stringValue}`;
}
return `${key}="${stringValue}"`;
})
.join(';');
const signatureParams = `(${componentList});${paramPairs}`;
//
// The value is re-serialized from the parsed Inner List rather than
// rebuilt from the extracted parts, so a String stays a String and a
// Token stays a Token. Rebuilding by hand is what quoted every value
// alike and would have corrupted the base for any signer that sent a
// Token-valued parameter.
const signatureParams = (0, structured_fields_js_1.serializeInnerList)(signatureInput.signatureParams);
componentValues.set('@signature-params', signatureParams);

@@ -503,0 +496,0 @@ const componentsWithParams = [...components, '@signature-params'];

@@ -1,1 +0,1 @@

{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+ZH,wBAqTC;AA5sBD,iDAM0B;AAC1B,uDAK6B;AAC7B,iEAA2D;AAC3D,iDAAmD;AACnD,yDAA2D;AAC3D,+CAAkD;AAClD,2CAQoB;AAEpB,6EAA6E;AAC7E,8EAA8E;AAC9E,mDAAmD;AACnD,MAAM,SAAS,GAAG,IAAI,0BAAe,EAAO,CAAA;AAE5C;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAc;IACpC,IAAI,KAAK,YAAY,sCAA0B,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QACpD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,CAAA;QAC/C,CAAC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,OAAO,mBAAmB,CACtB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACzD,CAAA;AACL,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,YAAoB;IAC7C,IACI,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC9C,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAChD,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1C,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC3C,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACjD,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACxC,YAAY,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EACrD,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;IACzC,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACnD,OAAO;YACH,KAAK,EAAE,eAAe;YACtB,cAAc,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,CAAC;SACtE,CAAA;IACL,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;IACrC,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;IACrC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACvD,YAAY,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAC3D,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAClC,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EACxC,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1C,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EACtC,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,IACI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EACtC,CAAC;QACC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACrB,OAAoD;IAEpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IAExC,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACJ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAClE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAA;QAC7C,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,QAAgB;IAClD,cAAc;IACd,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,aAAa;IACb,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACX,6BAA6B,GAAG,KAAK,QAAQ,CAAC,UAAU,EAAE,CAC7D,CAAA;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAElC,mBAAmB;IACnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAElC,OAAO,IAAI,CAAA;AACf,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CAC/B,EAAU,EACV,GAAW,EACX,GAAW,EACX,QAAgB;IAEhB,gCAAgC;IAChC,MAAM,WAAW,GAAG,GAAG,EAAE,gBAAgB,GAAG,EAAE,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAEvD,2EAA2E;IAC3E,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,mDAAmD;IACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAA,yBAAa,EAAC,qCAAqC,WAAW,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,0EAA0E;IAC1E,iDAAiD;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACzB,MAAM,IAAA,0BAAc,EAChB,oBAAoB,QAAQ,CAAC,MAAM,wBAAwB,EAAE,GAAG,CACnE,CAAA;IACL,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAA;IAEjC,aAAa;IACb,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE/C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,6BAA6B;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IAErD,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACX,iBAAiB,GAAG,4BAA4B,OAAO,EAAE,CAC5D,CAAA;IACL,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CACd,GAAW,EACX,YAAoB;IAMpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAA,sBAAU,EAAC,oBAAoB,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,MAAW,CAAA;IACf,IAAI,OAAY,CAAA;IAChB,IAAI,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxE,OAAO,GAAG,IAAI,CAAC,KAAK,CAChB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;IACL,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAA,sBAAU,EAAC,kDAAkD,CAAC,CAAA;IACxE,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,IAAA,sBAAU,EAAC,2BAA2B,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAEzC,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAA,sBAAU,EAAC,gCAAgC,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC;QACnC,MAAM,IAAA,sBAAU,EAAC,aAAa,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAA,sBAAU,EAAC,+BAA+B,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC;YACnC,MAAM,IAAA,sBAAU,EAAC,0BAA0B,CAAC,CAAA;QAChD,CAAC;IACL,CAAC;IAED,OAAO;QACH,MAAM;QACN,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;KAC7B,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,aAAa,GAGf;IACA,cAAc,EAAE;QACZ,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,kBAAkB;KAChC;IACD,cAAc,EAAE;QACZ,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,kBAAkB;KAChC;CACJ,CAAA;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CACvB,SAAiB,EACjB,YAAoB;IAQpB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACzC,CAAC;IAED,0DAA0D;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACrB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;IAED,eAAe;IACf,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACX,4BAA4B,MAAM,CAAC,GAAG,gBAAgB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAA;IACL,CAAC;IAED,0CAA0C;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAiB,CAAA;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC5D,CAAC;IAED,0EAA0E;IAC1E,MAAM,UAAU,GAAG,MAAM,IAAA,mCAAmB,EACxC,WAAW,EACX,SAAS,CAAC,aAAa,CAC1B,CAAA;IAED,uCAAuC;IACvC,MAAM,WAAW,GAAG,GAAG,SAAS,CAAC,SAAS,GAAG,UAAU,EAAE,CAAA;IACzD,IAAI,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACX,mCAAmC,WAAW,SAAS,OAAO,CAAC,GAAG,EAAE,CACvE,CAAA;IACL,CAAC;IAED,iDAAiD;IACjD,IAAA,uBAAW,EAAC,WAAW,CAAC,CAAA;IACxB,MAAM,iBAAiB,GAAG,MAAM,IAAA,2BAAe,EAAC,WAAW,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,IAAA,+BAAmB,EAAC,WAAW,CAAC,CAAA;IAElD,yDAAyD;IACzD,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACtE,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3C,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAY,EAC/B,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,SAAS,CACZ,CAAA;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IACjE,CAAC;IAED,0BAA0B;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAEzC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACxD,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACzD,CAAC;IAED,OAAO;QACH,MAAM;QACN,OAAO;QACP,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;QAC7B,WAAW,EAAE,WAAW;QACxB,kBAAkB,EAAE,WAAW;KAClC,CAAA;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,MAAM,CACxB,OAAsB,EACtB,UAAyB,EAAE;IAE3B,MAAM,EACF,YAAY,GAAG,EAAE,EACjB,YAAY,GAAG,OAAO,EAAE,SAAS;IACjC,mBAAmB,GACtB,GAAG,OAAO,CAAA;IAEX,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,QAAQ,GACV,mBAAmB,IAAI,gCAAoB,CAAA;IAE/C,IAAI,CAAC;QACD,oBAAoB;QACpB,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEjD,8DAA8D;QAC9D,mEAAmE;QACnE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,aAAa,GAAG,IAAA,gCAAiB,EAAC,kBAAkB,CAAC,CAAA;QAC3D,uEAAuE;QACvE,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAA;QAEhC,4EAA4E;QAC5E,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC3D,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACrD,CAAC;QAED,MAAM,eAAe,GAAG,IAAA,kCAAmB,EAAC,oBAAoB,CAAC,CAAA;QACjE,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;QAEvE,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACX,uCAAuC,KAAK,sBAAsB,CACrE,CAAA;QACL,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,CAAA;QAE7C,uEAAuE;QACvE,2DAA2D;QAC3D,uDAAuD;QACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,MAAM,IAAA,wBAAY,EAAC,2CAA2C,EAAE;gBAC5D,SAAS;gBACT,YAAY;gBACZ,OAAO;gBACP,eAAe;aAClB,CAAC,CAAA;QACN,CAAC;QAED,qBAAqB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAE3C,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,sDAAsD,IAAI,IAAI,CACjE,CAAA;QACL,CAAC;QAED,+BAA+B;QAC/B,IAAI,SAAqB,CAAA;QACzB,IAAI,OAA+D,CAAA;QACnE,IAAI,UAQW,CAAA;QACf,IAAI,WAAiE,CAAA;QAErE,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,SAAS,GAAG,YAAY,CAAC,KAAmB,CAAA;QAChD,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAwB,CAAA;YACtD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAC5C,QAAQ,CAAC,GAAG,EACZ,YAAY,CACf,CAAA;YACD,SAAS,GAAG,SAAS,CAAA;YACrB,OAAO,GAAG;gBACN,MAAM;gBACN,OAAO;gBACP,GAAG,EAAE,QAAQ,CAAC,GAAG;aACpB,CAAA;QACL,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAwB,CAAA;YACtD,MAAM,EACF,MAAM,EACN,OAAO,EACP,YAAY,EACZ,WAAW,EACX,kBAAkB,GACrB,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;YAClD,SAAS,GAAG,YAAY,CAAA;YACxB,UAAU,GAAG;gBACT,MAAM;gBACN,OAAO;gBACP,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,WAAW;gBACX,kBAAkB;aACrB,CAAA;QACL,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,YAAY,CAAC,KAIjC,CAAA;YACD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,YAAY,CAAA;YACrC,SAAS,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;YAClE,WAAW,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAClC,CAAC;aAAM,CAAC;YACJ,wCAAwC;YACxC,+BAA+B;YAC/B,8CAA8C;YAC9C,kCAAkC;YAClC,2BAA2B;YAC3B,sCAAsC;YACtC,WAAW;YACX,mDAAmD;YACnD,mDAAmD;YACnD,iDAAiD;YAEjD,MAAM,IAAI,KAAK,CACX,mCAAoC,YAAoB,CAAC,IAAI,EAAE,CAClE,CAAA;QACL,CAAC;QAED,oEAAoE;QACpE,8CAA8C;QAC9C,IAAA,uBAAW,EAAC,SAAS,CAAC,CAAA;QAEtB,sEAAsE;QACtE,8DAA8D;QAC9D,8CAA8C;QAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAa,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAA,gCAAoB,EACtB,cAAc,SAAS,CAAC,GAAG,oCAAoC,EAC/D,CAAC,GAAG,QAAQ,CAAC,CAChB,CAAA;QACL,CAAC;QAED,yBAAyB;QACzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAChD,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,6BAAc,EAAC,eAAe,CAAC,CAAA;QAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAA;QAC7D,CAAC;QAED,yBAAyB;QACzB,+EAA+E;QAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5D,MAAM,SAAS,GAAG,WAAW,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,WAAW,EAAE,CAAA;QAE7E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;QAEjD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;QAC5D,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAE7C,8DAA8D;QAC9D,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAEpD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACvC,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC,CAAA;QACvE,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAElD,6CAA6C;QAC7C,IACI,OAAO,CAAC,IAAI,KAAK,SAAS;YAC1B,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACvC,CAAC;YACC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACX,uDAAuD,CAC1D,CAAA;YACL,CAAC;YAED,kCAAkC;YAClC,MAAM,EAAE,qBAAqB,EAAE,GAAG,wDAC9B,sBAAsB,GACzB,CAAA;YACD,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAC5C,OAAO,CAAC,IAAW,CACtB,CAAA;YAED,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACzD,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,0DAA0D;gBAC1D,SAAQ;YACZ,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAA;YACjE,CAAC;YAED,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;QAED,yBAAyB;QACzB,EAAE;QACF,uEAAuE;QACvE,qEAAqE;QACrE,+DAA+D;QAC/D,wCAAwC;QACxC,EAAE;QACF,sEAAsE;QACtE,oEAAoE;QACpE,kEAAkE;QAClE,+DAA+D;QAC/D,EAAE;QACF,oEAAoE;QACpE,qEAAqE;QACrE,qEAAqE;QACrE,qEAAqE;QACrE,0BAA0B;QAC1B,MAAM,eAAe,GAAG,IAAA,yCAAkB,EACtC,cAAc,CAAC,eAAe,CACjC,CAAA;QACD,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;QACzD,MAAM,oBAAoB,GAAG,CAAC,GAAG,UAAU,EAAE,mBAAmB,CAAC,CAAA;QAEjE,0BAA0B;QAC1B,MAAM,aAAa,GAAG,IAAA,oCAAqB,EACvC,oBAAoB,EACpB,eAAe,CAClB,CAAA;QACD,MAAM,kBAAkB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAElE,kEAAkE;QAClE,MAAM,UAAU,GAAG,MAAM,IAAA,mCAAmB,EAAC,SAAS,CAAC,CAAA;QAEvD,+BAA+B;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAe,EAAC,SAAS,CAAC,CAAA;QAClD,MAAM,SAAS,GAAG,IAAA,+BAAmB,EAAC,SAAS,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAY,EAC9B,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,SAAS,CACZ,CAAA;QAED,MAAM,MAAM,GAAuB;YAC/B,QAAQ,EAAE,OAAO;YACjB,KAAK;YACL,OAAO,EAAE,YAAY,CAAC,IAAI;YAC1B,SAAS,EAAE,SAAS;YACpB,UAAU;YACV,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,GAAG,OAAO,CAAA;QACxB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,GAAG,UAAU,CAAA;QAC/B,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAA;QACjC,CAAC;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,YAAY,GACd,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1D,OAAO;YACH,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,YAAY;YACnB,cAAc,EAAE,gBAAgB,CAAC,KAAK,CAAC;YACvC,GAAG,CAAC,KAAK,YAAY,sCAA0B;gBAC/C,KAAK,CAAC,mBAAmB;gBACrB,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,mBAAmB,EAAE;gBACnD,CAAC,CAAC,EAAE,CAAC;SACZ,CAAA;IACL,CAAC;AACL,CAAC"}
{
"name": "@hellocoop/httpsig",
"version": "2.0.1",
"version": "2.1.0",
"description": "HTTP Message Signatures (RFC 9421) with Signature-Key header support",

@@ -13,6 +13,14 @@ "repository": {

"exports": {
".": "./dist/index.js"
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
},
"./structured-fields": {
"types": "./dist/structured-fields.d.ts",
"default": "./dist/structured-fields.js"
}
},
"files": [
"dist/"
"dist/",
"src/vendor/"
],

@@ -19,0 +27,0 @@ "keywords": [

@@ -724,2 +724,69 @@ # @hellocoop/httpsig

## Structured Fields (RFC 8941)
Every header this package reads or writes is an RFC 8941 Structured Field, and
the parser and serializer that handle them are exported. Use them for
neighbouring fields rather than writing another parser — `AAuth-Requirement` is
a Dictionary, `AAuth-Capabilities` a List of Tokens, and hand-rolled 8941 fails
on the same three things every time: quoting, escaping, and byte sequences.
```ts
import {
parseDictionary,
serializeDictionary,
Token,
bareItemToString,
} from '@hellocoop/httpsig'
// A `;` inside a quoted string does not end the parameter list.
const dict = parseDictionary(
'requirement=interaction; url="https://resource.example/i?a=1;b=2"; code="A1B2-C3D4"',
)
const [value, params] = dict.get('requirement') as Item
value instanceof Token // true — `interaction` is a Token, not a String
params.get('url') // 'https://resource.example/i?a=1;b=2'
params.get('code') // 'A1B2-C3D4'
serializeDictionary(
new Map([
[
'requirement',
[new Token('auth-token'), new Map([['resource-token', jwt]])],
],
]),
)
```
**Exported**
| | |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Parsing | `parseDictionary`, `parseList`, `parseItem`, `ParseError` |
| Serializing | `serializeDictionary`, `serializeList`, `serializeItem`, `serializeInnerList`, `serializeBareItem`, `serializeParameters`, `SerializeError` |
| Values | `Token`, `ByteSequence` |
| Guards | `isInnerList`, `isByteSequence`, `isValidTokenStr`, `isValidKeyStr` |
| Helper | `bareItemToString` — reads a String or a Token, refuses anything else |
| Types | `Dictionary`, `List`, `Item`, `InnerList`, `Parameters`, `BareItem` |
Shapes:
```
Dictionary Map<string, Item | InnerList>
List (Item | InnerList)[]
Item [BareItem, Parameters]
InnerList [Item[], Parameters]
Parameters Map<string, BareItem>
BareItem number | string | Token | ByteSequence | boolean
```
A `Token` is a bare word (`hwk`, `Ed25519`); a `string` is a quoted sf-string.
The distinction is load-bearing — `@signature-params` is covered by the
signature, so a parameter that arrives as a Token must go back out as a Token.
The implementation is vendored from
[`structured-headers`](https://github.com/evert/structured-header) v1.0.1 (MIT)
rather than taken as a dependency, because this package has zero runtime
dependencies by design. See `src/vendor/structured-headers/README.md`.
## Security Considerations

@@ -726,0 +793,0 @@