@helia/delegated-routing-v1-http-api-client 5.0.0 → 5.1.0

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 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,oBAAoB,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AAa3G,OAAO,KAAK,EAAE,+BAA+B,EAAE,mCAAmC,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACxK,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAWvC,qBAAa,sCAAuC,YAAW,+BAA+B;;IAC5F,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAK;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC;;OAEG;gBACU,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,GAAE,mCAAwC;IAmB9E,IAAI,CAAC,oBAAoB,CAAC,IAAK,cAAc,CAE5C;IAED,IAAI,CAAC,iBAAiB,CAAC,IAAK,WAAW,CAEtC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAgBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAUpB,YAAY,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAAC,UAAU,CAAC;IA4EtF,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAAC,UAAU,CAAC;IAmEtF,OAAO,CAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4D1G,OAAO,CAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA+I7H"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,oBAAoB,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AAa3G,OAAO,KAAK,EAAE,+BAA+B,EAAE,mCAAmC,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACxK,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAWvC,qBAAa,sCAAuC,YAAW,+BAA+B;;IAC5F,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAK;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC;;OAEG;gBACU,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,GAAE,mCAAwC;IAmB9E,IAAI,CAAC,oBAAoB,CAAC,IAAK,cAAc,CAE5C;IAED,IAAI,CAAC,iBAAiB,CAAC,IAAK,WAAW,CAEtC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAgBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAUpB,YAAY,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAAC,UAAU,CAAC;IA+EtF,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAAC,UAAU,CAAC;IAsEtF,OAAO,CAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwE1G,OAAO,CAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CA+I7H"}
@@ -94,18 +94,17 @@ export class DefaultDelegatedRoutingV1HttpApiClient {
94
94
  try {
95
95
  await onStart.promise;
96
96
  // https://specs.ipfs.tech/routing/http-routing-v1/
97
- const url = new URL(`${this.clientUrl}routing/v1/providers/${cid.toString()}`);
97
+ const url = new URL(`${this.clientUrl}routing/v1/providers/${cid}`);
98
98
  this.#addFilterParams(url, options.filterAddrs, options.filterProtocols);
99
99
  const getOptions = { headers: { Accept: 'application/x-ndjson' }, signal };
100
100
  const res = await this.#makeRequest(url.toString(), getOptions);
101
- if (res == null) {
102
- throw new BadResponseError('No response received');
103
- }
104
101
  if (!res.ok) {
102
+ // Per IPIP-0513: Handle 404 as empty results (not an error)
103
+ // Old servers return 404, new servers return 200 with empty array
104
+ // Both should result in an empty iterator, not an error
105
105
  if (res.status === 404) {
106
- // https://specs.ipfs.tech/routing/http-routing-v1/#response-status-codes
107
- // 404 (Not Found): must be returned if no matching records are found
108
- throw new NotFoundError('No matching records found');
106
+ // Return empty iterator
107
+ return;
109
108
  }
110
109
  if (res.status === 422) {
111
110
  // https://specs.ipfs.tech/routing/http-routing-v1/#response-status-codes
@@ -121,9 +120,11 @@ export class DefaultDelegatedRoutingV1HttpApiClient {
121
120
  if (contentType == null) {
122
121
  throw new BadResponseError('No Content-Type header received');
123
122
  }
124
- if (contentType?.startsWith('application/json')) {
123
+ if (contentType.startsWith('application/json')) {
125
124
  const body = await res.json();
126
- for (const provider of body.Providers) {
125
+ // Handle null/undefined Providers from servers (both old and new may return empty arrays)
126
+ const providers = body.Providers ?? [];
127
+ for (const provider of providers) {
127
128
  const record = this.#conformToPeerSchema(provider);
128
129
  if (record != null) {
129
130
  yield record;
@@ -166,10 +167,11 @@ export class DefaultDelegatedRoutingV1HttpApiClient {
166
167
  this.#addFilterParams(url, options.filterAddrs, options.filterProtocols);
167
168
  const getOptions = { headers: { Accept: 'application/x-ndjson' }, signal };
168
169
  const res = await this.#makeRequest(url.toString(), getOptions);
170
+ // Per IPIP-0513: Handle 404 as empty results (not an error)
171
+ // Old servers return 404, new servers return 200 with empty array
172
+ // Both should result in an empty iterator, not an error
169
173
  if (res.status === 404) {
170
- // https://specs.ipfs.tech/routing/http-routing-v1/#response-status-codes
171
- // 404 (Not Found): must be returned if no matching records are found.
172
- throw new NotFoundError('No matching records found');
174
+ return; // Return empty iterator
173
175
  }
174
176
  if (res.status === 422) {
175
177
  // https://specs.ipfs.tech/routing/http-routing-v1/#response-status-codes
@@ -180,9 +182,11 @@ export class DefaultDelegatedRoutingV1HttpApiClient {
180
182
  throw new BadResponseError('Routing response had no body');
181
183
  }
182
184
  const contentType = res.headers.get('Content-Type');
183
- if (contentType === 'application/json') {
185
+ if (contentType?.startsWith('application/json')) {
184
186
  const body = await res.json();
185
- for (const peer of body.Peers) {
187
+ // Handle null/undefined Peers from servers (both old and new may return empty arrays)
188
+ const peers = body.Peers ?? [];
189
+ for (const peer of peers) {
186
190
  const record = this.#conformToPeerSchema(peer);
187
191
  if (record != null) {
188
192
  yield record;
@@ -225,9 +229,10 @@ export class DefaultDelegatedRoutingV1HttpApiClient {
225
229
  const getOptions = { headers: { Accept: 'application/vnd.ipfs.ipns-record' }, signal };
226
230
  const res = await this.#makeRequest(resource, getOptions);
227
231
  log('getIPNS GET %s %d', resource, res.status);
232
+ // Per IPIP-0513: Handle 404 as "no record found" for backward compatibility
233
+ // IPNS is different - we still throw NotFoundError for 404 (backward compat)
234
+ // and also for 200 with non-IPNS content type (new behavior)
228
235
  if (res.status === 404) {
229
- // https://specs.ipfs.tech/routing/http-routing-v1/#response-status-codes
230
- // 404 (Not Found): must be returned if no matching records are found
231
236
  throw new NotFoundError('No matching records found');
232
237
  }
233
238
  if (res.status === 422) {
@@ -235,6 +240,15 @@ export class DefaultDelegatedRoutingV1HttpApiClient {
235
240
  // 422 (Unprocessable Entity): request does not conform to schema or semantic constraints
236
241
  throw new InvalidRequestError('Request does not conform to schema or semantic constraints');
237
242
  }
243
+ if (!res.ok) {
244
+ throw new BadResponseError(`Unexpected status code: ${res.status}`);
245
+ }
246
+ // Per IPIP-0513: Only Content-Type: application/vnd.ipfs.ipns-record indicates a valid record
247
+ // ANY other content type (or missing content-type) means no record found
248
+ const contentType = res.headers.get('Content-Type');
249
+ if (contentType == null || !contentType.includes('application/vnd.ipfs.ipns-record')) {
250
+ throw new NotFoundError('No matching records found');
251
+ }
238
252
  if (res.body == null) {
239
253
  throw new BadResponseError('GET ipns response had no body');
240
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC3G,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,IAAI,MAAM,8BAA8B,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,MAAM,CAAA;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,6CAA6C,EAAE,0CAA0C,EAAE,MAAM,eAAe,CAAA;AAOzH,MAAM,GAAG,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAA;AAE1D,MAAM,aAAa,GAAG;IACpB,kBAAkB,EAAE,CAAC;IACrB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,6FAA6F;IACtH,SAAS,EAAE,4BAA4B;CACxC,CAAA;AAED,MAAM,OAAO,sCAAsC;IACzC,OAAO,CAAS;IACP,SAAS,CAAQ;IACjB,kBAAkB,CAAiB;IACnC,SAAS,CAAK;IACd,OAAO,CAAQ;IACf,cAAc,CAAgB;IAC9B,WAAW,CAAa;IACxB,WAAW,CAAW;IACtB,eAAe,CAAW;IAC1B,gBAAgB,CAAgC;IAChD,SAAS,CAAQ;IAC1B,KAAK,CAAQ;IACJ,QAAQ,CAAQ;IACjC;;OAEG;IACH,YAAa,GAAiB,EAAE,OAA4C,EAAE;QAC5E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;QAC/C,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC;YAC1B,WAAW,EAAE,IAAI,CAAC,kBAAkB,IAAI,aAAa,CAAC,kBAAkB;SACzE,CAAC,CAAA;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAA,CAAC,wDAAwD;QAC1F,IAAI,CAAC,SAAS,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAA;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAA;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,6CAA6C,CAAC,IAAI,CAAC,CAAA;QAC7E,IAAI,CAAC,WAAW,GAAG,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAA;QAEvE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAA;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAA;IACzD,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC;QACxB,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC;QACrB,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAE1D,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACvB,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;QAE/B,gCAAgC;QAChC,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,CAAE,YAAY,CAAE,GAAQ,EAAE,UAA+B,EAAE;QAC/D,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;QAEnC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACzF,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;QACvB,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;QAExB,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,OAAO,CAAC,OAAO,EAAE,CAAA;YACjB,OAAO,QAAQ,CAAC,OAAO,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAA;YAErB,mDAAmD;YACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,wBAAwB,GAAG,EAAE,CAAC,CAAA;YAEnE,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;YACxE,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAA;YAC1E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAA;YAE/D,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,4DAA4D;gBAC5D,kEAAkE;gBAClE,wDAAwD;gBACxD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACvB,wBAAwB;oBACxB,OAAM;gBACR,CAAC;gBAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACzB,yEAAyE;oBACzE,yFAAyF;oBACvF,MAAM,IAAI,mBAAmB,CAAC,4DAA4D,CAAC,CAAA;gBAC7F,CAAC;gBAED,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;YACrE,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,CAAC,CAAA;YAC5D,CAAC;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACnD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,gBAAgB,CAAC,iCAAiC,CAAC,CAAA;YAC/D,CAAC;YAED,IAAI,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;gBAC7B,0FAA0F;gBAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAA;gBAEtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;oBAClD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACnB,MAAM,MAAM,CAAA;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACxD,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACpD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;oBAClD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACnB,MAAM,MAAM,CAAA;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,gBAAgB,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,QAAQ,CAAC,OAAO,EAAE,CAAA;YAClB,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAE,QAAQ,CAAE,MAAc,EAAE,UAA2B,EAAE;QAC7D,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;QAElC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACzF,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;QACvB,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;QAExB,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,OAAO,CAAC,OAAO,EAAE,CAAA;YACjB,OAAO,QAAQ,CAAC,OAAO,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAA;YAErB,mDAAmD;YACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,oBAAoB,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACrF,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;YAExE,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAA;YAC1E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAA;YAE/D,4DAA4D;YAC5D,kEAAkE;YAClE,wDAAwD;YACxD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,OAAM,CAAC,wBAAwB;YACjC,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,yEAAyE;gBACzE,yFAAyF;gBACzF,MAAM,IAAI,mBAAmB,CAAC,4DAA4D,CAAC,CAAA;YAC7F,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,CAAC,CAAA;YAC5D,CAAC;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACnD,IAAI,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;gBAC7B,sFAAsF;gBACtF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;gBAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;oBAC9C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACnB,MAAM,MAAM,CAAA;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;oBAC9C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACnB,MAAM,MAAM,CAAA;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;QACrC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,QAAQ,CAAC,OAAO,EAAE,CAAA;YAClB,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,SAA6C,EAAE,UAA0B,EAAE;QACxF,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAA;QAEpC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACzF,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;QACvB,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;QAExB,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,OAAO,CAAC,OAAO,EAAE,CAAA;YACjB,OAAO,QAAQ,CAAC,OAAO,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,mDAAmD;QACnD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,mBAAmB,SAAS,EAAE,CAAA;QAEhE,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAA;YAErB,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,MAAM,EAAE,CAAA;YACtF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;YAEzD,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YAE9C,4EAA4E;YAC5E,6EAA6E;YAC7E,6DAA6D;YAC7D,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,IAAI,aAAa,CAAC,2BAA2B,CAAC,CAAA;YACtD,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,yEAAyE;gBACzE,yFAAyF;gBACzF,MAAM,IAAI,mBAAmB,CAAC,4DAA4D,CAAC,CAAA;YAC7F,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;YACrE,CAAC;YAED,8FAA8F;YAC9F,yEAAyE;YACzE,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACnD,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;gBACrF,MAAM,IAAI,aAAa,CAAC,2BAA2B,CAAC,CAAA;YACtD,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,gBAAgB,CAAC,+BAA+B,CAAC,CAAA;YAC7D,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAA;YACnC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;YAEnD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,aAAa,CAAC,yBAAyB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAA;YAC3E,CAAC;YAED,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAEjD,MAAM,GAAG,CAAA;QACX,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,QAAQ,CAAC,OAAO,EAAE,CAAA;YAClB,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,SAA6C,EAAE,MAAkB,EAAE,UAAwB,EAAE;QAC1G,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAA;QAEpC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACzF,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;QACvB,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;QAExB,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,OAAO,CAAC,OAAO,EAAE,CAAA;YACjB,OAAO,QAAQ,CAAC,OAAO,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,mDAAmD;QACnD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,mBAAmB,SAAS,EAAE,CAAA;QAEhE,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAA;YAErB,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;YAEtC,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;YACnH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;YAEzD,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YAE9C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,IAAI,gBAAgB,CAAC,6CAA6C,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;YAEvD,MAAM,GAAG,CAAA;QACX,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,QAAQ,CAAC,OAAO,EAAE,CAAA;YAClB,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAE,MAAW;QAC/B,IAAI,CAAC;YACH,MAAM,SAAS,GAAa,EAAE,CAAA;YAC9B,MAAM,UAAU,GAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;YAElE,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;YACrC,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC5B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC/B,OAAO,MAAM,CAAC,QAAQ,CAAA;YACxB,CAAC;YAED,OAAO;gBACL,GAAG,MAAM;gBACT,MAAM,EAAE,MAAM;gBACd,EAAE,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,SAAS;aACrB,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,gBAAgB,CAAE,GAAQ,EAAE,WAAsB,EAAE,eAA0B;QAC5E,yEAAyE;QACzE,IAAI,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAChF,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;gBACxB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;QACD,IAAI,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YAC5D,MAAM,cAAc,GAAG,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YAC1F,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;gBAC1B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAE,GAAW,EAAE,OAAoB;QACnD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;QAC7C,MAAM,GAAG,GAAG,GAAG,aAAa,IAAI,GAAG,EAAE,CAAA;QAErC,yCAAyC;QACzC,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;YACnD,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;gBAC3B,2CAA2C;gBAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;gBAClF,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBACzB,GAAG,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;oBAC5C,OAAO,cAAc,CAAA;gBACvB,CAAC;qBAAM,CAAC;oBACN,qCAAqC;oBACrC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAA;YACtC,GAAG,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;YACjD,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC;QAED,kCAAkC;QAClC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;YAC/D,qCAAqC;YACrC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,EAAE,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;gBACjE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA;gBAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAElD,+CAA+C;gBAC/C,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE;oBACzD,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,OAAO;iBACR,CAAC,CAAA;gBAEF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAC3C,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACd,iDAAiD;YACjD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAA;QACrC,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"routings.d.ts","sourceRoot":"","sources":["../../src/routings.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAQpG;;GAEG;AACH,qBAAa,6CAA8C,YAAW,cAAc;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3C,MAAM,EAAE,+BAA+B;IAI5C,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAS/E,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAIzB,eAAe,IAAK,OAAO,CAAC,IAAI,CAAC;IAIjC,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/E,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;CAsBzE;AAED;;GAEG;AACH,qBAAa,0CAA2C,YAAW,WAAW;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3C,MAAM,EAAE,+BAA+B;IAI9C,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAatE,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;CAG/F"}
1
+ {"version":3,"file":"routings.d.ts","sourceRoot":"","sources":["../../src/routings.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAQpG;;GAEG;AACH,qBAAa,6CAA8C,YAAW,cAAc;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3C,MAAM,EAAE,+BAA+B;IAI5C,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAmB/E,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAIzB,eAAe,IAAK,OAAO,CAAC,IAAI,CAAC;IAIjC,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/E,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;CAsBzE;AAED;;GAEG;AACH,qBAAa,0CAA2C,YAAW,WAAW;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE3C,MAAM,EAAE,+BAA+B;IAI9C,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAatE,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAAC,QAAQ,CAAC;CAG/F"}
@@ -18,12 +18,22 @@ export class DelegatedRoutingV1HttpApiClientContentRouting {
18
18
  this.client = client;
19
19
  }
20
20
  async *findProviders(cid, options = {}) {
21
- yield* map(this.client.getProviders(cid, options), (record) => {
22
- return {
23
- id: record.ID,
24
- multiaddrs: record.Addrs ?? []
25
- };
26
- });
21
+ try {
22
+ yield* map(this.client.getProviders(cid, options), (record) => {
23
+ return {
24
+ id: record.ID,
25
+ multiaddrs: record.Addrs ?? []
26
+ };
27
+ });
28
+ }
29
+ catch (err) {
30
+ // NotFoundError means no providers were found so end the iterator instead
31
+ // of throwing which means there was an error
32
+ if (err instanceof NotFoundError) {
33
+ return;
34
+ }
35
+ throw err;
36
+ }
27
37
  }
28
38
  async provide() {
29
39
  // noop
@@ -1 +1 @@
1
- {"version":3,"file":"routings.js","sourceRoot":"","sources":["../../src/routings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routings.js","sourceRoot":"","sources":["../../src/routings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAC1F,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAI5E,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;AAElD,SAAS,SAAS,CAAE,GAAe;IACjC,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,6CAA6C;IACvC,MAAM,CAAiC;IAExD,YAAa,MAAuC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,CAAE,aAAa,CAAE,GAAQ,EAAE,UAAwB,EAAE;QACzD,IAAI,CAAC;YACH,KAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC7D,OAAO;oBACL,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,UAAU,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;iBAC/B,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,0EAA0E;YAC1E,6CAA6C;YAC7C,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,OAAM;YACR,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO;IACT,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,KAAiB,EAAE,OAAsB;QACnE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAEzC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,GAAe,EAAE,OAAsB;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;QACtC,CAAC;QAED,MAAM,MAAM,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAEtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAEtD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,wEAAwE;YACxE,+BAA+B;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACpC,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;YACtC,CAAC;YAED,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0CAA0C;IACpC,MAAM,CAAiC;IAExD,YAAa,MAAuC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,MAAc,EAAE,UAAwB,EAAE;QACxD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAE/D,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,UAAU,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;aAC7B,CAAA;QACH,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,CAAE,eAAe,CAAE,GAAe,EAAE,UAAwB,EAAE;QAClE,OAAO;IACT,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helia/delegated-routing-v1-http-api-client",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "A Delegated Routing V1 HTTP API client",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/ipfs/helia-delegated-routing-v1-http-api/tree/main/packages/client#readme",
package/src/client.ts CHANGED
@@ -118,19 +118,19 @@ export class DefaultDelegatedRoutingV1HttpApiClient implements DelegatedRoutingV
118
118
  await onStart.promise
119
119
 
120
120
  // https://specs.ipfs.tech/routing/http-routing-v1/
121
- const url = new URL(`${this.clientUrl}routing/v1/providers/${cid.toString()}`)
121
+ const url = new URL(`${this.clientUrl}routing/v1/providers/${cid}`)
122
+
122
123
  this.#addFilterParams(url, options.filterAddrs, options.filterProtocols)
123
124
  const getOptions = { headers: { Accept: 'application/x-ndjson' }, signal }
124
125
  const res = await this.#makeRequest(url.toString(), getOptions)
125
126
 
126
- if (res == null) {
127
- throw new BadResponseError('No response received')
128
- }
129
127
  if (!res.ok) {
128
+ // Per IPIP-0513: Handle 404 as empty results (not an error)
129
+ // Old servers return 404, new servers return 200 with empty array
130
+ // Both should result in an empty iterator, not an error
130
131
  if (res.status === 404) {
131
- // https://specs.ipfs.tech/routing/http-routing-v1/#response-status-codes
132
- // 404 (Not Found): must be returned if no matching records are found
133
- throw new NotFoundError('No matching records found')
132
+ // Return empty iterator
133
+ return
134
134
  }
135
135
 
136
136
  if (res.status === 422) {
@@ -138,6 +138,7 @@ export class DefaultDelegatedRoutingV1HttpApiClient implements DelegatedRoutingV
138
138
  // 422 (Unprocessable Entity): request does not conform to schema or semantic constraints
139
139
  throw new InvalidRequestError('Request does not conform to schema or semantic constraints')
140
140
  }
141
+
141
142
  throw new BadResponseError(`Unexpected status code: ${res.status}`)
142
143
  }
143
144
 
@@ -150,10 +151,12 @@ export class DefaultDelegatedRoutingV1HttpApiClient implements DelegatedRoutingV
150
151
  throw new BadResponseError('No Content-Type header received')
151
152
  }
152
153
 
153
- if (contentType?.startsWith('application/json')) {
154
+ if (contentType.startsWith('application/json')) {
154
155
  const body = await res.json()
156
+ // Handle null/undefined Providers from servers (both old and new may return empty arrays)
157
+ const providers = body.Providers ?? []
155
158
 
156
- for (const provider of body.Providers) {
159
+ for (const provider of providers) {
157
160
  const record = this.#conformToPeerSchema(provider)
158
161
  if (record != null) {
159
162
  yield record
@@ -200,10 +203,11 @@ export class DefaultDelegatedRoutingV1HttpApiClient implements DelegatedRoutingV
200
203
  const getOptions = { headers: { Accept: 'application/x-ndjson' }, signal }
201
204
  const res = await this.#makeRequest(url.toString(), getOptions)
202
205
 
206
+ // Per IPIP-0513: Handle 404 as empty results (not an error)
207
+ // Old servers return 404, new servers return 200 with empty array
208
+ // Both should result in an empty iterator, not an error
203
209
  if (res.status === 404) {
204
- // https://specs.ipfs.tech/routing/http-routing-v1/#response-status-codes
205
- // 404 (Not Found): must be returned if no matching records are found.
206
- throw new NotFoundError('No matching records found')
210
+ return // Return empty iterator
207
211
  }
208
212
 
209
213
  if (res.status === 422) {
@@ -217,10 +221,12 @@ export class DefaultDelegatedRoutingV1HttpApiClient implements DelegatedRoutingV
217
221
  }
218
222
 
219
223
  const contentType = res.headers.get('Content-Type')
220
- if (contentType === 'application/json') {
224
+ if (contentType?.startsWith('application/json')) {
221
225
  const body = await res.json()
226
+ // Handle null/undefined Peers from servers (both old and new may return empty arrays)
227
+ const peers = body.Peers ?? []
222
228
 
223
- for (const peer of body.Peers) {
229
+ for (const peer of peers) {
224
230
  const record = this.#conformToPeerSchema(peer)
225
231
  if (record != null) {
226
232
  yield record
@@ -268,9 +274,10 @@ export class DefaultDelegatedRoutingV1HttpApiClient implements DelegatedRoutingV
268
274
 
269
275
  log('getIPNS GET %s %d', resource, res.status)
270
276
 
277
+ // Per IPIP-0513: Handle 404 as "no record found" for backward compatibility
278
+ // IPNS is different - we still throw NotFoundError for 404 (backward compat)
279
+ // and also for 200 with non-IPNS content type (new behavior)
271
280
  if (res.status === 404) {
272
- // https://specs.ipfs.tech/routing/http-routing-v1/#response-status-codes
273
- // 404 (Not Found): must be returned if no matching records are found
274
281
  throw new NotFoundError('No matching records found')
275
282
  }
276
283
 
@@ -280,6 +287,17 @@ export class DefaultDelegatedRoutingV1HttpApiClient implements DelegatedRoutingV
280
287
  throw new InvalidRequestError('Request does not conform to schema or semantic constraints')
281
288
  }
282
289
 
290
+ if (!res.ok) {
291
+ throw new BadResponseError(`Unexpected status code: ${res.status}`)
292
+ }
293
+
294
+ // Per IPIP-0513: Only Content-Type: application/vnd.ipfs.ipns-record indicates a valid record
295
+ // ANY other content type (or missing content-type) means no record found
296
+ const contentType = res.headers.get('Content-Type')
297
+ if (contentType == null || !contentType.includes('application/vnd.ipfs.ipns-record')) {
298
+ throw new NotFoundError('No matching records found')
299
+ }
300
+
283
301
  if (res.body == null) {
284
302
  throw new BadResponseError('GET ipns response had no body')
285
303
  }
package/src/routings.ts CHANGED
@@ -25,12 +25,22 @@ export class DelegatedRoutingV1HttpApiClientContentRouting implements ContentRou
25
25
  }
26
26
 
27
27
  async * findProviders (cid: CID, options: AbortOptions = {}): AsyncIterable<PeerInfo> {
28
- yield * map(this.client.getProviders(cid, options), (record) => {
29
- return {
30
- id: record.ID,
31
- multiaddrs: record.Addrs ?? []
28
+ try {
29
+ yield * map(this.client.getProviders(cid, options), (record) => {
30
+ return {
31
+ id: record.ID,
32
+ multiaddrs: record.Addrs ?? []
33
+ }
34
+ })
35
+ } catch (err) {
36
+ // NotFoundError means no providers were found so end the iterator instead
37
+ // of throwing which means there was an error
38
+ if (err instanceof NotFoundError) {
39
+ return
32
40
  }
33
- })
41
+
42
+ throw err
43
+ }
34
44
  }
35
45
 
36
46
  async provide (): Promise<void> {