@nz-open-data-connectors/nz-sources 0.1.0 → 0.1.3

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.
Files changed (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -28
  3. package/dist/adeSearch.d.ts.map +1 -1
  4. package/dist/adeSearch.js +3 -5
  5. package/dist/adeSearch.js.map +1 -1
  6. package/dist/apiKey.d.ts +12 -0
  7. package/dist/apiKey.d.ts.map +1 -0
  8. package/dist/apiKey.js +18 -0
  9. package/dist/apiKey.js.map +1 -0
  10. package/dist/arcgisHub.d.ts.map +1 -1
  11. package/dist/arcgisHub.js +4 -9
  12. package/dist/arcgisHub.js.map +1 -1
  13. package/dist/dataGovtDatastore.d.ts.map +1 -1
  14. package/dist/dataGovtDatastore.js +4 -6
  15. package/dist/dataGovtDatastore.js.map +1 -1
  16. package/dist/dataGovtNz.d.ts.map +1 -1
  17. package/dist/dataGovtNz.js +3 -5
  18. package/dist/dataGovtNz.js.map +1 -1
  19. package/dist/digitalNz.d.ts.map +1 -1
  20. package/dist/digitalNz.js +11 -13
  21. package/dist/digitalNz.js.map +1 -1
  22. package/dist/errors.d.ts +12 -2
  23. package/dist/errors.d.ts.map +1 -1
  24. package/dist/errors.js +8 -4
  25. package/dist/errors.js.map +1 -1
  26. package/dist/geonet.d.ts.map +1 -1
  27. package/dist/geonet.js +5 -5
  28. package/dist/geonet.js.map +1 -1
  29. package/dist/http.d.ts +34 -0
  30. package/dist/http.d.ts.map +1 -0
  31. package/dist/http.js +83 -0
  32. package/dist/http.js.map +1 -0
  33. package/dist/index.d.ts +12 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +6 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/lawa.d.ts.map +1 -1
  38. package/dist/lawa.js +3 -5
  39. package/dist/lawa.js.map +1 -1
  40. package/dist/linz.d.ts.map +1 -1
  41. package/dist/linz.js +8 -6
  42. package/dist/linz.js.map +1 -1
  43. package/dist/lris.d.ts.map +1 -1
  44. package/dist/lris.js +3 -5
  45. package/dist/lris.js.map +1 -1
  46. package/dist/mfe.d.ts.map +1 -1
  47. package/dist/mfe.js +3 -5
  48. package/dist/mfe.js.map +1 -1
  49. package/dist/nzor.d.ts.map +1 -1
  50. package/dist/nzor.js +3 -5
  51. package/dist/nzor.js.map +1 -1
  52. package/dist/nzta.d.ts.map +1 -1
  53. package/dist/nzta.js +4 -5
  54. package/dist/nzta.js.map +1 -1
  55. package/dist/nztaOpenData.d.ts +50 -0
  56. package/dist/nztaOpenData.d.ts.map +1 -0
  57. package/dist/nztaOpenData.js +107 -0
  58. package/dist/nztaOpenData.js.map +1 -0
  59. package/dist/registry.d.ts.map +1 -1
  60. package/dist/registry.js +2 -0
  61. package/dist/registry.js.map +1 -1
  62. package/dist/tradeMe.d.ts.map +1 -1
  63. package/dist/tradeMe.js +5 -5
  64. package/dist/tradeMe.js.map +1 -1
  65. package/package.json +27 -5
package/dist/http.d.ts ADDED
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Identifies this client to the public APIs it calls.
3
+ *
4
+ * Several NZ government endpoints sit behind gateways that rate-limit or
5
+ * block clients they cannot identify, so every adapter sends this. The string
6
+ * carries no version, so it cannot go stale between releases.
7
+ */
8
+ export declare const USER_AGENT = "nz-open-data-connectors (Language=TypeScript)";
9
+ /** Per-request timeout in milliseconds, applied to every adapter. */
10
+ export declare const DEFAULT_TIMEOUT_MS = 30000;
11
+ /** Options shared by the shared HTTP helpers. */
12
+ export interface HttpGetOptions {
13
+ /** Fetch implementation override, used by tests. */
14
+ fetchImpl?: typeof globalThis.fetch | undefined;
15
+ /** Extra request headers, merged over the defaults. */
16
+ headers?: Record<string, string> | undefined;
17
+ /** Overrides {@link DEFAULT_TIMEOUT_MS}. */
18
+ timeoutMs?: number | undefined;
19
+ }
20
+ /**
21
+ * Issues a GET through the shared HTTP layer.
22
+ *
23
+ * Every adapter goes through here so that three things happen the same way
24
+ * for all 14 sources: a `user-agent` identifies the client, a timeout aborts
25
+ * a request that hangs, and a failure carries whether retrying is worthwhile.
26
+ *
27
+ * @param source - Source name used in the error message, e.g. "GeoNet".
28
+ * @param url - Absolute URL or URL object to fetch.
29
+ * @param options - Fetch override, extra headers, and timeout.
30
+ * @returns The response, already checked for a successful status.
31
+ * @throws {NzSourceApiError} On a non-2xx status, an abort, or a network error.
32
+ */
33
+ export declare function httpGet(source: string, url: string | URL, options?: HttpGetOptions): Promise<Response>;
34
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,kDAAkD,CAAC;AAE1E,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAQzC,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;IAChD,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7C,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CA8BnB"}
package/dist/http.js ADDED
@@ -0,0 +1,83 @@
1
+ import { NzSourceApiError } from './errors.js';
2
+ /**
3
+ * Identifies this client to the public APIs it calls.
4
+ *
5
+ * Several NZ government endpoints sit behind gateways that rate-limit or
6
+ * block clients they cannot identify, so every adapter sends this. The string
7
+ * carries no version, so it cannot go stale between releases.
8
+ */
9
+ export const USER_AGENT = 'nz-open-data-connectors (Language=TypeScript)';
10
+ /** Per-request timeout in milliseconds, applied to every adapter. */
11
+ export const DEFAULT_TIMEOUT_MS = 30_000;
12
+ /** The one status code worth retrying: the server is asking us to slow down. */
13
+ const HTTP_TOO_MANY_REQUESTS = 429;
14
+ /** The lowest status code that means the server failed rather than the request. */
15
+ const HTTP_INTERNAL_SERVER_ERROR = 500;
16
+ /**
17
+ * Builds the request headers, letting a caller replace the User-Agent.
18
+ *
19
+ * Most adapters send only the default identity. A few sources (the SEC and
20
+ * the National Weather Service, for example) ask for a more descriptive
21
+ * User-Agent of their own, and that one wins. Other headers merge over the
22
+ * defaults.
23
+ *
24
+ * @param extra - Headers supplied by the adapter.
25
+ * @returns The headers for one request.
26
+ */
27
+ function buildRequestHeaders(extra) {
28
+ const headers = { 'user-agent': USER_AGENT };
29
+ for (const [name, value] of Object.entries(extra ?? {})) {
30
+ if (name.toLowerCase() === 'user-agent') {
31
+ headers['user-agent'] = value;
32
+ }
33
+ else {
34
+ headers[name] = value;
35
+ }
36
+ }
37
+ return headers;
38
+ }
39
+ /**
40
+ * Issues a GET through the shared HTTP layer.
41
+ *
42
+ * Every adapter goes through here so that three things happen the same way
43
+ * for all 14 sources: a `user-agent` identifies the client, a timeout aborts
44
+ * a request that hangs, and a failure carries whether retrying is worthwhile.
45
+ *
46
+ * @param source - Source name used in the error message, e.g. "GeoNet".
47
+ * @param url - Absolute URL or URL object to fetch.
48
+ * @param options - Fetch override, extra headers, and timeout.
49
+ * @returns The response, already checked for a successful status.
50
+ * @throws {NzSourceApiError} On a non-2xx status, an abort, or a network error.
51
+ */
52
+ export async function httpGet(source, url, options = {}) {
53
+ const doFetch = options.fetchImpl ?? globalThis.fetch;
54
+ const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
55
+ const controller = new AbortController();
56
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
57
+ let response;
58
+ try {
59
+ response = await doFetch(url, {
60
+ headers: buildRequestHeaders(options.headers),
61
+ signal: controller.signal,
62
+ });
63
+ }
64
+ catch (error) {
65
+ if (controller.signal.aborted) {
66
+ throw new NzSourceApiError(source, `request timed out after ${timeoutMs}ms`, {
67
+ retryable: true,
68
+ });
69
+ }
70
+ throw new NzSourceApiError(source, `request failed: ${String(error)}`, { retryable: true });
71
+ }
72
+ finally {
73
+ clearTimeout(timer);
74
+ }
75
+ if (!response.ok) {
76
+ throw new NzSourceApiError(source, `HTTP ${response.status}`, {
77
+ status: response.status,
78
+ retryable: response.status === HTTP_TOO_MANY_REQUESTS || response.status >= HTTP_INTERNAL_SERVER_ERROR,
79
+ });
80
+ }
81
+ return response;
82
+ }
83
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,+CAA+C,CAAC;AAE1E,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,gFAAgF;AAChF,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC,mFAAmF;AACnF,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAYvC;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAAC,KAAyC;IACpE,MAAM,OAAO,GAA2B,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IACrE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC;YACxC,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAc,EACd,GAAiB,EACjB,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;YAC7C,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,2BAA2B,SAAS,IAAI,EAAE;gBAC3E,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE;YAC5D,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EACP,QAAQ,CAAC,MAAM,KAAK,sBAAsB,IAAI,QAAQ,CAAC,MAAM,IAAI,0BAA0B;SAC9F,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,8 @@ export { searchDigitalNzRecords, searchDigitalNzMedia, getDigitalNzCategoryFilte
20
20
  export type { DigitalNzRecord, DigitalNzMediaType } from './digitalNz.js';
21
21
  /** Errors shared by every source adapter. */
22
22
  export { NzSourceApiError, NzSourceError, NzSourceParseError } from './errors.js';
23
+ /** API error detail type. */
24
+ export type { NzSourceApiErrorDetails } from './errors.js';
23
25
  /** GeoNet felt earthquake data. */
24
26
  export { fetchGeoNetFeltQuakes, parseGeoNetQuakes, summarizeGeoNetQuakes, geonetAdapter, } from './geonet.js';
25
27
  /** GeoNet types. */
@@ -48,12 +50,22 @@ export type { NzorName, NzorSearchResult } from './nzor.js';
48
50
  export { parseNztaHolidayHotspots, nztaAdapter } from './nzta.js';
49
51
  /** Waka Kotahi types. */
50
52
  export type { NztaHolidayHotspot } from './nzta.js';
53
+ /** Waka Kotahi (NZTA) open data hub catalogue (DCAT 1.1). */
54
+ export { fetchNztaOpenDataCatalogue, parseNztaOpenDataCatalogue, nztaOpenDataAdapter, NZTA_OPEN_DATA_SOURCE_ID, } from './nztaOpenData.js';
55
+ /** Waka Kotahi open data types. */
56
+ export type { NztaOpenDataCatalogue, NztaOpenDataDataset, NztaOpenDataDistribution, } from './nztaOpenData.js';
51
57
  /** The uniform adapter registry and probe helpers. */
52
58
  export { NZ_DATA_SOURCES, getNzDataSource, probeAllNzDataSources, probeNzDataSource, } from './registry.js';
53
59
  /** Trade Me category data. */
54
60
  export { fetchTradeMeCategories, parseTradeMeCategories, tradeMeAdapter } from './tradeMe.js';
55
61
  /** Trade Me types. */
56
62
  export type { TradeMeCategory } from './tradeMe.js';
63
+ /** API key normalization shared by adapters, the API, and the CLI. */
64
+ export { normalizeSourceApiKey } from './apiKey.js';
65
+ /** The shared HTTP layer every adapter fetch goes through. */
66
+ export { httpGet, USER_AGENT, DEFAULT_TIMEOUT_MS } from './http.js';
67
+ /** Shared HTTP layer types. */
68
+ export type { HttpGetOptions } from './http.js';
57
69
  /** Shared adapter contract types. */
58
70
  export type { NzDataAdapter, NzFetchOptions, NzSourceAuth, NzSourceProbe } from './types.js';
59
71
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -24,8 +24,14 @@ export { parseMfeLayers, mfeAdapter } from './mfe.js';
24
24
  export { searchNzorNames, parseNzorNames, nzorAdapter } from './nzor.js';
25
25
  /** Waka Kotahi holiday journey hotspots. */
26
26
  export { parseNztaHolidayHotspots, nztaAdapter } from './nzta.js';
27
+ /** Waka Kotahi (NZTA) open data hub catalogue (DCAT 1.1). */
28
+ export { fetchNztaOpenDataCatalogue, parseNztaOpenDataCatalogue, nztaOpenDataAdapter, NZTA_OPEN_DATA_SOURCE_ID, } from './nztaOpenData.js';
27
29
  /** The uniform adapter registry and probe helpers. */
28
30
  export { NZ_DATA_SOURCES, getNzDataSource, probeAllNzDataSources, probeNzDataSource, } from './registry.js';
29
31
  /** Trade Me category data. */
30
32
  export { fetchTradeMeCategories, parseTradeMeCategories, tradeMeAdapter } from './tradeMe.js';
33
+ /** API key normalization shared by adapters, the API, and the CLI. */
34
+ export { normalizeSourceApiKey } from './apiKey.js';
35
+ /** The shared HTTP layer every adapter fetch goes through. */
36
+ export { httpGet, USER_AGENT, DEFAULT_TIMEOUT_MS } from './http.js';
31
37
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG1F,mEAAmE;AACnE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAQxB,mCAAmC;AACnC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,kDAAkD;AAClD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAGhC,yCAAyC;AACzC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,6CAA6C;AAC7C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAClF,mCAAmC;AACnC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG3E,2CAA2C;AAC3C,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGpE,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGzD,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtD,yDAAyD;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGzE,4CAA4C;AAC5C,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGlE,sDAAsD;AACtD,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,8BAA8B;AAC9B,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG1F,mEAAmE;AACnE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAQxB,mCAAmC;AACnC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,kDAAkD;AAClD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAGhC,yCAAyC;AACzC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,6CAA6C;AAC7C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGlF,mCAAmC;AACnC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG3E,2CAA2C;AAC3C,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGpE,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGzD,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtD,yDAAyD;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGzE,4CAA4C;AAC5C,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGlE,6DAA6D;AAC7D,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAO3B,sDAAsD;AACtD,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,8BAA8B;AAC9B,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9F,sEAAsE;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,8DAA8D;AAC9D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lawa.d.ts","sourceRoot":"","sources":["../src/lawa.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;CACzB;AAiBD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,oBAAoB,EAAE,CAkBnF;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAQjC;AAED,6DAA6D;AAC7D,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,oBAAoB,EAAE,CAS7D,CAAC"}
1
+ {"version":3,"file":"lawa.d.ts","sourceRoot":"","sources":["../src/lawa.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;CACzB;AAiBD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,oBAAoB,EAAE,CAkBnF;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAOjC;AAED,6DAA6D;AAC7D,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,oBAAoB,EAAE,CAS7D,CAAC"}
package/dist/lawa.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { NzSourceApiError, NzSourceParseError } from './errors.js';
2
+ import { NzSourceParseError } from './errors.js';
3
+ import { httpGet } from './http.js';
3
4
  import { readFixtureJson } from './fixtures.js';
4
5
  const LAWA_SITE_SCHEMA = z.object({
5
6
  Id: z.number(),
@@ -48,10 +49,7 @@ export function parseLawaRiverQualitySites(payload) {
48
49
  * @returns Monitoring site records, excluding region boundary rows.
49
50
  */
50
51
  export async function fetchLawaRiverQualitySites(fetchImpl = globalThis.fetch) {
51
- const response = await fetchImpl('https://www.lawa.org.nz/umbraco/api/mapservice/RiverQualitySites');
52
- if (!response.ok) {
53
- throw new NzSourceApiError('LAWA', `HTTP ${response.status}`);
54
- }
52
+ const response = await httpGet('LAWA', 'https://www.lawa.org.nz/umbraco/api/mapservice/RiverQualitySites', { fetchImpl: fetchImpl });
55
53
  return parseLawaRiverQualitySites(await response.json());
56
54
  }
57
55
  /** LAWA adapter: river quality monitoring sites, keyless. */
package/dist/lawa.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lawa.js","sourceRoot":"","sources":["../src/lawa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAgBhD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC9B,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI;SACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;SACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,kEAAkE,CACnE,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,0BAA0B,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,WAAW,GAA0C;IAChE,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,uEAAuE;IACpF,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC;IACtE,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,GAAG,EAAE,CAChB,0BAA0B,CAAC,eAAe,CAAC,0CAA0C,CAAC,CAAC;CAC1F,CAAC"}
1
+ {"version":3,"file":"lawa.js","sourceRoot":"","sources":["../src/lawa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAgBhD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC9B,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI;SACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;SACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,MAAM,EACN,kEAAkE,EAClE,EAAE,SAAS,EAAE,SAAS,EAAE,CACzB,CAAC;IACF,OAAO,0BAA0B,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,WAAW,GAA0C;IAChE,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,uEAAuE;IACpF,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC;IACtE,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,GAAG,EAAE,CAChB,0BAA0B,CAAC,eAAe,CAAC,0CAA0C,CAAC,CAAC;CAC1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"linz.d.ts","sourceRoot":"","sources":["../src/linz.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAUD,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAU7D;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAAO,GACrE,OAAO,CAAC,SAAS,EAAE,CAAC,CAStB;AAED,qDAAqD;AACrD,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,SAAS,EAAE,CAWlD,CAAC"}
1
+ {"version":3,"file":"linz.d.ts","sourceRoot":"","sources":["../src/linz.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAUD,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAU7D;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAAO,GACrE,OAAO,CAAC,SAAS,EAAE,CAAC,CAQtB;AAED,qDAAqD;AACrD,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,SAAS,EAAE,CAYlD,CAAC"}
package/dist/linz.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { NzSourceApiError, NzSourceParseError } from './errors.js';
2
+ import { NzSourceParseError } from './errors.js';
3
+ import { normalizeSourceApiKey } from './apiKey.js';
4
+ import { httpGet } from './http.js';
3
5
  import { readFixtureJson } from './fixtures.js';
4
6
  const LINZ_LAYER_SCHEMA = z.object({
5
7
  id: z.number(),
@@ -26,12 +28,11 @@ export function parseLinzLayers(payload) {
26
28
  */
27
29
  export async function searchLinzLayers(query, options = {}) {
28
30
  const url = `https://data.linz.govt.nz/services/api/v1/layers?search=${encodeURIComponent(query)}`;
29
- const response = await (options.fetchImpl ?? globalThis.fetch)(url, {
30
- ...(options.apiKey === undefined ? {} : { headers: { 'x-api-key': options.apiKey } }),
31
+ const apiKey = normalizeSourceApiKey(options.apiKey);
32
+ const response = await httpGet('LINZ', url, {
33
+ fetchImpl: options.fetchImpl,
34
+ ...(apiKey === undefined ? {} : { headers: { 'x-api-key': apiKey } }),
31
35
  });
32
- if (!response.ok) {
33
- throw new NzSourceApiError('LINZ', `HTTP ${response.status}`);
34
- }
35
36
  return parseLinzLayers(await response.json());
36
37
  }
37
38
  /** LINZ adapter: catalogue layer search, keyless. */
@@ -41,6 +42,7 @@ export const linzAdapter = {
41
42
  auth: 'none',
42
43
  description: 'Searches LINZ layers (property titles, parcels, boundaries).',
43
44
  fetchLive: (options) => searchLinzLayers('property', {
45
+ ...(options?.apiKey === undefined ? {} : { apiKey: options.apiKey }),
44
46
  ...(options?.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }),
45
47
  }),
46
48
  parse: parseLinzLayers,
package/dist/linz.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"linz.js","sourceRoot":"","sources":["../src/linz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAUhD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE/D,mEAAmE;AACnE,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,UAAoE,EAAE;IAEtE,MAAM,GAAG,GAAG,2DAA2D,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IACnG,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;QAClE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;KACtF,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,WAAW,GAA+B;IACrD,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,8DAA8D;IAC3E,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CACrB,gBAAgB,CAAC,UAAU,EAAE;QAC3B,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;KAC9E,CAAC;IACJ,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;CAC9E,CAAC"}
1
+ {"version":3,"file":"linz.js","sourceRoot":"","sources":["../src/linz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAUhD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE/D,mEAAmE;AACnE,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,UAAoE,EAAE;IAEtE,MAAM,GAAG,GAAG,2DAA2D,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IACnG,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;QAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;KACtE,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,WAAW,GAA+B;IACrD,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,8DAA8D;IAC3E,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CACrB,gBAAgB,CAAC,UAAU,EAAE;QAC3B,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACpE,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;KAC9E,CAAC;IACJ,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;CAC9E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lris.d.ts","sourceRoot":"","sources":["../src/lris.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAW7D;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,SAAS,EAAE,CAAC,CAOtB;AAED,6DAA6D;AAC7D,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,SAAS,EAAE,CAQlD,CAAC"}
1
+ {"version":3,"file":"lris.d.ts","sourceRoot":"","sources":["../src/lris.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAW7D;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,SAAS,EAAE,CAAC,CAItB;AAED,6DAA6D;AAC7D,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,SAAS,EAAE,CAQlD,CAAC"}
package/dist/lris.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { NzSourceApiError, NzSourceParseError } from './errors.js';
2
+ import { NzSourceParseError } from './errors.js';
3
+ import { httpGet } from './http.js';
3
4
  import { readFixtureJson } from './fixtures.js';
4
5
  const LRIS_LAYER_SCHEMA = z.object({
5
6
  id: z.number(),
@@ -36,10 +37,7 @@ export function parseLrisLayers(payload) {
36
37
  */
37
38
  export async function searchLrisLayers(query, fetchImpl = globalThis.fetch) {
38
39
  const url = `https://lris.scinfo.org.nz/services/api/v1/layers?search=${encodeURIComponent(query)}`;
39
- const response = await fetchImpl(url);
40
- if (!response.ok) {
41
- throw new NzSourceApiError('LRIS', `HTTP ${response.status}`);
42
- }
40
+ const response = await httpGet('LRIS', url, { fetchImpl: fetchImpl });
43
41
  return parseLrisLayers(await response.json());
44
42
  }
45
43
  /** LRIS adapter: Landcare Research layer search, keyless. */
package/dist/lris.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lris.js","sourceRoot":"","sources":["../src/lris.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAWhD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,YAAY,EAAE,KAAK,CAAC,aAAa;KAClC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,GAAG,GAAG,4DAA4D,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IACpG,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,WAAW,GAA+B;IACrD,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mEAAmE;IAChF,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;IACpE,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,wCAAwC,CAAC,CAAC;CAC9F,CAAC"}
1
+ {"version":3,"file":"lris.js","sourceRoot":"","sources":["../src/lris.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAWhD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,YAAY,EAAE,KAAK,CAAC,aAAa;KAClC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,GAAG,GAAG,4DAA4D,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IACpG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,OAAO,eAAe,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,WAAW,GAA+B;IACrD,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mEAAmE;IAChF,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;IACpE,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,wCAAwC,CAAC,CAAC;CAC9F,CAAC"}
package/dist/mfe.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mfe.d.ts","sourceRoot":"","sources":["../src/mfe.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,mDAAmD;AACnD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAWD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,CAW3D;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,QAAQ,EAAE,CAAC,CAOrB;AAED,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE,CAQhD,CAAC"}
1
+ {"version":3,"file":"mfe.d.ts","sourceRoot":"","sources":["../src/mfe.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,mDAAmD;AACnD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAWD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,CAW3D;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,QAAQ,EAAE,CAAC,CAIrB;AAED,uEAAuE;AACvE,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE,CAQhD,CAAC"}
package/dist/mfe.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { NzSourceApiError, NzSourceParseError } from './errors.js';
2
+ import { NzSourceParseError } from './errors.js';
3
+ import { httpGet } from './http.js';
3
4
  import { readFixtureJson } from './fixtures.js';
4
5
  const MFE_LAYER_SCHEMA = z.object({
5
6
  id: z.number(),
@@ -36,10 +37,7 @@ export function parseMfeLayers(payload) {
36
37
  */
37
38
  export async function searchMfeLayers(query, fetchImpl = globalThis.fetch) {
38
39
  const url = `https://data.mfe.govt.nz/services/api/v1/layers?search=${encodeURIComponent(query)}`;
39
- const response = await fetchImpl(url);
40
- if (!response.ok) {
41
- throw new NzSourceApiError('MfE', `HTTP ${response.status}`);
42
- }
40
+ const response = await httpGet('MfE', url, { fetchImpl: fetchImpl });
43
41
  return parseMfeLayers(await response.json());
44
42
  }
45
43
  /** MfE adapter: Ministry for the Environment layer search, keyless. */
package/dist/mfe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mfe.js","sourceRoot":"","sources":["../src/mfe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAWhD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,YAAY,EAAE,KAAK,CAAC,aAAa;KAClC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,GAAG,GAAG,0DAA0D,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IAClG,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CAAC,KAAK,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,sEAAsE;IACnF,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;IACpE,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,wCAAwC,CAAC,CAAC;CAC7F,CAAC"}
1
+ {"version":3,"file":"mfe.js","sourceRoot":"","sources":["../src/mfe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAWhD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,YAAY,EAAE,KAAK,CAAC,aAAa;KAClC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,GAAG,GAAG,0DAA0D,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IAClG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACrE,OAAO,cAAc,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,sEAAsE;IACnF,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;IACpE,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,wCAAwC,CAAC,CAAC;CAC7F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nzor.d.ts","sourceRoot":"","sources":["../src/nzor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,6CAA6C;AAC7C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAOD,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CA0BhE;AAED,2DAA2D;AAC3D,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED,mDAAmD;AACnD,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAQvD,CAAC"}
1
+ {"version":3,"file":"nzor.d.ts","sourceRoot":"","sources":["../src/nzor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,6CAA6C;AAC7C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAOD,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CA0BhE;AAED,2DAA2D;AAC3D,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,gBAAgB,CAAC,CAI3B;AAED,mDAAmD;AACnD,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAQvD,CAAC"}
package/dist/nzor.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { XMLParser } from 'fast-xml-parser';
2
- import { NzSourceApiError, NzSourceParseError } from './errors.js';
2
+ import { NzSourceParseError } from './errors.js';
3
+ import { httpGet } from './http.js';
3
4
  import { readFixtureText } from './fixtures.js';
4
5
  const NZOR_XML_PARSER = new XMLParser({
5
6
  ignoreAttributes: false,
@@ -34,10 +35,7 @@ export function parseNzorNames(payload) {
34
35
  /** Searches the NZ Organisms Register. Keyless XML API. */
35
36
  export async function searchNzorNames(query, fetchImpl = globalThis.fetch) {
36
37
  const url = `https://data.nzor.org.nz/names?q=${encodeURIComponent(query)}`;
37
- const response = await fetchImpl(url);
38
- if (!response.ok) {
39
- throw new NzSourceApiError('NZOR', `HTTP ${response.status}`);
40
- }
38
+ const response = await httpGet('NZOR', url, { fetchImpl: fetchImpl });
41
39
  return parseNzorNames(await response.text());
42
40
  }
43
41
  /** NZOR adapter: organism name search, keyless. */
package/dist/nzor.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nzor.js","sourceRoot":"","sources":["../src/nzor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nzor.js","sourceRoot":"","sources":["../src/nzor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAgBhD,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC;IACpC,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAE3C,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;IACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,QAAQ,GAAI,SAA4C,EAAE,IAAI,IAAI,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1E,MAAM,IAAI,GAAG,GAA6D,CAAC;QAC3E,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;YACzB,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,YAAqC,UAAU,CAAC,KAAK;IAErD,MAAM,GAAG,GAAG,oCAAoC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,OAAO,cAAc,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAoC;IAC1D,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,2DAA2D;IACxE,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;IACnE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;CAC1E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nzta.d.ts","sourceRoot":"","sources":["../src/nzta.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAsBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAkB/E;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAQ/B;AAED,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,kBAAkB,EAAE,CAS3D,CAAC"}
1
+ {"version":3,"file":"nzta.d.ts","sourceRoot":"","sources":["../src/nzta.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAsBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAkB/E;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAM/B;AAED,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,kBAAkB,EAAE,CAS3D,CAAC"}
package/dist/nzta.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { NzSourceApiError, NzSourceParseError } from './errors.js';
2
+ import { NzSourceParseError } from './errors.js';
3
+ import { httpGet } from './http.js';
3
4
  import { readFixtureJson } from './fixtures.js';
4
5
  const NZTA_HOTSPOT_SCHEMA = z.object({
5
6
  type: z.literal('Feature'),
@@ -53,12 +54,10 @@ export function parseNztaHolidayHotspots(payload) {
53
54
  * @returns Holiday hotspot records with holiday, region, and coordinates.
54
55
  */
55
56
  export async function fetchNztaHolidayHotspots(fetchImpl = globalThis.fetch) {
56
- const response = await fetchImpl('https://www.journeys.nzta.govt.nz/api/hotspots', {
57
+ const response = await httpGet('Waka Kotahi', 'https://www.journeys.nzta.govt.nz/api/hotspots', {
58
+ fetchImpl: fetchImpl,
57
59
  headers: { Accept: 'application/json' },
58
60
  });
59
- if (!response.ok) {
60
- throw new NzSourceApiError('Waka Kotahi', `HTTP ${response.status}`);
61
- }
62
61
  return parseNztaHolidayHotspots(await response.json());
63
62
  }
64
63
  /** Waka Kotahi adapter: holiday journey hotspots, keyless. */
package/dist/nzta.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nzta.js","sourceRoot":"","sources":["../src/nzta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nzta.js","sourceRoot":"","sources":["../src/nzta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { NzDataAdapter } from './types.js';
2
+ /** Registry id for the Waka Kotahi (NZTA) open data adapter. */
3
+ export declare const NZTA_OPEN_DATA_SOURCE_ID = "nzta-open-data";
4
+ /** One downloadable representation of a Waka Kotahi open data dataset. */
5
+ export interface NztaOpenDataDistribution {
6
+ title: string;
7
+ format: string;
8
+ mediaType: string;
9
+ accessUrl: string;
10
+ }
11
+ /** One dataset in the Waka Kotahi (NZTA) open data DCAT 1.1 catalogue. */
12
+ export interface NztaOpenDataDataset {
13
+ identifier: string;
14
+ title: string;
15
+ description: string;
16
+ landingPage: string;
17
+ keywords: string[];
18
+ issued: string;
19
+ modified: string;
20
+ publisher: string;
21
+ contactName: string;
22
+ contactEmail: string;
23
+ license: string;
24
+ themes: string[];
25
+ spatial: string;
26
+ distributions: NztaOpenDataDistribution[];
27
+ }
28
+ /** The Waka Kotahi open data catalogue: dataset count plus the rows. */
29
+ export interface NztaOpenDataCatalogue {
30
+ count: number;
31
+ datasets: NztaOpenDataDataset[];
32
+ }
33
+ /**
34
+ * Parses a Waka Kotahi (NZTA) open data DCAT 1.1 catalogue payload.
35
+ *
36
+ * @param payload - Raw JSON from the NZTA DCAT US 1.1 catalogue feed.
37
+ * @returns Catalogue datasets with their distributions and licence details.
38
+ */
39
+ export declare function parseNztaOpenDataCatalogue(payload: unknown): NztaOpenDataCatalogue;
40
+ /**
41
+ * Fetches the Waka Kotahi (NZTA) open data DCAT 1.1 catalogue feed. Keyless.
42
+ * Falls back to a committed fixture when the API is unreachable.
43
+ *
44
+ * @param fetchImpl - Fetch implementation override for tests.
45
+ * @returns Catalogue datasets with their distributions and licence details.
46
+ */
47
+ export declare function fetchNztaOpenDataCatalogue(fetchImpl?: typeof globalThis.fetch): Promise<NztaOpenDataCatalogue>;
48
+ /** Waka Kotahi (NZTA) adapter: open data hub catalogue, keyless. */
49
+ export declare const nztaOpenDataAdapter: NzDataAdapter<NztaOpenDataCatalogue>;
50
+ //# sourceMappingURL=nztaOpenData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nztaOpenData.d.ts","sourceRoot":"","sources":["../src/nztaOpenData.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,gEAAgE;AAChE,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AAEzD,0EAA0E;AAC1E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,wBAAwB,EAAE,CAAC;CAC3C;AAED,wEAAwE;AACxE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAoDD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,qBAAqB,CA2BlF;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAQpE,CAAC"}