@outfoxx/sunday 1.1.0 → 2.0.0-beta.2

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,12 @@ 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';
24
+ import { isStreamingBody } from './streaming-body.js';
23
25
  import { URLTemplate } from './url-template.js';
24
26
  import { errorToMessage } from './util/errors.js';
25
- export class FetchRequestFactory {
27
+ export class FetchTransport {
26
28
  baseUrl;
27
29
  adapter;
28
30
  mediaTypeEncoders;
@@ -43,7 +45,7 @@ export class FetchRequestFactory {
43
45
  const typeStr = type instanceof URL ? type.toString() : type;
44
46
  this.problemTypes.set(typeStr, problemType);
45
47
  }
46
- async request(requestSpec) {
48
+ async transportRequest(requestSpec) {
47
49
  const url = this.baseUrl.complete(requestSpec.pathTemplate, requestSpec.pathParameters ?? {});
48
50
  if (requestSpec.queryParameters) {
49
51
  const encoder = this.mediaTypeEncoders.find(MediaType.WWWFormUrlEncoded);
@@ -63,21 +65,29 @@ export class FetchRequestFactory {
63
65
  headers.set('accept', accept);
64
66
  }
65
67
  // Determine content type
66
- const contentType = requestSpec.contentTypes?.find((type) => this.mediaTypeEncoders.supports(type));
68
+ const streamingBody = isStreamingBody(requestSpec.body)
69
+ ? requestSpec.body
70
+ : undefined;
71
+ const contentType = requestSpec.contentTypes?.find((type) => streamingBody !== undefined || this.mediaTypeEncoders.supports(type));
67
72
  // If matched, add the content type (even if the body is nil,
68
73
  // to match any expected server requirements)
69
- if (contentType) {
74
+ if (contentType && (streamingBody === undefined || !headers.has('content-type'))) {
70
75
  headers.set('content-type', contentType.toString());
71
76
  }
72
77
  // Encode & add body data
73
78
  let body;
74
- if (requestSpec.body) {
75
- if (!contentType) {
76
- throw new Error('None of the provided content types has a registered encoder');
79
+ if (requestSpec.body !== undefined) {
80
+ if (streamingBody !== undefined) {
81
+ body = streamingBody.toBodyInit();
82
+ }
83
+ else {
84
+ if (!contentType) {
85
+ throw new Error('None of the provided content types has a registered encoder');
86
+ }
87
+ body = this.mediaTypeEncoders
88
+ .find(contentType)
89
+ .encode(requestSpec.body, requestSpec.bodyType);
77
90
  }
78
- body = this.mediaTypeEncoders
79
- .find(contentType)
80
- .encode(requestSpec.body, requestSpec.bodyType);
81
91
  }
82
92
  const init = {
83
93
  headers,
@@ -85,39 +95,36 @@ export class FetchRequestFactory {
85
95
  method: requestSpec.method,
86
96
  signal: requestSpec.signal,
87
97
  };
98
+ if (body instanceof ReadableStream) {
99
+ init.duplex = 'half';
100
+ }
88
101
  const request = new Request(url.toString(), init);
89
102
  return (await this.adapter?.adapt(this, request)) ?? request;
90
103
  }
91
- async response(request, dataExpected) {
104
+ async transportResponse(request, dataExpected) {
92
105
  const req = request instanceof Request
93
106
  ? request
94
- : await this.request(request);
107
+ : await this.transportRequest(request);
95
108
  const response = await fetch(req);
96
109
  return await validate(response, dataExpected ?? false, this.problemTypes, this.logger);
97
110
  }
98
- async resultResponse(request, responseType) {
99
- const response = await this.response(request, !!responseType);
111
+ async response(request, responseType) {
112
+ const response = await this.transportResponse(request, !!responseType);
100
113
  if (!responseType) {
101
- return {
102
- result: undefined,
103
- response,
104
- };
114
+ return new OperationResponse(undefined, response);
105
115
  }
106
116
  try {
107
117
  const contentType = MediaType.from(response.headers.get('content-type'), MediaType.OctetStream);
108
118
  const decoder = this.mediaTypeDecoders.find(contentType);
109
119
  const result = await decoder.decode(response, responseType);
110
- return {
111
- result,
112
- response,
113
- };
120
+ return new OperationResponse(result, response);
114
121
  }
115
122
  catch (error) {
116
123
  throw await SundayError.fromResponse(errorToMessage(error, 'Response Decoding Failed'), response);
117
124
  }
118
125
  }
119
126
  async result(request, responseType) {
120
- const response = await this.response(request, !!responseType);
127
+ const response = await this.transportResponse(request, !!responseType);
121
128
  if (!responseType) {
122
129
  return undefined;
123
130
  }
@@ -134,7 +141,7 @@ export class FetchRequestFactory {
134
141
  //
135
142
  const adapter = async (url, requestInit) => {
136
143
  const eventSourceSpec = { ...requestSpec, pathTemplate: url };
137
- const request = await this.request(eventSourceSpec);
144
+ const request = await this.transportRequest(eventSourceSpec);
138
145
  return new Request(request, {
139
146
  ...requestInit,
140
147
  headers: mergeHeaders(request.headers, requestInit.headers),
@@ -313,4 +320,4 @@ function composeAbortSignals(first, second) {
313
320
  second.addEventListener('abort', abort, { once: true });
314
321
  return controller.signal;
315
322
  }
316
- //# sourceMappingURL=fetch-request-factory.js.map
323
+ //# 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,9 @@ 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 './streaming-body.js';
24
+ export * from './operation-response.js';
25
+ export * from './operation.js';
24
26
  export * from './request-adapters.js';
25
27
  export * from './util/errors.js';
26
28
  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,9 @@ 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 './streaming-body.js';
37
+ export * from './operation-response.js';
38
+ export * from './operation.js';
37
39
  export * from './request-adapters.js';
38
40
  // Select exports from util
39
41
  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,qBAAqB,CAAC;AACpC,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":"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,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC;IAC5C,eAAe;IACf,8BAA8B;IAC9B,8BAA8B;IAC9B,+BAA+B;IAC/B,OAAO;IACP,eAAe;IACf,YAAY;IACZ,kBAAkB;IAClB,MAAM;IACN,mBAAmB;IACnB,SAAS;IACT,MAAM;CACP,CAAC,CAAC;AAQH,0DAA0D;AAC1D,MAAM,OAAO,eAAe;IACjB,OAAO,CAAiC;IAEjD,YAAY,OAAuC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,iEAAiE;IACjE,MAAM,CAAC,IAAI,CAAC,OAAgB;QAC1B,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC;QAElD,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,OAAO;YACT,CAAC;YAED,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;aAClE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,oEAAoE;IACpE,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC;IAC9F,CAAC;IAED,0CAA0C;IAC1C,IAAI,WAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC;YACH,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAa;IACnD,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,GAAG,KAAK,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,eAAe,GAAG,IAAI,CAAC;YACvB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,eAAe,GAAG,KAAK,CAAC;YACxB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,8DAA8D;AAC9D,MAAM,OAAO,iBAAiB;IACnB,MAAM,CAAI;IACV,iBAAiB,CAAW;IAC5B,MAAM,CAAS;IACf,OAAO,CAAkB;IAElC,YAAY,MAAS,EAAE,iBAA2B;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,4DAA4D;IAC5D,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,iEAAiE;IACjE,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,0CAA0C;IAC1C,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,62 @@
1
+ import { Transport, RequestSpec } from './transport.js';
2
+ import { OperationResponse } from './operation-response.js';
3
+ import { SchemaLike } from './schema-runtime.js';
4
+ import { StreamingBody } from './streaming-body.js';
5
+ import { type ProblemMatcher } from './util/nullify.js';
6
+ /** Extracts the native request type from a transport. */
7
+ export type TransportRequest<Factory> = Factory extends Transport<infer NativeRequest> ? NativeRequest : never;
8
+ /** Options used when converting an operation into a native request. */
9
+ export interface BuildRequestOptions {
10
+ readonly signal?: AbortSignal;
11
+ }
12
+ /** Options used when executing an operation. */
13
+ export interface ExecuteOptions {
14
+ readonly signal?: AbortSignal;
15
+ }
16
+ /** Describes the generated HTTP request and optional response decoder for an operation. */
17
+ export interface OperationSpec<RequestBody, ResponseBody> {
18
+ readonly request: RequestSpec<RequestBody>;
19
+ readonly responseType?: SchemaLike<ResponseBody>;
20
+ }
21
+ /** Describes an operation with no decoded response body. */
22
+ export interface VoidOperationSpec<RequestBody = void> extends OperationSpec<RequestBody, void> {
23
+ readonly responseType?: undefined;
24
+ }
25
+ /** Describes an operation with a decoded response body. */
26
+ export interface TypedOperationSpec<RequestBody, ResponseBody> extends OperationSpec<RequestBody, ResponseBody> {
27
+ readonly responseType: SchemaLike<ResponseBody>;
28
+ }
29
+ /** Describes problems that should be translated into a null response value. */
30
+ export interface NullifySpec {
31
+ readonly statuses: readonly number[];
32
+ readonly problemTypes: readonly ProblemMatcher[];
33
+ }
34
+ /** A generated operation that can be executed or converted into a native transport request. */
35
+ export interface Operation<RequestBody, ResponseBody, Factory extends Transport<unknown> = Transport> {
36
+ readonly spec: OperationSpec<RequestBody, ResponseBody>;
37
+ execute(options?: ExecuteOptions): Promise<ResponseBody>;
38
+ response(options?: ExecuteOptions): Promise<OperationResponse<ResponseBody>>;
39
+ transportRequest(options?: BuildRequestOptions): Promise<TransportRequest<Factory>>;
40
+ transportResponse(options?: ExecuteOptions): Promise<Response>;
41
+ }
42
+ /** A generated streaming upload operation. */
43
+ export interface StreamingOperation<ResponseBody, Factory extends Transport<unknown> = Transport> extends Operation<StreamingBody, ResponseBody, Factory> {
44
+ }
45
+ /** A generated operation that can execute select problems as null responses. */
46
+ export interface NullableOperation<RequestBody, ResponseBody, Factory extends Transport<unknown> = Transport> extends Operation<RequestBody, ResponseBody, Factory> {
47
+ readonly nullify: NullifySpec;
48
+ executeOrNull(options?: ExecuteOptions): Promise<ResponseBody | null>;
49
+ responseOrNull(options?: ExecuteOptions): Promise<OperationResponse<ResponseBody> | null>;
50
+ }
51
+ /** Creates an operation with a decoded response body. */
52
+ export declare function createOperation<RequestBody = void, ResponseBody = void, Factory extends Transport<unknown> = Transport>(transport: Factory, spec: TypedOperationSpec<RequestBody, ResponseBody>): Operation<RequestBody, ResponseBody, Factory>;
53
+ /** Creates an operation with no decoded response body. */
54
+ export declare function createOperation<RequestBody = void, Factory extends Transport<unknown> = Transport>(transport: Factory, spec: VoidOperationSpec<RequestBody>): Operation<RequestBody, void, Factory>;
55
+ /** Creates a streaming upload operation with a decoded response body. */
56
+ export declare function createStreamingOperation<ResponseBody = void, Factory extends Transport<unknown> = Transport>(transport: Factory, spec: TypedOperationSpec<StreamingBody, ResponseBody>): StreamingOperation<ResponseBody, Factory>;
57
+ /** Creates a streaming upload operation with no decoded response body. */
58
+ export declare function createStreamingOperation<Factory extends Transport<unknown> = Transport>(transport: Factory, spec: VoidOperationSpec<StreamingBody>): StreamingOperation<void, Factory>;
59
+ /** Creates a nullable operation with a decoded response body. */
60
+ 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>;
61
+ /** Creates a nullable operation with no decoded response body. */
62
+ 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,90 @@
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 createStreamingOperation(transport, spec) {
19
+ return new TransportOperation(transport, spec);
20
+ }
21
+ export function createNullableOperation(transport, spec, nullify) {
22
+ return new TransportNullableOperation(transport, spec, nullify);
23
+ }
24
+ class TransportOperation {
25
+ transport;
26
+ spec;
27
+ constructor(transport, spec) {
28
+ this.transport = transport;
29
+ this.spec = spec;
30
+ }
31
+ async execute(options) {
32
+ const request = requestWithOptions(this.spec.request, options);
33
+ if (this.spec.responseType) {
34
+ return this.transport.result(request, this.spec.responseType);
35
+ }
36
+ return this.transport.result(request);
37
+ }
38
+ async response(options) {
39
+ const request = requestWithOptions(this.spec.request, options);
40
+ if (this.spec.responseType) {
41
+ return this.transport.response(request, this.spec.responseType);
42
+ }
43
+ return this.transport.response(request);
44
+ }
45
+ async transportRequest(options) {
46
+ return this.transport.transportRequest(requestWithOptions(this.spec.request, options));
47
+ }
48
+ async transportResponse(options) {
49
+ const request = await this.transportRequest(options);
50
+ return this.transport.transportResponse(request);
51
+ }
52
+ }
53
+ class TransportNullableOperation {
54
+ spec;
55
+ nullify;
56
+ operation;
57
+ constructor(transport, spec, nullify) {
58
+ this.spec = spec;
59
+ this.nullify = nullify;
60
+ this.operation = new TransportOperation(transport, spec);
61
+ }
62
+ async execute(options) {
63
+ return this.operation.execute(options);
64
+ }
65
+ async executeOrNull(options) {
66
+ return nullifyProblem(this.operation.execute(options), [...this.nullify.statuses], [...this.nullify.problemTypes]);
67
+ }
68
+ async responseOrNull(options) {
69
+ return nullifyProblem(this.operation.response(options), [...this.nullify.statuses], [...this.nullify.problemTypes]);
70
+ }
71
+ async response(options) {
72
+ return this.operation.response(options);
73
+ }
74
+ async transportRequest(options) {
75
+ return this.operation.transportRequest(options);
76
+ }
77
+ async transportResponse(options) {
78
+ return this.operation.transportResponse(options);
79
+ }
80
+ }
81
+ function requestWithOptions(request, options) {
82
+ if (options?.signal === undefined) {
83
+ return request;
84
+ }
85
+ return {
86
+ ...request,
87
+ signal: options.signal,
88
+ };
89
+ }
90
+ //# 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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"}
@@ -0,0 +1,21 @@
1
+ /** Binary chunk values supported by streaming request bodies. */
2
+ export type StreamingBodyChunk = ArrayBuffer | Uint8Array;
3
+ /** Creates a fresh async byte sequence for a streaming request body. */
4
+ export type StreamingBodyBytesFactory = () => AsyncIterable<StreamingBodyChunk>;
5
+ /** Creates a fresh web readable stream for a streaming request body. */
6
+ export type StreamingBodyStreamFactory = () => ReadableStream<Uint8Array>;
7
+ /** A lazily-created request body for streaming uploads. */
8
+ export declare class StreamingBody {
9
+ private readonly createBody;
10
+ private constructor();
11
+ /** Creates a streaming body from a reusable web platform `Blob`. */
12
+ static blob(blob: Blob): StreamingBody;
13
+ /** Creates a streaming body from a fresh web `ReadableStream` factory. */
14
+ static stream(factory: StreamingBodyStreamFactory): StreamingBody;
15
+ /** Creates a streaming body from a fresh async byte iterable factory. */
16
+ static bytes(factory: StreamingBodyBytesFactory): StreamingBody;
17
+ /** Creates the web platform body value consumed by `fetch`. */
18
+ toBodyInit(): BodyInit;
19
+ }
20
+ /** Returns true when a value is a Sunday streaming request body. */
21
+ export declare function isStreamingBody(value: unknown): value is StreamingBody;
@@ -0,0 +1,65 @@
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
+ /** A lazily-created request body for streaming uploads. */
15
+ export class StreamingBody {
16
+ createBody;
17
+ constructor(createBody) {
18
+ this.createBody = createBody;
19
+ }
20
+ /** Creates a streaming body from a reusable web platform `Blob`. */
21
+ static blob(blob) {
22
+ return new StreamingBody(() => blob);
23
+ }
24
+ /** Creates a streaming body from a fresh web `ReadableStream` factory. */
25
+ static stream(factory) {
26
+ return new StreamingBody(factory);
27
+ }
28
+ /** Creates a streaming body from a fresh async byte iterable factory. */
29
+ static bytes(factory) {
30
+ return new StreamingBody(() => asyncBytesToReadableStream(factory()));
31
+ }
32
+ /** Creates the web platform body value consumed by `fetch`. */
33
+ toBodyInit() {
34
+ return this.createBody();
35
+ }
36
+ }
37
+ /** Returns true when a value is a Sunday streaming request body. */
38
+ export function isStreamingBody(value) {
39
+ return value instanceof StreamingBody;
40
+ }
41
+ function asyncBytesToReadableStream(bytes) {
42
+ const iterator = bytes[Symbol.asyncIterator]();
43
+ return new ReadableStream({
44
+ async pull(controller) {
45
+ try {
46
+ const next = await iterator.next();
47
+ if (next.done === true) {
48
+ controller.close();
49
+ return;
50
+ }
51
+ controller.enqueue(toUint8Array(next.value));
52
+ }
53
+ catch (error) {
54
+ controller.error(error);
55
+ }
56
+ },
57
+ async cancel(reason) {
58
+ await iterator.return?.(reason);
59
+ },
60
+ });
61
+ }
62
+ function toUint8Array(chunk) {
63
+ return chunk instanceof Uint8Array ? chunk : new Uint8Array(chunk);
64
+ }
65
+ //# sourceMappingURL=streaming-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-body.js","sourceRoot":"","sources":["../src/streaming-body.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;AAWjC,2DAA2D;AAC3D,MAAM,OAAO,aAAa;IAEL;IADnB,YACmB,UAA0B;QAA1B,eAAU,GAAV,UAAU,CAAgB;IAE7C,CAAC;IAED,oEAAoE;IACpE,MAAM,CAAC,IAAI,CAAC,IAAU;QACpB,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,MAAM,CAAC,OAAmC;QAC/C,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,KAAK,CAAC,OAAkC;QAC7C,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,+DAA+D;IAC/D,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,aAAa,CAAC;AACxC,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAwC;IAExC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAE/C,OAAO,IAAI,cAAc,CAAa;QACpC,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBACD,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACb,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM;YACjB,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC"}
@@ -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.2",
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"}