@outfoxx/sunday 2.0.0-beta.14 → 2.0.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/fetch.js CHANGED
@@ -17,6 +17,7 @@ import { ArrayBufferEncoding, createSchemaRuntime, DateEncoding, NumericDateDeco
17
17
  import { SundayError } from './sunday-error.js';
18
18
  import { errorToMessage } from './util/errors.js';
19
19
  import { encodeBase64 } from './util/base64.js';
20
+ import { statusTitle } from './util/status-title.js';
20
21
  const problemRuntime = createSchemaRuntime({
21
22
  format: 'json',
22
23
  dateEncoding: DateEncoding.DECIMAL_SECONDS_SINCE_EPOCH,
@@ -32,7 +33,8 @@ export async function validate(response, dataExpected, problemTypes, logger) {
32
33
  }
33
34
  const problemData = normalizeProblemData(await response.json(), response, logger);
34
35
  const type = readProblemType(problemData);
35
- const problemSchema = (type ? problemTypes?.get(type) : undefined) ?? ProblemSchema;
36
+ const problemSchema = (type !== undefined ? problemTypes?.get(type) : undefined) ??
37
+ ProblemSchema;
36
38
  let error;
37
39
  try {
38
40
  error = problemRuntime.resolveSchema(problemSchema).decode(problemData);
@@ -51,14 +53,20 @@ function normalizeProblemData(value, response, logger) {
51
53
  if (!value || typeof value !== 'object' || Array.isArray(value)) {
52
54
  return value;
53
55
  }
54
- const problemData = { ...value };
55
- if (problemData.status === undefined) {
56
- logger?.warn?.('problem response payload missing required "status"; backfilling from HTTP response status', { status: response.status, statusText: response.statusText });
56
+ const problemData = {
57
+ ...value,
58
+ };
59
+ if (typeof problemData.status !== 'number') {
60
+ logger?.warn?.('problem response payload missing "status"; backfilling from HTTP response status', { status: response.status, statusText: response.statusText });
57
61
  problemData.status = response.status;
58
62
  }
59
- if (problemData.title === undefined) {
60
- logger?.warn?.('problem response payload missing required "title"; backfilling from HTTP response status text', { status: response.status, statusText: response.statusText });
61
- problemData.title = response.statusText;
63
+ if (typeof problemData.title !== 'string' &&
64
+ readProblemType(problemData) === 'about:blank') {
65
+ logger?.warn?.('problem response payload missing "title"; backfilling from HTTP response status text', { status: response.status, statusText: response.statusText });
66
+ problemData.title =
67
+ problemData.status === response.status && response.statusText
68
+ ? response.statusText
69
+ : statusTitle(problemData.status);
62
70
  }
63
71
  return problemData;
64
72
  }
@@ -67,7 +75,7 @@ function readProblemType(value) {
67
75
  return undefined;
68
76
  }
69
77
  const rec = value;
70
- return typeof rec.type === 'string' ? rec.type : undefined;
78
+ return typeof rec.type === 'string' ? rec.type : 'about:blank';
71
79
  }
72
80
  export var ResponseExample;
73
81
  (function (ResponseExample) {
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,58 @@
1
1
  import { z } from 'zod';
2
2
  import { SchemaLike } from './schema-runtime.js';
3
3
  export interface Problem {
4
- type: URL;
5
- title: string;
6
- status: number;
4
+ type: URL | string;
5
+ title?: string;
6
+ status?: number;
7
7
  detail?: string;
8
- instance?: URL;
8
+ instance?: URL | string;
9
9
  [key: string]: unknown;
10
10
  }
11
+ /** RFC 9457 strings accept only string tokens; null and other categories are absent. */
12
+ export declare const ProblemStringSchema: z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodOptional<z.ZodString>>;
13
+ /** Exact integral status values, without scalar coercion or numeric truncation. */
14
+ export declare const ProblemStatusSchema: z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodOptional<z.ZodNumber>>;
15
+ /** Compose string constraints/defaults with Problem URI conversion at a single property. */
16
+ export declare function createProblemReferenceCodec(schema?: z.ZodType<string | undefined, string | undefined>, defaultType?: boolean): z.ZodPrefault<z.ZodPipe<z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodType<string | undefined, string | undefined, z.core.$ZodTypeInternals<string | undefined, string | undefined>>>, z.ZodCodec<z.ZodOptional<z.ZodString>, z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<URL, URL>, z.ZodString]>>>>>;
17
+ /** URI references preserve empty/relative strings and represent absolute URIs as URLs. */
18
+ export declare const ProblemReferenceSchema: z.ZodPrefault<z.ZodPipe<z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodType<string | undefined, string | undefined, z.core.$ZodTypeInternals<string | undefined, string | undefined>>>, z.ZodCodec<z.ZodOptional<z.ZodString>, z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<URL, URL>, z.ZodString]>>>>>;
19
+ /** Normalize absence before applying the RFC default, including subtype dispatch. */
20
+ export declare const ProblemTypeSchema: z.ZodPipe<z.ZodPrefault<z.ZodPipe<z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodType<string | undefined, string | undefined, z.core.$ZodTypeInternals<string | undefined, string | undefined>>>, z.ZodCodec<z.ZodOptional<z.ZodString>, z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<URL, URL>, z.ZodString]>>>>>, z.ZodUnion<readonly [z.ZodCustom<URL, URL>, z.ZodString]>>;
21
+ /** Category/default interpretation for subtype selection, before branch-specific validation. */
22
+ export declare const ProblemDispatchSchema: z.ZodObject<{
23
+ type: z.ZodPrefault<z.ZodPipe<z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodOptional<z.ZodString>>, z.ZodPrefault<z.ZodString>>>;
24
+ }, z.core.$loose>;
25
+ /** Normalize the type property before a generated union chooses its branch. */
26
+ export declare function createProblemUnionCodec<T extends z.ZodType>(schema: T): z.ZodCodec<z.ZodRecord<z.ZodString, z.ZodUnknown>, T>;
11
27
  export declare const ProblemWireSchema: z.ZodObject<{
12
- type: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<URL, URL>]>>;
13
- title: z.ZodString;
14
- status: z.ZodNumber;
15
- detail: z.ZodOptional<z.ZodString>;
16
- instance: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<URL, URL>]>>;
28
+ type: z.ZodPipe<z.ZodPrefault<z.ZodPipe<z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodType<string | undefined, string | undefined, z.core.$ZodTypeInternals<string | undefined, string | undefined>>>, z.ZodCodec<z.ZodOptional<z.ZodString>, z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<URL, URL>, z.ZodString]>>>>>, z.ZodUnion<readonly [z.ZodCustom<URL, URL>, z.ZodString]>>;
29
+ title: z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodOptional<z.ZodString>>;
30
+ status: z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodOptional<z.ZodNumber>>;
31
+ detail: z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodOptional<z.ZodString>>;
32
+ instance: z.ZodPrefault<z.ZodPipe<z.ZodCodec<z.ZodOptional<z.ZodUnknown>, z.ZodType<string | undefined, string | undefined, z.core.$ZodTypeInternals<string | undefined, string | undefined>>>, z.ZodCodec<z.ZodOptional<z.ZodString>, z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<URL, URL>, z.ZodString]>>>>>;
17
33
  }, z.core.$loose>;
18
- export type ProblemSpec = z.infer<typeof ProblemWireSchema>;
34
+ /** Constructor input accepts URI strings as well as decoded URL values. */
35
+ export interface ProblemSpec {
36
+ type?: string | URL;
37
+ title?: string;
38
+ status?: number;
39
+ detail?: string;
40
+ instance?: string | URL;
41
+ [key: string]: unknown;
42
+ }
19
43
  export declare class Problem extends Error implements Problem {
20
44
  static readonly BLANK_URL: URL;
21
- type: URL;
22
- title: string;
23
- status: number;
45
+ type: URL | string;
46
+ title?: string;
47
+ status?: number;
24
48
  detail?: string;
25
- instance?: URL;
49
+ instance?: URL | string;
26
50
  private readonly _parameters?;
27
51
  get parameters(): Record<string, unknown> | undefined;
28
52
  constructor(spec: ProblemSpec);
29
53
  toString(): string;
30
54
  static fromStatus(status: number, title: string): Problem;
31
55
  static fromResponse(response: Response): Promise<Problem>;
32
- private static parseURL;
33
56
  }
34
- export declare function createProblemCodec<TProblem extends Problem, TWire extends z.infer<typeof ProblemWireSchema>>(problemType: new (spec: TWire) => TProblem, wireSchema: z.ZodType<TWire>): z.ZodType<TProblem>;
57
+ export declare function createProblemCodec<TProblem extends Problem, TWire extends ProblemSpec>(problemType: new (spec: TWire) => TProblem, wireSchema: z.ZodType<TWire>): z.ZodType<TProblem>;
35
58
  export declare const ProblemSchema: SchemaLike<Problem>;
package/build/problem.js CHANGED
@@ -14,13 +14,78 @@
14
14
  import { constructValidatedModel } from './model-construction.js';
15
15
  import { z } from 'zod';
16
16
  import { ResponseExample } from './fetch.js';
17
- import { defineSchema, } from './schema-runtime.js';
17
+ import { defineSchema } from './schema-runtime.js';
18
+ /** RFC 9457 strings accept only string tokens; null and other categories are absent. */
19
+ export const ProblemStringSchema = z.codec(z.unknown().optional(), z.string().optional(), {
20
+ decode: (value) => (typeof value === 'string' ? value : undefined),
21
+ encode: (value) => value,
22
+ });
23
+ /** Exact integral status values, without scalar coercion or numeric truncation. */
24
+ export const ProblemStatusSchema = z.codec(z.unknown().optional(), z.number().int().optional(), {
25
+ decode: (value) => (typeof value === 'number' ? value : undefined),
26
+ encode: (value) => value,
27
+ });
28
+ const ProblemURI = z.union([
29
+ z.instanceof(URL),
30
+ z
31
+ .string()
32
+ .refine((value) => !/^[a-z][a-z0-9+.-]*:/i.test(value) &&
33
+ ![...value].some((character) => /\s/.test(character) || character.codePointAt(0) < 32) &&
34
+ !/%(?![0-9a-f]{2})/i.test(value), 'Invalid relative Problem URI'),
35
+ ]);
36
+ /** Compose string constraints/defaults with Problem URI conversion at a single property. */
37
+ export function createProblemReferenceCodec(schema = z
38
+ .string()
39
+ .optional(), defaultType = false) {
40
+ const defaults = z
41
+ .string()
42
+ .optional()
43
+ .prefault(defaultType ? 'about:blank' : undefined);
44
+ const constrained = z.codec(z.unknown().optional(), schema, {
45
+ decode: (value) => defaults.parse(ProblemStringSchema.decode(value)),
46
+ encode: (value) => value,
47
+ });
48
+ const reference = constrained.pipe(z.codec(z.string().optional(), ProblemURI.optional(), {
49
+ decode: (value, ctx) => {
50
+ if (value === undefined || !/^[a-z][a-z0-9+.-]*:/i.test(value))
51
+ return value;
52
+ try {
53
+ return new URL(value);
54
+ }
55
+ catch {
56
+ ctx.issues.push({
57
+ code: 'custom',
58
+ input: value,
59
+ message: 'Invalid Problem URI',
60
+ });
61
+ return z.NEVER;
62
+ }
63
+ },
64
+ encode: (value) => value?.toString(),
65
+ }));
66
+ return reference.prefault(defaultType ? 'about:blank' : undefined);
67
+ }
68
+ /** URI references preserve empty/relative strings and represent absolute URIs as URLs. */
69
+ export const ProblemReferenceSchema = createProblemReferenceCodec();
70
+ /** Normalize absence before applying the RFC default, including subtype dispatch. */
71
+ export const ProblemTypeSchema = createProblemReferenceCodec(z.string(), true).pipe(ProblemURI);
72
+ /** Category/default interpretation for subtype selection, before branch-specific validation. */
73
+ export const ProblemDispatchSchema = z.looseObject({
74
+ type: ProblemStringSchema.pipe(z.string().prefault('about:blank')).prefault('about:blank'),
75
+ });
76
+ /** Normalize the type property before a generated union chooses its branch. */
77
+ export function createProblemUnionCodec(schema) {
78
+ return z.codec(z.record(z.string(), z.unknown()), schema, {
79
+ decode: (value) => ProblemDispatchSchema.decode(value),
80
+ encode: (value) => value,
81
+ });
82
+ }
18
83
  export const ProblemWireSchema = z.looseObject({
19
- type: z.union([z.string(), z.instanceof(URL)]).optional(),
20
- title: z.string(),
21
- status: z.number(),
22
- detail: z.string().optional(),
23
- instance: z.union([z.string(), z.instanceof(URL)]).optional(),
84
+ type: ProblemTypeSchema,
85
+ title: ProblemStringSchema,
86
+ status: ProblemStatusSchema,
87
+ detail: ProblemStringSchema,
88
+ instance: ProblemReferenceSchema,
24
89
  });
25
90
  export class Problem extends Error {
26
91
  static BLANK_URL = new URL('about:blank');
@@ -34,14 +99,16 @@ export class Problem extends Error {
34
99
  return this._parameters;
35
100
  }
36
101
  constructor(spec) {
37
- super(`${spec.status.toString()} ${spec.type} - ${spec.title}`);
102
+ super(`${spec.status ?? ''} ${spec.type} - ${spec.title}`);
38
103
  const { type, title, status, detail, instance, ...parameters } = spec;
39
- delete parameters.stack; // Fix for browsers that add stack to Error objects
40
- this.type = Problem.parseURL(type) ?? Problem.BLANK_URL;
104
+ this.type = type instanceof URL ? type : ProblemTypeSchema.decode(type);
41
105
  this.status = status;
42
106
  this.title = title;
43
107
  this.detail = detail;
44
- this.instance = Problem.parseURL(instance);
108
+ this.instance =
109
+ instance instanceof URL
110
+ ? instance
111
+ : ProblemReferenceSchema.decode(instance);
45
112
  this._parameters = Object.keys(parameters).length ? parameters : undefined;
46
113
  }
47
114
  toString() {
@@ -85,34 +152,20 @@ export class Problem extends Error {
85
152
  },
86
153
  });
87
154
  }
88
- static parseURL(value) {
89
- if (value == null) {
90
- return undefined;
91
- }
92
- if (value instanceof URL) {
93
- return value;
94
- }
95
- if (typeof value === 'string') {
96
- try {
97
- return new URL(value);
98
- }
99
- catch {
100
- return undefined;
101
- }
102
- }
103
- return undefined;
104
- }
105
155
  }
106
156
  export function createProblemCodec(problemType, wireSchema) {
107
- return z.codec(wireSchema, z.instanceof(problemType), {
157
+ return z.codec(z.codec(z.record(z.string(), z.unknown()), wireSchema, {
158
+ decode: (value) => value,
159
+ encode: (value) => Object.fromEntries(Object.entries(value).filter(([, member]) => member !== undefined)),
160
+ }), z.instanceof(problemType), {
108
161
  decode: (value) => constructValidatedModel(problemType, value),
109
162
  encode: (value) => ({
110
- type: value.type?.toString() ?? Problem.BLANK_URL.toString(),
163
+ ...value.parameters,
164
+ type: value.type,
111
165
  title: value.title,
112
166
  status: value.status,
113
167
  detail: value.detail,
114
- instance: value.instance?.toString(),
115
- ...value.parameters,
168
+ instance: value.instance,
116
169
  }),
117
170
  });
118
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"problem.js","sourceRoot":"","sources":["../src/problem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"problem.js","sourceRoot":"","sources":["../src/problem.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export async function nullifyProblem(promise, statuses, problemTypes) {
27
27
  }
28
28
  }
29
29
  function matchesProblem(error, statuses, problemTypes) {
30
- if (statuses.includes(error.status)) {
30
+ if (error.status !== undefined && statuses.includes(error.status)) {
31
31
  return true;
32
32
  }
33
33
  return problemTypes.some((matcher) => typeof matcher === 'function'
@@ -1 +1 @@
1
- {"version":3,"file":"nullify.js","sourceRoot":"","sources":["../../src/util/nullify.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAIxC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,OAAmB;IAC1D,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAmB,EACnB,QAAkB,EAClB,YAA8B;IAE9B,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,KAAc,EACd,QAAkB,EAClB,YAA8B;IAE9B,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACnC,OAAO,OAAO,KAAK,UAAU;QAC3B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAChB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"nullify.js","sourceRoot":"","sources":["../../src/util/nullify.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAIxC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,OAAmB;IAC1D,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAmB,EACnB,QAAkB,EAClB,YAA8B;IAE9B,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,KAAc,EACd,QAAkB,EAClB,YAA8B;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACnC,OAAO,OAAO,KAAK,UAAU;QAC3B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAChB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** Returns the standard title for a recognized HTTP status. */
2
+ export declare function statusTitle(status: number): string | undefined;
@@ -0,0 +1,83 @@
1
+ // Copyright 2020 Outfox, Inc.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ // Standard HTTP reason phrases for about:blank when the body status differs from the response.
15
+ const titles = {
16
+ 100: 'Continue',
17
+ 101: 'Switching Protocols',
18
+ 102: 'Processing',
19
+ 103: 'Early Hints',
20
+ 200: 'OK',
21
+ 201: 'Created',
22
+ 202: 'Accepted',
23
+ 203: 'Non-Authoritative Information',
24
+ 204: 'No Content',
25
+ 205: 'Reset Content',
26
+ 206: 'Partial Content',
27
+ 207: 'Multi-Status',
28
+ 208: 'Already Reported',
29
+ 226: 'IM Used',
30
+ 300: 'Multiple Choices',
31
+ 301: 'Moved Permanently',
32
+ 302: 'Found',
33
+ 303: 'See Other',
34
+ 304: 'Not Modified',
35
+ 305: 'Use Proxy',
36
+ 307: 'Temporary Redirect',
37
+ 308: 'Permanent Redirect',
38
+ 400: 'Bad Request',
39
+ 401: 'Unauthorized',
40
+ 402: 'Payment Required',
41
+ 403: 'Forbidden',
42
+ 404: 'Not Found',
43
+ 405: 'Method Not Allowed',
44
+ 406: 'Not Acceptable',
45
+ 407: 'Proxy Authentication Required',
46
+ 408: 'Request Timeout',
47
+ 409: 'Conflict',
48
+ 410: 'Gone',
49
+ 411: 'Length Required',
50
+ 412: 'Precondition Failed',
51
+ 413: 'Content Too Large',
52
+ 414: 'URI Too Long',
53
+ 415: 'Unsupported Media Type',
54
+ 416: 'Range Not Satisfiable',
55
+ 417: 'Expectation Failed',
56
+ 418: "I'm a Teapot",
57
+ 421: 'Misdirected Request',
58
+ 422: 'Unprocessable Content',
59
+ 423: 'Locked',
60
+ 424: 'Failed Dependency',
61
+ 425: 'Too Early',
62
+ 426: 'Upgrade Required',
63
+ 428: 'Precondition Required',
64
+ 429: 'Too Many Requests',
65
+ 431: 'Request Header Fields Too Large',
66
+ 451: 'Unavailable For Legal Reasons',
67
+ 500: 'Internal Server Error',
68
+ 501: 'Not Implemented',
69
+ 502: 'Bad Gateway',
70
+ 503: 'Service Unavailable',
71
+ 504: 'Gateway Timeout',
72
+ 505: 'HTTP Version Not Supported',
73
+ 506: 'Variant Also Negotiates',
74
+ 507: 'Insufficient Storage',
75
+ 508: 'Loop Detected',
76
+ 510: 'Not Extended',
77
+ 511: 'Network Authentication Required',
78
+ };
79
+ /** Returns the standard title for a recognized HTTP status. */
80
+ export function statusTitle(status) {
81
+ return titles[status];
82
+ }
83
+ //# sourceMappingURL=status-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-title.js","sourceRoot":"","sources":["../../src/util/status-title.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,+FAA+F;AAC/F,MAAM,MAAM,GAAqC;IAC/C,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,+BAA+B;IACpC,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,+BAA+B;IACpC,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,+BAA+B;IACpC,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,4BAA4B;IACjC,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,iCAAiC;CACvC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outfoxx/sunday",
3
- "version": "v2.0.0-beta.14",
3
+ "version": "v2.0.0-beta.15",
4
4
  "description": "Sunday 🙏 The framework of REST for TypeScript/JavaScript",
5
5
  "packageManager": "bun@1.3.10",
6
6
  "type": "module",