@hellocoop/httpsig
Advanced tools
| /** | ||
| * 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 +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"} |
+4
-4
@@ -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":";AAAA;;GAEG;;AAgHH,sBA+MC;AA7TD,yCAMmB;AACnB,iDAM0B;AAC1B,uDAO6B;AAE7B;;GAEG;AACH,SAAS,sBAAsB,CAAC,IAAS;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,kBAAkB;IAClB,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QAClC,OAAO,iDAAiD,CAAA;IAC5D,CAAC;IAED,WAAW;IACX,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;QAC9D,oDAAoD;QACpD,wDAAwD;QACxD,qEAAqE;QACrE,OAAO,IAAI,CAAA;IACf,CAAC;IAED,eAAe;IACf,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,IAAI,IAAI,0BAA0B,CAAA;IAClD,CAAC;IAED,4CAA4C;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,0BAA0B,CAAA;IACrC,CAAC;IAED,oDAAoD;IACpD,sDAAsD;IACtD,OAAO,0BAA0B,CAAA;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,UAAoB,EAAE,OAAgB;IAC9D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,sCAAsC;QACtC,IACI,SAAS,KAAK,mBAAmB;YACjC,SAAS,KAAK,eAAe;YAC7B,SAAS,KAAK,iBAAiB;YAC/B,SAAS,KAAK,WAAW,EAC3B,CAAC;YACC,SAAQ;QACZ,CAAC;QAED,0CAA0C;QAC1C,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,mCAAwB,CAAC,QAAQ,CAAC,SAAgB,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAA;YAC9D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,kDAAkD;YAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACX,cAAc,SAAS,6CAA6C,CACvE,CAAA;YACL,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAsBM,KAAK,UAAU,KAAK,CACvB,GAAiB,EACjB,OAA4B;IAE5B,MAAM,EACF,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,KAAK,GAAG,KAAK,EACb,UAAU,EAAE,gBAAgB,EAC5B,MAAM,GAAG,KAAK,EACd,UAAU,GAAG,KAAK,EAClB,MAAM,GAAG,KAAK,EACd,OAAO,EAAE,YAAY,GAAG,EAAE,EAC1B,IAAI,EACJ,GAAG,YAAY,EAClB,GAAG,OAAO,CAAA;IAEX,qCAAqC;IACrC,IAAA,uBAAW,EAAC,UAAU,CAAC,CAAA;IAEvB,sCAAsC;IACtC,IAAI,UAAqB,CAAA;IACzB,IAAI,SAAiD,CAAA;IAErD,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC;QACf,+BAA+B;QAC/B,UAAU,GAAG,MAAM,IAAA,4BAAgB,EAAC,UAAU,CAAC,CAAA;QAC/C,SAAS,GAAG,IAAA,+BAAmB,EAAC,UAAU,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACJ,iDAAiD;QACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACX,oFAAoF,CACvF,CAAA;QACL,CAAC;QACD,UAAU,GAAG,gBAAgB,CAAA;QAC7B,SAAS,GAAG,IAAA,+BAAmB,EAAC,UAAU,CAAC,CAAA;IAC/C,CAAC;IAED,8BAA8B;IAC9B,MAAM,SAAS,GAAG,IAAA,wBAAY,EAAC,UAAU,CAAC,CAAA;IAE1C,YAAY;IACZ,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAA;IAE7B,4DAA4D;IAC5D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IAEzC,+BAA+B;IAC/B,IAAI,UAAoB,CAAA;IACxB,IAAI,gBAAgB,EAAE,CAAC;QACnB,yBAAyB;QACzB,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACJ,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAA;QACnD,UAAU,GAAG,OAAO;YAChB,CAAC,CAAC,CAAC,GAAG,kCAAuB,CAAC;YAC9B,CAAC,CAAC,CAAC,GAAG,iCAAsB,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEjD,6CAA6C;IAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACtC,wEAAwE;QACxE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;YACpD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;YAChD,CAAC;QACL,CAAC;QAED,wDAAwD;QACxD,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,MAAM,IAAA,oCAAqB,EAAC,IAAI,CAAC,CAAA;YACvD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAChD,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAG,IAAA,yCAA0B,EACjD,KAAK,EACL,YAAY,EACZ,SAAS,CACZ,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,6CAA6C;IAC7C,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAEvC,sDAAsD;IACtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,qBAAqB;YACrB,QAAQ,SAAS,EAAE,CAAC;gBAChB,KAAK,SAAS;oBACV,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;oBACpD,MAAK;gBACT,KAAK,aAAa;oBACd,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;oBAC7C,MAAK;gBACT,KAAK,YAAY;oBACb,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;oBAC9C,MAAK;gBACT,KAAK,SAAS;oBACV,eAAe,CAAC,GAAG,CACf,SAAS,EACT,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CACnC,CAAA;oBACD,MAAK;gBACT,KAAK,iBAAiB;oBAClB,eAAe,CAAC,GAAG,CACf,iBAAiB,EACjB,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CACvC,CAAA;oBACD,MAAK;gBACT,KAAK,OAAO;oBACR,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC7C,MAAK;gBACT,KAAK,QAAQ;oBACT,eAAe,CAAC,GAAG,CACf,QAAQ,EACR,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAClD,CAAA;oBACD,MAAK;gBACT;oBACI,MAAM,IAAI,KAAK,CACX,kCAAkC,SAAS,EAAE,CAChD,CAAA;YACT,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,uCAAuC;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YACzC,CAAC;QACL,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAE7C,kCAAkC;IAClC,MAAM,oBAAoB,GAAG,IAAA,2CAA4B,EACrD,KAAK,EACL,UAAU,EACV,OAAO,CACV,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAA;IAEpD,qEAAqE;IACrE,yEAAyE;IACzE,sCAAsC;IACtC,eAAe,CAAC,GAAG,CACf,mBAAmB,EACnB,IAAA,sCAAuB,EAAC,UAAU,EAAE,OAAO,CAAC,CAC/C,CAAA;IACD,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAEpC,0BAA0B;IAC1B,MAAM,aAAa,GAAG,IAAA,oCAAqB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAA;IACxE,MAAM,kBAAkB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAElE,0BAA0B;IAC1B,MAAM,SAAS,GAAG,MAAM,IAAA,gBAAU,EAC9B,kBAAkB,EAClB,UAAU,EACV,SAAS,CACZ,CAAA;IAED,4BAA4B;IAC5B,MAAM,eAAe,GAAG,IAAA,sCAAuB,EAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;IAEzC,iCAAiC;IACjC,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,OAAO,EAAE,CAAA;IACtB,CAAC;IAED,gCAAgC;IAChC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE;QAC5C,GAAG,YAAY;QACf,MAAM;QACN,OAAO;QACP,IAAI;KACP,CAAC,CAAA;IAEF,qEAAqE;IACrE,qDAAqD;IACrD,IAAI,UAAU,EAAE,CAAC;QACb,OAAO;YACH,QAAQ;YACR,IAAI,EAAE;gBACF,MAAM;gBACN,GAAG,EAAE,MAAM,CAAC,IAAI;gBAChB,OAAO;gBACP,IAAI,EAAE,IAAI,IAAI,IAAI;aACrB;SACJ,CAAA;IACL,CAAC;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC"} |
+12
-0
@@ -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"} |
+30
-1
@@ -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"} |
+14
-0
| /** | ||
| * 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"} |
+205
-139
@@ -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"} |
+8
-15
@@ -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":"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"} |
+11
-3
| { | ||
| "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": [ |
+67
-0
@@ -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 @@ |
284645
47.36%82
78.26%4333
56.09%862
8.43%