@bikefinder/api-client 0.0.0-stage → 0.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.
- package/README.md +109 -2
- package/dist/errors.d.ts +4 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +7 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/client/client.gen.d.ts +3 -0
- package/dist/generated/client/client.gen.d.ts.map +1 -0
- package/dist/generated/client/client.gen.js +218 -0
- package/dist/generated/client/client.gen.js.map +1 -0
- package/dist/generated/client/index.d.ts +11 -0
- package/dist/generated/client/index.d.ts.map +1 -0
- package/dist/generated/client/index.js +7 -0
- package/dist/generated/client/index.js.map +1 -0
- package/dist/generated/client/types.gen.d.ts +121 -0
- package/dist/generated/client/types.gen.d.ts.map +1 -0
- package/dist/generated/client/types.gen.js +3 -0
- package/dist/generated/client/types.gen.js.map +1 -0
- package/dist/generated/client/utils.gen.d.ts +38 -0
- package/dist/generated/client/utils.gen.d.ts.map +1 -0
- package/dist/generated/client/utils.gen.js +232 -0
- package/dist/generated/client/utils.gen.js.map +1 -0
- package/dist/generated/client.gen.d.ts +13 -0
- package/dist/generated/client.gen.d.ts.map +1 -0
- package/dist/generated/client.gen.js +4 -0
- package/dist/generated/client.gen.js.map +1 -0
- package/dist/generated/core/auth.gen.d.ts +26 -0
- package/dist/generated/core/auth.gen.d.ts.map +1 -0
- package/dist/generated/core/auth.gen.js +15 -0
- package/dist/generated/core/auth.gen.js.map +1 -0
- package/dist/generated/core/bodySerializer.gen.d.ts +26 -0
- package/dist/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/generated/core/bodySerializer.gen.js +58 -0
- package/dist/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/generated/core/params.gen.d.ts +44 -0
- package/dist/generated/core/params.gen.d.ts.map +1 -0
- package/dist/generated/core/params.gen.js +113 -0
- package/dist/generated/core/params.gen.js.map +1 -0
- package/dist/generated/core/pathSerializer.gen.d.ts +34 -0
- package/dist/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/generated/core/pathSerializer.gen.js +115 -0
- package/dist/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/generated/core/queryKeySerializer.gen.js +100 -0
- package/dist/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/generated/core/serverSentEvents.gen.js +137 -0
- package/dist/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/generated/core/types.gen.d.ts +84 -0
- package/dist/generated/core/types.gen.d.ts.map +1 -0
- package/dist/generated/core/types.gen.js +3 -0
- package/dist/generated/core/types.gen.js.map +1 -0
- package/dist/generated/core/utils.gen.d.ts +20 -0
- package/dist/generated/core/utils.gen.d.ts.map +1 -0
- package/dist/generated/core/utils.gen.js +88 -0
- package/dist/generated/core/utils.gen.js.map +1 -0
- package/dist/generated/index.d.ts +3 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +3 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/sdk.gen.d.ts +51 -0
- package/dist/generated/sdk.gen.d.ts.map +1 -0
- package/dist/generated/sdk.gen.js +73 -0
- package/dist/generated/sdk.gen.js.map +1 -0
- package/dist/generated/types.gen.d.ts +152 -0
- package/dist/generated/types.gen.d.ts.map +1 -0
- package/dist/generated/types.gen.js +3 -0
- package/dist/generated/types.gen.js.map +1 -0
- package/dist/generated/zod.gen.d.ts +102 -0
- package/dist/generated/zod.gen.d.ts.map +1 -0
- package/dist/generated/zod.gen.js +73 -0
- package/dist/generated/zod.gen.js.map +1 -0
- package/dist/http-client.d.ts +3 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +29 -0
- package/dist/http-client.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/options.d.ts +13 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +40 -0
- package/dist/options.js.map +1 -0
- package/dist/realtime/api-stream-error.d.ts +8 -0
- package/dist/realtime/api-stream-error.d.ts.map +1 -0
- package/dist/realtime/api-stream-error.js +16 -0
- package/dist/realtime/api-stream-error.js.map +1 -0
- package/dist/realtime/watch-trackers.d.ts +10 -0
- package/dist/realtime/watch-trackers.d.ts.map +1 -0
- package/dist/realtime/watch-trackers.js +93 -0
- package/dist/realtime/watch-trackers.js.map +1 -0
- package/dist/transport.d.ts +4 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +84 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +58 -4
- package/src/errors.ts +6 -0
- package/src/generated/client/client.gen.ts +300 -0
- package/src/generated/client/index.ts +27 -0
- package/src/generated/client/types.gen.ts +238 -0
- package/src/generated/client/utils.gen.ts +337 -0
- package/src/generated/client.gen.ts +24 -0
- package/src/generated/core/auth.gen.ts +49 -0
- package/src/generated/core/bodySerializer.gen.ts +96 -0
- package/src/generated/core/params.gen.ts +188 -0
- package/src/generated/core/pathSerializer.gen.ts +186 -0
- package/src/generated/core/queryKeySerializer.gen.ts +134 -0
- package/src/generated/core/serverSentEvents.gen.ts +265 -0
- package/src/generated/core/types.gen.ts +126 -0
- package/src/generated/core/utils.gen.ts +146 -0
- package/src/generated/index.ts +29 -0
- package/src/generated/sdk.gen.ts +165 -0
- package/src/generated/types.gen.ts +179 -0
- package/src/generated/zod.gen.ts +85 -0
- package/src/http-client.ts +31 -0
- package/src/index.ts +22 -0
- package/src/options.ts +61 -0
- package/src/realtime/api-stream-error.ts +20 -0
- package/src/realtime/watch-trackers.ts +114 -0
- package/src/transport.ts +99 -0
- package/src/types.ts +5 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
+
import { serializeArrayParam, serializeObjectParam, serializePrimitiveParam, } from "./pathSerializer.gen.js";
|
|
3
|
+
export const PATH_PARAM_RE = /\{[^{}]+\}/g;
|
|
4
|
+
export const defaultPathSerializer = ({ path, url: _url, }) => {
|
|
5
|
+
let url = _url;
|
|
6
|
+
const matches = _url.match(PATH_PARAM_RE);
|
|
7
|
+
if (matches) {
|
|
8
|
+
for (const match of matches) {
|
|
9
|
+
let explode = false;
|
|
10
|
+
let name = match.substring(1, match.length - 1);
|
|
11
|
+
let style = "simple";
|
|
12
|
+
if (name.endsWith("*")) {
|
|
13
|
+
explode = true;
|
|
14
|
+
name = name.substring(0, name.length - 1);
|
|
15
|
+
}
|
|
16
|
+
if (name.startsWith(".")) {
|
|
17
|
+
name = name.substring(1);
|
|
18
|
+
style = "label";
|
|
19
|
+
}
|
|
20
|
+
else if (name.startsWith(";")) {
|
|
21
|
+
name = name.substring(1);
|
|
22
|
+
style = "matrix";
|
|
23
|
+
}
|
|
24
|
+
const value = path[name];
|
|
25
|
+
if (value === undefined || value === null) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (Array.isArray(value)) {
|
|
29
|
+
url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (typeof value === "object") {
|
|
33
|
+
url = url.replace(match, serializeObjectParam({
|
|
34
|
+
explode,
|
|
35
|
+
name,
|
|
36
|
+
style,
|
|
37
|
+
value: value,
|
|
38
|
+
valueOnly: true,
|
|
39
|
+
}));
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (style === "matrix") {
|
|
43
|
+
url = url.replace(match, `;${serializePrimitiveParam({
|
|
44
|
+
name,
|
|
45
|
+
value: value,
|
|
46
|
+
})}`);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const replaceValue = encodeURIComponent(style === "label" ? `.${value}` : value);
|
|
50
|
+
url = url.replace(match, replaceValue);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return url;
|
|
54
|
+
};
|
|
55
|
+
export const getUrl = ({ baseUrl, path, query, querySerializer, url: _url, }) => {
|
|
56
|
+
const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
|
|
57
|
+
let url = (baseUrl ?? "") + pathUrl;
|
|
58
|
+
if (path) {
|
|
59
|
+
url = defaultPathSerializer({ path, url });
|
|
60
|
+
}
|
|
61
|
+
let search = query ? querySerializer(query) : "";
|
|
62
|
+
if (search.startsWith("?")) {
|
|
63
|
+
search = search.substring(1);
|
|
64
|
+
}
|
|
65
|
+
if (search) {
|
|
66
|
+
url += `?${search}`;
|
|
67
|
+
}
|
|
68
|
+
return url;
|
|
69
|
+
};
|
|
70
|
+
export function getValidRequestBody(options) {
|
|
71
|
+
const hasBody = options.body !== undefined;
|
|
72
|
+
const isSerializedBody = hasBody && options.bodySerializer;
|
|
73
|
+
if (isSerializedBody) {
|
|
74
|
+
if ("serializedBody" in options) {
|
|
75
|
+
const hasSerializedBody = options.serializedBody !== undefined && options.serializedBody !== "";
|
|
76
|
+
return hasSerializedBody ? options.serializedBody : null;
|
|
77
|
+
}
|
|
78
|
+
// not all clients implement a serializedBody property (i.e., client-axios)
|
|
79
|
+
return options.body !== "" ? options.body : null;
|
|
80
|
+
}
|
|
81
|
+
// plain/text body
|
|
82
|
+
if (hasBody) {
|
|
83
|
+
return options.body;
|
|
84
|
+
}
|
|
85
|
+
// no body was provided
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=utils.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.gen.js","sourceRoot":"","sources":["../../../src/generated/core/utils.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { BikeFinderSdk, type Options } from "./sdk.gen.js";
|
|
2
|
+
export type { ClientOptions, GetHealthData, GetHealthResponse, GetHealthResponses, GetTrackerData, GetTrackerError, GetTrackerErrors, GetTrackerResponse, GetTrackerResponses, HealthStatus, ListTrackersData, ListTrackersError, ListTrackersErrors, ListTrackersResponse, ListTrackersResponses, ProblemDetails, SubscribeTrackersData, SubscribeTrackersError, SubscribeTrackersErrors, SubscribeTrackersResponse, SubscribeTrackersResponses, TrackerPage, TrackerSummary, TrackingMode, } from "./types.gen.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EACV,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,WAAW,EACX,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Client, ClientMeta, Options as Options2, RequestResult, ServerSentEventsResult, TDataShape } from "./client/index.js";
|
|
2
|
+
import type { GetHealthData, GetHealthResponses, GetTrackerData, GetTrackerErrors, GetTrackerResponses, ListTrackersData, ListTrackersErrors, ListTrackersResponses, SubscribeTrackersData, SubscribeTrackersResponse, SubscribeTrackersResponses } from "./types.gen.js";
|
|
3
|
+
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
|
|
4
|
+
/**
|
|
5
|
+
* You can provide a client instance returned by `createClient()` instead of
|
|
6
|
+
* individual options. This might be also useful if you want to implement a
|
|
7
|
+
* custom client.
|
|
8
|
+
*/
|
|
9
|
+
client?: Client;
|
|
10
|
+
/**
|
|
11
|
+
* You can pass arbitrary values through the `meta` object. This can be
|
|
12
|
+
* used to access values that aren't defined as part of the SDK function.
|
|
13
|
+
*/
|
|
14
|
+
meta?: keyof ClientMeta extends never ? Record<string, unknown> : ClientMeta;
|
|
15
|
+
};
|
|
16
|
+
declare class HeyApiClient {
|
|
17
|
+
protected client: Client;
|
|
18
|
+
constructor(args?: {
|
|
19
|
+
client?: Client;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
declare class HeyApiRegistry<T> {
|
|
23
|
+
private readonly defaultKey;
|
|
24
|
+
private readonly instances;
|
|
25
|
+
get(key?: string): T;
|
|
26
|
+
set(value: T, key?: string): void;
|
|
27
|
+
}
|
|
28
|
+
export declare class BikeFinderSdk extends HeyApiClient {
|
|
29
|
+
static readonly __registry: HeyApiRegistry<BikeFinderSdk>;
|
|
30
|
+
constructor(args?: {
|
|
31
|
+
client?: Client;
|
|
32
|
+
key?: string;
|
|
33
|
+
});
|
|
34
|
+
getHealth<ThrowOnError extends boolean = false>(options?: Options<GetHealthData, ThrowOnError>): RequestResult<GetHealthResponses, unknown, ThrowOnError>;
|
|
35
|
+
/**
|
|
36
|
+
* List the caller's active trackers
|
|
37
|
+
*/
|
|
38
|
+
listTrackers<ThrowOnError extends boolean = false>(options?: Options<ListTrackersData, ThrowOnError>): RequestResult<ListTrackersResponses, ListTrackersErrors, ThrowOnError>;
|
|
39
|
+
/**
|
|
40
|
+
* Subscribe to the caller's tracker page
|
|
41
|
+
*
|
|
42
|
+
* SSE. snapshot events contain a TrackerPage JSON payload; keepalive events contain null. Reconnect with a fresh bearer token after closure. Each connection lasts at most 15 minutes and never beyond token expiry. Every reconnect starts with a complete snapshot; Last-Event-ID is not used.
|
|
43
|
+
*/
|
|
44
|
+
subscribeTrackers<ThrowOnError extends boolean = false>(options?: Options<SubscribeTrackersData, ThrowOnError, SubscribeTrackersResponse>): Promise<ServerSentEventsResult<SubscribeTrackersResponses>>;
|
|
45
|
+
/**
|
|
46
|
+
* Get an actively shared tracker
|
|
47
|
+
*/
|
|
48
|
+
getTracker<ThrowOnError extends boolean = false>(options: Options<GetTrackerData, ThrowOnError>): RequestResult<GetTrackerResponses, GetTrackerErrors, ThrowOnError>;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=sdk.gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.gen.d.ts","sourceRoot":"","sources":["../../src/generated/sdk.gen.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,OAAO,IAAI,QAAQ,EACnB,aAAa,EACb,sBAAsB,EACtB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EAErB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AAQxB,MAAM,MAAM,OAAO,CACjB,KAAK,SAAS,UAAU,GAAG,UAAU,EACrC,YAAY,SAAS,OAAO,GAAG,OAAO,EACtC,SAAS,GAAG,OAAO,IACjB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,UAAU,SAAS,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC;CAC9E,CAAC;AAEF,cAAM,YAAY;IAChB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEb,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAGvC;AAED,cAAM,cAAc,CAAC,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IAEvD,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC;IAUpB,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;CAGlC;AAED,qBAAa,aAAc,SAAQ,YAAY;IAC7C,gBAAuB,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,CAC1B;gBAE1B,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;IAK7C,SAAS,CAAC,YAAY,SAAS,OAAO,GAAG,KAAK,EACnD,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,GAC7C,aAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE,YAAY,CAAC;IAa3D;;OAEG;IACI,YAAY,CAAC,YAAY,SAAS,OAAO,GAAG,KAAK,EACtD,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAChD,aAAa,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,CAAC;IAczE;;;;OAIG;IACI,iBAAiB,CAAC,YAAY,SAAS,OAAO,GAAG,KAAK,EAC3D,OAAO,CAAC,EAAE,OAAO,CACf,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,CAC1B,GACA,OAAO,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,CAAC;IAc9D;;OAEG;IACI,UAAU,CAAC,YAAY,SAAS,OAAO,GAAG,KAAK,EACpD,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,GAC7C,aAAa,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,YAAY,CAAC;CAatE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
+
import { client } from "./client.gen.js";
|
|
3
|
+
import { zGetHealthResponse, zGetTrackerResponse, zListTrackersResponse, zSubscribeTrackersResponse, } from "./zod.gen.js";
|
|
4
|
+
class HeyApiClient {
|
|
5
|
+
client;
|
|
6
|
+
constructor(args) {
|
|
7
|
+
this.client = args?.client ?? client;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
class HeyApiRegistry {
|
|
11
|
+
defaultKey = "default";
|
|
12
|
+
instances = new Map();
|
|
13
|
+
get(key) {
|
|
14
|
+
const instance = this.instances.get(key ?? this.defaultKey);
|
|
15
|
+
if (!instance) {
|
|
16
|
+
throw new Error(`No SDK client found. Create one with "new BikeFinderSdk()" to fix this error.`);
|
|
17
|
+
}
|
|
18
|
+
return instance;
|
|
19
|
+
}
|
|
20
|
+
set(value, key) {
|
|
21
|
+
this.instances.set(key ?? this.defaultKey, value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class BikeFinderSdk extends HeyApiClient {
|
|
25
|
+
static __registry = new HeyApiRegistry();
|
|
26
|
+
constructor(args) {
|
|
27
|
+
super(args);
|
|
28
|
+
BikeFinderSdk.__registry.set(this, args?.key);
|
|
29
|
+
}
|
|
30
|
+
getHealth(options) {
|
|
31
|
+
return (options?.client ?? this.client).get({
|
|
32
|
+
responseValidator: async (data) => await zGetHealthResponse.parseAsync(data),
|
|
33
|
+
url: "/health",
|
|
34
|
+
...options,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* List the caller's active trackers
|
|
39
|
+
*/
|
|
40
|
+
listTrackers(options) {
|
|
41
|
+
return (options?.client ?? this.client).get({
|
|
42
|
+
responseValidator: async (data) => await zListTrackersResponse.parseAsync(data),
|
|
43
|
+
security: [{ scheme: "bearer", type: "http" }],
|
|
44
|
+
url: "/v1/trackers",
|
|
45
|
+
...options,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Subscribe to the caller's tracker page
|
|
50
|
+
*
|
|
51
|
+
* SSE. snapshot events contain a TrackerPage JSON payload; keepalive events contain null. Reconnect with a fresh bearer token after closure. Each connection lasts at most 15 minutes and never beyond token expiry. Every reconnect starts with a complete snapshot; Last-Event-ID is not used.
|
|
52
|
+
*/
|
|
53
|
+
subscribeTrackers(options) {
|
|
54
|
+
return (options?.client ?? this.client).sse.get({
|
|
55
|
+
responseValidator: async (data) => await zSubscribeTrackersResponse.parseAsync(data),
|
|
56
|
+
security: [{ scheme: "bearer", type: "http" }],
|
|
57
|
+
url: "/v1/trackers/stream",
|
|
58
|
+
...options,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get an actively shared tracker
|
|
63
|
+
*/
|
|
64
|
+
getTracker(options) {
|
|
65
|
+
return (options.client ?? this.client).get({
|
|
66
|
+
responseValidator: async (data) => await zGetTrackerResponse.parseAsync(data),
|
|
67
|
+
security: [{ scheme: "bearer", type: "http" }],
|
|
68
|
+
url: "/v1/trackers/{trackerId}",
|
|
69
|
+
...options,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=sdk.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.gen.js","sourceRoot":"","sources":["../../src/generated/sdk.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
export type ClientOptions = {
|
|
2
|
+
baseUrl: `${string}://${string}` | (string & {});
|
|
3
|
+
};
|
|
4
|
+
export type HealthStatus = {
|
|
5
|
+
status: string;
|
|
6
|
+
};
|
|
7
|
+
export type ProblemDetails = {
|
|
8
|
+
type?: null | string;
|
|
9
|
+
title?: null | string;
|
|
10
|
+
status?: null | number;
|
|
11
|
+
detail?: null | string;
|
|
12
|
+
instance?: null | string;
|
|
13
|
+
};
|
|
14
|
+
export type TrackerPage = {
|
|
15
|
+
items: Array<TrackerSummary>;
|
|
16
|
+
nextCursor: null | string;
|
|
17
|
+
};
|
|
18
|
+
export type TrackerSummary = {
|
|
19
|
+
id: string;
|
|
20
|
+
nickname: null | string;
|
|
21
|
+
requestedMode: null | TrackingMode;
|
|
22
|
+
subscriptionActive: null | boolean;
|
|
23
|
+
};
|
|
24
|
+
export type TrackingMode = "standard" | "security" | "tracking";
|
|
25
|
+
export type GetHealthData = {
|
|
26
|
+
body?: never;
|
|
27
|
+
path?: never;
|
|
28
|
+
query?: never;
|
|
29
|
+
url: "/health";
|
|
30
|
+
};
|
|
31
|
+
export type GetHealthResponses = {
|
|
32
|
+
/**
|
|
33
|
+
* OK
|
|
34
|
+
*/
|
|
35
|
+
200: HealthStatus;
|
|
36
|
+
};
|
|
37
|
+
export type GetHealthResponse = GetHealthResponses[keyof GetHealthResponses];
|
|
38
|
+
export type ListTrackersData = {
|
|
39
|
+
body?: never;
|
|
40
|
+
path?: never;
|
|
41
|
+
query?: {
|
|
42
|
+
cursor?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Page size, from 1 to 100. Defaults to 50.
|
|
45
|
+
*/
|
|
46
|
+
limit?: number;
|
|
47
|
+
};
|
|
48
|
+
url: "/v1/trackers";
|
|
49
|
+
};
|
|
50
|
+
export type ListTrackersErrors = {
|
|
51
|
+
/**
|
|
52
|
+
* Bad Request
|
|
53
|
+
*/
|
|
54
|
+
400: ProblemDetails;
|
|
55
|
+
/**
|
|
56
|
+
* Unauthorized
|
|
57
|
+
*/
|
|
58
|
+
401: ProblemDetails;
|
|
59
|
+
/**
|
|
60
|
+
* Internal Server Error
|
|
61
|
+
*/
|
|
62
|
+
500: ProblemDetails;
|
|
63
|
+
/**
|
|
64
|
+
* Service Unavailable
|
|
65
|
+
*/
|
|
66
|
+
503: ProblemDetails;
|
|
67
|
+
};
|
|
68
|
+
export type ListTrackersError = ListTrackersErrors[keyof ListTrackersErrors];
|
|
69
|
+
export type ListTrackersResponses = {
|
|
70
|
+
/**
|
|
71
|
+
* OK
|
|
72
|
+
*/
|
|
73
|
+
200: TrackerPage;
|
|
74
|
+
};
|
|
75
|
+
export type ListTrackersResponse = ListTrackersResponses[keyof ListTrackersResponses];
|
|
76
|
+
export type SubscribeTrackersData = {
|
|
77
|
+
body?: never;
|
|
78
|
+
path?: never;
|
|
79
|
+
query?: {
|
|
80
|
+
cursor?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Page size, from 1 to 100. Defaults to 50.
|
|
83
|
+
*/
|
|
84
|
+
limit?: number;
|
|
85
|
+
};
|
|
86
|
+
url: "/v1/trackers/stream";
|
|
87
|
+
};
|
|
88
|
+
export type SubscribeTrackersErrors = {
|
|
89
|
+
/**
|
|
90
|
+
* Bad Request
|
|
91
|
+
*/
|
|
92
|
+
400: ProblemDetails;
|
|
93
|
+
/**
|
|
94
|
+
* Unauthorized
|
|
95
|
+
*/
|
|
96
|
+
401: ProblemDetails;
|
|
97
|
+
/**
|
|
98
|
+
* Internal Server Error
|
|
99
|
+
*/
|
|
100
|
+
500: ProblemDetails;
|
|
101
|
+
/**
|
|
102
|
+
* Service Unavailable
|
|
103
|
+
*/
|
|
104
|
+
503: ProblemDetails;
|
|
105
|
+
};
|
|
106
|
+
export type SubscribeTrackersError = SubscribeTrackersErrors[keyof SubscribeTrackersErrors];
|
|
107
|
+
export type SubscribeTrackersResponses = {
|
|
108
|
+
/**
|
|
109
|
+
* OK
|
|
110
|
+
*/
|
|
111
|
+
200: TrackerPage | null;
|
|
112
|
+
};
|
|
113
|
+
export type SubscribeTrackersResponse = SubscribeTrackersResponses[keyof SubscribeTrackersResponses];
|
|
114
|
+
export type GetTrackerData = {
|
|
115
|
+
body?: never;
|
|
116
|
+
path: {
|
|
117
|
+
trackerId: string;
|
|
118
|
+
};
|
|
119
|
+
query?: never;
|
|
120
|
+
url: "/v1/trackers/{trackerId}";
|
|
121
|
+
};
|
|
122
|
+
export type GetTrackerErrors = {
|
|
123
|
+
/**
|
|
124
|
+
* Bad Request
|
|
125
|
+
*/
|
|
126
|
+
400: ProblemDetails;
|
|
127
|
+
/**
|
|
128
|
+
* Unauthorized
|
|
129
|
+
*/
|
|
130
|
+
401: ProblemDetails;
|
|
131
|
+
/**
|
|
132
|
+
* Not Found
|
|
133
|
+
*/
|
|
134
|
+
404: ProblemDetails;
|
|
135
|
+
/**
|
|
136
|
+
* Internal Server Error
|
|
137
|
+
*/
|
|
138
|
+
500: ProblemDetails;
|
|
139
|
+
/**
|
|
140
|
+
* Service Unavailable
|
|
141
|
+
*/
|
|
142
|
+
503: ProblemDetails;
|
|
143
|
+
};
|
|
144
|
+
export type GetTrackerError = GetTrackerErrors[keyof GetTrackerErrors];
|
|
145
|
+
export type GetTrackerResponses = {
|
|
146
|
+
/**
|
|
147
|
+
* OK
|
|
148
|
+
*/
|
|
149
|
+
200: TrackerSummary;
|
|
150
|
+
};
|
|
151
|
+
export type GetTrackerResponse = GetTrackerResponses[keyof GetTrackerResponses];
|
|
152
|
+
//# sourceMappingURL=types.gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.gen.d.ts","sourceRoot":"","sources":["../../src/generated/types.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.gen.js","sourceRoot":"","sources":["../../src/generated/types.gen.ts"],"names":[],"mappings":"AAAA,qDAAqD"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
export declare const zHealthStatus: z.ZodObject<{
|
|
3
|
+
status: z.ZodString;
|
|
4
|
+
}, z.core.$strip>;
|
|
5
|
+
export declare const zProblemDetails: z.ZodObject<{
|
|
6
|
+
type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
7
|
+
title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
8
|
+
status: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
|
|
9
|
+
detail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
10
|
+
instance: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export declare const zTrackingMode: z.ZodEnum<{
|
|
13
|
+
security: "security";
|
|
14
|
+
standard: "standard";
|
|
15
|
+
tracking: "tracking";
|
|
16
|
+
}>;
|
|
17
|
+
export declare const zTrackerSummary: z.ZodObject<{
|
|
18
|
+
id: z.ZodString;
|
|
19
|
+
nickname: z.ZodNullable<z.ZodString>;
|
|
20
|
+
requestedMode: z.ZodNullable<z.ZodEnum<{
|
|
21
|
+
security: "security";
|
|
22
|
+
standard: "standard";
|
|
23
|
+
tracking: "tracking";
|
|
24
|
+
}>>;
|
|
25
|
+
subscriptionActive: z.ZodNullable<z.ZodBoolean>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export declare const zTrackerPage: z.ZodObject<{
|
|
28
|
+
items: z.ZodArray<z.ZodObject<{
|
|
29
|
+
id: z.ZodString;
|
|
30
|
+
nickname: z.ZodNullable<z.ZodString>;
|
|
31
|
+
requestedMode: z.ZodNullable<z.ZodEnum<{
|
|
32
|
+
security: "security";
|
|
33
|
+
standard: "standard";
|
|
34
|
+
tracking: "tracking";
|
|
35
|
+
}>>;
|
|
36
|
+
subscriptionActive: z.ZodNullable<z.ZodBoolean>;
|
|
37
|
+
}, z.core.$strip>>;
|
|
38
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
/**
|
|
41
|
+
* OK
|
|
42
|
+
*/
|
|
43
|
+
export declare const zGetHealthResponse: z.ZodObject<{
|
|
44
|
+
status: z.ZodString;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
export declare const zListTrackersQuery: z.ZodObject<{
|
|
47
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
48
|
+
limit: z.ZodDefault<z.ZodOptional<z.ZodInt>>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
/**
|
|
51
|
+
* OK
|
|
52
|
+
*/
|
|
53
|
+
export declare const zListTrackersResponse: z.ZodObject<{
|
|
54
|
+
items: z.ZodArray<z.ZodObject<{
|
|
55
|
+
id: z.ZodString;
|
|
56
|
+
nickname: z.ZodNullable<z.ZodString>;
|
|
57
|
+
requestedMode: z.ZodNullable<z.ZodEnum<{
|
|
58
|
+
security: "security";
|
|
59
|
+
standard: "standard";
|
|
60
|
+
tracking: "tracking";
|
|
61
|
+
}>>;
|
|
62
|
+
subscriptionActive: z.ZodNullable<z.ZodBoolean>;
|
|
63
|
+
}, z.core.$strip>>;
|
|
64
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
export declare const zSubscribeTrackersQuery: z.ZodObject<{
|
|
67
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
68
|
+
limit: z.ZodDefault<z.ZodOptional<z.ZodInt>>;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
/**
|
|
71
|
+
* OK
|
|
72
|
+
*/
|
|
73
|
+
export declare const zSubscribeTrackersResponse: z.ZodNullable<z.ZodObject<{
|
|
74
|
+
items: z.ZodArray<z.ZodObject<{
|
|
75
|
+
id: z.ZodString;
|
|
76
|
+
nickname: z.ZodNullable<z.ZodString>;
|
|
77
|
+
requestedMode: z.ZodNullable<z.ZodEnum<{
|
|
78
|
+
security: "security";
|
|
79
|
+
standard: "standard";
|
|
80
|
+
tracking: "tracking";
|
|
81
|
+
}>>;
|
|
82
|
+
subscriptionActive: z.ZodNullable<z.ZodBoolean>;
|
|
83
|
+
}, z.core.$strip>>;
|
|
84
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
85
|
+
}, z.core.$strip>>;
|
|
86
|
+
export declare const zGetTrackerPath: z.ZodObject<{
|
|
87
|
+
trackerId: z.ZodString;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
/**
|
|
90
|
+
* OK
|
|
91
|
+
*/
|
|
92
|
+
export declare const zGetTrackerResponse: z.ZodObject<{
|
|
93
|
+
id: z.ZodString;
|
|
94
|
+
nickname: z.ZodNullable<z.ZodString>;
|
|
95
|
+
requestedMode: z.ZodNullable<z.ZodEnum<{
|
|
96
|
+
security: "security";
|
|
97
|
+
standard: "standard";
|
|
98
|
+
tracking: "tracking";
|
|
99
|
+
}>>;
|
|
100
|
+
subscriptionActive: z.ZodNullable<z.ZodBoolean>;
|
|
101
|
+
}, z.core.$strip>;
|
|
102
|
+
//# sourceMappingURL=zod.gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.gen.d.ts","sourceRoot":"","sources":["../../src/generated/zod.gen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,eAAO,MAAM,aAAa;;iBAExB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;iBAc1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;EAA+C,CAAC;AAE1E,eAAO,MAAM,eAAe;;;;;;;;;iBAK1B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;iBAGvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;iBAAgB,CAAC;AAEhD,eAAO,MAAM,kBAAkB;;;iBAQ7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;iBAAe,CAAC;AAElD,eAAO,MAAM,uBAAuB;;;iBAQlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;kBAA0B,CAAC;AAElE,eAAO,MAAM,eAAe;;iBAM1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;iBAAkB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
+
import * as z from "zod";
|
|
3
|
+
export const zHealthStatus = z.object({
|
|
4
|
+
status: z.string(),
|
|
5
|
+
});
|
|
6
|
+
export const zProblemDetails = z.object({
|
|
7
|
+
type: z.string().nullish(),
|
|
8
|
+
title: z.string().nullish(),
|
|
9
|
+
status: z
|
|
10
|
+
.int()
|
|
11
|
+
.min(-2147483648, {
|
|
12
|
+
error: "Invalid value: Expected int32 to be >= -2147483648",
|
|
13
|
+
})
|
|
14
|
+
.max(2147483647, {
|
|
15
|
+
error: "Invalid value: Expected int32 to be <= 2147483647",
|
|
16
|
+
})
|
|
17
|
+
.nullish(),
|
|
18
|
+
detail: z.string().nullish(),
|
|
19
|
+
instance: z.string().nullish(),
|
|
20
|
+
});
|
|
21
|
+
export const zTrackingMode = z.enum(["standard", "security", "tracking"]);
|
|
22
|
+
export const zTrackerSummary = z.object({
|
|
23
|
+
id: z.string(),
|
|
24
|
+
nickname: z.string().nullable(),
|
|
25
|
+
requestedMode: zTrackingMode.nullable(),
|
|
26
|
+
subscriptionActive: z.boolean().nullable(),
|
|
27
|
+
});
|
|
28
|
+
export const zTrackerPage = z.object({
|
|
29
|
+
items: z.array(zTrackerSummary),
|
|
30
|
+
nextCursor: z.string().nullable(),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* OK
|
|
34
|
+
*/
|
|
35
|
+
export const zGetHealthResponse = zHealthStatus;
|
|
36
|
+
export const zListTrackersQuery = z.object({
|
|
37
|
+
cursor: z
|
|
38
|
+
.string()
|
|
39
|
+
.min(1)
|
|
40
|
+
.max(128)
|
|
41
|
+
.regex(/^[A-Za-z0-9_-]+$/)
|
|
42
|
+
.optional(),
|
|
43
|
+
limit: z.int().gte(1).lte(100).optional().default(50),
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* OK
|
|
47
|
+
*/
|
|
48
|
+
export const zListTrackersResponse = zTrackerPage;
|
|
49
|
+
export const zSubscribeTrackersQuery = z.object({
|
|
50
|
+
cursor: z
|
|
51
|
+
.string()
|
|
52
|
+
.min(1)
|
|
53
|
+
.max(128)
|
|
54
|
+
.regex(/^[A-Za-z0-9_-]+$/)
|
|
55
|
+
.optional(),
|
|
56
|
+
limit: z.int().gte(1).lte(100).optional().default(50),
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* OK
|
|
60
|
+
*/
|
|
61
|
+
export const zSubscribeTrackersResponse = zTrackerPage.nullable();
|
|
62
|
+
export const zGetTrackerPath = z.object({
|
|
63
|
+
trackerId: z
|
|
64
|
+
.string()
|
|
65
|
+
.min(1)
|
|
66
|
+
.max(128)
|
|
67
|
+
.regex(/^[A-Za-z0-9_-]+$/),
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* OK
|
|
71
|
+
*/
|
|
72
|
+
export const zGetTrackerResponse = zTrackerSummary;
|
|
73
|
+
//# sourceMappingURL=zod.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.gen.js","sourceRoot":"","sources":["../../src/generated/zod.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG1D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,oDA0B9D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createClient } from "./generated/client/index.js";
|
|
2
|
+
import { createAuthenticatedFetch } from "./transport.js";
|
|
3
|
+
export function createHttpClient(options) {
|
|
4
|
+
const authenticatedFetch = createAuthenticatedFetch(options);
|
|
5
|
+
const client = createClient({
|
|
6
|
+
baseUrl: options.baseUrl,
|
|
7
|
+
redirect: "error",
|
|
8
|
+
credentials: "omit",
|
|
9
|
+
fetch: authenticatedFetch,
|
|
10
|
+
responseStyle: "fields",
|
|
11
|
+
});
|
|
12
|
+
client.interceptors.request.use((request, requestOptions) => {
|
|
13
|
+
// A per-call fetch would bypass authentication and transport policy.
|
|
14
|
+
if (requestOptions.fetch !== authenticatedFetch) {
|
|
15
|
+
throw new TypeError("Configure fetch on createBikeFinderClient, not individual requests.");
|
|
16
|
+
}
|
|
17
|
+
return request;
|
|
18
|
+
});
|
|
19
|
+
client.interceptors.error.use((error, response) => {
|
|
20
|
+
// Transport/auth/cancellation failures are exceptions, not HTTP Problem Details.
|
|
21
|
+
if (!response)
|
|
22
|
+
throw error;
|
|
23
|
+
if (response.ok)
|
|
24
|
+
throw new TypeError("The API returned an invalid response.");
|
|
25
|
+
return error;
|
|
26
|
+
});
|
|
27
|
+
return client;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,OAA8B;IAC7D,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,kBAAkB;QACzB,aAAa,EAAE,QAAQ;KACxB,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE;QAC1D,qEAAqE;QACrE,IAAI,cAAc,CAAC,KAAK,KAAK,kBAAkB,EAAE,CAAC;YAChD,MAAM,IAAI,SAAS,CACjB,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAChD,iFAAiF;QACjF,IAAI,CAAC,QAAQ;YAAE,MAAM,KAAK,CAAC;QAC3B,IAAI,QAAQ,CAAC,EAAE;YACb,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|