@outfoxx/sunday 1.1.0 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { Logger } from './logger.js';
2
- import { ExtEventSource } from './request-factory.js';
2
+ import { ExtEventSource } from './transport.js';
3
3
  export interface FetchEventSource {
4
4
  addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
5
5
  removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
@@ -4,10 +4,10 @@ import { TextMediaTypeDecoder } from './media-type-codecs/media-type-decoder.js'
4
4
  import { MediaTypeDecoders } from './media-type-codecs/media-type-decoders.js';
5
5
  import { MediaTypeEncoders } from './media-type-codecs/media-type-encoders.js';
6
6
  import { Problem } from './problem.js';
7
- import { ExtEventSource, RequestAdapter, RequestFactory, RequestSpec } from './request-factory.js';
8
- import { ResultResponse } from './result-response.js';
7
+ import { ExtEventSource, RequestAdapter, Transport, RequestSpec } from './transport.js';
8
+ import { OperationResponse } from './operation-response.js';
9
9
  import { URLTemplate } from './url-template.js';
10
- export declare class FetchRequestFactory implements RequestFactory {
10
+ export declare class FetchTransport implements Transport {
11
11
  baseUrl: URLTemplate;
12
12
  adapter?: RequestAdapter;
13
13
  mediaTypeEncoders: MediaTypeEncoders;
@@ -21,10 +21,10 @@ export declare class FetchRequestFactory implements RequestFactory {
21
21
  logger?: Logger;
22
22
  });
23
23
  registerProblem(type: URL | string, problemType: SchemaLike<Problem>): void;
24
- request(requestSpec: RequestSpec<unknown>): Promise<Request>;
25
- response(request: Request | RequestSpec<unknown>, dataExpected?: boolean): Promise<Response>;
26
- resultResponse<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<ResultResponse<R>>;
27
- resultResponse<B>(requestSpec: RequestSpec<B>): Promise<ResultResponse<void>>;
24
+ transportRequest(requestSpec: RequestSpec<unknown>): Promise<Request>;
25
+ transportResponse(request: Request | RequestSpec<unknown>, dataExpected?: boolean): Promise<Response>;
26
+ response<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<OperationResponse<R>>;
27
+ response<B>(requestSpec: RequestSpec<B>): Promise<OperationResponse<void>>;
28
28
  result<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<R>;
29
29
  result<B>(requestSpec: RequestSpec<B>): Promise<void>;
30
30
  eventSource(requestSpec: RequestSpec<void>): ExtEventSource;
@@ -19,10 +19,11 @@ import { MediaType } from './media-type.js';
19
19
  import { MediaTypeDecoders } from './media-type-codecs/media-type-decoders.js';
20
20
  import { isURLQueryParamsEncoder } from './media-type-codecs/media-type-encoder.js';
21
21
  import { MediaTypeEncoders } from './media-type-codecs/media-type-encoders.js';
22
+ import { OperationResponse } from './operation-response.js';
22
23
  import { SundayError } from './sunday-error.js';
23
24
  import { URLTemplate } from './url-template.js';
24
25
  import { errorToMessage } from './util/errors.js';
25
- export class FetchRequestFactory {
26
+ export class FetchTransport {
26
27
  baseUrl;
27
28
  adapter;
28
29
  mediaTypeEncoders;
@@ -43,7 +44,7 @@ export class FetchRequestFactory {
43
44
  const typeStr = type instanceof URL ? type.toString() : type;
44
45
  this.problemTypes.set(typeStr, problemType);
45
46
  }
46
- async request(requestSpec) {
47
+ async transportRequest(requestSpec) {
47
48
  const url = this.baseUrl.complete(requestSpec.pathTemplate, requestSpec.pathParameters ?? {});
48
49
  if (requestSpec.queryParameters) {
49
50
  const encoder = this.mediaTypeEncoders.find(MediaType.WWWFormUrlEncoded);
@@ -88,36 +89,30 @@ export class FetchRequestFactory {
88
89
  const request = new Request(url.toString(), init);
89
90
  return (await this.adapter?.adapt(this, request)) ?? request;
90
91
  }
91
- async response(request, dataExpected) {
92
+ async transportResponse(request, dataExpected) {
92
93
  const req = request instanceof Request
93
94
  ? request
94
- : await this.request(request);
95
+ : await this.transportRequest(request);
95
96
  const response = await fetch(req);
96
97
  return await validate(response, dataExpected ?? false, this.problemTypes, this.logger);
97
98
  }
98
- async resultResponse(request, responseType) {
99
- const response = await this.response(request, !!responseType);
99
+ async response(request, responseType) {
100
+ const response = await this.transportResponse(request, !!responseType);
100
101
  if (!responseType) {
101
- return {
102
- result: undefined,
103
- response,
104
- };
102
+ return new OperationResponse(undefined, response);
105
103
  }
106
104
  try {
107
105
  const contentType = MediaType.from(response.headers.get('content-type'), MediaType.OctetStream);
108
106
  const decoder = this.mediaTypeDecoders.find(contentType);
109
107
  const result = await decoder.decode(response, responseType);
110
- return {
111
- result,
112
- response,
113
- };
108
+ return new OperationResponse(result, response);
114
109
  }
115
110
  catch (error) {
116
111
  throw await SundayError.fromResponse(errorToMessage(error, 'Response Decoding Failed'), response);
117
112
  }
118
113
  }
119
114
  async result(request, responseType) {
120
- const response = await this.response(request, !!responseType);
115
+ const response = await this.transportResponse(request, !!responseType);
121
116
  if (!responseType) {
122
117
  return undefined;
123
118
  }
@@ -134,7 +129,7 @@ export class FetchRequestFactory {
134
129
  //
135
130
  const adapter = async (url, requestInit) => {
136
131
  const eventSourceSpec = { ...requestSpec, pathTemplate: url };
137
- const request = await this.request(eventSourceSpec);
132
+ const request = await this.transportRequest(eventSourceSpec);
138
133
  return new Request(request, {
139
134
  ...requestInit,
140
135
  headers: mergeHeaders(request.headers, requestInit.headers),
@@ -313,4 +308,4 @@ function composeAbortSignals(first, second) {
313
308
  second.addEventListener('abort', abort, { once: true });
314
309
  return controller.signal;
315
310
  }
316
- //# sourceMappingURL=fetch-request-factory.js.map
311
+ //# sourceMappingURL=fetch-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-transport.js","sourceRoot":"","sources":["../src/fetch-transport.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export * from './schema-runtime.js';
2
2
  export { ArrayBufferSchema, BooleanSchema, NullSchema, NumberSchema, StringSchema, UnknownSchema, URLSchema, } from './schema-builtins.js';
3
- export * from './request-factory.js';
4
- export * from './fetch-request-factory.js';
3
+ export * from './transport.js';
4
+ export * from './fetch-transport.js';
5
5
  export * from './fetch-event-source.js';
6
6
  export * from './url-template.js';
7
7
  export * from './media-type.js';
@@ -20,7 +20,8 @@ export * from './logger.js';
20
20
  export * from './sunday-error.js';
21
21
  export * from './problem.js';
22
22
  export * from './date-time-types.js';
23
- export * from './result-response.js';
23
+ export * from './operation-response.js';
24
+ export * from './operation.js';
24
25
  export * from './request-adapters.js';
25
26
  export * from './util/errors.js';
26
27
  export * from './util/nullify.js';
package/build/index.js CHANGED
@@ -13,8 +13,8 @@
13
13
  // limitations under the License.
14
14
  export * from './schema-runtime.js';
15
15
  export { ArrayBufferSchema, BooleanSchema, NullSchema, NumberSchema, StringSchema, UnknownSchema, URLSchema, } from './schema-builtins.js';
16
- export * from './request-factory.js';
17
- export * from './fetch-request-factory.js';
16
+ export * from './transport.js';
17
+ export * from './fetch-transport.js';
18
18
  export * from './fetch-event-source.js';
19
19
  export * from './url-template.js';
20
20
  export * from './media-type.js';
@@ -33,7 +33,8 @@ export * from './logger.js';
33
33
  export * from './sunday-error.js';
34
34
  export * from './problem.js';
35
35
  export * from './date-time-types.js';
36
- export * from './result-response.js';
36
+ export * from './operation-response.js';
37
+ export * from './operation.js';
37
38
  export * from './request-adapters.js';
38
39
  // Select exports from util
39
40
  export * from './util/errors.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,2BAA2B;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,2BAA2B;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { MediaType } from './media-type.js';
2
+ /** A single HTTP response header entry. */
3
+ export interface ResponseHeaderEntry {
4
+ readonly name: string;
5
+ readonly value: string;
6
+ }
7
+ /** HTTP response headers with case-insensitive lookup. */
8
+ export declare class ResponseHeaders {
9
+ readonly entries: readonly ResponseHeaderEntry[];
10
+ constructor(entries: readonly ResponseHeaderEntry[]);
11
+ /** Creates response headers from a Fetch API `Headers` value. */
12
+ static from(headers: Headers): ResponseHeaders;
13
+ /** Retrieves all values matching `name` case-insensitively. */
14
+ getAll(name: string): readonly string[];
15
+ /** Retrieves the first value matching `name` case-insensitively. */
16
+ get(name: string): string | undefined;
17
+ /** Parsed `Content-Type` header value. */
18
+ get contentType(): MediaType | undefined;
19
+ }
20
+ /** A decoded operation result with HTTP response metadata. */
21
+ export declare class OperationResponse<R> {
22
+ readonly result: R;
23
+ readonly transportResponse: Response;
24
+ readonly status: number;
25
+ readonly headers: ResponseHeaders;
26
+ constructor(result: R, transportResponse: Response);
27
+ /** Retrieves all response header values matching `name`. */
28
+ getHeaders(name: string): readonly string[];
29
+ /** Retrieves the first response header value matching `name`. */
30
+ getHeader(name: string): string | undefined;
31
+ /** Parsed `Content-Type` header value. */
32
+ get contentType(): MediaType | undefined;
33
+ }
@@ -0,0 +1,140 @@
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
+ import { MediaType } from './media-type.js';
15
+ const commaSeparatedResponseHeaders = new Set([
16
+ 'accept-ranges',
17
+ 'access-control-allow-headers',
18
+ 'access-control-allow-methods',
19
+ 'access-control-expose-headers',
20
+ 'allow',
21
+ 'cache-control',
22
+ 'connection',
23
+ 'content-encoding',
24
+ 'link',
25
+ 'transfer-encoding',
26
+ 'upgrade',
27
+ 'vary',
28
+ ]);
29
+ /** HTTP response headers with case-insensitive lookup. */
30
+ export class ResponseHeaders {
31
+ entries;
32
+ constructor(entries) {
33
+ this.entries = entries;
34
+ }
35
+ /** Creates response headers from a Fetch API `Headers` value. */
36
+ static from(headers) {
37
+ const entries = [];
38
+ const setCookies = headers.getSetCookie?.() ?? [];
39
+ headers.forEach((value, name) => {
40
+ if (name.toLowerCase() === 'set-cookie' && setCookies.length > 0) {
41
+ return;
42
+ }
43
+ splitHeaderValue(name, value).forEach((value) => {
44
+ entries.push({ name, value });
45
+ });
46
+ });
47
+ setCookies.forEach((value) => {
48
+ entries.push({ name: 'set-cookie', value });
49
+ });
50
+ return new ResponseHeaders(entries);
51
+ }
52
+ /** Retrieves all values matching `name` case-insensitively. */
53
+ getAll(name) {
54
+ return this.entries
55
+ .filter((entry) => entry.name.toLowerCase() === name.toLowerCase())
56
+ .map((entry) => entry.value);
57
+ }
58
+ /** Retrieves the first value matching `name` case-insensitively. */
59
+ get(name) {
60
+ return this.entries.find((entry) => entry.name.toLowerCase() === name.toLowerCase())?.value;
61
+ }
62
+ /** Parsed `Content-Type` header value. */
63
+ get contentType() {
64
+ const value = this.get('content-type');
65
+ if (!value) {
66
+ return undefined;
67
+ }
68
+ try {
69
+ return MediaType.from(value);
70
+ }
71
+ catch {
72
+ return undefined;
73
+ }
74
+ }
75
+ }
76
+ function splitHeaderValue(name, value) {
77
+ if (!commaSeparatedResponseHeaders.has(name.toLowerCase())) {
78
+ return [value];
79
+ }
80
+ const values = [];
81
+ let start = 0;
82
+ let inQuotes = false;
83
+ let inAngleBrackets = false;
84
+ let escaping = false;
85
+ for (let index = 0; index < value.length; index += 1) {
86
+ const char = value[index];
87
+ if (escaping) {
88
+ escaping = false;
89
+ continue;
90
+ }
91
+ if (char === '\\' && inQuotes) {
92
+ escaping = true;
93
+ continue;
94
+ }
95
+ if (char === '"' && !inAngleBrackets) {
96
+ inQuotes = !inQuotes;
97
+ continue;
98
+ }
99
+ if (char === '<' && !inQuotes) {
100
+ inAngleBrackets = true;
101
+ continue;
102
+ }
103
+ if (char === '>' && !inQuotes) {
104
+ inAngleBrackets = false;
105
+ continue;
106
+ }
107
+ if (char === ',' && !inQuotes && !inAngleBrackets) {
108
+ values.push(value.slice(start, index).trim());
109
+ start = index + 1;
110
+ }
111
+ }
112
+ values.push(value.slice(start).trim());
113
+ return values.filter((value) => value.length > 0);
114
+ }
115
+ /** A decoded operation result with HTTP response metadata. */
116
+ export class OperationResponse {
117
+ result;
118
+ transportResponse;
119
+ status;
120
+ headers;
121
+ constructor(result, transportResponse) {
122
+ this.result = result;
123
+ this.transportResponse = transportResponse;
124
+ this.status = transportResponse.status;
125
+ this.headers = ResponseHeaders.from(transportResponse.headers);
126
+ }
127
+ /** Retrieves all response header values matching `name`. */
128
+ getHeaders(name) {
129
+ return this.headers.getAll(name);
130
+ }
131
+ /** Retrieves the first response header value matching `name`. */
132
+ getHeader(name) {
133
+ return this.headers.get(name);
134
+ }
135
+ /** Parsed `Content-Type` header value. */
136
+ get contentType() {
137
+ return this.headers.contentType;
138
+ }
139
+ }
140
+ //# sourceMappingURL=operation-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-response.js","sourceRoot":"","sources":["../src/operation-response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { Transport, RequestSpec } from './transport.js';
2
+ import { OperationResponse } from './operation-response.js';
3
+ import { SchemaLike } from './schema-runtime.js';
4
+ import { type ProblemMatcher } from './util/nullify.js';
5
+ /** Extracts the native request type from a transport. */
6
+ export type TransportRequest<Factory> = Factory extends Transport<infer NativeRequest> ? NativeRequest : never;
7
+ /** Options used when converting an operation into a native request. */
8
+ export interface BuildRequestOptions {
9
+ readonly signal?: AbortSignal;
10
+ }
11
+ /** Options used when executing an operation. */
12
+ export interface ExecuteOptions {
13
+ readonly signal?: AbortSignal;
14
+ }
15
+ /** Describes the generated HTTP request and optional response decoder for an operation. */
16
+ export interface OperationSpec<RequestBody, ResponseBody> {
17
+ readonly request: RequestSpec<RequestBody>;
18
+ readonly responseType?: SchemaLike<ResponseBody>;
19
+ }
20
+ /** Describes an operation with no decoded response body. */
21
+ export interface VoidOperationSpec<RequestBody = void> extends OperationSpec<RequestBody, void> {
22
+ readonly responseType?: undefined;
23
+ }
24
+ /** Describes an operation with a decoded response body. */
25
+ export interface TypedOperationSpec<RequestBody, ResponseBody> extends OperationSpec<RequestBody, ResponseBody> {
26
+ readonly responseType: SchemaLike<ResponseBody>;
27
+ }
28
+ /** Describes problems that should be translated into a null response value. */
29
+ export interface NullifySpec {
30
+ readonly statuses: readonly number[];
31
+ readonly problemTypes: readonly ProblemMatcher[];
32
+ }
33
+ /** A generated operation that can be executed or converted into a native transport request. */
34
+ export interface Operation<RequestBody, ResponseBody, Factory extends Transport<unknown> = Transport> {
35
+ readonly spec: OperationSpec<RequestBody, ResponseBody>;
36
+ execute(options?: ExecuteOptions): Promise<ResponseBody>;
37
+ response(options?: ExecuteOptions): Promise<OperationResponse<ResponseBody>>;
38
+ transportRequest(options?: BuildRequestOptions): Promise<TransportRequest<Factory>>;
39
+ transportResponse(options?: ExecuteOptions): Promise<Response>;
40
+ }
41
+ /** A generated operation that can execute select problems as null responses. */
42
+ export interface NullableOperation<RequestBody, ResponseBody, Factory extends Transport<unknown> = Transport> extends Operation<RequestBody, ResponseBody, Factory> {
43
+ readonly nullify: NullifySpec;
44
+ executeOrNull(options?: ExecuteOptions): Promise<ResponseBody | null>;
45
+ responseOrNull(options?: ExecuteOptions): Promise<OperationResponse<ResponseBody> | null>;
46
+ }
47
+ /** Creates an operation with a decoded response body. */
48
+ export declare function createOperation<RequestBody = void, ResponseBody = void, Factory extends Transport<unknown> = Transport>(transport: Factory, spec: TypedOperationSpec<RequestBody, ResponseBody>): Operation<RequestBody, ResponseBody, Factory>;
49
+ /** Creates an operation with no decoded response body. */
50
+ export declare function createOperation<RequestBody = void, Factory extends Transport<unknown> = Transport>(transport: Factory, spec: VoidOperationSpec<RequestBody>): Operation<RequestBody, void, Factory>;
51
+ /** Creates a nullable operation with a decoded response body. */
52
+ export declare function createNullableOperation<RequestBody = void, ResponseBody = void, Factory extends Transport<unknown> = Transport>(transport: Factory, spec: TypedOperationSpec<RequestBody, ResponseBody>, nullify: NullifySpec): NullableOperation<RequestBody, ResponseBody, Factory>;
53
+ /** Creates a nullable operation with no decoded response body. */
54
+ export declare function createNullableOperation<RequestBody = void, Factory extends Transport<unknown> = Transport>(transport: Factory, spec: VoidOperationSpec<RequestBody>, nullify: NullifySpec): NullableOperation<RequestBody, void, Factory>;
@@ -0,0 +1,87 @@
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
+ import { nullifyProblem } from './util/nullify.js';
15
+ export function createOperation(transport, spec) {
16
+ return new TransportOperation(transport, spec);
17
+ }
18
+ export function createNullableOperation(transport, spec, nullify) {
19
+ return new TransportNullableOperation(transport, spec, nullify);
20
+ }
21
+ class TransportOperation {
22
+ transport;
23
+ spec;
24
+ constructor(transport, spec) {
25
+ this.transport = transport;
26
+ this.spec = spec;
27
+ }
28
+ async execute(options) {
29
+ const request = requestWithOptions(this.spec.request, options);
30
+ if (this.spec.responseType) {
31
+ return this.transport.result(request, this.spec.responseType);
32
+ }
33
+ return this.transport.result(request);
34
+ }
35
+ async response(options) {
36
+ const request = requestWithOptions(this.spec.request, options);
37
+ if (this.spec.responseType) {
38
+ return this.transport.response(request, this.spec.responseType);
39
+ }
40
+ return this.transport.response(request);
41
+ }
42
+ async transportRequest(options) {
43
+ return this.transport.transportRequest(requestWithOptions(this.spec.request, options));
44
+ }
45
+ async transportResponse(options) {
46
+ const request = await this.transportRequest(options);
47
+ return this.transport.transportResponse(request);
48
+ }
49
+ }
50
+ class TransportNullableOperation {
51
+ spec;
52
+ nullify;
53
+ operation;
54
+ constructor(transport, spec, nullify) {
55
+ this.spec = spec;
56
+ this.nullify = nullify;
57
+ this.operation = new TransportOperation(transport, spec);
58
+ }
59
+ async execute(options) {
60
+ return this.operation.execute(options);
61
+ }
62
+ async executeOrNull(options) {
63
+ return nullifyProblem(this.operation.execute(options), [...this.nullify.statuses], [...this.nullify.problemTypes]);
64
+ }
65
+ async responseOrNull(options) {
66
+ return nullifyProblem(this.operation.response(options), [...this.nullify.statuses], [...this.nullify.problemTypes]);
67
+ }
68
+ async response(options) {
69
+ return this.operation.response(options);
70
+ }
71
+ async transportRequest(options) {
72
+ return this.operation.transportRequest(options);
73
+ }
74
+ async transportResponse(options) {
75
+ return this.operation.transportResponse(options);
76
+ }
77
+ }
78
+ function requestWithOptions(request, options) {
79
+ if (options?.signal === undefined) {
80
+ return request;
81
+ }
82
+ return {
83
+ ...request,
84
+ signal: options.signal,
85
+ };
86
+ }
87
+ //# sourceMappingURL=operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import { RequestAdapter, RequestFactory } from './request-factory.js';
1
+ import { RequestAdapter, Transport } from './transport.js';
2
2
  export declare abstract class HeaderTokenAuthorizingAdapter implements RequestAdapter {
3
3
  header: string;
4
4
  tokenHeaderType: string;
5
5
  applyToken(request: Request, accessToken: string): Request;
6
- abstract adapt(requestFactory: RequestFactory, request: Request): Promise<Request>;
6
+ abstract adapt(transport: Transport, request: Request): Promise<Request>;
7
7
  }
8
8
  export declare class StaticHeaderTokenAuthorizingAdapter extends HeaderTokenAuthorizingAdapter {
9
9
  private readonly accessToken;
10
10
  constructor(accessToken: string);
11
- adapt(_requestFactory: RequestFactory, request: Request): Promise<Request>;
11
+ adapt(_transport: Transport, request: Request): Promise<Request>;
12
12
  }
13
13
  export interface TokenAuthorization {
14
14
  token: string;
@@ -17,7 +17,7 @@ export interface TokenAuthorization {
17
17
  export declare class RefreshingHeaderTokenAuthorizingAdapter extends HeaderTokenAuthorizingAdapter {
18
18
  private readonly refresh;
19
19
  private authorization?;
20
- constructor(refresh: (requestFactory: RequestFactory) => Promise<TokenAuthorization>);
20
+ constructor(refresh: (transport: Transport) => Promise<TokenAuthorization>);
21
21
  shouldRefresh(): boolean;
22
- adapt(requestFactory: RequestFactory, request: Request): Promise<Request>;
22
+ adapt(transport: Transport, request: Request): Promise<Request>;
23
23
  }
@@ -26,7 +26,7 @@ export class StaticHeaderTokenAuthorizingAdapter extends HeaderTokenAuthorizingA
26
26
  super();
27
27
  this.accessToken = accessToken;
28
28
  }
29
- async adapt(_requestFactory, request) {
29
+ async adapt(_transport, request) {
30
30
  return this.applyToken(request, this.accessToken);
31
31
  }
32
32
  }
@@ -43,9 +43,9 @@ export class RefreshingHeaderTokenAuthorizingAdapter extends HeaderTokenAuthoriz
43
43
  }
44
44
  return this.authorization.expires.getTime() <= Date.now();
45
45
  }
46
- async adapt(requestFactory, request) {
46
+ async adapt(transport, request) {
47
47
  if (!this.authorization || this.shouldRefresh()) {
48
- this.authorization = await this.refresh(requestFactory);
48
+ this.authorization = await this.refresh(transport);
49
49
  }
50
50
  return this.applyToken(request, this.authorization.token);
51
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request-adapters.js","sourceRoot":"","sources":["../src/request-adapters.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;AAIjC,MAAM,OAAgB,6BAA6B;IACjD,MAAM,GAAG,eAAe,CAAC;IACzB,eAAe,GAAG,QAAQ,CAAC;IAE3B,UAAU,CAAC,OAAgB,EAAE,WAAmB;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,YAAY,CAAC,OAAO,CAAC,GAAG,CACtB,IAAI,CAAC,MAAM,EACX,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,EAAE,CACzC,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CAMF;AAED,MAAM,OAAO,mCAAoC,SAAQ,6BAA6B;IACvD;IAA7B,YAA6B,WAAmB;QAC9C,KAAK,EAAE,CAAC;QADmB,gBAAW,GAAX,WAAW,CAAQ;IAEhD,CAAC;IAED,KAAK,CAAC,KAAK,CACT,eAA+B,EAC/B,OAAgB;QAEhB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;CACF;AAOD,MAAM,OAAO,uCAAwC,SAAQ,6BAA6B;IAIrE;IAHX,aAAa,CAAsB;IAE3C,YACmB,OAEe;QAEhC,KAAK,EAAE,CAAC;QAJS,YAAO,GAAP,OAAO,CAEQ;IAGlC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK,CACT,cAA8B,EAC9B,OAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"request-adapters.js","sourceRoot":"","sources":["../src/request-adapters.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;AAIjC,MAAM,OAAgB,6BAA6B;IACjD,MAAM,GAAG,eAAe,CAAC;IACzB,eAAe,GAAG,QAAQ,CAAC;IAE3B,UAAU,CAAC,OAAgB,EAAE,WAAmB;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACrC,YAAY,CAAC,OAAO,CAAC,GAAG,CACtB,IAAI,CAAC,MAAM,EACX,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,EAAE,CACzC,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CAMF;AAED,MAAM,OAAO,mCAAoC,SAAQ,6BAA6B;IACvD;IAA7B,YAA6B,WAAmB;QAC9C,KAAK,EAAE,CAAC;QADmB,gBAAW,GAAX,WAAW,CAAQ;IAEhD,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAAqB,EACrB,OAAgB;QAEhB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;CACF;AAOD,MAAM,OAAO,uCAAwC,SAAQ,6BAA6B;IAIrE;IAHX,aAAa,CAAsB;IAE3C,YACmB,OAEe;QAEhC,KAAK,EAAE,CAAC;QAJS,YAAO,GAAP,OAAO,CAEQ;IAGlC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK,CACT,SAAoB,EACpB,OAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;CACF"}
@@ -10,8 +10,19 @@ export type SchemaDef<S extends AnySchema = AnySchema> = {
10
10
  readonly debugName?: string;
11
11
  readonly [SchemaDefType]: true;
12
12
  };
13
- export type SchemaLike<T = unknown> = z.ZodType<T> | SchemaDef<z.ZodType<T>>;
14
- export type ResolvedSchema<S> = S extends SchemaDef<infer TSchema> ? TSchema : S;
13
+ /**
14
+ * A concrete Zod schema or deferred schema definition.
15
+ */
16
+ export type SchemaLike<Output = unknown, Input = unknown> = z.ZodType<Output, Input> | SchemaDef<z.ZodType<Output, Input>>;
17
+ export type ResolvedSchema<S> = S extends SchemaDef<infer TSchema> ? TSchema : S extends AnySchema ? S : never;
18
+ /**
19
+ * The wire/input type accepted by a schema during decoding.
20
+ */
21
+ export type SchemaInput<S extends SchemaLike> = z.input<ResolvedSchema<S>>;
22
+ /**
23
+ * The decoded/application type produced by a schema.
24
+ */
25
+ export type SchemaOutput<S extends SchemaLike> = z.output<ResolvedSchema<S>>;
15
26
  export declare function isSchema(value: unknown): value is z.ZodType;
16
27
  export declare function isSchemaDef(value: unknown): value is SchemaDef;
17
28
  export declare function defineSchema<S extends AnySchema>(builder: (runtime: SchemaRuntime) => S, options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"schema-runtime.js","sourceRoot":"","sources":["../src/schema-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-runtime.js","sourceRoot":"","sources":["../src/schema-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  import { MediaType } from './media-type.js';
2
2
  import { TextMediaTypeDecoder } from './media-type-codecs/media-type-decoder.js';
3
3
  import { Problem } from './problem.js';
4
- import { ResultResponse } from './result-response.js';
4
+ import { OperationResponse } from './operation-response.js';
5
5
  import { SchemaLike } from './schema-runtime.js';
6
6
  import { URLTemplate } from './url-template.js';
7
7
  import { Logger } from './logger.js';
8
- export interface RequestFactory {
8
+ export interface Transport<NativeRequest = Request> {
9
9
  readonly baseUrl: URLTemplate;
10
10
  registerProblem(type: URL | string, problemType: SchemaLike<Problem>): void;
11
- request(requestSpec: RequestSpec<unknown>): Promise<Request>;
12
- response(request: Request, dataExpected?: boolean): Promise<Response>;
13
- response<B>(requestSpec: RequestSpec<B>, dataExpected?: boolean): Promise<Response>;
14
- resultResponse<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<ResultResponse<R>>;
15
- resultResponse<B>(requestSpec: RequestSpec<B>): Promise<ResultResponse<void>>;
11
+ transportRequest(requestSpec: RequestSpec<unknown>): Promise<NativeRequest>;
12
+ transportResponse(request: NativeRequest, dataExpected?: boolean): Promise<Response>;
13
+ transportResponse<B>(requestSpec: RequestSpec<B>, dataExpected?: boolean): Promise<Response>;
14
+ response<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<OperationResponse<R>>;
15
+ response<B>(requestSpec: RequestSpec<B>): Promise<OperationResponse<void>>;
16
16
  result<B, R>(requestSpec: RequestSpec<B>, resultType: SchemaLike<R>): Promise<R>;
17
17
  result<B>(requestSpec: RequestSpec<B>): Promise<void>;
18
18
  eventSource(requestSpec: RequestSpec<void>): ExtEventSource;
@@ -35,5 +35,5 @@ export interface RequestSpec<B> {
35
35
  signal?: AbortSignal;
36
36
  }
37
37
  export interface RequestAdapter {
38
- adapt(requestFactory: RequestFactory, request: Request): Promise<Request>;
38
+ adapt(transport: Transport, request: Request): Promise<Request>;
39
39
  }
@@ -12,4 +12,4 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  export {};
15
- //# sourceMappingURL=request-factory.js.map
15
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outfoxx/sunday",
3
- "version": "v1.1.0",
3
+ "version": "v2.0.0-beta.1",
4
4
  "description": "Sunday 🙏 The framework of REST for TypeScript/JavaScript",
5
5
  "packageManager": "bun@1.3.10",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-request-factory.js","sourceRoot":"","sources":["../src/fetch-request-factory.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-factory.js","sourceRoot":"","sources":["../src/request-factory.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"}
@@ -1,4 +0,0 @@
1
- export interface ResultResponse<R> {
2
- readonly result: R;
3
- readonly response: Response;
4
- }
@@ -1,15 +0,0 @@
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
- export {};
15
- //# sourceMappingURL=result-response.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result-response.js","sourceRoot":"","sources":["../src/result-response.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"}