@venizia/ignis-connectors 0.2.1-0 → 0.2.1-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.
@@ -8,6 +8,12 @@ export interface IAuthToken {
8
8
  export type TAuthTokenResolver = () => IAuthToken | undefined;
9
9
  /** Not `Record` alone: header names are case-insensitive, and an object merge appends two spellings. */
10
10
  export type THttpHeaders = Headers | Array<[string, string]> | Record<string, string>;
11
+ /**
12
+ * A request body. A plain object or array goes out as JSON; a string, `Blob`, `FormData`,
13
+ * `URLSearchParams`, `ArrayBuffer` or typed array goes out as it is. Never a stream: the 401 retry
14
+ * sends the same body twice.
15
+ */
16
+ export type THttpBody = string | object;
11
17
  export interface IHttpDataSourceSettings {
12
18
  baseUrl: string;
13
19
  /** Sent on every request. `x-request-count` is refused - the connector owns it. */
@@ -28,6 +34,11 @@ export interface IHttpReadResult<R> {
28
34
  skip?: number;
29
35
  dataLength: number;
30
36
  }
37
+ /** What a write answers: the rows the server returned, and its `x-response-count`. */
38
+ export interface IHttpWriteResult<R> {
39
+ data: R;
40
+ count: number;
41
+ }
31
42
  export type THttpQuery<E extends object> = {
32
43
  filter?: TFilter<E>;
33
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/http/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,GAAG,SAAS,CAAC;AAE9D,wGAAwG;AACxG,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACtF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAEhB,mFAAmF;IACnF,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,qCAAqC;IACrC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IAEvC,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACnD;AAED,wGAAwG;AACxG,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/http/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,GAAG,SAAS,CAAC;AAE9D,wGAAwG;AACxG,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAEhB,mFAAmF;IACnF,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,qCAAqC;IACrC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IAEvC,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACnD;AAED,wGAAwG;AACxG,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { AbstractDataSource } from '@venizia/ignis-kernel/repository';
2
2
  import { NodeFetchNetworkRequest } from '@venizia/ignis-helpers/core';
3
- import type { IAuthToken, IHttpDataSourceSettings, IHttpReadResult } from './common/types';
3
+ import type { IAuthToken, IHttpDataSourceSettings, IHttpReadResult, IHttpWriteResult, THttpBody, THttpHeaders } from './common/types';
4
4
  /** Reads an IGNIS REST server through the repository contract. Targets IGNIS, not any REST API. */
5
5
  export declare class HttpDataSource extends AbstractDataSource<IHttpDataSourceSettings> {
6
6
  name: string;
@@ -21,22 +21,51 @@ export declare class HttpDataSource extends AbstractDataSource<IHttpDataSourceSe
21
21
  protected resolveAuthToken(): IAuthToken | undefined;
22
22
  protected buildHeaders(opts: {
23
23
  token?: IAuthToken;
24
+ requestHeaders?: Array<[string, string]>;
25
+ isJsonBody?: boolean;
24
26
  }): Headers;
25
27
  buildUrl(opts: {
26
28
  paths: Array<string>;
27
29
  query?: Record<string, unknown>;
28
30
  }): string;
29
- /** The raw `Response` - for what is not rows, like an export. Auth and the 401 retry apply. */
31
+ /**
32
+ * The raw `Response`, on any method - for what the repository verbs do not cover, like an export
33
+ * or a PUT to a hand-written route. Auth and the 401 retry apply; the retry resends the same body.
34
+ */
30
35
  request(opts: {
31
36
  paths: Array<string>;
32
37
  query?: Record<string, unknown>;
33
38
  method?: string;
39
+ body?: THttpBody;
40
+ headers?: THttpHeaders;
34
41
  }): Promise<Response>;
35
- /** Rows plus the total from `Content-Range`, reported absent when the header is. */
42
+ /** A failed response as an error carrying the server's own status, message and message code. */
43
+ protected toResponseError(opts: {
44
+ response: Response;
45
+ url: string;
46
+ verb: string;
47
+ }): Promise<import("@venizia/ignis-helpers/core").ApplicationError>;
48
+ /**
49
+ * Rows plus the total from `Content-Range`, reported absent when the header is. A read is a GET
50
+ * unless told otherwise: a filter too long for a URL goes as the body of a POST read route.
51
+ */
36
52
  read<R>(opts: {
37
53
  paths: Array<string>;
38
54
  query?: Record<string, unknown>;
39
55
  shape?: 'list' | 'one';
56
+ method?: string;
57
+ body?: THttpBody;
40
58
  }): Promise<IHttpReadResult<R>>;
59
+ /**
60
+ * A write, and what it answered: the body as the rows, the count from `x-response-count`. The
61
+ * connector asks for bare rows, so an IGNIS write answers the row or the rows, never the envelope.
62
+ */
63
+ write<R>(opts: {
64
+ paths: Array<string>;
65
+ query?: Record<string, unknown>;
66
+ method: string;
67
+ body?: THttpBody;
68
+ headers?: THttpHeaders;
69
+ }): Promise<IHttpWriteResult<R>>;
41
70
  }
42
71
  //# sourceMappingURL=datasource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAqGxB,mGAAmG;AACnG,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,uBAAuB,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAS,KAAK,CAAC;IAE9B,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC3C,uFAAuF;IACvF,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,sGAAsG;IACtG,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAEzB,IAAI,EAAE,uBAAuB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAuBvD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvB,eAAe;;;IAIxB,SAAS,CAAC,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAIpD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO;IAqB7D,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,MAAM;IA2BjF,+FAA+F;IACzF,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuBrB,oFAAoF;IAC9E,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KACxB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAwBhC"}
1
+ {"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACb,MAAM,gBAAgB,CAAC;AAmMxB,mGAAmG;AACnG,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,uBAAuB,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAS,KAAK,CAAC;IAE9B,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC3C,uFAAuF;IACvF,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,sGAAsG;IACtG,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAEzB,IAAI,EAAE,uBAAuB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAkBvD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvB,eAAe;;;IAIxB,SAAS,CAAC,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAIpD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAC3B,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACzC,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO;IA8BX,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,MAAM;IA2BjF;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,YAAY,CAAC;KACxB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgCrB,gGAAgG;cAChF,eAAe,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAgBvF;;;OAGG;IACG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAsB/B;;;OAGG;IACG,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE;QACnB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,YAAY,CAAC;KACxB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAyBjC"}
@@ -80,6 +80,74 @@ const toHeaderEntries = (opts) => {
80
80
  }
81
81
  return [...merged.entries()];
82
82
  };
83
+ /**
84
+ * The body as `fetch` takes it. Anything `fetch` already sends as a body passes through untouched,
85
+ * so `FormData` keeps the multipart boundary its own content-type carries; any other object is JSON.
86
+ * Serialised ONCE, so the 401 retry sends the same bytes.
87
+ */
88
+ const toRequestBody = (opts) => {
89
+ const { body } = opts;
90
+ if (body === undefined) {
91
+ return { payload: undefined, isJson: false };
92
+ }
93
+ const isSentAsIs = typeof body === 'string' ||
94
+ body instanceof Blob ||
95
+ body instanceof FormData ||
96
+ body instanceof URLSearchParams ||
97
+ body instanceof ArrayBuffer;
98
+ if (isSentAsIs) {
99
+ return { payload: body, isJson: false };
100
+ }
101
+ // A typed array may sit on a SharedArrayBuffer, which `fetch` refuses; a Blob copy never does.
102
+ if (ArrayBuffer.isView(body)) {
103
+ return {
104
+ payload: new Blob([new Uint8Array(body.buffer, body.byteOffset, body.byteLength).slice()]),
105
+ isJson: false,
106
+ };
107
+ }
108
+ return { payload: JSON.stringify(body), isJson: true };
109
+ };
110
+ /**
111
+ * The IGNIS error envelope - `{ message, normalized: { code, args }, requestId }` - read off a failed
112
+ * response. A body that is not that envelope yields nothing, and the status alone still describes it.
113
+ * `args` fill a translated message's placeholders; only a plain object is taken.
114
+ */
115
+ const readServerError = async (opts) => {
116
+ const text = await opts.response.text().catch(() => '');
117
+ let parsed;
118
+ try {
119
+ parsed = text ? JSON.parse(text) : undefined;
120
+ }
121
+ catch {
122
+ return {};
123
+ }
124
+ if (!parsed || typeof parsed !== 'object') {
125
+ return {};
126
+ }
127
+ const message = Reflect.get(parsed, 'message');
128
+ const requestId = Reflect.get(parsed, 'requestId');
129
+ const normalized = Reflect.get(parsed, 'normalized');
130
+ const isNormalizedObject = !!normalized && typeof normalized === 'object';
131
+ const code = isNormalizedObject ? Reflect.get(normalized, 'code') : undefined;
132
+ const args = isNormalizedObject ? Reflect.get(normalized, 'args') : undefined;
133
+ const isArgsRecord = !!args && typeof args === 'object' && Object.getPrototypeOf(args) === Object.prototype;
134
+ return {
135
+ message: typeof message === 'string' ? message : undefined,
136
+ code: typeof code === 'string' ? code : undefined,
137
+ args: isArgsRecord ? { ...args } : undefined,
138
+ requestId: typeof requestId === 'string' ? requestId : undefined,
139
+ };
140
+ };
141
+ /** The connector always sends `x-request-count: false`; a caller header carrying it would contradict that. */
142
+ const assertNoRequestCountHeader = (opts) => {
143
+ const { entries, name } = opts;
144
+ if (entries.some(([headerName]) => headerName === common_1.HTTP.Headers.REQUEST_COUNT_DATA)) {
145
+ throw (0, core_2.getError)({
146
+ statusCode: common_1.HTTP.ResultCodes.RS_5.InternalServerError,
147
+ message: `[${name}] ${common_1.HTTP.Headers.REQUEST_COUNT_DATA} is owned by HttpDataSource and always sent as false: rows come back bare, the total in Content-Range.`,
148
+ });
149
+ }
150
+ };
83
151
  /** Reads an IGNIS REST server through the repository contract. Targets IGNIS, not any REST API. */
84
152
  class HttpDataSource extends repository_1.AbstractDataSource {
85
153
  constructor(opts) {
@@ -87,12 +155,7 @@ class HttpDataSource extends repository_1.AbstractDataSource {
87
155
  this.schema = {};
88
156
  const { name = 'http', ...settings } = opts;
89
157
  const configured = toHeaderEntries({ headers: settings.headers });
90
- if (configured.some(([headerName]) => headerName === common_1.HTTP.Headers.REQUEST_COUNT_DATA)) {
91
- throw (0, core_2.getError)({
92
- statusCode: common_1.HTTP.ResultCodes.RS_5.InternalServerError,
93
- message: `[${name}] ${common_1.HTTP.Headers.REQUEST_COUNT_DATA} is owned by HttpDataSource and always sent as false: rows come back bare, the total in Content-Range.`,
94
- });
95
- }
158
+ assertNoRequestCountHeader({ entries: configured, name });
96
159
  this.configuredHeaders = configured;
97
160
  this.name = name;
98
161
  this.settings = settings;
@@ -110,8 +173,15 @@ class HttpDataSource extends repository_1.AbstractDataSource {
110
173
  return this.settings.authToken ?? this.settings.authTokenResolver?.();
111
174
  }
112
175
  buildHeaders(opts) {
113
- const { token } = opts;
176
+ const { token, requestHeaders, isJsonBody } = opts;
114
177
  const headers = new Headers(this.configuredHeaders);
178
+ // A request's own headers win over the configured ones; the connector's below win over both.
179
+ for (const [name, value] of requestHeaders ?? []) {
180
+ headers.set(name, value);
181
+ }
182
+ if (isJsonBody && !headers.has(common_1.HTTP.Headers.CONTENT_TYPE)) {
183
+ headers.set(common_1.HTTP.Headers.CONTENT_TYPE, 'application/json');
184
+ }
115
185
  // Set last: under the envelope a record read answers `{ count, data }`.
116
186
  headers.set(common_1.HTTP.Headers.REQUEST_COUNT_DATA, 'false');
117
187
  if (!token) {
@@ -145,13 +215,24 @@ class HttpDataSource extends repository_1.AbstractDataSource {
145
215
  }
146
216
  return url.toString();
147
217
  }
148
- /** The raw `Response` - for what is not rows, like an export. Auth and the 401 retry apply. */
218
+ /**
219
+ * The raw `Response`, on any method - for what the repository verbs do not cover, like an export
220
+ * or a PUT to a hand-written route. Auth and the 401 retry apply; the retry resends the same body.
221
+ */
149
222
  async request(opts) {
223
+ const requestHeaders = toHeaderEntries({ headers: opts.headers });
224
+ assertNoRequestCountHeader({ entries: requestHeaders, name: this.name });
150
225
  const url = this.buildUrl(opts);
226
+ const { payload, isJson } = toRequestBody({ body: opts.body });
151
227
  const send = () => this.network.getNetworkService().send({
152
228
  url,
153
229
  method: (opts.method ?? common_1.HTTP.Methods.GET),
154
- headers: this.buildHeaders({ token: this.resolveAuthToken() }),
230
+ body: payload,
231
+ headers: this.buildHeaders({
232
+ token: this.resolveAuthToken(),
233
+ requestHeaders,
234
+ isJsonBody: isJson,
235
+ }),
155
236
  });
156
237
  let response = await send();
157
238
  if (response.status === common_1.HTTP.ResultCodes.RS_4.Unauthorized && this.settings.onUnauthorized) {
@@ -162,14 +243,29 @@ class HttpDataSource extends repository_1.AbstractDataSource {
162
243
  }
163
244
  return response;
164
245
  }
165
- /** Rows plus the total from `Content-Range`, reported absent when the header is. */
246
+ /** A failed response as an error carrying the server's own status, message and message code. */
247
+ async toResponseError(opts) {
248
+ const { response, url, verb } = opts;
249
+ const server = await readServerError({ response });
250
+ const described = describeUrl({ url, status: response.status });
251
+ return (0, core_2.getError)({
252
+ statusCode: response.status,
253
+ message: server.message
254
+ ? `[${this.name}][${verb}] ${response.status} | ${described} | ${server.message}`
255
+ : `[${this.name}][${verb}] ${response.status} | ${described}`,
256
+ messageCode: server.code,
257
+ messageArgs: server.args,
258
+ extra: server.requestId ? { requestId: server.requestId } : undefined,
259
+ });
260
+ }
261
+ /**
262
+ * Rows plus the total from `Content-Range`, reported absent when the header is. A read is a GET
263
+ * unless told otherwise: a filter too long for a URL goes as the body of a POST read route.
264
+ */
166
265
  async read(opts) {
167
266
  const response = await this.request(opts);
168
267
  if (!response.ok) {
169
- throw (0, core_2.getError)({
170
- statusCode: response.status,
171
- message: `[${this.name}][read] ${response.status} | ${describeUrl({ url: this.buildUrl(opts), status: response.status })}`,
172
- });
268
+ throw await this.toResponseError({ response, url: this.buildUrl(opts), verb: 'read' });
173
269
  }
174
270
  const body = await response.json();
175
271
  const contentRange = response.headers.get(common_1.HTTP.Headers.CONTENT_RANGE) ?? undefined;
@@ -184,6 +280,31 @@ class HttpDataSource extends repository_1.AbstractDataSource {
184
280
  dataLength: Array.isArray(data) ? data.length : 1,
185
281
  };
186
282
  }
283
+ /**
284
+ * A write, and what it answered: the body as the rows, the count from `x-response-count`. The
285
+ * connector asks for bare rows, so an IGNIS write answers the row or the rows, never the envelope.
286
+ */
287
+ async write(opts) {
288
+ const response = await this.request(opts);
289
+ if (!response.ok) {
290
+ throw await this.toResponseError({ response, url: this.buildUrl(opts), verb: 'write' });
291
+ }
292
+ // A 204, or a route that answers nothing, has no body to parse.
293
+ const text = await response.text();
294
+ const data = text ? JSON.parse(text) : null;
295
+ const countHeader = response.headers.get(common_1.HTTP.Headers.RESPONSE_COUNT_DATA);
296
+ const counted = countHeader === null ? Number.NaN : Number(countHeader);
297
+ return {
298
+ data,
299
+ count: Number.isFinite(counted)
300
+ ? counted
301
+ : Array.isArray(data)
302
+ ? data.length
303
+ : data === null
304
+ ? 0
305
+ : 1,
306
+ };
307
+ }
187
308
  }
188
309
  exports.HttpDataSource = HttpDataSource;
189
310
  //# sourceMappingURL=datasource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { AbstractEntity } from '@venizia/ignis-kernel/repository';
2
- import type { IReadableRepository, TCount, TDataWithRange, TFilter, TSchemaType, TWhere } from '@venizia/ignis-kernel/repository';
3
1
  import type { AnyType } from '@venizia/ignis-helpers/common';
2
+ import type { IDeletableRepository, IReadableRepository, IUpdatableRepository, TCount, TDataWithRange, TFilter, TSchemaType, TWhere } from '@venizia/ignis-kernel/repository';
3
+ import { AbstractEntity } from '@venizia/ignis-kernel/repository';
4
+ import type { IHttpWriteResult } from './common/types';
4
5
  import type { HttpDataSource } from './datasource';
5
6
  /** A remote resource has a name but no local schema. */
6
7
  export declare class HttpResourceEntity extends AbstractEntity {
@@ -8,8 +9,12 @@ export declare class HttpResourceEntity extends AbstractEntity {
8
9
  type: TSchemaType;
9
10
  }): T;
10
11
  }
11
- /** Read access to one remote resource, in the `@venizia/ignis-filter` vocabulary. */
12
- export declare class HttpRepository<E extends object = AnyType> implements IReadableRepository<E, {}> {
12
+ /**
13
+ * One remote resource, read and written through the IGNIS CRUD routes, in the `@venizia/ignis-filter`
14
+ * vocabulary. `P` is what a write sends - a partial row by default, since the server fills ids and
15
+ * defaults. There is no `createAll`: the IGNIS REST contract has no bulk-create route.
16
+ */
17
+ export declare class HttpRepository<E extends object = AnyType, P extends object = Partial<E>> implements IReadableRepository<E, {}>, IUpdatableRepository<E, P, {}>, IDeletableRepository<E, {}> {
13
18
  dataSource: HttpDataSource;
14
19
  entity: AbstractEntity;
15
20
  protected resource: string;
@@ -50,10 +55,175 @@ export declare class HttpRepository<E extends object = AnyType> implements IRead
50
55
  filter?: TFilter<E>;
51
56
  options?: {};
52
57
  }): Promise<R | null>;
58
+ /**
59
+ * A list read: `GET /<resource>?filter=...` while the URL fits, else `POST /<resource>/find` with
60
+ * the filter in the body - the route every generated IGNIS controller answers with the same rows
61
+ * and the same Content-Range. Below the limit the GET stays, so a server without the POST route
62
+ * still answers every read it answered before.
63
+ */
64
+ protected readList<R>(opts: {
65
+ filter: TFilter<E>;
66
+ }): Promise<import("./common/types").IHttpReadResult<R>>;
53
67
  findById<R = E>(opts: {
54
68
  id: string | number;
55
69
  filter?: TFilter<E>;
56
70
  options?: {};
57
71
  }): Promise<R | null>;
72
+ /** `<resource>/<id>`, the id encoded: an id carrying `/` or `?` would otherwise name another route. */
73
+ protected getIdPaths(opts: {
74
+ id: string | number;
75
+ }): Array<string>;
76
+ /** The IGNIS bulk routes answer an empty `where` with a 400; refused here before a request is spent. */
77
+ protected assertBulkWhere(opts: {
78
+ method: string;
79
+ where?: TWhere<E>;
80
+ }): TWhere<E>;
81
+ /** The server always answers the rows; `shouldReturn: false` drops them here, as a database repository would not fetch them. */
82
+ protected toWriteResult<R>(opts: {
83
+ result: IHttpWriteResult<R>;
84
+ options?: {
85
+ shouldReturn?: boolean;
86
+ };
87
+ }): TCount & {
88
+ data: R | null;
89
+ };
90
+ /** POST `/<resource>`. */
91
+ create<R = E>(opts: {
92
+ data: P;
93
+ options?: {
94
+ shouldReturn?: true;
95
+ };
96
+ }): Promise<TCount & {
97
+ data: R;
98
+ }>;
99
+ updateById(opts: {
100
+ id: string | number;
101
+ data: Partial<P>;
102
+ options: {
103
+ shouldReturn: false;
104
+ };
105
+ }): Promise<TCount & {
106
+ data: undefined | null;
107
+ }>;
108
+ updateById<R = E>(opts: {
109
+ id: string | number;
110
+ data: Partial<P>;
111
+ options?: {
112
+ shouldReturn?: true;
113
+ };
114
+ }): Promise<TCount & {
115
+ data: R;
116
+ }>;
117
+ updateAll(opts: {
118
+ data: Partial<P>;
119
+ where: TWhere<E>;
120
+ options: {
121
+ shouldReturn: false;
122
+ force?: boolean;
123
+ };
124
+ }): Promise<TCount & {
125
+ data: undefined | null;
126
+ }>;
127
+ updateAll<R = E>(opts: {
128
+ data: Partial<P>;
129
+ where: TWhere<E>;
130
+ options?: {
131
+ shouldReturn?: true;
132
+ force?: boolean;
133
+ };
134
+ }): Promise<TCount & {
135
+ data: Array<R> | null;
136
+ }>;
137
+ updateBy(opts: {
138
+ data: Partial<P>;
139
+ where: TWhere<E>;
140
+ options: {
141
+ shouldReturn: false;
142
+ force?: boolean;
143
+ };
144
+ }): Promise<TCount & {
145
+ data: undefined | null;
146
+ }>;
147
+ updateBy<R = E>(opts: {
148
+ data: Partial<P>;
149
+ where: TWhere<E>;
150
+ options?: {
151
+ shouldReturn?: true;
152
+ force?: boolean;
153
+ };
154
+ }): Promise<TCount & {
155
+ data: Array<R> | null;
156
+ }>;
157
+ protected patchWhere(opts: {
158
+ method: string;
159
+ data: Partial<P>;
160
+ where: TWhere<E>;
161
+ options?: {
162
+ shouldReturn?: boolean;
163
+ };
164
+ }): Promise<TCount & {
165
+ data: AnyType;
166
+ }>;
167
+ deleteById(opts: {
168
+ id: string | number;
169
+ options: {
170
+ shouldReturn: false;
171
+ };
172
+ }): Promise<TCount & {
173
+ data: undefined | null;
174
+ }>;
175
+ deleteById<R = E>(opts: {
176
+ id: string | number;
177
+ options?: {
178
+ shouldReturn?: true;
179
+ };
180
+ }): Promise<TCount & {
181
+ data: R;
182
+ }>;
183
+ deleteAll(opts: {
184
+ where?: TWhere<E>;
185
+ options: {
186
+ shouldReturn: false;
187
+ force?: boolean;
188
+ };
189
+ }): Promise<TCount & {
190
+ data: undefined | null;
191
+ }>;
192
+ deleteAll<R = E>(opts: {
193
+ where?: TWhere<E>;
194
+ options?: {
195
+ shouldReturn?: true;
196
+ force?: boolean;
197
+ };
198
+ }): Promise<TCount & {
199
+ data: Array<R> | null;
200
+ }>;
201
+ deleteBy(opts: {
202
+ where?: TWhere<E>;
203
+ options: {
204
+ shouldReturn: false;
205
+ force?: boolean;
206
+ };
207
+ }): Promise<TCount & {
208
+ data: undefined | null;
209
+ }>;
210
+ deleteBy<R = E>(opts: {
211
+ where?: TWhere<E>;
212
+ options?: {
213
+ shouldReturn?: true;
214
+ force?: boolean;
215
+ };
216
+ }): Promise<TCount & {
217
+ data: Array<R> | null;
218
+ }>;
219
+ protected deleteWhere(opts: {
220
+ method: string;
221
+ where?: TWhere<E>;
222
+ options?: {
223
+ shouldReturn?: boolean;
224
+ };
225
+ }): Promise<TCount & {
226
+ data: AnyType;
227
+ }>;
58
228
  }
59
229
  //# sourceMappingURL=repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/http/repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkB,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EACV,mBAAmB,EACnB,MAAM,EACN,cAAc,EACd,OAAO,EACP,WAAW,EACX,MAAM,EACP,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,wDAAwD;AACxD,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,CAAC;CAGxD;AAED,qFAAqF;AACrF,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,CAAE,YAAW,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC;IAC3F,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,cAAc,CAAC;IAEvB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAOtF,SAAS,IAAI,cAAc;IAI3B,0FAA0F;IAC1F,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE;QACnC,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB;IAYD,iGAAiG;IAC3F,KAAK,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmChE,UAAU,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAStE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QACtB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,EAAE;YAAE,gBAAgB,EAAE,IAAI,CAAA;SAAE,CAAC;KACrC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAoC3E,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAK9E,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,EAAE,EAAE,CAAC;KACd,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;CAStB"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/http/repository.ts"],"names":[],"mappings":"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"}