@izak0s/spacebring-api 1.1.0 → 1.2.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../node_modules/openapi-fetch/src/index.js","../src/error.ts","../src/core.ts","../src/generated/resources/altCurrencies.ts","../src/generated/resources/benefits.ts","../src/generated/resources/billing.ts","../src/generated/resources/community.ts","../src/generated/resources/contracts.ts","../src/generated/resources/discounts.ts","../src/generated/resources/events.ts","../src/generated/resources/feed.ts","../src/generated/resources/floors.ts","../src/generated/resources/guides.ts","../src/generated/resources/locations.ts","../src/generated/resources/networks.ts","../src/generated/resources/plans.ts","../src/generated/resources/registrations.ts","../src/generated/resources/resources.ts","../src/generated/resources/shop.ts","../src/generated/resources/subscriptions.ts","../src/generated/resources/support.ts","../src/generated/resources/transactions.ts","../src/generated/resources/visitors.ts","../src/generated/resources/index.ts","../src/client.ts"],"sourcesContent":["// settings & const\nconst PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\nconst supportsRequestInitExt = () => {\n return (\n typeof process === \"object\" &&\n Number.parseInt(process?.versions?.node?.substring(0, 2)) >= 18 &&\n process.versions.undici\n );\n};\n\n/**\n * Returns a cheap, non-cryptographically-secure random ID\n * Courtesy of @imranbarbhuiya (https://github.com/imranbarbhuiya)\n */\nexport function randomID() {\n return Math.random().toString(36).slice(2, 11);\n}\n\n/**\n * Create an openapi-fetch client.\n * @type {import(\"./index.js\").default}\n */\nexport default function createClient(clientOptions) {\n let {\n baseUrl = \"\",\n Request: CustomRequest = globalThis.Request,\n fetch: baseFetch = globalThis.fetch,\n querySerializer: globalQuerySerializer,\n bodySerializer: globalBodySerializer,\n pathSerializer: globalPathSerializer,\n headers: baseHeaders,\n requestInitExt = undefined,\n ...baseOptions\n } = { ...clientOptions };\n requestInitExt = supportsRequestInitExt() ? requestInitExt : undefined;\n baseUrl = removeTrailingSlash(baseUrl);\n const globalMiddlewares = [];\n\n /**\n * Per-request fetch (keeps settings created in createClient()\n * @param {T} url\n * @param {import('./index.js').FetchOptions<T>} fetchOptions\n */\n async function coreFetch(schemaPath, fetchOptions) {\n const {\n baseUrl: localBaseUrl,\n fetch = baseFetch,\n Request = CustomRequest,\n headers,\n params = {},\n parseAs = \"json\",\n querySerializer: requestQuerySerializer,\n bodySerializer = globalBodySerializer ?? defaultBodySerializer,\n pathSerializer: requestPathSerializer,\n body,\n middleware: requestMiddlewares = [],\n ...init\n } = fetchOptions || {};\n let finalBaseUrl = baseUrl;\n if (localBaseUrl) {\n finalBaseUrl = removeTrailingSlash(localBaseUrl) ?? baseUrl;\n }\n\n let querySerializer =\n typeof globalQuerySerializer === \"function\"\n ? globalQuerySerializer\n : createQuerySerializer(globalQuerySerializer);\n if (requestQuerySerializer) {\n querySerializer =\n typeof requestQuerySerializer === \"function\"\n ? requestQuerySerializer\n : createQuerySerializer({\n ...(typeof globalQuerySerializer === \"object\" ? globalQuerySerializer : {}),\n ...requestQuerySerializer,\n });\n }\n\n const pathSerializer = requestPathSerializer || globalPathSerializer || defaultPathSerializer;\n\n const serializedBody =\n body === undefined\n ? undefined\n : bodySerializer(\n body,\n // Note: we declare mergeHeaders() both here and below because it’s a bit of a chicken-or-egg situation:\n // bodySerializer() needs all headers so we aren’t dropping ones set by the user, however,\n // the result of this ALSO sets the lowest-priority content-type header. So we re-merge below,\n // setting the content-type at the very beginning to be overwritten.\n // Lastly, based on the way headers work, it’s not a simple “present-or-not” check becauase null intentionally un-sets headers.\n mergeHeaders(baseHeaders, headers, params.header),\n );\n const finalHeaders = mergeHeaders(\n // with no body, we should not to set Content-Type\n serializedBody === undefined ||\n // if serialized body is FormData; browser will correctly set Content-Type & boundary expression\n serializedBody instanceof FormData\n ? {}\n : {\n \"Content-Type\": \"application/json\",\n },\n baseHeaders,\n headers,\n params.header,\n );\n\n // Client level middleware take priority over request-level middleware\n const finalMiddlewares = [...globalMiddlewares, ...requestMiddlewares];\n\n const requestInit = {\n redirect: \"follow\",\n ...baseOptions,\n ...init,\n body: serializedBody,\n headers: finalHeaders,\n };\n\n let id;\n let options;\n let request = new Request(\n createFinalURL(schemaPath, { baseUrl: finalBaseUrl, params, querySerializer, pathSerializer }),\n requestInit,\n );\n let response;\n\n /** Add custom parameters to Request object */\n for (const key in init) {\n if (!(key in request)) {\n request[key] = init[key];\n }\n }\n\n if (finalMiddlewares.length) {\n id = randomID();\n\n // middleware (request)\n options = Object.freeze({\n baseUrl: finalBaseUrl,\n fetch,\n parseAs,\n querySerializer,\n bodySerializer,\n pathSerializer,\n });\n for (const m of finalMiddlewares) {\n if (m && typeof m === \"object\" && typeof m.onRequest === \"function\") {\n const result = await m.onRequest({\n request,\n schemaPath,\n params,\n options,\n id,\n });\n if (result) {\n if (result instanceof Request) {\n request = result;\n } else if (result instanceof Response) {\n response = result;\n break;\n } else {\n throw new Error(\"onRequest: must return new Request() or Response() when modifying the request\");\n }\n }\n }\n }\n }\n\n if (!response) {\n // fetch!\n try {\n response = await fetch(request, requestInitExt);\n } catch (error) {\n let errorAfterMiddleware = error;\n // middleware (error)\n // execute in reverse-array order (first priority gets last transform)\n if (finalMiddlewares.length) {\n for (let i = finalMiddlewares.length - 1; i >= 0; i--) {\n const m = finalMiddlewares[i];\n if (m && typeof m === \"object\" && typeof m.onError === \"function\") {\n const result = await m.onError({\n request,\n error: errorAfterMiddleware,\n schemaPath,\n params,\n options,\n id,\n });\n if (result) {\n // if error is handled by returning a response, skip remaining middleware\n if (result instanceof Response) {\n errorAfterMiddleware = undefined;\n response = result;\n break;\n }\n\n if (result instanceof Error) {\n errorAfterMiddleware = result;\n continue;\n }\n\n throw new Error(\"onError: must return new Response() or instance of Error\");\n }\n }\n }\n }\n\n // rethrow error if not handled by middleware\n if (errorAfterMiddleware) {\n throw errorAfterMiddleware;\n }\n }\n\n // middleware (response)\n // execute in reverse-array order (first priority gets last transform)\n if (finalMiddlewares.length) {\n for (let i = finalMiddlewares.length - 1; i >= 0; i--) {\n const m = finalMiddlewares[i];\n if (m && typeof m === \"object\" && typeof m.onResponse === \"function\") {\n const result = await m.onResponse({\n request,\n response,\n schemaPath,\n params,\n options,\n id,\n });\n if (result) {\n if (!(result instanceof Response)) {\n throw new Error(\"onResponse: must return new Response() when modifying the response\");\n }\n response = result;\n }\n }\n }\n }\n }\n\n const contentLength = response.headers.get(\"Content-Length\");\n // handle empty content\n if (\n response.status === 204 ||\n request.method === \"HEAD\" ||\n (contentLength === \"0\" && !response.headers.get(\"Transfer-Encoding\")?.includes(\"chunked\"))\n ) {\n return response.ok ? { data: undefined, response } : { error: undefined, response };\n }\n\n // parse response (falling back to .text() when necessary)\n if (response.ok) {\n const getResponseData = async () => {\n // if \"stream\", skip parsing entirely\n if (parseAs === \"stream\") {\n return response.body;\n }\n\n if (parseAs === \"json\" && !contentLength) {\n // use text() when no content-length is provided to avoid errors parsing empty bodies (200 with no content)\n const raw = await response.text();\n return raw ? JSON.parse(raw) : undefined;\n }\n\n return await response[parseAs]();\n };\n return { data: await getResponseData(), response };\n }\n\n // handle errors\n let error = await response.text();\n try {\n error = JSON.parse(error); // attempt to parse as JSON\n } catch {\n // noop\n }\n return { error, response };\n }\n\n return {\n request(method, url, init) {\n return coreFetch(url, { ...init, method: method.toUpperCase() });\n },\n /** Call a GET endpoint */\n GET(url, init) {\n return coreFetch(url, { ...init, method: \"GET\" });\n },\n /** Call a PUT endpoint */\n PUT(url, init) {\n return coreFetch(url, { ...init, method: \"PUT\" });\n },\n /** Call a POST endpoint */\n POST(url, init) {\n return coreFetch(url, { ...init, method: \"POST\" });\n },\n /** Call a DELETE endpoint */\n DELETE(url, init) {\n return coreFetch(url, { ...init, method: \"DELETE\" });\n },\n /** Call a OPTIONS endpoint */\n OPTIONS(url, init) {\n return coreFetch(url, { ...init, method: \"OPTIONS\" });\n },\n /** Call a HEAD endpoint */\n HEAD(url, init) {\n return coreFetch(url, { ...init, method: \"HEAD\" });\n },\n /** Call a PATCH endpoint */\n PATCH(url, init) {\n return coreFetch(url, { ...init, method: \"PATCH\" });\n },\n /** Call a TRACE endpoint */\n TRACE(url, init) {\n return coreFetch(url, { ...init, method: \"TRACE\" });\n },\n /** Register middleware */\n use(...middleware) {\n for (const m of middleware) {\n if (!m) {\n continue;\n }\n if (typeof m !== \"object\" || !(\"onRequest\" in m || \"onResponse\" in m || \"onError\" in m)) {\n throw new Error(\"Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`\");\n }\n globalMiddlewares.push(m);\n }\n },\n /** Unregister middleware */\n eject(...middleware) {\n for (const m of middleware) {\n const i = globalMiddlewares.indexOf(m);\n if (i !== -1) {\n globalMiddlewares.splice(i, 1);\n }\n }\n },\n };\n}\n\nclass PathCallForwarder {\n constructor(client, url) {\n this.client = client;\n this.url = url;\n }\n\n GET = (init) => {\n return this.client.GET(this.url, init);\n };\n PUT = (init) => {\n return this.client.PUT(this.url, init);\n };\n POST = (init) => {\n return this.client.POST(this.url, init);\n };\n DELETE = (init) => {\n return this.client.DELETE(this.url, init);\n };\n OPTIONS = (init) => {\n return this.client.OPTIONS(this.url, init);\n };\n HEAD = (init) => {\n return this.client.HEAD(this.url, init);\n };\n PATCH = (init) => {\n return this.client.PATCH(this.url, init);\n };\n TRACE = (init) => {\n return this.client.TRACE(this.url, init);\n };\n}\n\nclass PathClientProxyHandler {\n constructor() {\n this.client = null;\n }\n\n // Assume the property is an URL.\n get(coreClient, url) {\n const forwarder = new PathCallForwarder(coreClient, url);\n this.client[url] = forwarder;\n return forwarder;\n }\n}\n\n/**\n * Wrap openapi-fetch client to support a path based API.\n * @type {import(\"./index.js\").wrapAsPathBasedClient}\n */\nexport function wrapAsPathBasedClient(coreClient) {\n const handler = new PathClientProxyHandler();\n const proxy = new Proxy(coreClient, handler);\n\n // Put the proxy on the prototype chain of the actual client.\n // This means if we do not have a memoized PathCallForwarder,\n // we fall back to the proxy to synthesize it.\n // However, the proxy itself is not on the hot-path (if we fetch the same\n // endpoint multiple times, only the first call will hit the proxy).\n function Client() {}\n Client.prototype = proxy;\n\n const client = new Client();\n\n // Feed the client back to the proxy handler so it can store the generated\n // PathCallForwarder.\n handler.client = client;\n\n return client;\n}\n\n/**\n * Convenience method to an openapi-fetch path based client.\n * Strictly equivalent to `wrapAsPathBasedClient(createClient(...))`.\n * @type {import(\"./index.js\").createPathBasedClient}\n */\nexport function createPathBasedClient(clientOptions) {\n return wrapAsPathBasedClient(createClient(clientOptions));\n}\n\n// utils\n\n/**\n * Serialize primitive param values\n * @type {import(\"./index.js\").serializePrimitiveParam}\n */\nexport function serializePrimitiveParam(name, value, options) {\n if (value === undefined || value === null) {\n return \"\";\n }\n if (typeof value === \"object\") {\n throw new Error(\n \"Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.\",\n );\n }\n return `${name}=${options?.allowReserved === true ? value : encodeURIComponent(value)}`;\n}\n\n/**\n * Serialize object param (shallow only)\n * @type {import(\"./index.js\").serializeObjectParam}\n */\nexport function serializeObjectParam(name, value, options) {\n if (!value || typeof value !== \"object\") {\n return \"\";\n }\n const values = [];\n const joiner =\n {\n simple: \",\",\n label: \".\",\n matrix: \";\",\n }[options.style] || \"&\";\n\n // explode: false\n if (options.style !== \"deepObject\" && options.explode === false) {\n for (const k in value) {\n values.push(k, options.allowReserved === true ? value[k] : encodeURIComponent(value[k]));\n }\n const final = values.join(\",\"); // note: values are always joined by comma in explode: false (but joiner can prefix)\n switch (options.style) {\n case \"form\": {\n return `${name}=${final}`;\n }\n case \"label\": {\n return `.${final}`;\n }\n case \"matrix\": {\n return `;${name}=${final}`;\n }\n default: {\n return final;\n }\n }\n }\n\n // explode: true\n for (const k in value) {\n const finalName = options.style === \"deepObject\" ? `${name}[${k}]` : k;\n values.push(serializePrimitiveParam(finalName, value[k], options));\n }\n const final = values.join(joiner);\n return options.style === \"label\" || options.style === \"matrix\" ? `${joiner}${final}` : final;\n}\n\n/**\n * Serialize array param (shallow only)\n * @type {import(\"./index.js\").serializeArrayParam}\n */\nexport function serializeArrayParam(name, value, options) {\n if (!Array.isArray(value)) {\n return \"\";\n }\n\n // explode: false\n if (options.explode === false) {\n const joiner = { form: \",\", spaceDelimited: \"%20\", pipeDelimited: \"|\" }[options.style] || \",\"; // note: for arrays, joiners vary wildly based on style + explode behavior\n const final = (options.allowReserved === true ? value : value.map((v) => encodeURIComponent(v))).join(joiner);\n switch (options.style) {\n case \"simple\": {\n return final;\n }\n case \"label\": {\n return `.${final}`;\n }\n case \"matrix\": {\n return `;${name}=${final}`;\n }\n // case \"spaceDelimited\":\n // case \"pipeDelimited\":\n default: {\n return `${name}=${final}`;\n }\n }\n }\n\n // explode: true\n const joiner = { simple: \",\", label: \".\", matrix: \";\" }[options.style] || \"&\";\n const values = [];\n for (const v of value) {\n if (options.style === \"simple\" || options.style === \"label\") {\n values.push(options.allowReserved === true ? v : encodeURIComponent(v));\n } else {\n values.push(serializePrimitiveParam(name, v, options));\n }\n }\n return options.style === \"label\" || options.style === \"matrix\"\n ? `${joiner}${values.join(joiner)}`\n : values.join(joiner);\n}\n\n/**\n * Serialize query params to string\n * @type {import(\"./index.js\").createQuerySerializer}\n */\nexport function createQuerySerializer(options) {\n return function querySerializer(queryParams) {\n const search = [];\n if (queryParams && typeof queryParams === \"object\") {\n for (const name in queryParams) {\n const value = queryParams[name];\n if (value === undefined || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n continue;\n }\n search.push(\n serializeArrayParam(name, value, {\n style: \"form\",\n explode: true,\n ...options?.array,\n allowReserved: options?.allowReserved || false,\n }),\n );\n continue;\n }\n if (typeof value === \"object\") {\n search.push(\n serializeObjectParam(name, value, {\n style: \"deepObject\",\n explode: true,\n ...options?.object,\n allowReserved: options?.allowReserved || false,\n }),\n );\n continue;\n }\n search.push(serializePrimitiveParam(name, value, options));\n }\n }\n return search.join(\"&\");\n };\n}\n\n/**\n * Handle different OpenAPI 3.x serialization styles\n * @type {import(\"./index.js\").defaultPathSerializer}\n * @see https://swagger.io/docs/specification/serialization/#path\n */\nexport function defaultPathSerializer(pathname, pathParams) {\n let nextURL = pathname;\n for (const match of pathname.match(PATH_PARAM_RE) ?? []) {\n let name = match.substring(1, match.length - 1);\n let explode = false;\n let style = \"simple\";\n if (name.endsWith(\"*\")) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n if (name.startsWith(\".\")) {\n style = \"label\";\n name = name.substring(1);\n } else if (name.startsWith(\";\")) {\n style = \"matrix\";\n name = name.substring(1);\n }\n if (!pathParams || pathParams[name] === undefined || pathParams[name] === null) {\n continue;\n }\n const value = pathParams[name];\n if (Array.isArray(value)) {\n nextURL = nextURL.replace(match, serializeArrayParam(name, value, { style, explode }));\n continue;\n }\n if (typeof value === \"object\") {\n nextURL = nextURL.replace(match, serializeObjectParam(name, value, { style, explode }));\n continue;\n }\n if (style === \"matrix\") {\n nextURL = nextURL.replace(match, `;${serializePrimitiveParam(name, value)}`);\n continue;\n }\n nextURL = nextURL.replace(match, style === \"label\" ? `.${encodeURIComponent(value)}` : encodeURIComponent(value));\n }\n return nextURL;\n}\n\n/**\n * Serialize body object to string\n * @type {import(\"./index.js\").defaultBodySerializer}\n */\nexport function defaultBodySerializer(body, headers) {\n if (body instanceof FormData) {\n return body;\n }\n if (headers) {\n const contentType =\n headers.get instanceof Function\n ? (headers.get(\"Content-Type\") ?? headers.get(\"content-type\"))\n : (headers[\"Content-Type\"] ?? headers[\"content-type\"]);\n if (contentType === \"application/x-www-form-urlencoded\") {\n return new URLSearchParams(body).toString();\n }\n }\n return JSON.stringify(body);\n}\n\n/**\n * Construct URL string from baseUrl and handle path and query params\n * @type {import(\"./index.js\").createFinalURL}\n */\nexport function createFinalURL(pathname, options) {\n let finalURL = `${options.baseUrl}${pathname}`;\n if (options.params?.path) {\n finalURL = options.pathSerializer(finalURL, options.params.path);\n }\n let search = options.querySerializer(options.params.query ?? {});\n if (search.startsWith(\"?\")) {\n search = search.substring(1);\n }\n if (search) {\n finalURL += `?${search}`;\n }\n return finalURL;\n}\n\n/**\n * Merge headers a and b, with b taking priority\n * @type {import(\"./index.js\").mergeHeaders}\n */\nexport function mergeHeaders(...allHeaders) {\n const finalHeaders = new Headers();\n for (const h of allHeaders) {\n if (!h || typeof h !== \"object\") {\n continue;\n }\n const iterator = h instanceof Headers ? h.entries() : Object.entries(h);\n for (const [k, v] of iterator) {\n if (v === null) {\n finalHeaders.delete(k);\n } else if (Array.isArray(v)) {\n for (const v2 of v) {\n finalHeaders.append(k, v2);\n }\n } else if (v !== undefined) {\n finalHeaders.set(k, v);\n }\n }\n }\n return finalHeaders;\n}\n\n/**\n * Remove trailing slash from url\n * @type {import(\"./index.js\").removeTrailingSlash}\n */\nexport function removeTrailingSlash(url) {\n if (url.endsWith(\"/\")) {\n return url.substring(0, url.length - 1);\n }\n return url;\n}\n","import type { components } from \"./generated/schema.js\";\n\nexport type SpacebringErrorBody = components[\"schemas\"][\"responseError\"];\n\n/**\n * Error thrown when the Spacebring API responds with a non-2xx status.\n */\nexport class SpacebringError extends Error {\n /** HTTP status code of the failed response. */\n readonly status: number;\n /** Parsed error body returned by the API, if any. */\n readonly body: SpacebringErrorBody | undefined;\n\n constructor(status: number, body?: unknown) {\n const parsed = isErrorBody(body) ? body : undefined;\n super(parsed?.message ?? `Spacebring API request failed with status ${status}`);\n this.name = \"SpacebringError\";\n this.status = status;\n this.body = parsed;\n }\n}\n\nfunction isErrorBody(body: unknown): body is SpacebringErrorBody {\n return typeof body === \"object\" && body !== null;\n}\n","import { SpacebringError } from \"./error.js\";\n\n/** Client-level defaults threaded into the generated facade. */\nexport interface SpacebringDefaults {\n /** Sent as the `spacebring-network-id` header where the API requires it. */\n networkId?: string;\n}\n\ninterface FetchResult<T> {\n data?: T;\n error?: unknown;\n response: Response;\n}\n\n/**\n * Unwraps an openapi-fetch result: returns `data` on success,\n * throws {@link SpacebringError} on any non-2xx response.\n */\nexport function unwrap<T>(result: FetchResult<T>): T {\n if (result.error !== undefined || !result.response.ok) {\n throw new SpacebringError(result.response.status, result.error);\n }\n return result.data as T;\n}\n\n/**\n * Returns the single payload property of a success envelope,\n * throwing {@link SpacebringError} when the response has no usable body.\n */\nexport function unwrapProp<Envelope, Key extends keyof Envelope>(\n result: FetchResult<Envelope>,\n key: Key,\n): NonNullable<Envelope[Key]> {\n const value = unwrap(result)?.[key];\n if (value === undefined || value === null) {\n throw new SpacebringError(result.response.status, {\n message: `Response is missing the \"${String(key)}\" property`,\n });\n }\n return value as NonNullable<Envelope[Key]>;\n}\n\n/**\n * Iterates every item of a paginated list endpoint, following\n * `nextPageToken` until the last page.\n */\nexport async function* paginate<Page extends { nextPageToken?: string }, Key extends keyof Page>(\n fetchPage: (nextPageToken: string | undefined) => Promise<Page>,\n itemsKey: Key,\n): AsyncGenerator<Page[Key] extends readonly (infer Item)[] | undefined ? Item : never, void, undefined> {\n let token: string | undefined;\n do {\n const page = await fetchPage(token);\n const items = (page[itemsKey] ?? []) as Iterable<never>;\n yield* items;\n const next = page.nextPageToken;\n if (next !== undefined && next === token) {\n throw new Error(\"Pagination did not advance: the API returned the same nextPageToken twice\");\n }\n token = next;\n } while (token);\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A AltCurrency entity as returned by the Spacebring API. */\nexport type AltCurrency = NonNullable<operations[\"getAltCurrencies\"][\"responses\"][200][\"content\"][\"application/json\"][\"altCurrencies\"]>[number];\n\nexport function createAltcurrencies(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve alternative currencies\n *\n * Retrieve all alternative currencies in the location.\n */\n async list(query: operations[\"getAltCurrencies\"][\"parameters\"][\"query\"]): Promise<operations[\"getAltCurrencies\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/alt_currencies/v1\", { params: { query } }));\n },\n /**\n * Retrieve alternative currencies — iterates every item across all pages.\n *\n * Retrieve all alternative currencies in the location.\n */\n iterate(query: Omit<NonNullable<operations[\"getAltCurrencies\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<AltCurrency, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/alt_currencies/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"altCurrencies\",\n );\n },\n /** Create an alternative currency */\n async create(body: NonNullable<operations[\"createAltCurrency\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<AltCurrency> {\n return unwrapProp(await client.POST(\"/alt_currencies/v1\", { body }), \"altCurrency\");\n },\n /** Update an alternative currency */\n async update(id: string, body: NonNullable<operations[\"updateAltCurrency\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/alt_currencies/v1/{id}\", { params: { path: { id } }, body }));\n },\n /** Delete an alternative currency */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/alt_currencies/v1/{id}\", { params: { path: { id } } }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Application entity as returned by the Spacebring API. */\nexport type Application = NonNullable<operations[\"getBenefitApplication\"][\"responses\"][200][\"content\"][\"application/json\"][\"application\"]>;\n\n/** A Benefit entity as returned by the Spacebring API. */\nexport type Benefit = NonNullable<operations[\"getBenefit\"][\"responses\"][200][\"content\"][\"application/json\"][\"benefit\"]>;\n\n/** A BenefitCategory entity as returned by the Spacebring API. */\nexport type BenefitCategory = NonNullable<operations[\"getBenefitCategory\"][\"responses\"][200][\"content\"][\"application/json\"][\"category\"]>;\n\nexport function createBenefits(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve benefits\n *\n * Retrieve all benefits in the location.\n */\n async list(query?: operations[\"getBenefits\"][\"parameters\"][\"query\"]): Promise<operations[\"getBenefits\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/benefits/v1\", { params: { query } }));\n },\n /**\n * Retrieve benefits — iterates every item across all pages.\n *\n * Retrieve all benefits in the location.\n */\n iterate(query?: Omit<NonNullable<operations[\"getBenefits\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Benefit, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/benefits/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"benefits\",\n );\n },\n /** Retrieve a benefit */\n async get(benefitId: string): Promise<Benefit> {\n return unwrapProp(await client.GET(\"/benefits/v1/{benefitId}\", { params: { path: { benefitId } } }), \"benefit\");\n },\n /** Create a benefit */\n async create(body: NonNullable<operations[\"createBenefit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"createBenefit\"][\"responses\"][201][\"content\"][\"application/json\"]> {\n return unwrap(await client.POST(\"/benefits/v1\", { body }));\n },\n /** Update a benefit */\n async update(benefitId: string, body: NonNullable<operations[\"updateBenefit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Benefit> {\n return unwrapProp(await client.PUT(\"/benefits/v1/{benefitId}\", { params: { path: { benefitId } }, body }), \"benefit\");\n },\n /** Delete a benefit */\n async delete(benefitId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/benefits/v1/{benefitId}\", { params: { path: { benefitId } } }));\n },\n applications: {\n /**\n * Retrieve applications\n *\n * Retrieve all benefit applications in the location or for certain benefit.\n */\n async list(query?: operations[\"getBenefitApplications\"][\"parameters\"][\"query\"]): Promise<operations[\"getBenefitApplications\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/benefits/applications/v1\", { params: { query } }));\n },\n /**\n * Retrieve applications — iterates every item across all pages.\n *\n * Retrieve all benefit applications in the location or for certain benefit.\n */\n iterate(query?: Omit<NonNullable<operations[\"getBenefitApplications\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Application, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/benefits/applications/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"applications\",\n );\n },\n /**\n * Retrieve an application\n *\n * Retrieve a benefit application by id.\n */\n async get(benefitApplicationId: string): Promise<Application> {\n return unwrapProp(await client.GET(\"/benefits/applications/v1/{benefitApplicationId}\", { params: { path: { benefitApplicationId } } }), \"application\");\n },\n /** Apply for a benefit */\n async create(body: NonNullable<operations[\"applyBenefit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Application> {\n return unwrapProp(await client.POST(\"/benefits/applications/v1\", { body }), \"application\");\n },\n },\n categories: {\n /**\n * Retrieve categories\n *\n * Retrieve all benefit categories in the location.\n */\n async list(query: operations[\"getBenefitCategories\"][\"parameters\"][\"query\"]): Promise<BenefitCategory[]> {\n return unwrapProp(await client.GET(\"/benefits/categories/v1\", { params: { query } }), \"categories\");\n },\n /**\n * Get a category\n *\n * Get a benefit category.\n */\n async get(categoryId: string): Promise<BenefitCategory> {\n return unwrapProp(await client.GET(\"/benefits/categories/v1/{categoryId}\", { params: { path: { categoryId } } }), \"category\");\n },\n /**\n * Create a category\n *\n * Create a benefit category.\n */\n async create(body: NonNullable<operations[\"createBenefitCategory\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<BenefitCategory> {\n return unwrapProp(await client.POST(\"/benefits/categories/v1\", { body }), \"category\");\n },\n /**\n * Update a category\n *\n * Update a benefit category.\n */\n async update(categoryId: string, body: NonNullable<operations[\"updateBenefitCategory\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<BenefitCategory> {\n return unwrapProp(await client.PUT(\"/benefits/categories/v1/{categoryId}\", { params: { path: { categoryId } }, body }), \"category\");\n },\n /**\n * Delete a category\n *\n * Delete a benefit category.\n */\n async delete(categoryId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/benefits/categories/v1/{categoryId}\", { params: { path: { categoryId } } }));\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A CreditNote entity as returned by the Spacebring API. */\nexport type CreditNote = NonNullable<operations[\"getCreditNote\"][\"responses\"][200][\"content\"][\"application/json\"][\"creditNote\"]>;\n\n/** A Invoice entity as returned by the Spacebring API. */\nexport type Invoice = NonNullable<operations[\"getInvoice\"][\"responses\"][200][\"content\"][\"application/json\"][\"invoice\"]>;\n\n/** A InvoiceItem entity as returned by the Spacebring API. */\nexport type InvoiceItem = NonNullable<operations[\"getInvoiceItem\"][\"responses\"][200][\"content\"][\"application/json\"][\"invoiceItem\"]>;\n\nexport function createBilling(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n creditNotes: {\n /**\n * Retrieve credit notes\n *\n * Retrieve all credit notes for a specific invoice or location. One of invoiceRef or locationRef is required.\n */\n async list(query?: operations[\"getCreditNotes\"][\"parameters\"][\"query\"]): Promise<operations[\"getCreditNotes\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/billing/credit_notes/v1\", { params: { query } }));\n },\n /**\n * Retrieve credit notes — iterates every item across all pages.\n *\n * Retrieve all credit notes for a specific invoice or location. One of invoiceRef or locationRef is required.\n */\n iterate(query?: Omit<NonNullable<operations[\"getCreditNotes\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<CreditNote, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/billing/credit_notes/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"creditNotes\",\n );\n },\n /**\n * Retrieve a credit note\n *\n * Retrieve a specific credit note.\n */\n async get(id: string): Promise<CreditNote> {\n return unwrapProp(await client.GET(\"/billing/credit_notes/v1/{id}\", { params: { path: { id } } }), \"creditNote\");\n },\n /**\n * Create a credit note\n *\n * Create a credit note for an invoice.\n */\n async create(body: NonNullable<operations[\"createCreditNote\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<CreditNote> {\n return unwrapProp(await client.POST(\"/billing/credit_notes/v1\", { body }), \"creditNote\");\n },\n /** Update a credit note */\n async update(id: string, body: NonNullable<operations[\"updateCreditNote\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/billing/credit_notes/v1/{id}\", { params: { path: { id } }, body }));\n },\n /**\n * Preview a credit note\n *\n * Preview a credit note for an invoice without creating it.\n */\n async preview(body: NonNullable<operations[\"previewCreditNote\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<CreditNote> {\n return unwrapProp(await client.POST(\"/billing/credit_notes/v1/preview\", { body }), \"creditNote\");\n },\n },\n invoices: {\n /**\n * Retrieve invoices\n *\n * Retrieve all invoices based on certain parameters.\n */\n async list(query?: operations[\"getInvoices\"][\"parameters\"][\"query\"]): Promise<operations[\"getInvoices\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/billing/invoices/v1\", { params: { query } }));\n },\n /**\n * Retrieve invoices — iterates every item across all pages.\n *\n * Retrieve all invoices based on certain parameters.\n */\n iterate(query?: Omit<NonNullable<operations[\"getInvoices\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Invoice, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/billing/invoices/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"invoices\",\n );\n },\n /**\n * Retrieve an invoice\n *\n * Retrieve a certain invoice.\n */\n async get(invoiceId: string): Promise<Invoice> {\n return unwrapProp(await client.GET(\"/billing/invoices/v1/{invoiceId}\", { params: { path: { invoiceId } } }), \"invoice\");\n },\n /**\n * Create an invoice\n *\n * Create an invoice for a member or a company.\n */\n async create(body: NonNullable<operations[\"createInvoice\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Invoice> {\n return unwrapProp(await client.POST(\"/billing/invoices/v1\", { body }), \"invoice\");\n },\n /**\n * Update an invoice\n *\n * Update a draft invoice.\n */\n async update(invoiceId: string, body: NonNullable<operations[\"updateInvoice\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/billing/invoices/v1/{invoiceId}\", { params: { path: { invoiceId } }, body }));\n },\n /**\n * Delete an invoice\n *\n * Delete a draft invoice.\n */\n async delete(invoiceId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/billing/invoices/v1/{invoiceId}\", { params: { path: { invoiceId } } }));\n },\n /**\n * Cancel a payment\n *\n * Cancel a payment on an invoice.\n */\n async cancelPayment(invoiceId: string): Promise<undefined> {\n return unwrap(await client.POST(\"/billing/invoices/v1/{invoiceId}/cancel_payment\", { params: { path: { invoiceId } } }));\n },\n /**\n * Duplicate an invoice\n *\n * Duplicate an invoice, creating a new draft invoice with the same items.\n */\n async duplicate(invoiceId: string): Promise<Invoice> {\n return unwrapProp(await client.POST(\"/billing/invoices/v1/{invoiceId}/duplicate\", { params: { path: { invoiceId } } }), \"invoice\");\n },\n /**\n * List invoice items\n *\n * List all items for a specific invoice.\n */\n async getItems(invoiceId: string): Promise<operations[\"getInvoiceItems\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/billing/invoices/v1/{invoiceId}/items\", { params: { path: { invoiceId } } }));\n },\n /**\n * Retrieve the upcoming invoice\n *\n * Retrieve the upcoming invoice preview for a membership or subscription.\n */\n async getUpcoming(query?: operations[\"getUpcomingInvoice\"][\"parameters\"][\"query\"]): Promise<operations[\"getUpcomingInvoice\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/billing/invoices/v1/upcoming\", { params: { query } }));\n },\n /**\n * Issue an invoice\n *\n * Issue (finalize) a draft invoice, making it ready for payment.\n */\n async issue(invoiceId: string, body?: NonNullable<operations[\"issueInvoice\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"issueInvoice\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.POST(\"/billing/invoices/v1/{invoiceId}/issue\", { params: { path: { invoiceId } }, body }));\n },\n /**\n * Pay an invoice\n *\n * Mark an invoice as paid by `External Payment`.\n */\n async pay(invoiceId: string, body: NonNullable<operations[\"payInvoice\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"payInvoice\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.POST(\"/billing/invoices/v1/{invoiceId}/pay\", { params: { path: { invoiceId } }, body }));\n },\n /**\n * Resend an invoice\n *\n * Resend an issued invoice notification to the customer.\n */\n async resend(invoiceId: string): Promise<undefined> {\n return unwrap(await client.POST(\"/billing/invoices/v1/{invoiceId}/resend\", { params: { path: { invoiceId } } }));\n },\n /**\n * Void an invoice\n *\n * Void an issued invoice.\n */\n async void(invoiceId: string): Promise<undefined> {\n return unwrap(await client.PATCH(\"/billing/invoices/v1/{invoiceId}/void\", { params: { path: { invoiceId } } }));\n },\n items: {\n /**\n * Retrieve an invoice item\n *\n * Retrieve a specific invoice item.\n */\n async get(id: string): Promise<InvoiceItem> {\n return unwrapProp(await client.GET(\"/billing/invoices/v1/items/{id}\", { params: { path: { id } } }), \"invoiceItem\");\n },\n /**\n * Create an invoice item\n *\n * Create an item in an invoice.\n */\n async create(body: NonNullable<operations[\"createInvoiceItem\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<InvoiceItem> {\n return unwrapProp(await client.POST(\"/billing/invoices/v1/items\", { body }), \"invoiceItem\");\n },\n /**\n * Update an invoice item\n *\n * Update an invoice item on a draft invoice.\n */\n async update(id: string, body: NonNullable<operations[\"updateInvoiceItem\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/billing/invoices/v1/items/{id}\", { params: { path: { id } }, body }));\n },\n /**\n * Delete an invoice item\n *\n * Delete an invoice item from a draft invoice.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/billing/invoices/v1/items/{id}\", { params: { path: { id } } }));\n },\n /** List upcoming invoice items */\n async getUpcoming(query?: operations[\"getUpcomingInvoiceItems\"][\"parameters\"][\"query\"]): Promise<InvoiceItem[]> {\n return unwrapProp(await client.GET(\"/billing/invoices/v1/items/upcoming\", { params: { query } }), \"invoiceItems\");\n },\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Company entity as returned by the Spacebring API. */\nexport type Company = NonNullable<operations[\"getCompany\"][\"responses\"][200][\"content\"][\"application/json\"][\"company\"]>;\n\n/** A Membership entity as returned by the Spacebring API. */\nexport type Membership = NonNullable<operations[\"getMembership\"][\"responses\"][200][\"content\"][\"application/json\"][\"membership\"]>;\n\nexport function createCommunity(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n companies: {\n /**\n * Retrieve companies\n *\n * Retrieve all companies.\n */\n async list(query: operations[\"getCompanies\"][\"parameters\"][\"query\"]): Promise<operations[\"getCompanies\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/community/companies/v1\", { params: { query } }));\n },\n /**\n * Retrieve companies — iterates every item across all pages.\n *\n * Retrieve all companies.\n */\n iterate(query: Omit<NonNullable<operations[\"getCompanies\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Company, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/community/companies/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"companies\",\n );\n },\n /**\n * Retrieve a company\n *\n * Retrieve a certain company.\n */\n async get(id: string): Promise<Company> {\n return unwrapProp(await client.GET(\"/community/companies/v1/{id}\", { params: { path: { id } } }), \"company\");\n },\n /** Create a company */\n async create(body: NonNullable<operations[\"createCompany\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Company> {\n return unwrapProp(await client.POST(\"/community/companies/v1\", { body }), \"company\");\n },\n /**\n * Update a company\n *\n * Update a certain company.\n */\n async update(id: string, body: NonNullable<operations[\"updateCompany\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Company> {\n return unwrapProp(await client.PUT(\"/community/companies/v1/{id}\", { params: { path: { id } }, body }), \"company\");\n },\n },\n memberships: {\n /**\n * Retrieve memberships\n *\n * Retrieve all memberships.\n */\n async list(query: operations[\"getMemberships\"][\"parameters\"][\"query\"]): Promise<operations[\"getMemberships\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/community/memberships/v1\", { params: { query } }));\n },\n /**\n * Retrieve memberships — iterates every item across all pages.\n *\n * Retrieve all memberships.\n */\n iterate(query: Omit<NonNullable<operations[\"getMemberships\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Membership, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/community/memberships/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"memberships\",\n );\n },\n /**\n * Retrieve a membership\n *\n * Retrieve a certain membership.\n */\n async get(id: string): Promise<Membership> {\n return unwrapProp(await client.GET(\"/community/memberships/v1/{id}\", { params: { path: { id } } }), \"membership\");\n },\n /**\n * Create a membership\n *\n * Create a membership and send an email invitation to join if type is member.\n */\n async create(body: NonNullable<operations[\"createMembership\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Membership> {\n return unwrapProp(await client.POST(\"/community/memberships/v1\", { body }), \"membership\");\n },\n /**\n * Update a membership\n *\n * Update a certain membership.\n */\n async update(id: number, body: NonNullable<operations[\"updateMembership\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Membership> {\n return unwrapProp(await client.PUT(\"/community/memberships/v1/{id}\", { params: { path: { id } }, body }), \"membership\");\n },\n /**\n * Delete a membership\n *\n * Delete a certain membership.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/community/memberships/v1/{id}\", { params: { path: { id } } }));\n },\n /**\n * Retrieve deleted memberships — iterates every item across all pages.\n *\n * Retrieve all deleted memberships.\n */\n iterateDeleted(query: Omit<NonNullable<operations[\"getMembershipsDeleted\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Membership, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/community/memberships/v1/deleted\", { params: { query: { ...query, nextPageToken } } })),\n \"memberships\",\n );\n },\n /**\n * Retrieve deleted memberships\n *\n * Retrieve all deleted memberships.\n */\n async listDeleted(query: operations[\"getMembershipsDeleted\"][\"parameters\"][\"query\"]): Promise<operations[\"getMembershipsDeleted\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/community/memberships/v1/deleted\", { params: { query } }));\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Contract entity as returned by the Spacebring API. */\nexport type Contract = NonNullable<operations[\"getContract\"][\"responses\"][200][\"content\"][\"application/json\"][\"contract\"]>;\n\nexport function createContracts(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve contracts\n *\n * Retrieve all contracts in the location.\n */\n async list(query?: operations[\"getContracts\"][\"parameters\"][\"query\"]): Promise<operations[\"getContracts\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/contracts/v1\", { params: { query } }));\n },\n /**\n * Retrieve contracts — iterates every item across all pages.\n *\n * Retrieve all contracts in the location.\n */\n iterate(query?: Omit<NonNullable<operations[\"getContracts\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Contract, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/contracts/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"contracts\",\n );\n },\n /** Get a contract */\n async get(contractId: string): Promise<Contract> {\n return unwrapProp(await client.GET(\"/contracts/v1/{contractId}\", { params: { path: { contractId } } }), \"contract\");\n },\n /** Create a contract */\n async create(body: NonNullable<operations[\"createContract\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Contract> {\n return unwrapProp(await client.POST(\"/contracts/v1\", { body }), \"contract\");\n },\n /** Delete a contract */\n async delete(contractId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/contracts/v1/{contractId}\", { params: { path: { contractId } } }));\n },\n /** Issue a contract */\n async issue(contractId: string, body: NonNullable<operations[\"issueContract\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Contract> {\n return unwrapProp(await client.POST(\"/contracts/v1/{contractId}/issue\", { params: { path: { contractId } }, body }), \"contract\");\n },\n /** Terminate a contract */\n async terminate(contractId: string, body: NonNullable<operations[\"terminateContract\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/contracts/v1/{contractId}/terminate\", { params: { path: { contractId } }, body }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Coupon entity as returned by the Spacebring API. */\nexport type Coupon = NonNullable<operations[\"getCoupon\"][\"responses\"][200][\"content\"][\"application/json\"][\"coupon\"]>;\n\n/** A Promocode entity as returned by the Spacebring API. */\nexport type Promocode = NonNullable<operations[\"getPromocode\"][\"responses\"][200][\"content\"][\"application/json\"][\"promocode\"]>;\n\n/** A Redemption entity as returned by the Spacebring API. */\nexport type Redemption = NonNullable<operations[\"getDiscountRedemptions\"][\"responses\"][200][\"content\"][\"application/json\"][\"redemptions\"]>[number];\n\nexport function createDiscounts(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n coupons: {\n /**\n * Retrieve coupons\n *\n * Retrieve all coupons in the location.\n */\n async list(query: operations[\"getCoupons\"][\"parameters\"][\"query\"]): Promise<operations[\"getCoupons\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/discounts/coupons/v1\", { params: { query } }));\n },\n /**\n * Retrieve coupons — iterates every item across all pages.\n *\n * Retrieve all coupons in the location.\n */\n iterate(query: Omit<NonNullable<operations[\"getCoupons\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Coupon, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/discounts/coupons/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"coupons\",\n );\n },\n /** Get a coupon */\n async get(id: string): Promise<Coupon> {\n return unwrapProp(await client.GET(\"/discounts/coupons/v1/{id}\", { params: { path: { id } } }), \"coupon\");\n },\n /** Create a coupon */\n async create(body: NonNullable<operations[\"createCoupon\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Coupon> {\n return unwrapProp(await client.POST(\"/discounts/coupons/v1\", { body }), \"coupon\");\n },\n /** Update a coupon */\n async update(id: string, body: NonNullable<operations[\"updateCoupon\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/discounts/coupons/v1/{id}\", { params: { path: { id } }, body }));\n },\n /** Delete a coupon */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/discounts/coupons/v1/{id}\", { params: { path: { id } } }));\n },\n },\n promocodes: {\n /**\n * Retrieve promocodes\n *\n * Retrieve all promocodes.\n */\n async list(query?: operations[\"getPromocodes\"][\"parameters\"][\"query\"]): Promise<Promocode[]> {\n return unwrapProp(await client.GET(\"/discounts/promocodes/v1\", { params: { query } }), \"promocodes\");\n },\n /** Get a promocode */\n async get(id: string): Promise<Promocode> {\n return unwrapProp(await client.GET(\"/discounts/promocodes/v1/{id}\", { params: { path: { id } } }), \"promocode\");\n },\n /** Create a promocode */\n async create(body: NonNullable<operations[\"createPromocode\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Promocode> {\n return unwrapProp(await client.POST(\"/discounts/promocodes/v1\", { body }), \"promocode\");\n },\n /** Archive a promocode */\n async archive(id: string): Promise<Promocode> {\n return unwrapProp(await client.PUT(\"/discounts/promocodes/v1/{id}/archive\", { params: { path: { id } } }), \"promocode\");\n },\n },\n redemptions: {\n /**\n * Retrieve redemptions\n *\n * Retrieve all discount redemptions. Either couponRef or promocodeRef is required.\n */\n async list(query?: operations[\"getDiscountRedemptions\"][\"parameters\"][\"query\"]): Promise<operations[\"getDiscountRedemptions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/discounts/redemptions/v1\", { params: { query } }));\n },\n /**\n * Retrieve redemptions — iterates every item across all pages.\n *\n * Retrieve all discount redemptions. Either couponRef or promocodeRef is required.\n */\n iterate(query?: Omit<NonNullable<operations[\"getDiscountRedemptions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Redemption, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/discounts/redemptions/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"redemptions\",\n );\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Event entity as returned by the Spacebring API. */\nexport type Event = NonNullable<operations[\"getEvent\"][\"responses\"][200][\"content\"][\"application/json\"][\"event\"]>;\n\n/** A EventTicket entity as returned by the Spacebring API. */\nexport type EventTicket = NonNullable<operations[\"getEventTicket\"][\"responses\"][200][\"content\"][\"application/json\"][\"ticket\"]>;\n\nexport function createEvents(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /** Retrieve events */\n async list(query: operations[\"getEventsByOrganization\"][\"parameters\"][\"query\"]): Promise<operations[\"getEventsByOrganization\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/events/v1\", { params: { query } }));\n },\n /** Retrieve an event */\n async get(id: string): Promise<Event> {\n return unwrapProp(await client.GET(\"/events/v1/{id}\", { params: { header: { \"spacebring-network-id\": defaults.networkId as string }, path: { id } } }), \"event\");\n },\n /** Create an event */\n async create(body: NonNullable<operations[\"createEvent\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Event> {\n return unwrapProp(await client.POST(\"/events/v1\", { body }), \"event\");\n },\n /** Delete an event */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/events/v1/{id}\", { params: { path: { id } } }));\n },\n /** Cancel an event */\n async cancel(id: string): Promise<Event> {\n return unwrapProp(await client.PUT(\"/events/v1/{id}/cancel\", { params: { path: { id } } }), \"event\");\n },\n /** Copy an event */\n async copy(id: string): Promise<Event> {\n return unwrapProp(await client.POST(\"/events/v1/{id}/copy\", { params: { path: { id } } }), \"event\");\n },\n tickets: {\n /**\n * Retrieve tickets\n *\n * Retrieve all event tickets.\n */\n async list(query: operations[\"getEventTickets\"][\"parameters\"][\"query\"]): Promise<operations[\"getEventTickets\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/events/tickets/v1\", { params: { query } }));\n },\n /**\n * Retrieve tickets — iterates every item across all pages.\n *\n * Retrieve all event tickets.\n */\n iterate(query: Omit<NonNullable<operations[\"getEventTickets\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<EventTicket, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/events/tickets/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"tickets\",\n );\n },\n /**\n * Retrieve a ticket\n *\n * Retrieve an event ticket.\n */\n async get(id: string): Promise<EventTicket> {\n return unwrapProp(await client.GET(\"/events/tickets/v1/{id}\", { params: { path: { id } } }), \"ticket\");\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A CommentLike entity as returned by the Spacebring API. */\nexport type CommentLike = NonNullable<operations[\"createLikeForPostComment\"][\"responses\"][201][\"content\"][\"application/json\"][\"like\"]>;\n\n/** A FeedComment entity as returned by the Spacebring API. */\nexport type FeedComment = NonNullable<operations[\"createFeedPostComment\"][\"responses\"][201][\"content\"][\"application/json\"][\"comment\"]>;\n\n/** A Post entity as returned by the Spacebring API. */\nexport type Post = NonNullable<operations[\"getFeedPost\"][\"responses\"][200][\"content\"][\"application/json\"][\"post\"]>;\n\n/** A PostComment entity as returned by the Spacebring API. */\nexport type PostComment = NonNullable<operations[\"getPostComments\"][\"responses\"][200][\"content\"][\"application/json\"][\"comments\"]>[number];\n\n/** A PostLike entity as returned by the Spacebring API. */\nexport type PostLike = NonNullable<operations[\"getLikesForPost\"][\"responses\"][200][\"content\"][\"application/json\"][\"likes\"]>[number];\n\nexport function createFeed(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n comments: {\n /**\n * Create a post comment\n *\n * Create a feed post comment.\n */\n async create(body: NonNullable<operations[\"createFeedPostComment\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<FeedComment> {\n return unwrapProp(await client.POST(\"/feed/comments/v1\", { body }), \"comment\");\n },\n /** Delete a post comment */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/feed/comments/v1/{id}\", { params: { path: { id } } }));\n },\n /** Create a like for a post comment */\n async createLike(id: string): Promise<CommentLike> {\n return unwrapProp(await client.POST(\"/feed/comments/v1/{id}/likes\", { params: { path: { id } } }), \"like\");\n },\n /** Delete a like for a post comment */\n async deleteLike(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/feed/comments/v1/{id}/likes\", { params: { path: { id } } }));\n },\n },\n posts: {\n /**\n * Get posts\n *\n * Get feed posts.\n */\n async list(query: operations[\"getFeedPosts\"][\"parameters\"][\"query\"]): Promise<operations[\"getFeedPosts\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/feed/posts/v1\", { params: { query } }));\n },\n /**\n * Get posts — iterates every item across all pages.\n *\n * Get feed posts.\n */\n iterate(query: Omit<NonNullable<operations[\"getFeedPosts\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Post, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/feed/posts/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"posts\",\n );\n },\n /**\n * Get a post\n *\n * Get a feed post.\n */\n async get(id: string): Promise<Post> {\n return unwrapProp(await client.GET(\"/feed/posts/v1/{id}\", { params: { path: { id } } }), \"post\");\n },\n /**\n * Create a post\n *\n * Create a feed post.\n */\n async create(body: NonNullable<operations[\"createFeedPost\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Post> {\n return unwrapProp(await client.POST(\"/feed/posts/v1\", { body }), \"post\");\n },\n /**\n * Update a post\n *\n * Update a feed post.\n */\n async update(id: string, body: NonNullable<operations[\"updateFeedPost\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Post> {\n return unwrapProp(await client.PUT(\"/feed/posts/v1/{id}\", { params: { path: { id } }, body }), \"post\");\n },\n /**\n * Delete a post\n *\n * Delete a feed post.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/feed/posts/v1/{id}\", { params: { path: { id } } }));\n },\n /** Create a like for a post */\n async createLike(id: string): Promise<PostLike> {\n return unwrapProp(await client.POST(\"/feed/posts/v1/{id}/likes\", { params: { path: { id } } }), \"like\");\n },\n /** Delete a like for a post */\n async deleteLike(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/feed/posts/v1/{id}/likes\", { params: { path: { id } } }));\n },\n /** Get comments for a post */\n async getComments(id: string): Promise<PostComment[]> {\n return unwrapProp(await client.GET(\"/feed/posts/v1/{id}/comments\", { params: { path: { id } } }), \"comments\");\n },\n /** Get likes for a post */\n async getLikes(id: string): Promise<PostLike[]> {\n return unwrapProp(await client.GET(\"/feed/posts/v1/{id}/likes\", { params: { path: { id } } }), \"likes\");\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { unwrap, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\nexport function createFloors(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /** Get floors */\n async list(query: operations[\"getFloors\"][\"parameters\"][\"query\"]): Promise<operations[\"getFloors\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/floors/v1\", { params: { query } }));\n },\n /** Delete a floor */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/floors/v1/{id}\", { params: { path: { id } } }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Guide entity as returned by the Spacebring API. */\nexport type Guide = NonNullable<operations[\"getGuide\"][\"responses\"][200][\"content\"][\"application/json\"][\"guide\"]>;\n\nexport function createGuides(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve guides\n *\n * Retrieve all guides for an organization. Requires locationRef. When using bearer token (non-basic auth), results are filtered by the user's access.\n */\n async list(query: operations[\"getGuides\"][\"parameters\"][\"query\"]): Promise<operations[\"getGuides\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/guides/v1\", { params: { query } }));\n },\n /**\n * Retrieve guides — iterates every item across all pages.\n *\n * Retrieve all guides for an organization. Requires locationRef. When using bearer token (non-basic auth), results are filtered by the user's access.\n */\n iterate(query: Omit<NonNullable<operations[\"getGuides\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Guide, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/guides/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"guides\",\n );\n },\n /**\n * Retrieve a guide\n *\n * Retrieve a guide by id.\n */\n async get(guideId: string): Promise<Guide> {\n return unwrapProp(await client.GET(\"/guides/v1/{guideId}\", { params: { path: { guideId } } }), \"guide\");\n },\n /**\n * Create a guide\n *\n * Create a guide in an organization.\n */\n async create(body: NonNullable<operations[\"createGuide\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Guide> {\n return unwrapProp(await client.POST(\"/guides/v1\", { body }), \"guide\");\n },\n /**\n * Update a guide\n *\n * Update a guide. At least one guide property must be provided.\n */\n async update(guideId: string, body: NonNullable<operations[\"patchGuide\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Guide> {\n return unwrapProp(await client.PATCH(\"/guides/v1/{guideId}\", { params: { path: { guideId } }, body }), \"guide\");\n },\n /** Delete a guide */\n async delete(guideId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/guides/v1/{guideId}\", { params: { path: { guideId } } }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Location entity as returned by the Spacebring API. */\nexport type Location = NonNullable<operations[\"getLocation\"][\"responses\"][200][\"content\"][\"application/json\"][\"location\"]>;\n\nexport function createLocations(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /** Retrieve all locations */\n async list(): Promise<Location[]> {\n return unwrapProp(await client.GET(\"/locations/v1\", {}), \"locations\");\n },\n /** Get a location */\n async get(locationId: string): Promise<Location> {\n return unwrapProp(await client.GET(\"/locations/v1/{locationId}\", { params: { path: { locationId } } }), \"location\");\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Network entity as returned by the Spacebring API. */\nexport type Network = NonNullable<operations[\"getNetworks\"][\"responses\"][200][\"content\"][\"application/json\"][\"networks\"]>[number];\n\nexport function createNetworks(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve networks\n *\n * Retrieve all networks you are in.\n */\n async list(): Promise<Network[]> {\n return unwrapProp(await client.GET(\"/networks/v1\", {}), \"networks\");\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Plan entity as returned by the Spacebring API. */\nexport type Plan = NonNullable<operations[\"getPlan\"][\"responses\"][200][\"content\"][\"application/json\"][\"plan\"]>;\n\nexport function createPlans(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve plans\n *\n * Retrieve all plans.\n */\n async list(query?: operations[\"getPlans\"][\"parameters\"][\"query\"]): Promise<operations[\"getPlans\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/plans/v1\", { params: { query } }));\n },\n /**\n * Retrieve plans — iterates every item across all pages.\n *\n * Retrieve all plans.\n */\n iterate(query?: Omit<NonNullable<operations[\"getPlans\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Plan, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/plans/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"plans\",\n );\n },\n /**\n * Retrieve a plan\n *\n * Retrieve a certain plan.\n */\n async get(planId: string): Promise<Plan> {\n return unwrapProp(await client.GET(\"/plans/v1/{planId}\", { params: { path: { planId } } }), \"plan\");\n },\n /** Create a plan */\n async create(body: NonNullable<operations[\"createPlan\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Plan> {\n return unwrapProp(await client.POST(\"/plans/v1\", { body }), \"plan\");\n },\n /**\n * Update a plan\n *\n * Update a certain plan.\n */\n async update(planId: string, body: NonNullable<operations[\"updatePlan\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/plans/v1/{planId}\", { params: { path: { planId } }, body }));\n },\n /**\n * Delete a plan\n *\n * Delete a certain plan.\n */\n async delete(planId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/plans/v1/{planId}\", { params: { path: { planId } } }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Registration entity as returned by the Spacebring API. */\nexport type Registration = NonNullable<operations[\"getRegistrations\"][\"responses\"][200][\"content\"][\"application/json\"][\"registrations\"]>[number];\n\nexport function createRegistrations(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve registrations\n *\n * Retrieve all registrations in network.\n */\n async list(query?: operations[\"getRegistrations\"][\"parameters\"][\"query\"]): Promise<operations[\"getRegistrations\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/registrations/v1\", { params: { query } }));\n },\n /**\n * Retrieve registrations — iterates every item across all pages.\n *\n * Retrieve all registrations in network.\n */\n iterate(query?: Omit<NonNullable<operations[\"getRegistrations\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Registration, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/registrations/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"registrations\",\n );\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Booking entity as returned by the Spacebring API. */\nexport type Booking = NonNullable<operations[\"getBooking\"][\"responses\"][200][\"content\"][\"application/json\"][\"booking\"]>;\n\n/** A Resource entity as returned by the Spacebring API. */\nexport type Resource = NonNullable<operations[\"getResource\"][\"responses\"][200][\"content\"][\"application/json\"][\"resource\"]>;\n\nexport function createResources(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve resources\n *\n * Retrieve resources in the location. Resources represent all kind of bookable items like rooms, hot desks, dedicated desks, parking lots.\n */\n async list(query: operations[\"getResources\"][\"parameters\"][\"query\"]): Promise<operations[\"getResources\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/resources/v1\", { params: { query } }));\n },\n /**\n * Retrieve resources — iterates every item across all pages.\n *\n * Retrieve resources in the location. Resources represent all kind of bookable items like rooms, hot desks, dedicated desks, parking lots.\n */\n iterate(query: Omit<NonNullable<operations[\"getResources\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Resource, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/resources/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"resources\",\n );\n },\n /**\n * Get a resource\n *\n * Get a certain resource.\n */\n async get(id: string): Promise<Resource> {\n return unwrapProp(await client.GET(\"/resources/v1/{id}\", { params: { path: { id } } }), \"resource\");\n },\n /**\n * Create a resource\n *\n * Create a new resource in a location. The request body must match the schema exactly—unknown properties are rejected.\n */\n async create(body: NonNullable<operations[\"createResource\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Resource> {\n return unwrapProp(await client.POST(\"/resources/v1\", { body }), \"resource\");\n },\n /**\n * Patch a resource\n *\n * Patch a certain resource.\n */\n async update(id: string, body: NonNullable<operations[\"patchResource\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/resources/v1/{id}\", { params: { path: { id } }, body }));\n },\n bookings: {\n /**\n * Retrieve bookings\n *\n * Retrieve all bookings of resources.\n */\n async list(query?: operations[\"getBookings\"][\"parameters\"][\"query\"]): Promise<operations[\"getBookings\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/resources/bookings/v1\", { params: { query } }));\n },\n /**\n * Retrieve bookings — iterates every item across all pages.\n *\n * Retrieve all bookings of resources.\n */\n iterate(query?: Omit<NonNullable<operations[\"getBookings\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Booking, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/resources/bookings/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"bookings\",\n );\n },\n /** Get a booking */\n async get(id: string): Promise<Booking> {\n return unwrapProp(await client.GET(\"/resources/bookings/v1/{id}\", { params: { path: { id } } }), \"booking\");\n },\n /** Create a booking */\n async create(body: NonNullable<operations[\"createBooking\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Booking> {\n return unwrapProp(await client.POST(\"/resources/bookings/v1\", { body }), \"booking\");\n },\n /** Delete a booking */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/resources/bookings/v1/{id}\", { params: { path: { id } } }));\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Order entity as returned by the Spacebring API. */\nexport type Order = NonNullable<operations[\"getOrder\"][\"responses\"][200][\"content\"][\"application/json\"][\"order\"]>;\n\n/** A Product entity as returned by the Spacebring API. */\nexport type Product = NonNullable<operations[\"getProduct\"][\"responses\"][200][\"content\"][\"application/json\"][\"product\"]>;\n\n/** A ShopCategory entity as returned by the Spacebring API. */\nexport type ShopCategory = NonNullable<operations[\"getShopCategory\"][\"responses\"][200][\"content\"][\"application/json\"][\"category\"]>;\n\nexport function createShop(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n categories: {\n /**\n * Retrieve categories\n *\n * Retrieve all shop categories in the location.\n */\n async list(query: operations[\"getShopCategories\"][\"parameters\"][\"query\"]): Promise<ShopCategory[]> {\n return unwrapProp(await client.GET(\"/shop/categories/v1\", { params: { query } }), \"categories\");\n },\n /**\n * Get a category\n *\n * Get a shop category.\n */\n async get(categoryId: string): Promise<ShopCategory> {\n return unwrapProp(await client.GET(\"/shop/categories/v1/{categoryId}\", { params: { path: { categoryId } } }), \"category\");\n },\n /**\n * Create a category\n *\n * Create a shop category.\n */\n async create(body: NonNullable<operations[\"createShopCategory\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<ShopCategory> {\n return unwrapProp(await client.POST(\"/shop/categories/v1\", { body }), \"category\");\n },\n /**\n * Update a category\n *\n * Update a shop category.\n */\n async update(categoryId: string, body: NonNullable<operations[\"updateShopCategory\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<ShopCategory> {\n return unwrapProp(await client.PUT(\"/shop/categories/v1/{categoryId}\", { params: { path: { categoryId } }, body }), \"category\");\n },\n /**\n * Delete a category\n *\n * Delete a shop category.\n */\n async delete(categoryId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/shop/categories/v1/{categoryId}\", { params: { path: { categoryId } } }));\n },\n },\n orders: {\n /**\n * Retrieve orders\n *\n * Retrieve all orders of products from shop.\n */\n async list(query?: operations[\"getOrders\"][\"parameters\"][\"query\"]): Promise<operations[\"getOrders\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/shop/orders/v1\", { params: { query } }));\n },\n /**\n * Retrieve orders — iterates every item across all pages.\n *\n * Retrieve all orders of products from shop.\n */\n iterate(query?: Omit<NonNullable<operations[\"getOrders\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Order, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/shop/orders/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"orders\",\n );\n },\n /**\n * Get an order\n *\n * Get a certain order.\n */\n async get(orderId: string): Promise<Order> {\n return unwrapProp(await client.GET(\"/shop/orders/v1/{orderId}\", { params: { path: { orderId } } }), \"order\");\n },\n },\n products: {\n /**\n * Retrieve products\n *\n * Retrieve products from shop.\n */\n async list(query?: operations[\"getProducts\"][\"parameters\"][\"query\"]): Promise<operations[\"getProducts\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/shop/products/v1\", { params: { query } }));\n },\n /**\n * Retrieve products — iterates every item across all pages.\n *\n * Retrieve products from shop.\n */\n iterate(query?: Omit<NonNullable<operations[\"getProducts\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Product, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/shop/products/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"products\",\n );\n },\n /**\n * Get a product\n *\n * Get a certain product.\n */\n async get(productId: string): Promise<Product> {\n return unwrapProp(await client.GET(\"/shop/products/v1/{productId}\", { params: { path: { productId } } }), \"product\");\n },\n /**\n * Create a product\n *\n * Create a product in shop.\n */\n async create(body: NonNullable<operations[\"createProduct\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Product> {\n return unwrapProp(await client.POST(\"/shop/products/v1\", { body }), \"product\");\n },\n /**\n * Update a product\n *\n * Update a certain product.\n */\n async update(productId: string, body: NonNullable<operations[\"updateProduct\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Product> {\n return unwrapProp(await client.PUT(\"/shop/products/v1/{productId}\", { params: { path: { productId } }, body }), \"product\");\n },\n /**\n * Delete a product\n *\n * Delete a certain product.\n */\n async delete(productId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/shop/products/v1/{productId}\", { params: { path: { productId } } }));\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Subscription entity as returned by the Spacebring API. */\nexport type Subscription = NonNullable<operations[\"getSubscription\"][\"responses\"][200][\"content\"][\"application/json\"][\"subscription\"]>;\n\nexport function createSubscriptions(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /** Retrieve subscriptions */\n async list(query: operations[\"getSubscriptions\"][\"parameters\"][\"query\"]): Promise<operations[\"getSubscriptions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/subscriptions/v1\", { params: { query } }));\n },\n /** Retrieve subscriptions — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getSubscriptions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Subscription, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/subscriptions/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"subscriptions\",\n );\n },\n /**\n * Retrieve a subscription\n *\n * Retrieve a certain subscription.\n */\n async get(id: string): Promise<Subscription> {\n return unwrapProp(await client.GET(\"/subscriptions/v1/{id}\", { params: { path: { id } } }), \"subscription\");\n },\n /**\n * Create a subscription\n *\n * Create a subscription for a membership or company.\n */\n async create(body: NonNullable<operations[\"createSubscription\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Subscription> {\n return unwrapProp(await client.POST(\"/subscriptions/v1\", { body }), \"subscription\");\n },\n /**\n * Update a subscription\n *\n * Update a certain subscription.\n */\n async update(id: string, body: NonNullable<operations[\"updateSubscription\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/subscriptions/v1/{id}\", { params: { path: { id } }, body }));\n },\n /**\n * Delete a subscription\n *\n * Delete a certain subscription.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/subscriptions/v1/{id}\", { params: { path: { id } } }));\n },\n /** Create a subscription item */\n async createItem(id: string, body: NonNullable<operations[\"createSubscriptionItem\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Subscription> {\n return unwrapProp(await client.POST(\"/subscriptions/v1/{id}/items\", { params: { path: { id } }, body }), \"subscription\");\n },\n /** Delete a subscription item */\n async deleteItem(id: string, itemId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/subscriptions/v1/{id}/items/{itemId}\", { params: { path: { id, itemId } } }));\n },\n /** Update a subscription item */\n async updateItem(id: string, itemId: string, body: NonNullable<operations[\"updateSubscriptionItem\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/subscriptions/v1/{id}/items/{itemId}\", { params: { path: { id, itemId } }, body }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Activity entity as returned by the Spacebring API. */\nexport type Activity = NonNullable<operations[\"createSupportTicketComment\"][\"responses\"][201][\"content\"][\"application/json\"][\"activity\"]>;\n\n/** A SupportTicket entity as returned by the Spacebring API. */\nexport type SupportTicket = NonNullable<operations[\"getSupportTickets\"][\"responses\"][200][\"content\"][\"application/json\"][\"tickets\"]>[number];\n\nexport function createSupport(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n tickets: {\n /**\n * Retrieve tickets\n *\n * Retrieve all support tickets.\n */\n async list(query: operations[\"getSupportTickets\"][\"parameters\"][\"query\"]): Promise<operations[\"getSupportTickets\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/support/tickets/v1\", { params: { query } }));\n },\n /**\n * Retrieve tickets — iterates every item across all pages.\n *\n * Retrieve all support tickets.\n */\n iterate(query: Omit<NonNullable<operations[\"getSupportTickets\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<SupportTicket, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/support/tickets/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"tickets\",\n );\n },\n /**\n * Retrieve a ticket\n *\n * Retrieve a support ticket.\n */\n async get(id: string): Promise<operations[\"getSupportTicket\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/support/tickets/v1/{id}\", { params: { path: { id } } }));\n },\n /**\n * Create a ticket\n *\n * Create a support ticket.\n */\n async create(body: NonNullable<operations[\"createSupportTicket\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"createSupportTicket\"][\"responses\"][201][\"content\"][\"application/json\"]> {\n return unwrap(await client.POST(\"/support/tickets/v1\", { body }));\n },\n /**\n * Update a ticket's assignee\n *\n * Update support ticket assignee.\n */\n async updateAssignee(id: string, body: NonNullable<operations[\"updateSupportTicketAssignee\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"updateSupportTicketAssignee\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.PUT(\"/support/tickets/v1/{id}/assignee\", { params: { path: { id } }, body }));\n },\n /**\n * Update a ticket's status\n *\n * Update support ticket status.\n */\n async updateStatus(id: string, body: NonNullable<operations[\"updateSupportTicketStatus\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"updateSupportTicketStatus\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.PUT(\"/support/tickets/v1/{id}/status\", { params: { path: { id } }, body }));\n },\n /**\n * Update a ticket's type\n *\n * Update a support ticket type.\n */\n async updateType(id: string, body: NonNullable<operations[\"updateSupportTicketType\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/support/tickets/v1/{id}/type\", { params: { path: { id } }, body }));\n },\n comment: {\n /**\n * Create a ticket comment\n *\n * Create a support ticket comment.\n */\n async create(body: NonNullable<operations[\"createSupportTicketComment\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Activity> {\n return unwrapProp(await client.POST(\"/support/tickets/v1/comment\", { body }), \"activity\");\n },\n /**\n * Delete a ticket comment\n *\n * Delete a support ticket comment.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/support/tickets/v1/comment/{id}\", { params: { path: { id } } }));\n },\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Balance entity as returned by the Spacebring API. */\nexport type Balance = NonNullable<operations[\"getCreditsBalance\"][\"responses\"][200][\"content\"][\"application/json\"][\"balances\"]>[number];\n\n/** A CreditTransaction entity as returned by the Spacebring API. */\nexport type CreditTransaction = NonNullable<operations[\"getCreditsTransactions\"][\"responses\"][200][\"content\"][\"application/json\"][\"transactions\"]>[number];\n\n/** A DayPassTransaction entity as returned by the Spacebring API. */\nexport type DayPassTransaction = NonNullable<operations[\"getDayPassesTransactions\"][\"responses\"][200][\"content\"][\"application/json\"][\"transactions\"]>[number];\n\n/** A MoneyTransaction entity as returned by the Spacebring API. */\nexport type MoneyTransaction = NonNullable<operations[\"getMoneyTransaction\"][\"responses\"][200][\"content\"][\"application/json\"][\"transaction\"]>;\n\nexport function createTransactions(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n balances: {\n /**\n * Retrieve credit balance\n *\n * Retrieve credits balance.\n */\n async getCredits(id: string): Promise<Balance[]> {\n return unwrapProp(await client.GET(\"/transactions/v1/balances/{id}/credits\", { params: { path: { id } } }), \"balances\");\n },\n /** Retrieve day passes balance */\n async getDayPasses(id: string): Promise<Balance[]> {\n return unwrapProp(await client.GET(\"/transactions/v1/balances/{id}/day_passes\", { params: { path: { id } } }), \"balances\");\n },\n },\n credits: {\n /**\n * Retrieve credit transactions\n *\n * Retrieve credits transactions.\n */\n async list(query?: operations[\"getCreditsTransactions\"][\"parameters\"][\"query\"]): Promise<operations[\"getCreditsTransactions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/transactions/credits/v1\", { params: { query } }));\n },\n /**\n * Retrieve credit transactions — iterates every item across all pages.\n *\n * Retrieve credits transactions.\n */\n iterate(query?: Omit<NonNullable<operations[\"getCreditsTransactions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<CreditTransaction, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/transactions/credits/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"transactions\",\n );\n },\n /**\n * Create a credit transaction\n *\n * Create a credits transaction.\n */\n async create(body: NonNullable<operations[\"createCreditsTransaction\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<CreditTransaction> {\n return unwrapProp(await client.POST(\"/transactions/credits/v1\", { body }), \"transaction\");\n },\n },\n dayPasses: {\n /**\n * Retrieve day pass transactions\n *\n * Retrieve day passes transactions.\n */\n async list(query?: operations[\"getDayPassesTransactions\"][\"parameters\"][\"query\"]): Promise<operations[\"getDayPassesTransactions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/transactions/day_passes/v1\", { params: { query } }));\n },\n /**\n * Retrieve day pass transactions — iterates every item across all pages.\n *\n * Retrieve day passes transactions.\n */\n iterate(query?: Omit<NonNullable<operations[\"getDayPassesTransactions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<DayPassTransaction, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/transactions/day_passes/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"transactions\",\n );\n },\n /**\n * Create a day pass transaction\n *\n * Create a day passes transaction.\n */\n async create(body: NonNullable<operations[\"createDayPassesTransaction\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<DayPassTransaction> {\n return unwrapProp(await client.POST(\"/transactions/day_passes/v1\", { body }), \"transaction\");\n },\n },\n money: {\n /** Retrieve money transactions */\n async list(query: operations[\"getMoneyTransactions\"][\"parameters\"][\"query\"]): Promise<operations[\"getMoneyTransactions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/transactions/money/v1\", { params: { query } }));\n },\n /** Retrieve money transactions — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getMoneyTransactions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<MoneyTransaction, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/transactions/money/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"transactions\",\n );\n },\n /** Retrieve a money transaction */\n async get(id: string): Promise<MoneyTransaction> {\n return unwrapProp(await client.GET(\"/transactions/money/v1/{id}\", { params: { path: { id } } }), \"transaction\");\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Contact entity as returned by the Spacebring API. */\nexport type Contact = NonNullable<operations[\"getContact\"][\"responses\"][200][\"content\"][\"application/json\"][\"contact\"]>;\n\n/** A Request entity as returned by the Spacebring API. */\nexport type Request = NonNullable<operations[\"getRequest\"][\"responses\"][200][\"content\"][\"application/json\"][\"request\"]>;\n\n/** A RequestVisit entity as returned by the Spacebring API. */\nexport type RequestVisit = NonNullable<operations[\"approveRequest\"][\"responses\"][201][\"content\"][\"application/json\"][\"visit\"]>;\n\n/** A VisitorVisit entity as returned by the Spacebring API. */\nexport type VisitorVisit = NonNullable<operations[\"getVisit\"][\"responses\"][200][\"content\"][\"application/json\"][\"visit\"]>;\n\nexport function createVisitors(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n contacts: {\n /** Get contacts */\n async list(query: operations[\"getContacts\"][\"parameters\"][\"query\"]): Promise<operations[\"getContacts\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/visitors/contacts/v1\", { params: { query } }));\n },\n /** Get contacts — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getContacts\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Contact, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/visitors/contacts/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"contacts\",\n );\n },\n /** Get a contact */\n async get(contactId: string): Promise<Contact> {\n return unwrapProp(await client.GET(\"/visitors/contacts/v1/{contactId}\", { params: { path: { contactId } } }), \"contact\");\n },\n /** Create a contact */\n async create(body: NonNullable<operations[\"createContact\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Contact> {\n return unwrapProp(await client.POST(\"/visitors/contacts/v1\", { body }), \"contact\");\n },\n },\n requests: {\n /** Get requests */\n async list(query: operations[\"getRequests\"][\"parameters\"][\"query\"]): Promise<operations[\"getRequests\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/visitors/requests/v1\", { params: { query } }));\n },\n /** Get requests — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getRequests\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Request, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/visitors/requests/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"requests\",\n );\n },\n /** Retrieve a request */\n async get(id: string): Promise<Request> {\n return unwrapProp(await client.GET(\"/visitors/requests/v1/{id}\", { params: { path: { id } } }), \"request\");\n },\n /** Create a request */\n async create(body: NonNullable<operations[\"createRequest\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Request> {\n return unwrapProp(await client.POST(\"/visitors/requests/v1\", { body }), \"request\");\n },\n /** Approve a request */\n async approve(id: string): Promise<RequestVisit> {\n return unwrapProp(await client.POST(\"/visitors/requests/v1/{id}/approve\", { params: { path: { id } } }), \"visit\");\n },\n /** Reject a request */\n async reject(id: string): Promise<undefined> {\n return unwrap(await client.POST(\"/visitors/requests/v1/{id}/reject\", { params: { path: { id } } }));\n },\n },\n visits: {\n /** Retrieve visits */\n async list(query: operations[\"getVisits\"][\"parameters\"][\"query\"]): Promise<operations[\"getVisits\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/visitors/visits/v1\", { params: { query } }));\n },\n /** Retrieve visits — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getVisits\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<VisitorVisit, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/visitors/visits/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"visits\",\n );\n },\n /**\n * Retrieve a visit\n *\n * Retrieve a visit by id.\n */\n async get(id: string): Promise<VisitorVisit> {\n return unwrapProp(await client.GET(\"/visitors/visits/v1/{id}\", { params: { path: { id } } }), \"visit\");\n },\n /** Create a visit */\n async create(body: NonNullable<operations[\"createVisit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<VisitorVisit> {\n return unwrapProp(await client.POST(\"/visitors/visits/v1\", { body }), \"visit\");\n },\n /**\n * Update a visit\n *\n * Update a visit by id.\n */\n async update(id: string, body: NonNullable<operations[\"updateVisit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<VisitorVisit> {\n return unwrapProp(await client.PUT(\"/visitors/visits/v1/{id}\", { params: { path: { id } }, body }), \"visit\");\n },\n /**\n * Delete a visit\n *\n * Delete a visit by id.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/visitors/visits/v1/{id}\", { params: { path: { id } } }));\n },\n /** Check in a visit */\n async checkIn(body: NonNullable<operations[\"checkInVisit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<VisitorVisit> {\n return unwrapProp(await client.POST(\"/visitors/visits/v1/checkin\", { body }), \"visit\");\n },\n /** Check out a visit */\n async checkOut(body: NonNullable<operations[\"checkOutVisit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<VisitorVisit> {\n return unwrapProp(await client.POST(\"/visitors/visits/v1/checkout\", { body }), \"visit\");\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport type { SpacebringDefaults } from \"../../core.js\";\nimport type { paths } from \"../schema.js\";\nimport { createAltcurrencies as altCurrenciesGroup } from \"./altCurrencies.js\";\nimport { createBenefits as benefitsGroup } from \"./benefits.js\";\nimport { createBilling as billingGroup } from \"./billing.js\";\nimport { createCommunity as communityGroup } from \"./community.js\";\nimport { createContracts as contractsGroup } from \"./contracts.js\";\nimport { createDiscounts as discountsGroup } from \"./discounts.js\";\nimport { createEvents as eventsGroup } from \"./events.js\";\nimport { createFeed as feedGroup } from \"./feed.js\";\nimport { createFloors as floorsGroup } from \"./floors.js\";\nimport { createGuides as guidesGroup } from \"./guides.js\";\nimport { createLocations as locationsGroup } from \"./locations.js\";\nimport { createNetworks as networksGroup } from \"./networks.js\";\nimport { createPlans as plansGroup } from \"./plans.js\";\nimport { createRegistrations as registrationsGroup } from \"./registrations.js\";\nimport { createResources as resourcesGroup } from \"./resources.js\";\nimport { createShop as shopGroup } from \"./shop.js\";\nimport { createSubscriptions as subscriptionsGroup } from \"./subscriptions.js\";\nimport { createSupport as supportGroup } from \"./support.js\";\nimport { createTransactions as transactionsGroup } from \"./transactions.js\";\nimport { createVisitors as visitorsGroup } from \"./visitors.js\";\n\nexport function createResources(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n altCurrencies: altCurrenciesGroup(client, defaults),\n benefits: benefitsGroup(client, defaults),\n billing: billingGroup(client, defaults),\n community: communityGroup(client, defaults),\n contracts: contractsGroup(client, defaults),\n discounts: discountsGroup(client, defaults),\n events: eventsGroup(client, defaults),\n feed: feedGroup(client, defaults),\n floors: floorsGroup(client, defaults),\n guides: guidesGroup(client, defaults),\n locations: locationsGroup(client, defaults),\n networks: networksGroup(client, defaults),\n plans: plansGroup(client, defaults),\n registrations: registrationsGroup(client, defaults),\n resources: resourcesGroup(client, defaults),\n shop: shopGroup(client, defaults),\n subscriptions: subscriptionsGroup(client, defaults),\n support: supportGroup(client, defaults),\n transactions: transactionsGroup(client, defaults),\n visitors: visitorsGroup(client, defaults),\n };\n}\n\nexport type SpacebringResources = ReturnType<typeof createResources>;\n","import createClient, { type Client } from \"openapi-fetch\";\nimport type { paths } from \"./generated/schema.js\";\nimport { createResources, type SpacebringResources } from \"./generated/resources/index.js\";\n\nexport interface SpacebringConfig {\n /** Client ID from Spacebring > Network Settings > Developers. */\n clientId: string;\n /** Client secret from Spacebring > Network Settings > Developers. */\n clientSecret: string;\n /** Network ID, sent as the `spacebring-network-id` header on every request. */\n networkId?: string;\n /** API origin. Defaults to `https://api.spacebring.com`. */\n baseUrl?: string;\n /** Custom fetch implementation (testing, non-standard platforms). */\n fetch?: typeof globalThis.fetch;\n}\n\nexport interface Spacebring extends SpacebringResources {}\n\nexport class Spacebring {\n /** Typed openapi-fetch client — escape hatch for endpoints or options the facade does not cover. */\n readonly raw: Client<paths>;\n\n constructor(config: SpacebringConfig) {\n const headers: Record<string, string> = {\n Authorization: `Basic ${toBase64(`${config.clientId}:${config.clientSecret}`)}`,\n };\n if (config.networkId) {\n headers[\"spacebring-network-id\"] = config.networkId;\n }\n this.raw = createClient<paths>({\n baseUrl: config.baseUrl ?? \"https://api.spacebring.com\",\n headers,\n fetch: config.fetch,\n });\n Object.assign(this, createResources(this.raw, { networkId: config.networkId }));\n }\n}\n\nfunction toBase64(value: string): string {\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(value, \"utf8\").toString(\"base64\");\n }\n let binary = \"\";\n for (const byte of new TextEncoder().encode(value)) {\n binary += String.fromCharCode(byte);\n }\n return btoa(binary);\n}\n"],"mappings":"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","names":["error","final","joiner","createResources","createResources"]}
1
+ {"version":3,"sources":["../node_modules/openapi-fetch/src/index.js","../src/error.ts","../src/core.ts","../src/generated/resources/altCurrencies.ts","../src/generated/resources/benefits.ts","../src/generated/resources/billing.ts","../src/generated/resources/community.ts","../src/generated/resources/contracts.ts","../src/generated/resources/discounts.ts","../src/generated/resources/events.ts","../src/generated/resources/feed.ts","../src/generated/resources/floors.ts","../src/generated/resources/guides.ts","../src/generated/resources/locations.ts","../src/generated/resources/networks.ts","../src/generated/resources/plans.ts","../src/generated/resources/registrations.ts","../src/generated/resources/resources.ts","../src/generated/resources/shop.ts","../src/generated/resources/subscriptions.ts","../src/generated/resources/support.ts","../src/generated/resources/transactions.ts","../src/generated/resources/visitors.ts","../src/generated/resources/index.ts","../src/client.ts"],"sourcesContent":["// settings & const\nconst PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\nconst supportsRequestInitExt = () => {\n return (\n typeof process === \"object\" &&\n Number.parseInt(process?.versions?.node?.substring(0, 2)) >= 18 &&\n process.versions.undici\n );\n};\n\n/**\n * Returns a cheap, non-cryptographically-secure random ID\n * Courtesy of @imranbarbhuiya (https://github.com/imranbarbhuiya)\n */\nexport function randomID() {\n return Math.random().toString(36).slice(2, 11);\n}\n\n/**\n * Create an openapi-fetch client.\n * @type {import(\"./index.js\").default}\n */\nexport default function createClient(clientOptions) {\n let {\n baseUrl = \"\",\n Request: CustomRequest = globalThis.Request,\n fetch: baseFetch = globalThis.fetch,\n querySerializer: globalQuerySerializer,\n bodySerializer: globalBodySerializer,\n pathSerializer: globalPathSerializer,\n headers: baseHeaders,\n requestInitExt = undefined,\n ...baseOptions\n } = { ...clientOptions };\n requestInitExt = supportsRequestInitExt() ? requestInitExt : undefined;\n baseUrl = removeTrailingSlash(baseUrl);\n const globalMiddlewares = [];\n\n /**\n * Per-request fetch (keeps settings created in createClient()\n * @param {T} url\n * @param {import('./index.js').FetchOptions<T>} fetchOptions\n */\n async function coreFetch(schemaPath, fetchOptions) {\n const {\n baseUrl: localBaseUrl,\n fetch = baseFetch,\n Request = CustomRequest,\n headers,\n params = {},\n parseAs = \"json\",\n querySerializer: requestQuerySerializer,\n bodySerializer = globalBodySerializer ?? defaultBodySerializer,\n pathSerializer: requestPathSerializer,\n body,\n middleware: requestMiddlewares = [],\n ...init\n } = fetchOptions || {};\n let finalBaseUrl = baseUrl;\n if (localBaseUrl) {\n finalBaseUrl = removeTrailingSlash(localBaseUrl) ?? baseUrl;\n }\n\n let querySerializer =\n typeof globalQuerySerializer === \"function\"\n ? globalQuerySerializer\n : createQuerySerializer(globalQuerySerializer);\n if (requestQuerySerializer) {\n querySerializer =\n typeof requestQuerySerializer === \"function\"\n ? requestQuerySerializer\n : createQuerySerializer({\n ...(typeof globalQuerySerializer === \"object\" ? globalQuerySerializer : {}),\n ...requestQuerySerializer,\n });\n }\n\n const pathSerializer = requestPathSerializer || globalPathSerializer || defaultPathSerializer;\n\n const serializedBody =\n body === undefined\n ? undefined\n : bodySerializer(\n body,\n // Note: we declare mergeHeaders() both here and below because it’s a bit of a chicken-or-egg situation:\n // bodySerializer() needs all headers so we aren’t dropping ones set by the user, however,\n // the result of this ALSO sets the lowest-priority content-type header. So we re-merge below,\n // setting the content-type at the very beginning to be overwritten.\n // Lastly, based on the way headers work, it’s not a simple “present-or-not” check becauase null intentionally un-sets headers.\n mergeHeaders(baseHeaders, headers, params.header),\n );\n const finalHeaders = mergeHeaders(\n // with no body, we should not to set Content-Type\n serializedBody === undefined ||\n // if serialized body is FormData; browser will correctly set Content-Type & boundary expression\n serializedBody instanceof FormData\n ? {}\n : {\n \"Content-Type\": \"application/json\",\n },\n baseHeaders,\n headers,\n params.header,\n );\n\n // Client level middleware take priority over request-level middleware\n const finalMiddlewares = [...globalMiddlewares, ...requestMiddlewares];\n\n const requestInit = {\n redirect: \"follow\",\n ...baseOptions,\n ...init,\n body: serializedBody,\n headers: finalHeaders,\n };\n\n let id;\n let options;\n let request = new Request(\n createFinalURL(schemaPath, { baseUrl: finalBaseUrl, params, querySerializer, pathSerializer }),\n requestInit,\n );\n let response;\n\n /** Add custom parameters to Request object */\n for (const key in init) {\n if (!(key in request)) {\n request[key] = init[key];\n }\n }\n\n if (finalMiddlewares.length) {\n id = randomID();\n\n // middleware (request)\n options = Object.freeze({\n baseUrl: finalBaseUrl,\n fetch,\n parseAs,\n querySerializer,\n bodySerializer,\n pathSerializer,\n });\n for (const m of finalMiddlewares) {\n if (m && typeof m === \"object\" && typeof m.onRequest === \"function\") {\n const result = await m.onRequest({\n request,\n schemaPath,\n params,\n options,\n id,\n });\n if (result) {\n if (result instanceof Request) {\n request = result;\n } else if (result instanceof Response) {\n response = result;\n break;\n } else {\n throw new Error(\"onRequest: must return new Request() or Response() when modifying the request\");\n }\n }\n }\n }\n }\n\n if (!response) {\n // fetch!\n try {\n response = await fetch(request, requestInitExt);\n } catch (error) {\n let errorAfterMiddleware = error;\n // middleware (error)\n // execute in reverse-array order (first priority gets last transform)\n if (finalMiddlewares.length) {\n for (let i = finalMiddlewares.length - 1; i >= 0; i--) {\n const m = finalMiddlewares[i];\n if (m && typeof m === \"object\" && typeof m.onError === \"function\") {\n const result = await m.onError({\n request,\n error: errorAfterMiddleware,\n schemaPath,\n params,\n options,\n id,\n });\n if (result) {\n // if error is handled by returning a response, skip remaining middleware\n if (result instanceof Response) {\n errorAfterMiddleware = undefined;\n response = result;\n break;\n }\n\n if (result instanceof Error) {\n errorAfterMiddleware = result;\n continue;\n }\n\n throw new Error(\"onError: must return new Response() or instance of Error\");\n }\n }\n }\n }\n\n // rethrow error if not handled by middleware\n if (errorAfterMiddleware) {\n throw errorAfterMiddleware;\n }\n }\n\n // middleware (response)\n // execute in reverse-array order (first priority gets last transform)\n if (finalMiddlewares.length) {\n for (let i = finalMiddlewares.length - 1; i >= 0; i--) {\n const m = finalMiddlewares[i];\n if (m && typeof m === \"object\" && typeof m.onResponse === \"function\") {\n const result = await m.onResponse({\n request,\n response,\n schemaPath,\n params,\n options,\n id,\n });\n if (result) {\n if (!(result instanceof Response)) {\n throw new Error(\"onResponse: must return new Response() when modifying the response\");\n }\n response = result;\n }\n }\n }\n }\n }\n\n const contentLength = response.headers.get(\"Content-Length\");\n // handle empty content\n if (\n response.status === 204 ||\n request.method === \"HEAD\" ||\n (contentLength === \"0\" && !response.headers.get(\"Transfer-Encoding\")?.includes(\"chunked\"))\n ) {\n return response.ok ? { data: undefined, response } : { error: undefined, response };\n }\n\n // parse response (falling back to .text() when necessary)\n if (response.ok) {\n const getResponseData = async () => {\n // if \"stream\", skip parsing entirely\n if (parseAs === \"stream\") {\n return response.body;\n }\n\n if (parseAs === \"json\" && !contentLength) {\n // use text() when no content-length is provided to avoid errors parsing empty bodies (200 with no content)\n const raw = await response.text();\n return raw ? JSON.parse(raw) : undefined;\n }\n\n return await response[parseAs]();\n };\n return { data: await getResponseData(), response };\n }\n\n // handle errors\n let error = await response.text();\n try {\n error = JSON.parse(error); // attempt to parse as JSON\n } catch {\n // noop\n }\n return { error, response };\n }\n\n return {\n request(method, url, init) {\n return coreFetch(url, { ...init, method: method.toUpperCase() });\n },\n /** Call a GET endpoint */\n GET(url, init) {\n return coreFetch(url, { ...init, method: \"GET\" });\n },\n /** Call a PUT endpoint */\n PUT(url, init) {\n return coreFetch(url, { ...init, method: \"PUT\" });\n },\n /** Call a POST endpoint */\n POST(url, init) {\n return coreFetch(url, { ...init, method: \"POST\" });\n },\n /** Call a DELETE endpoint */\n DELETE(url, init) {\n return coreFetch(url, { ...init, method: \"DELETE\" });\n },\n /** Call a OPTIONS endpoint */\n OPTIONS(url, init) {\n return coreFetch(url, { ...init, method: \"OPTIONS\" });\n },\n /** Call a HEAD endpoint */\n HEAD(url, init) {\n return coreFetch(url, { ...init, method: \"HEAD\" });\n },\n /** Call a PATCH endpoint */\n PATCH(url, init) {\n return coreFetch(url, { ...init, method: \"PATCH\" });\n },\n /** Call a TRACE endpoint */\n TRACE(url, init) {\n return coreFetch(url, { ...init, method: \"TRACE\" });\n },\n /** Register middleware */\n use(...middleware) {\n for (const m of middleware) {\n if (!m) {\n continue;\n }\n if (typeof m !== \"object\" || !(\"onRequest\" in m || \"onResponse\" in m || \"onError\" in m)) {\n throw new Error(\"Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`\");\n }\n globalMiddlewares.push(m);\n }\n },\n /** Unregister middleware */\n eject(...middleware) {\n for (const m of middleware) {\n const i = globalMiddlewares.indexOf(m);\n if (i !== -1) {\n globalMiddlewares.splice(i, 1);\n }\n }\n },\n };\n}\n\nclass PathCallForwarder {\n constructor(client, url) {\n this.client = client;\n this.url = url;\n }\n\n GET = (init) => {\n return this.client.GET(this.url, init);\n };\n PUT = (init) => {\n return this.client.PUT(this.url, init);\n };\n POST = (init) => {\n return this.client.POST(this.url, init);\n };\n DELETE = (init) => {\n return this.client.DELETE(this.url, init);\n };\n OPTIONS = (init) => {\n return this.client.OPTIONS(this.url, init);\n };\n HEAD = (init) => {\n return this.client.HEAD(this.url, init);\n };\n PATCH = (init) => {\n return this.client.PATCH(this.url, init);\n };\n TRACE = (init) => {\n return this.client.TRACE(this.url, init);\n };\n}\n\nclass PathClientProxyHandler {\n constructor() {\n this.client = null;\n }\n\n // Assume the property is an URL.\n get(coreClient, url) {\n const forwarder = new PathCallForwarder(coreClient, url);\n this.client[url] = forwarder;\n return forwarder;\n }\n}\n\n/**\n * Wrap openapi-fetch client to support a path based API.\n * @type {import(\"./index.js\").wrapAsPathBasedClient}\n */\nexport function wrapAsPathBasedClient(coreClient) {\n const handler = new PathClientProxyHandler();\n const proxy = new Proxy(coreClient, handler);\n\n // Put the proxy on the prototype chain of the actual client.\n // This means if we do not have a memoized PathCallForwarder,\n // we fall back to the proxy to synthesize it.\n // However, the proxy itself is not on the hot-path (if we fetch the same\n // endpoint multiple times, only the first call will hit the proxy).\n function Client() {}\n Client.prototype = proxy;\n\n const client = new Client();\n\n // Feed the client back to the proxy handler so it can store the generated\n // PathCallForwarder.\n handler.client = client;\n\n return client;\n}\n\n/**\n * Convenience method to an openapi-fetch path based client.\n * Strictly equivalent to `wrapAsPathBasedClient(createClient(...))`.\n * @type {import(\"./index.js\").createPathBasedClient}\n */\nexport function createPathBasedClient(clientOptions) {\n return wrapAsPathBasedClient(createClient(clientOptions));\n}\n\n// utils\n\n/**\n * Serialize primitive param values\n * @type {import(\"./index.js\").serializePrimitiveParam}\n */\nexport function serializePrimitiveParam(name, value, options) {\n if (value === undefined || value === null) {\n return \"\";\n }\n if (typeof value === \"object\") {\n throw new Error(\n \"Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.\",\n );\n }\n return `${name}=${options?.allowReserved === true ? value : encodeURIComponent(value)}`;\n}\n\n/**\n * Serialize object param (shallow only)\n * @type {import(\"./index.js\").serializeObjectParam}\n */\nexport function serializeObjectParam(name, value, options) {\n if (!value || typeof value !== \"object\") {\n return \"\";\n }\n const values = [];\n const joiner =\n {\n simple: \",\",\n label: \".\",\n matrix: \";\",\n }[options.style] || \"&\";\n\n // explode: false\n if (options.style !== \"deepObject\" && options.explode === false) {\n for (const k in value) {\n values.push(k, options.allowReserved === true ? value[k] : encodeURIComponent(value[k]));\n }\n const final = values.join(\",\"); // note: values are always joined by comma in explode: false (but joiner can prefix)\n switch (options.style) {\n case \"form\": {\n return `${name}=${final}`;\n }\n case \"label\": {\n return `.${final}`;\n }\n case \"matrix\": {\n return `;${name}=${final}`;\n }\n default: {\n return final;\n }\n }\n }\n\n // explode: true\n for (const k in value) {\n const finalName = options.style === \"deepObject\" ? `${name}[${k}]` : k;\n values.push(serializePrimitiveParam(finalName, value[k], options));\n }\n const final = values.join(joiner);\n return options.style === \"label\" || options.style === \"matrix\" ? `${joiner}${final}` : final;\n}\n\n/**\n * Serialize array param (shallow only)\n * @type {import(\"./index.js\").serializeArrayParam}\n */\nexport function serializeArrayParam(name, value, options) {\n if (!Array.isArray(value)) {\n return \"\";\n }\n\n // explode: false\n if (options.explode === false) {\n const joiner = { form: \",\", spaceDelimited: \"%20\", pipeDelimited: \"|\" }[options.style] || \",\"; // note: for arrays, joiners vary wildly based on style + explode behavior\n const final = (options.allowReserved === true ? value : value.map((v) => encodeURIComponent(v))).join(joiner);\n switch (options.style) {\n case \"simple\": {\n return final;\n }\n case \"label\": {\n return `.${final}`;\n }\n case \"matrix\": {\n return `;${name}=${final}`;\n }\n // case \"spaceDelimited\":\n // case \"pipeDelimited\":\n default: {\n return `${name}=${final}`;\n }\n }\n }\n\n // explode: true\n const joiner = { simple: \",\", label: \".\", matrix: \";\" }[options.style] || \"&\";\n const values = [];\n for (const v of value) {\n if (options.style === \"simple\" || options.style === \"label\") {\n values.push(options.allowReserved === true ? v : encodeURIComponent(v));\n } else {\n values.push(serializePrimitiveParam(name, v, options));\n }\n }\n return options.style === \"label\" || options.style === \"matrix\"\n ? `${joiner}${values.join(joiner)}`\n : values.join(joiner);\n}\n\n/**\n * Serialize query params to string\n * @type {import(\"./index.js\").createQuerySerializer}\n */\nexport function createQuerySerializer(options) {\n return function querySerializer(queryParams) {\n const search = [];\n if (queryParams && typeof queryParams === \"object\") {\n for (const name in queryParams) {\n const value = queryParams[name];\n if (value === undefined || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n continue;\n }\n search.push(\n serializeArrayParam(name, value, {\n style: \"form\",\n explode: true,\n ...options?.array,\n allowReserved: options?.allowReserved || false,\n }),\n );\n continue;\n }\n if (typeof value === \"object\") {\n search.push(\n serializeObjectParam(name, value, {\n style: \"deepObject\",\n explode: true,\n ...options?.object,\n allowReserved: options?.allowReserved || false,\n }),\n );\n continue;\n }\n search.push(serializePrimitiveParam(name, value, options));\n }\n }\n return search.join(\"&\");\n };\n}\n\n/**\n * Handle different OpenAPI 3.x serialization styles\n * @type {import(\"./index.js\").defaultPathSerializer}\n * @see https://swagger.io/docs/specification/serialization/#path\n */\nexport function defaultPathSerializer(pathname, pathParams) {\n let nextURL = pathname;\n for (const match of pathname.match(PATH_PARAM_RE) ?? []) {\n let name = match.substring(1, match.length - 1);\n let explode = false;\n let style = \"simple\";\n if (name.endsWith(\"*\")) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n if (name.startsWith(\".\")) {\n style = \"label\";\n name = name.substring(1);\n } else if (name.startsWith(\";\")) {\n style = \"matrix\";\n name = name.substring(1);\n }\n if (!pathParams || pathParams[name] === undefined || pathParams[name] === null) {\n continue;\n }\n const value = pathParams[name];\n if (Array.isArray(value)) {\n nextURL = nextURL.replace(match, serializeArrayParam(name, value, { style, explode }));\n continue;\n }\n if (typeof value === \"object\") {\n nextURL = nextURL.replace(match, serializeObjectParam(name, value, { style, explode }));\n continue;\n }\n if (style === \"matrix\") {\n nextURL = nextURL.replace(match, `;${serializePrimitiveParam(name, value)}`);\n continue;\n }\n nextURL = nextURL.replace(match, style === \"label\" ? `.${encodeURIComponent(value)}` : encodeURIComponent(value));\n }\n return nextURL;\n}\n\n/**\n * Serialize body object to string\n * @type {import(\"./index.js\").defaultBodySerializer}\n */\nexport function defaultBodySerializer(body, headers) {\n if (body instanceof FormData) {\n return body;\n }\n if (headers) {\n const contentType =\n headers.get instanceof Function\n ? (headers.get(\"Content-Type\") ?? headers.get(\"content-type\"))\n : (headers[\"Content-Type\"] ?? headers[\"content-type\"]);\n if (contentType === \"application/x-www-form-urlencoded\") {\n return new URLSearchParams(body).toString();\n }\n }\n return JSON.stringify(body);\n}\n\n/**\n * Construct URL string from baseUrl and handle path and query params\n * @type {import(\"./index.js\").createFinalURL}\n */\nexport function createFinalURL(pathname, options) {\n let finalURL = `${options.baseUrl}${pathname}`;\n if (options.params?.path) {\n finalURL = options.pathSerializer(finalURL, options.params.path);\n }\n let search = options.querySerializer(options.params.query ?? {});\n if (search.startsWith(\"?\")) {\n search = search.substring(1);\n }\n if (search) {\n finalURL += `?${search}`;\n }\n return finalURL;\n}\n\n/**\n * Merge headers a and b, with b taking priority\n * @type {import(\"./index.js\").mergeHeaders}\n */\nexport function mergeHeaders(...allHeaders) {\n const finalHeaders = new Headers();\n for (const h of allHeaders) {\n if (!h || typeof h !== \"object\") {\n continue;\n }\n const iterator = h instanceof Headers ? h.entries() : Object.entries(h);\n for (const [k, v] of iterator) {\n if (v === null) {\n finalHeaders.delete(k);\n } else if (Array.isArray(v)) {\n for (const v2 of v) {\n finalHeaders.append(k, v2);\n }\n } else if (v !== undefined) {\n finalHeaders.set(k, v);\n }\n }\n }\n return finalHeaders;\n}\n\n/**\n * Remove trailing slash from url\n * @type {import(\"./index.js\").removeTrailingSlash}\n */\nexport function removeTrailingSlash(url) {\n if (url.endsWith(\"/\")) {\n return url.substring(0, url.length - 1);\n }\n return url;\n}\n","import type { components } from \"./generated/schema.js\";\n\nexport type SpacebringErrorBody = components[\"schemas\"][\"responseError\"];\n\n/**\n * Error thrown when the Spacebring API responds with a non-2xx status.\n */\nexport class SpacebringError extends Error {\n /** HTTP status code of the failed response. */\n readonly status: number;\n /** Parsed error body returned by the API, if any. */\n readonly body: SpacebringErrorBody | undefined;\n\n constructor(status: number, body?: unknown) {\n const parsed = isErrorBody(body) ? body : undefined;\n super(parsed?.message ?? `Spacebring API request failed with status ${status}`);\n this.name = \"SpacebringError\";\n this.status = status;\n this.body = parsed;\n }\n}\n\nfunction isErrorBody(body: unknown): body is SpacebringErrorBody {\n return typeof body === \"object\" && body !== null;\n}\n","import { SpacebringError } from \"./error.js\";\n\n/** Client-level defaults threaded into the generated facade. */\nexport interface SpacebringDefaults {\n /** Sent as the `spacebring-network-id` header where the API requires it. */\n networkId?: string;\n}\n\ninterface FetchResult<T> {\n data?: T;\n error?: unknown;\n response: Response;\n}\n\n/**\n * Unwraps an openapi-fetch result: returns `data` on success,\n * throws {@link SpacebringError} on any non-2xx response.\n */\nexport function unwrap<T>(result: FetchResult<T>): T {\n if (result.error !== undefined || !result.response.ok) {\n throw new SpacebringError(result.response.status, result.error);\n }\n return result.data as T;\n}\n\n/**\n * Returns the single payload property of a success envelope,\n * throwing {@link SpacebringError} when the response has no usable body.\n */\nexport function unwrapProp<Envelope, Key extends keyof Envelope>(\n result: FetchResult<Envelope>,\n key: Key,\n): NonNullable<Envelope[Key]> {\n const value = unwrap(result)?.[key];\n if (value === undefined || value === null) {\n throw new SpacebringError(result.response.status, {\n message: `Response is missing the \"${String(key)}\" property`,\n });\n }\n return value as NonNullable<Envelope[Key]>;\n}\n\n/**\n * Iterates every item of a paginated list endpoint, following\n * `nextPageToken` until the last page.\n */\nexport async function* paginate<Page extends { nextPageToken?: string }, Key extends keyof Page>(\n fetchPage: (nextPageToken: string | undefined) => Promise<Page>,\n itemsKey: Key,\n): AsyncGenerator<Page[Key] extends readonly (infer Item)[] | undefined ? Item : never, void, undefined> {\n let token: string | undefined;\n do {\n const page = await fetchPage(token);\n const items = (page[itemsKey] ?? []) as Iterable<never>;\n yield* items;\n const next = page.nextPageToken;\n if (next !== undefined && next === token) {\n throw new Error(\"Pagination did not advance: the API returned the same nextPageToken twice\");\n }\n token = next;\n } while (token);\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A AltCurrency entity as returned by the Spacebring API. */\nexport type AltCurrency = NonNullable<operations[\"getAltCurrencies\"][\"responses\"][200][\"content\"][\"application/json\"][\"altCurrencies\"]>[number];\n\nexport function createAltcurrencies(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve alternative currencies\n *\n * Retrieve all alternative currencies in the location.\n */\n async list(query: operations[\"getAltCurrencies\"][\"parameters\"][\"query\"]): Promise<operations[\"getAltCurrencies\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/alt_currencies/v1\", { params: { query } }));\n },\n /**\n * Retrieve alternative currencies — iterates every item across all pages.\n *\n * Retrieve all alternative currencies in the location.\n */\n iterate(query: Omit<NonNullable<operations[\"getAltCurrencies\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<AltCurrency, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/alt_currencies/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"altCurrencies\",\n );\n },\n /** Create an alternative currency */\n async create(body: NonNullable<operations[\"createAltCurrency\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<AltCurrency> {\n return unwrapProp(await client.POST(\"/alt_currencies/v1\", { body }), \"altCurrency\");\n },\n /** Update an alternative currency */\n async update(id: string, body: NonNullable<operations[\"updateAltCurrency\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/alt_currencies/v1/{id}\", { params: { path: { id } }, body }));\n },\n /** Delete an alternative currency */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/alt_currencies/v1/{id}\", { params: { path: { id } } }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Application entity as returned by the Spacebring API. */\nexport type Application = NonNullable<operations[\"getBenefitApplication\"][\"responses\"][200][\"content\"][\"application/json\"][\"application\"]>;\n\n/** A Benefit entity as returned by the Spacebring API. */\nexport type Benefit = NonNullable<operations[\"getBenefit\"][\"responses\"][200][\"content\"][\"application/json\"][\"benefit\"]>;\n\n/** A BenefitCategory entity as returned by the Spacebring API. */\nexport type BenefitCategory = NonNullable<operations[\"getBenefitCategory\"][\"responses\"][200][\"content\"][\"application/json\"][\"category\"]>;\n\nexport function createBenefits(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve benefits\n *\n * Retrieve all benefits in the location.\n */\n async list(query?: operations[\"getBenefits\"][\"parameters\"][\"query\"]): Promise<operations[\"getBenefits\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/benefits/v1\", { params: { query } }));\n },\n /**\n * Retrieve benefits — iterates every item across all pages.\n *\n * Retrieve all benefits in the location.\n */\n iterate(query?: Omit<NonNullable<operations[\"getBenefits\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Benefit, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/benefits/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"benefits\",\n );\n },\n /** Retrieve a benefit */\n async get(benefitId: string): Promise<Benefit> {\n return unwrapProp(await client.GET(\"/benefits/v1/{benefitId}\", { params: { path: { benefitId } } }), \"benefit\");\n },\n /** Create a benefit */\n async create(body: NonNullable<operations[\"createBenefit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"createBenefit\"][\"responses\"][201][\"content\"][\"application/json\"]> {\n return unwrap(await client.POST(\"/benefits/v1\", { body }));\n },\n /** Update a benefit */\n async update(benefitId: string, body: NonNullable<operations[\"updateBenefit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Benefit> {\n return unwrapProp(await client.PUT(\"/benefits/v1/{benefitId}\", { params: { path: { benefitId } }, body }), \"benefit\");\n },\n /** Delete a benefit */\n async delete(benefitId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/benefits/v1/{benefitId}\", { params: { path: { benefitId } } }));\n },\n applications: {\n /**\n * Retrieve applications\n *\n * Retrieve all benefit applications in the location or for certain benefit.\n */\n async list(query?: operations[\"getBenefitApplications\"][\"parameters\"][\"query\"]): Promise<operations[\"getBenefitApplications\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/benefits/applications/v1\", { params: { query } }));\n },\n /**\n * Retrieve applications — iterates every item across all pages.\n *\n * Retrieve all benefit applications in the location or for certain benefit.\n */\n iterate(query?: Omit<NonNullable<operations[\"getBenefitApplications\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Application, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/benefits/applications/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"applications\",\n );\n },\n /**\n * Retrieve an application\n *\n * Retrieve a benefit application by id.\n */\n async get(benefitApplicationId: string): Promise<Application> {\n return unwrapProp(await client.GET(\"/benefits/applications/v1/{benefitApplicationId}\", { params: { path: { benefitApplicationId } } }), \"application\");\n },\n /** Apply for a benefit */\n async create(body: NonNullable<operations[\"applyBenefit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Application> {\n return unwrapProp(await client.POST(\"/benefits/applications/v1\", { body }), \"application\");\n },\n },\n categories: {\n /**\n * Retrieve categories\n *\n * Retrieve all benefit categories in the location.\n */\n async list(query: operations[\"getBenefitCategories\"][\"parameters\"][\"query\"]): Promise<BenefitCategory[]> {\n return unwrapProp(await client.GET(\"/benefits/categories/v1\", { params: { query } }), \"categories\");\n },\n /**\n * Get a category\n *\n * Get a benefit category.\n */\n async get(categoryId: string): Promise<BenefitCategory> {\n return unwrapProp(await client.GET(\"/benefits/categories/v1/{categoryId}\", { params: { path: { categoryId } } }), \"category\");\n },\n /**\n * Create a category\n *\n * Create a benefit category.\n */\n async create(body: NonNullable<operations[\"createBenefitCategory\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<BenefitCategory> {\n return unwrapProp(await client.POST(\"/benefits/categories/v1\", { body }), \"category\");\n },\n /**\n * Update a category\n *\n * Update a benefit category.\n */\n async update(categoryId: string, body: NonNullable<operations[\"updateBenefitCategory\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<BenefitCategory> {\n return unwrapProp(await client.PUT(\"/benefits/categories/v1/{categoryId}\", { params: { path: { categoryId } }, body }), \"category\");\n },\n /**\n * Delete a category\n *\n * Delete a benefit category.\n */\n async delete(categoryId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/benefits/categories/v1/{categoryId}\", { params: { path: { categoryId } } }));\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A CreditNote entity as returned by the Spacebring API. */\nexport type CreditNote = NonNullable<operations[\"getCreditNote\"][\"responses\"][200][\"content\"][\"application/json\"][\"creditNote\"]>;\n\n/** A Invoice entity as returned by the Spacebring API. */\nexport type Invoice = NonNullable<operations[\"getInvoice\"][\"responses\"][200][\"content\"][\"application/json\"][\"invoice\"]>;\n\n/** A InvoiceItem entity as returned by the Spacebring API. */\nexport type InvoiceItem = NonNullable<operations[\"getInvoiceItem\"][\"responses\"][200][\"content\"][\"application/json\"][\"invoiceItem\"]>;\n\nexport function createBilling(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n creditNotes: {\n /**\n * Retrieve credit notes\n *\n * Retrieve all credit notes for a specific invoice or location. One of invoiceRef or locationRef is required.\n */\n async list(query?: operations[\"getCreditNotes\"][\"parameters\"][\"query\"]): Promise<operations[\"getCreditNotes\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/billing/credit_notes/v1\", { params: { query } }));\n },\n /**\n * Retrieve credit notes — iterates every item across all pages.\n *\n * Retrieve all credit notes for a specific invoice or location. One of invoiceRef or locationRef is required.\n */\n iterate(query?: Omit<NonNullable<operations[\"getCreditNotes\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<CreditNote, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/billing/credit_notes/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"creditNotes\",\n );\n },\n /**\n * Retrieve a credit note\n *\n * Retrieve a specific credit note.\n */\n async get(id: string): Promise<CreditNote> {\n return unwrapProp(await client.GET(\"/billing/credit_notes/v1/{id}\", { params: { path: { id } } }), \"creditNote\");\n },\n /**\n * Create a credit note\n *\n * Create a credit note for an invoice.\n */\n async create(body: NonNullable<operations[\"createCreditNote\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<CreditNote> {\n return unwrapProp(await client.POST(\"/billing/credit_notes/v1\", { body }), \"creditNote\");\n },\n /** Update a credit note */\n async update(id: string, body: NonNullable<operations[\"updateCreditNote\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/billing/credit_notes/v1/{id}\", { params: { path: { id } }, body }));\n },\n /**\n * Preview a credit note\n *\n * Preview a credit note for an invoice without creating it.\n */\n async preview(body: NonNullable<operations[\"previewCreditNote\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<CreditNote> {\n return unwrapProp(await client.POST(\"/billing/credit_notes/v1/preview\", { body }), \"creditNote\");\n },\n },\n invoices: {\n /**\n * Retrieve invoices\n *\n * Retrieve all invoices based on certain parameters.\n */\n async list(query?: operations[\"getInvoices\"][\"parameters\"][\"query\"]): Promise<operations[\"getInvoices\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/billing/invoices/v1\", { params: { query } }));\n },\n /**\n * Retrieve invoices — iterates every item across all pages.\n *\n * Retrieve all invoices based on certain parameters.\n */\n iterate(query?: Omit<NonNullable<operations[\"getInvoices\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Invoice, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/billing/invoices/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"invoices\",\n );\n },\n /**\n * Retrieve an invoice\n *\n * Retrieve a certain invoice.\n */\n async get(invoiceId: string): Promise<Invoice> {\n return unwrapProp(await client.GET(\"/billing/invoices/v1/{invoiceId}\", { params: { path: { invoiceId } } }), \"invoice\");\n },\n /**\n * Create an invoice\n *\n * Create an invoice for a member or a company.\n */\n async create(body: NonNullable<operations[\"createInvoice\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Invoice> {\n return unwrapProp(await client.POST(\"/billing/invoices/v1\", { body }), \"invoice\");\n },\n /**\n * Update an invoice\n *\n * Update a draft invoice.\n */\n async update(invoiceId: string, body: NonNullable<operations[\"updateInvoice\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/billing/invoices/v1/{invoiceId}\", { params: { path: { invoiceId } }, body }));\n },\n /**\n * Delete an invoice\n *\n * Delete a draft invoice.\n */\n async delete(invoiceId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/billing/invoices/v1/{invoiceId}\", { params: { path: { invoiceId } } }));\n },\n /**\n * Cancel a payment\n *\n * Cancel a payment on an invoice.\n */\n async cancelPayment(invoiceId: string): Promise<undefined> {\n return unwrap(await client.POST(\"/billing/invoices/v1/{invoiceId}/cancel_payment\", { params: { path: { invoiceId } } }));\n },\n /**\n * Duplicate an invoice\n *\n * Duplicate an invoice, creating a new draft invoice with the same items.\n */\n async duplicate(invoiceId: string): Promise<Invoice> {\n return unwrapProp(await client.POST(\"/billing/invoices/v1/{invoiceId}/duplicate\", { params: { path: { invoiceId } } }), \"invoice\");\n },\n /**\n * List invoice items\n *\n * List all items for a specific invoice.\n */\n async getItems(invoiceId: string): Promise<operations[\"getInvoiceItems\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/billing/invoices/v1/{invoiceId}/items\", { params: { path: { invoiceId } } }));\n },\n /**\n * Retrieve the upcoming invoice\n *\n * Retrieve the upcoming invoice preview for a membership or subscription.\n */\n async getUpcoming(query?: operations[\"getUpcomingInvoice\"][\"parameters\"][\"query\"]): Promise<operations[\"getUpcomingInvoice\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/billing/invoices/v1/upcoming\", { params: { query } }));\n },\n /**\n * Issue an invoice\n *\n * Issue (finalize) a draft invoice, making it ready for payment.\n */\n async issue(invoiceId: string, body?: NonNullable<operations[\"issueInvoice\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"issueInvoice\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.POST(\"/billing/invoices/v1/{invoiceId}/issue\", { params: { path: { invoiceId } }, body }));\n },\n /**\n * Pay an invoice\n *\n * Mark an invoice as paid by `External Payment`.\n */\n async pay(invoiceId: string, body: NonNullable<operations[\"payInvoice\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"payInvoice\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.POST(\"/billing/invoices/v1/{invoiceId}/pay\", { params: { path: { invoiceId } }, body }));\n },\n /**\n * Resend an invoice\n *\n * Resend an issued invoice notification to the customer.\n */\n async resend(invoiceId: string): Promise<undefined> {\n return unwrap(await client.POST(\"/billing/invoices/v1/{invoiceId}/resend\", { params: { path: { invoiceId } } }));\n },\n /**\n * Void an invoice\n *\n * Void an issued invoice.\n */\n async void(invoiceId: string): Promise<undefined> {\n return unwrap(await client.PATCH(\"/billing/invoices/v1/{invoiceId}/void\", { params: { path: { invoiceId } } }));\n },\n items: {\n /**\n * Retrieve an invoice item\n *\n * Retrieve a specific invoice item.\n */\n async get(id: string): Promise<InvoiceItem> {\n return unwrapProp(await client.GET(\"/billing/invoices/v1/items/{id}\", { params: { path: { id } } }), \"invoiceItem\");\n },\n /**\n * Create an invoice item\n *\n * Create an item in an invoice.\n */\n async create(body: NonNullable<operations[\"createInvoiceItem\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<InvoiceItem> {\n return unwrapProp(await client.POST(\"/billing/invoices/v1/items\", { body }), \"invoiceItem\");\n },\n /**\n * Update an invoice item\n *\n * Update an invoice item on a draft invoice.\n */\n async update(id: string, body: NonNullable<operations[\"updateInvoiceItem\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/billing/invoices/v1/items/{id}\", { params: { path: { id } }, body }));\n },\n /**\n * Delete an invoice item\n *\n * Delete an invoice item from a draft invoice.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/billing/invoices/v1/items/{id}\", { params: { path: { id } } }));\n },\n /** List upcoming invoice items */\n async getUpcoming(query?: operations[\"getUpcomingInvoiceItems\"][\"parameters\"][\"query\"]): Promise<InvoiceItem[]> {\n return unwrapProp(await client.GET(\"/billing/invoices/v1/items/upcoming\", { params: { query } }), \"invoiceItems\");\n },\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Company entity as returned by the Spacebring API. */\nexport type Company = NonNullable<operations[\"getCompany\"][\"responses\"][200][\"content\"][\"application/json\"][\"company\"]>;\n\n/** A Membership entity as returned by the Spacebring API. */\nexport type Membership = NonNullable<operations[\"getMembership\"][\"responses\"][200][\"content\"][\"application/json\"][\"membership\"]>;\n\nexport function createCommunity(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n companies: {\n /**\n * Retrieve companies\n *\n * Retrieve all companies.\n */\n async list(query: operations[\"getCompanies\"][\"parameters\"][\"query\"]): Promise<operations[\"getCompanies\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/community/companies/v1\", { params: { query } }));\n },\n /**\n * Retrieve companies — iterates every item across all pages.\n *\n * Retrieve all companies.\n */\n iterate(query: Omit<NonNullable<operations[\"getCompanies\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Company, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/community/companies/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"companies\",\n );\n },\n /**\n * Retrieve a company\n *\n * Retrieve a certain company.\n */\n async get(id: string): Promise<Company> {\n return unwrapProp(await client.GET(\"/community/companies/v1/{id}\", { params: { path: { id } } }), \"company\");\n },\n /** Create a company */\n async create(body: NonNullable<operations[\"createCompany\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Company> {\n return unwrapProp(await client.POST(\"/community/companies/v1\", { body }), \"company\");\n },\n /**\n * Update a company\n *\n * Update a certain company.\n */\n async update(id: string, body: NonNullable<operations[\"updateCompany\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Company> {\n return unwrapProp(await client.PUT(\"/community/companies/v1/{id}\", { params: { path: { id } }, body }), \"company\");\n },\n },\n memberships: {\n /**\n * Retrieve memberships\n *\n * Retrieve all memberships.\n */\n async list(query: operations[\"getMemberships\"][\"parameters\"][\"query\"]): Promise<operations[\"getMemberships\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/community/memberships/v1\", { params: { query } }));\n },\n /**\n * Retrieve memberships — iterates every item across all pages.\n *\n * Retrieve all memberships.\n */\n iterate(query: Omit<NonNullable<operations[\"getMemberships\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Membership, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/community/memberships/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"memberships\",\n );\n },\n /**\n * Retrieve a membership\n *\n * Retrieve a certain membership.\n */\n async get(id: string): Promise<Membership> {\n return unwrapProp(await client.GET(\"/community/memberships/v1/{id}\", { params: { path: { id } } }), \"membership\");\n },\n /**\n * Create a membership\n *\n * Create a membership and send an email invitation to join if type is member.\n */\n async create(body: NonNullable<operations[\"createMembership\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Membership> {\n return unwrapProp(await client.POST(\"/community/memberships/v1\", { body }), \"membership\");\n },\n /**\n * Update a membership\n *\n * Update a certain membership.\n */\n async update(id: number, body: NonNullable<operations[\"updateMembership\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Membership> {\n return unwrapProp(await client.PUT(\"/community/memberships/v1/{id}\", { params: { path: { id } }, body }), \"membership\");\n },\n /**\n * Delete a membership\n *\n * Delete a certain membership.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/community/memberships/v1/{id}\", { params: { path: { id } } }));\n },\n /**\n * Retrieve deleted memberships — iterates every item across all pages.\n *\n * Retrieve all deleted memberships.\n */\n iterateDeleted(query: Omit<NonNullable<operations[\"getMembershipsDeleted\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Membership, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/community/memberships/v1/deleted\", { params: { query: { ...query, nextPageToken } } })),\n \"memberships\",\n );\n },\n /**\n * Retrieve deleted memberships\n *\n * Retrieve all deleted memberships.\n */\n async listDeleted(query: operations[\"getMembershipsDeleted\"][\"parameters\"][\"query\"]): Promise<operations[\"getMembershipsDeleted\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/community/memberships/v1/deleted\", { params: { query } }));\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Contract entity as returned by the Spacebring API. */\nexport type Contract = NonNullable<operations[\"getContract\"][\"responses\"][200][\"content\"][\"application/json\"][\"contract\"]>;\n\nexport function createContracts(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve contracts\n *\n * Retrieve all contracts in the location.\n */\n async list(query?: operations[\"getContracts\"][\"parameters\"][\"query\"]): Promise<operations[\"getContracts\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/contracts/v1\", { params: { query } }));\n },\n /**\n * Retrieve contracts — iterates every item across all pages.\n *\n * Retrieve all contracts in the location.\n */\n iterate(query?: Omit<NonNullable<operations[\"getContracts\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Contract, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/contracts/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"contracts\",\n );\n },\n /** Get a contract */\n async get(contractId: string): Promise<Contract> {\n return unwrapProp(await client.GET(\"/contracts/v1/{contractId}\", { params: { path: { contractId } } }), \"contract\");\n },\n /** Create a contract */\n async create(body: NonNullable<operations[\"createContract\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Contract> {\n return unwrapProp(await client.POST(\"/contracts/v1\", { body }), \"contract\");\n },\n /** Delete a contract */\n async delete(contractId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/contracts/v1/{contractId}\", { params: { path: { contractId } } }));\n },\n /** Issue a contract */\n async issue(contractId: string, body: NonNullable<operations[\"issueContract\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Contract> {\n return unwrapProp(await client.POST(\"/contracts/v1/{contractId}/issue\", { params: { path: { contractId } }, body }), \"contract\");\n },\n /** Terminate a contract */\n async terminate(contractId: string, body: NonNullable<operations[\"terminateContract\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/contracts/v1/{contractId}/terminate\", { params: { path: { contractId } }, body }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Coupon entity as returned by the Spacebring API. */\nexport type Coupon = NonNullable<operations[\"getCoupon\"][\"responses\"][200][\"content\"][\"application/json\"][\"coupon\"]>;\n\n/** A Promocode entity as returned by the Spacebring API. */\nexport type Promocode = NonNullable<operations[\"getPromocode\"][\"responses\"][200][\"content\"][\"application/json\"][\"promocode\"]>;\n\n/** A Redemption entity as returned by the Spacebring API. */\nexport type Redemption = NonNullable<operations[\"getDiscountRedemptions\"][\"responses\"][200][\"content\"][\"application/json\"][\"redemptions\"]>[number];\n\nexport function createDiscounts(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n coupons: {\n /**\n * Retrieve coupons\n *\n * Retrieve all coupons in the location.\n */\n async list(query: operations[\"getCoupons\"][\"parameters\"][\"query\"]): Promise<operations[\"getCoupons\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/discounts/coupons/v1\", { params: { query } }));\n },\n /**\n * Retrieve coupons — iterates every item across all pages.\n *\n * Retrieve all coupons in the location.\n */\n iterate(query: Omit<NonNullable<operations[\"getCoupons\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Coupon, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/discounts/coupons/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"coupons\",\n );\n },\n /** Get a coupon */\n async get(id: string): Promise<Coupon> {\n return unwrapProp(await client.GET(\"/discounts/coupons/v1/{id}\", { params: { path: { id } } }), \"coupon\");\n },\n /** Create a coupon */\n async create(body: NonNullable<operations[\"createCoupon\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Coupon> {\n return unwrapProp(await client.POST(\"/discounts/coupons/v1\", { body }), \"coupon\");\n },\n /** Update a coupon */\n async update(id: string, body: NonNullable<operations[\"updateCoupon\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/discounts/coupons/v1/{id}\", { params: { path: { id } }, body }));\n },\n /** Delete a coupon */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/discounts/coupons/v1/{id}\", { params: { path: { id } } }));\n },\n },\n promocodes: {\n /**\n * Retrieve promocodes\n *\n * Retrieve all promocodes.\n */\n async list(query?: operations[\"getPromocodes\"][\"parameters\"][\"query\"]): Promise<Promocode[]> {\n return unwrapProp(await client.GET(\"/discounts/promocodes/v1\", { params: { query } }), \"promocodes\");\n },\n /** Get a promocode */\n async get(id: string): Promise<Promocode> {\n return unwrapProp(await client.GET(\"/discounts/promocodes/v1/{id}\", { params: { path: { id } } }), \"promocode\");\n },\n /** Create a promocode */\n async create(body: NonNullable<operations[\"createPromocode\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Promocode> {\n return unwrapProp(await client.POST(\"/discounts/promocodes/v1\", { body }), \"promocode\");\n },\n /** Archive a promocode */\n async archive(id: string): Promise<Promocode> {\n return unwrapProp(await client.PUT(\"/discounts/promocodes/v1/{id}/archive\", { params: { path: { id } } }), \"promocode\");\n },\n },\n redemptions: {\n /**\n * Retrieve redemptions\n *\n * Retrieve all discount redemptions. Either couponRef or promocodeRef is required.\n */\n async list(query?: operations[\"getDiscountRedemptions\"][\"parameters\"][\"query\"]): Promise<operations[\"getDiscountRedemptions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/discounts/redemptions/v1\", { params: { query } }));\n },\n /**\n * Retrieve redemptions — iterates every item across all pages.\n *\n * Retrieve all discount redemptions. Either couponRef or promocodeRef is required.\n */\n iterate(query?: Omit<NonNullable<operations[\"getDiscountRedemptions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Redemption, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/discounts/redemptions/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"redemptions\",\n );\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Event entity as returned by the Spacebring API. */\nexport type Event = NonNullable<operations[\"getEvent\"][\"responses\"][200][\"content\"][\"application/json\"][\"event\"]>;\n\n/** A EventTicket entity as returned by the Spacebring API. */\nexport type EventTicket = NonNullable<operations[\"getEventTicket\"][\"responses\"][200][\"content\"][\"application/json\"][\"ticket\"]>;\n\nexport function createEvents(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /** Retrieve events */\n async list(query: operations[\"getEventsByOrganization\"][\"parameters\"][\"query\"]): Promise<operations[\"getEventsByOrganization\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/events/v1\", { params: { query } }));\n },\n /** Retrieve an event */\n async get(id: string): Promise<Event> {\n return unwrapProp(await client.GET(\"/events/v1/{id}\", { params: { header: { \"spacebring-network-id\": defaults.networkId as string }, path: { id } } }), \"event\");\n },\n /** Create an event */\n async create(body: NonNullable<operations[\"createEvent\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Event> {\n return unwrapProp(await client.POST(\"/events/v1\", { body }), \"event\");\n },\n /** Delete an event */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/events/v1/{id}\", { params: { path: { id } } }));\n },\n /** Cancel an event */\n async cancel(id: string): Promise<Event> {\n return unwrapProp(await client.PUT(\"/events/v1/{id}/cancel\", { params: { path: { id } } }), \"event\");\n },\n /** Copy an event */\n async copy(id: string): Promise<Event> {\n return unwrapProp(await client.POST(\"/events/v1/{id}/copy\", { params: { path: { id } } }), \"event\");\n },\n tickets: {\n /**\n * Retrieve tickets\n *\n * Retrieve all event tickets.\n */\n async list(query: operations[\"getEventTickets\"][\"parameters\"][\"query\"]): Promise<operations[\"getEventTickets\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/events/tickets/v1\", { params: { query } }));\n },\n /**\n * Retrieve tickets — iterates every item across all pages.\n *\n * Retrieve all event tickets.\n */\n iterate(query: Omit<NonNullable<operations[\"getEventTickets\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<EventTicket, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/events/tickets/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"tickets\",\n );\n },\n /**\n * Retrieve a ticket\n *\n * Retrieve an event ticket.\n */\n async get(id: string): Promise<EventTicket> {\n return unwrapProp(await client.GET(\"/events/tickets/v1/{id}\", { params: { path: { id } } }), \"ticket\");\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A CommentLike entity as returned by the Spacebring API. */\nexport type CommentLike = NonNullable<operations[\"createLikeForPostComment\"][\"responses\"][201][\"content\"][\"application/json\"][\"like\"]>;\n\n/** A FeedComment entity as returned by the Spacebring API. */\nexport type FeedComment = NonNullable<operations[\"createFeedPostComment\"][\"responses\"][201][\"content\"][\"application/json\"][\"comment\"]>;\n\n/** A Post entity as returned by the Spacebring API. */\nexport type Post = NonNullable<operations[\"getFeedPost\"][\"responses\"][200][\"content\"][\"application/json\"][\"post\"]>;\n\n/** A PostComment entity as returned by the Spacebring API. */\nexport type PostComment = NonNullable<operations[\"getPostComments\"][\"responses\"][200][\"content\"][\"application/json\"][\"comments\"]>[number];\n\n/** A PostLike entity as returned by the Spacebring API. */\nexport type PostLike = NonNullable<operations[\"getLikesForPost\"][\"responses\"][200][\"content\"][\"application/json\"][\"likes\"]>[number];\n\nexport function createFeed(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n comments: {\n /**\n * Create a post comment\n *\n * Create a feed post comment.\n */\n async create(body: NonNullable<operations[\"createFeedPostComment\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<FeedComment> {\n return unwrapProp(await client.POST(\"/feed/comments/v1\", { body }), \"comment\");\n },\n /** Delete a post comment */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/feed/comments/v1/{id}\", { params: { path: { id } } }));\n },\n /** Create a like for a post comment */\n async createLike(id: string): Promise<CommentLike> {\n return unwrapProp(await client.POST(\"/feed/comments/v1/{id}/likes\", { params: { path: { id } } }), \"like\");\n },\n /** Delete a like for a post comment */\n async deleteLike(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/feed/comments/v1/{id}/likes\", { params: { path: { id } } }));\n },\n },\n posts: {\n /**\n * Get posts\n *\n * Get feed posts.\n */\n async list(query: operations[\"getFeedPosts\"][\"parameters\"][\"query\"]): Promise<operations[\"getFeedPosts\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/feed/posts/v1\", { params: { query } }));\n },\n /**\n * Get posts — iterates every item across all pages.\n *\n * Get feed posts.\n */\n iterate(query: Omit<NonNullable<operations[\"getFeedPosts\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Post, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/feed/posts/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"posts\",\n );\n },\n /**\n * Get a post\n *\n * Get a feed post.\n */\n async get(id: string): Promise<Post> {\n return unwrapProp(await client.GET(\"/feed/posts/v1/{id}\", { params: { path: { id } } }), \"post\");\n },\n /**\n * Create a post\n *\n * Create a feed post.\n */\n async create(body: NonNullable<operations[\"createFeedPost\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Post> {\n return unwrapProp(await client.POST(\"/feed/posts/v1\", { body }), \"post\");\n },\n /**\n * Update a post\n *\n * Update a feed post.\n */\n async update(id: string, body: NonNullable<operations[\"updateFeedPost\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Post> {\n return unwrapProp(await client.PUT(\"/feed/posts/v1/{id}\", { params: { path: { id } }, body }), \"post\");\n },\n /**\n * Delete a post\n *\n * Delete a feed post.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/feed/posts/v1/{id}\", { params: { path: { id } } }));\n },\n /** Create a like for a post */\n async createLike(id: string): Promise<PostLike> {\n return unwrapProp(await client.POST(\"/feed/posts/v1/{id}/likes\", { params: { path: { id } } }), \"like\");\n },\n /** Delete a like for a post */\n async deleteLike(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/feed/posts/v1/{id}/likes\", { params: { path: { id } } }));\n },\n /** Get comments for a post */\n async getComments(id: string): Promise<PostComment[]> {\n return unwrapProp(await client.GET(\"/feed/posts/v1/{id}/comments\", { params: { path: { id } } }), \"comments\");\n },\n /** Get likes for a post */\n async getLikes(id: string): Promise<PostLike[]> {\n return unwrapProp(await client.GET(\"/feed/posts/v1/{id}/likes\", { params: { path: { id } } }), \"likes\");\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { unwrap, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\nexport function createFloors(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /** Get floors */\n async list(query: operations[\"getFloors\"][\"parameters\"][\"query\"]): Promise<operations[\"getFloors\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/floors/v1\", { params: { query } }));\n },\n /** Delete a floor */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/floors/v1/{id}\", { params: { path: { id } } }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Guide entity as returned by the Spacebring API. */\nexport type Guide = NonNullable<operations[\"getGuide\"][\"responses\"][200][\"content\"][\"application/json\"][\"guide\"]>;\n\nexport function createGuides(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve guides\n *\n * Retrieve all guides for an organization. Requires locationRef. When using bearer token (non-basic auth), results are filtered by the user's access.\n */\n async list(query: operations[\"getGuides\"][\"parameters\"][\"query\"]): Promise<operations[\"getGuides\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/guides/v1\", { params: { query } }));\n },\n /**\n * Retrieve guides — iterates every item across all pages.\n *\n * Retrieve all guides for an organization. Requires locationRef. When using bearer token (non-basic auth), results are filtered by the user's access.\n */\n iterate(query: Omit<NonNullable<operations[\"getGuides\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Guide, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/guides/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"guides\",\n );\n },\n /**\n * Retrieve a guide\n *\n * Retrieve a guide by id.\n */\n async get(guideId: string): Promise<Guide> {\n return unwrapProp(await client.GET(\"/guides/v1/{guideId}\", { params: { path: { guideId } } }), \"guide\");\n },\n /**\n * Create a guide\n *\n * Create a guide in an organization.\n */\n async create(body: NonNullable<operations[\"createGuide\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Guide> {\n return unwrapProp(await client.POST(\"/guides/v1\", { body }), \"guide\");\n },\n /**\n * Update a guide\n *\n * Update a guide. At least one guide property must be provided.\n */\n async update(guideId: string, body: NonNullable<operations[\"patchGuide\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Guide> {\n return unwrapProp(await client.PATCH(\"/guides/v1/{guideId}\", { params: { path: { guideId } }, body }), \"guide\");\n },\n /** Delete a guide */\n async delete(guideId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/guides/v1/{guideId}\", { params: { path: { guideId } } }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Location entity as returned by the Spacebring API. */\nexport type Location = NonNullable<operations[\"getLocation\"][\"responses\"][200][\"content\"][\"application/json\"][\"location\"]>;\n\nexport function createLocations(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /** Retrieve all locations */\n async list(): Promise<Location[]> {\n return unwrapProp(await client.GET(\"/locations/v1\", {}), \"locations\");\n },\n /** Get a location */\n async get(locationId: string): Promise<Location> {\n return unwrapProp(await client.GET(\"/locations/v1/{locationId}\", { params: { path: { locationId } } }), \"location\");\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Network entity as returned by the Spacebring API. */\nexport type Network = NonNullable<operations[\"getNetworks\"][\"responses\"][200][\"content\"][\"application/json\"][\"networks\"]>[number];\n\nexport function createNetworks(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve networks\n *\n * Retrieve all networks you are in.\n */\n async list(): Promise<Network[]> {\n return unwrapProp(await client.GET(\"/networks/v1\", {}), \"networks\");\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Plan entity as returned by the Spacebring API. */\nexport type Plan = NonNullable<operations[\"getPlan\"][\"responses\"][200][\"content\"][\"application/json\"][\"plan\"]>;\n\nexport function createPlans(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve plans\n *\n * Retrieve all plans.\n */\n async list(query?: operations[\"getPlans\"][\"parameters\"][\"query\"]): Promise<operations[\"getPlans\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/plans/v1\", { params: { query } }));\n },\n /**\n * Retrieve plans — iterates every item across all pages.\n *\n * Retrieve all plans.\n */\n iterate(query?: Omit<NonNullable<operations[\"getPlans\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Plan, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/plans/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"plans\",\n );\n },\n /**\n * Retrieve a plan\n *\n * Retrieve a certain plan.\n */\n async get(planId: string): Promise<Plan> {\n return unwrapProp(await client.GET(\"/plans/v1/{planId}\", { params: { path: { planId } } }), \"plan\");\n },\n /** Create a plan */\n async create(body: NonNullable<operations[\"createPlan\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Plan> {\n return unwrapProp(await client.POST(\"/plans/v1\", { body }), \"plan\");\n },\n /**\n * Update a plan\n *\n * Update a certain plan.\n */\n async update(planId: string, body: NonNullable<operations[\"updatePlan\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/plans/v1/{planId}\", { params: { path: { planId } }, body }));\n },\n /**\n * Delete a plan\n *\n * Delete a certain plan.\n */\n async delete(planId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/plans/v1/{planId}\", { params: { path: { planId } } }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Registration entity as returned by the Spacebring API. */\nexport type Registration = NonNullable<operations[\"getRegistrations\"][\"responses\"][200][\"content\"][\"application/json\"][\"registrations\"]>[number];\n\nexport function createRegistrations(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve registrations\n *\n * Retrieve all registrations in network.\n */\n async list(query?: operations[\"getRegistrations\"][\"parameters\"][\"query\"]): Promise<operations[\"getRegistrations\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/registrations/v1\", { params: { query } }));\n },\n /**\n * Retrieve registrations — iterates every item across all pages.\n *\n * Retrieve all registrations in network.\n */\n iterate(query?: Omit<NonNullable<operations[\"getRegistrations\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Registration, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/registrations/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"registrations\",\n );\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Booking entity as returned by the Spacebring API. */\nexport type Booking = NonNullable<operations[\"getBooking\"][\"responses\"][200][\"content\"][\"application/json\"][\"booking\"]>;\n\n/** A Resource entity as returned by the Spacebring API. */\nexport type Resource = NonNullable<operations[\"getResource\"][\"responses\"][200][\"content\"][\"application/json\"][\"resource\"]>;\n\nexport function createResources(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /**\n * Retrieve resources\n *\n * Retrieve resources in the location. Resources represent all kind of bookable items like rooms, hot desks, dedicated desks, parking lots.\n */\n async list(query: operations[\"getResources\"][\"parameters\"][\"query\"]): Promise<operations[\"getResources\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/resources/v1\", { params: { query } }));\n },\n /**\n * Retrieve resources — iterates every item across all pages.\n *\n * Retrieve resources in the location. Resources represent all kind of bookable items like rooms, hot desks, dedicated desks, parking lots.\n */\n iterate(query: Omit<NonNullable<operations[\"getResources\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Resource, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/resources/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"resources\",\n );\n },\n /**\n * Get a resource\n *\n * Get a certain resource.\n */\n async get(id: string): Promise<Resource> {\n return unwrapProp(await client.GET(\"/resources/v1/{id}\", { params: { path: { id } } }), \"resource\");\n },\n /**\n * Create a resource\n *\n * Create a new resource in a location. The request body must match the schema exactly—unknown properties are rejected.\n */\n async create(body: NonNullable<operations[\"createResource\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Resource> {\n return unwrapProp(await client.POST(\"/resources/v1\", { body }), \"resource\");\n },\n /**\n * Patch a resource\n *\n * Patch a certain resource.\n */\n async update(id: string, body: NonNullable<operations[\"patchResource\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/resources/v1/{id}\", { params: { path: { id } }, body }));\n },\n bookings: {\n /**\n * Retrieve bookings\n *\n * Retrieve all bookings of resources.\n */\n async list(query?: operations[\"getBookings\"][\"parameters\"][\"query\"]): Promise<operations[\"getBookings\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/resources/bookings/v1\", { params: { query } }));\n },\n /**\n * Retrieve bookings — iterates every item across all pages.\n *\n * Retrieve all bookings of resources.\n */\n iterate(query?: Omit<NonNullable<operations[\"getBookings\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Booking, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/resources/bookings/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"bookings\",\n );\n },\n /** Get a booking */\n async get(id: string): Promise<Booking> {\n return unwrapProp(await client.GET(\"/resources/bookings/v1/{id}\", { params: { path: { id } } }), \"booking\");\n },\n /** Create a booking */\n async create(body: NonNullable<operations[\"createBooking\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Booking> {\n return unwrapProp(await client.POST(\"/resources/bookings/v1\", { body }), \"booking\");\n },\n /** Delete a booking */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/resources/bookings/v1/{id}\", { params: { path: { id } } }));\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Order entity as returned by the Spacebring API. */\nexport type Order = NonNullable<operations[\"getOrder\"][\"responses\"][200][\"content\"][\"application/json\"][\"order\"]>;\n\n/** A Product entity as returned by the Spacebring API. */\nexport type Product = NonNullable<operations[\"getProduct\"][\"responses\"][200][\"content\"][\"application/json\"][\"product\"]>;\n\n/** A ShopCategory entity as returned by the Spacebring API. */\nexport type ShopCategory = NonNullable<operations[\"getShopCategory\"][\"responses\"][200][\"content\"][\"application/json\"][\"category\"]>;\n\nexport function createShop(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n categories: {\n /**\n * Retrieve categories\n *\n * Retrieve all shop categories in the location.\n */\n async list(query: operations[\"getShopCategories\"][\"parameters\"][\"query\"]): Promise<ShopCategory[]> {\n return unwrapProp(await client.GET(\"/shop/categories/v1\", { params: { query } }), \"categories\");\n },\n /**\n * Get a category\n *\n * Get a shop category.\n */\n async get(categoryId: string): Promise<ShopCategory> {\n return unwrapProp(await client.GET(\"/shop/categories/v1/{categoryId}\", { params: { path: { categoryId } } }), \"category\");\n },\n /**\n * Create a category\n *\n * Create a shop category.\n */\n async create(body: NonNullable<operations[\"createShopCategory\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<ShopCategory> {\n return unwrapProp(await client.POST(\"/shop/categories/v1\", { body }), \"category\");\n },\n /**\n * Update a category\n *\n * Update a shop category.\n */\n async update(categoryId: string, body: NonNullable<operations[\"updateShopCategory\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<ShopCategory> {\n return unwrapProp(await client.PUT(\"/shop/categories/v1/{categoryId}\", { params: { path: { categoryId } }, body }), \"category\");\n },\n /**\n * Delete a category\n *\n * Delete a shop category.\n */\n async delete(categoryId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/shop/categories/v1/{categoryId}\", { params: { path: { categoryId } } }));\n },\n },\n orders: {\n /**\n * Retrieve orders\n *\n * Retrieve all orders of products from shop.\n */\n async list(query?: operations[\"getOrders\"][\"parameters\"][\"query\"]): Promise<operations[\"getOrders\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/shop/orders/v1\", { params: { query } }));\n },\n /**\n * Retrieve orders — iterates every item across all pages.\n *\n * Retrieve all orders of products from shop.\n */\n iterate(query?: Omit<NonNullable<operations[\"getOrders\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Order, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/shop/orders/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"orders\",\n );\n },\n /**\n * Get an order\n *\n * Get a certain order.\n */\n async get(orderId: string): Promise<Order> {\n return unwrapProp(await client.GET(\"/shop/orders/v1/{orderId}\", { params: { path: { orderId } } }), \"order\");\n },\n },\n products: {\n /**\n * Retrieve products\n *\n * Retrieve products from shop.\n */\n async list(query?: operations[\"getProducts\"][\"parameters\"][\"query\"]): Promise<operations[\"getProducts\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/shop/products/v1\", { params: { query } }));\n },\n /**\n * Retrieve products — iterates every item across all pages.\n *\n * Retrieve products from shop.\n */\n iterate(query?: Omit<NonNullable<operations[\"getProducts\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Product, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/shop/products/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"products\",\n );\n },\n /**\n * Get a product\n *\n * Get a certain product.\n */\n async get(productId: string): Promise<Product> {\n return unwrapProp(await client.GET(\"/shop/products/v1/{productId}\", { params: { path: { productId } } }), \"product\");\n },\n /**\n * Create a product\n *\n * Create a product in shop.\n */\n async create(body: NonNullable<operations[\"createProduct\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Product> {\n return unwrapProp(await client.POST(\"/shop/products/v1\", { body }), \"product\");\n },\n /**\n * Update a product\n *\n * Update a certain product.\n */\n async update(productId: string, body: NonNullable<operations[\"updateProduct\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Product> {\n return unwrapProp(await client.PUT(\"/shop/products/v1/{productId}\", { params: { path: { productId } }, body }), \"product\");\n },\n /**\n * Delete a product\n *\n * Delete a certain product.\n */\n async delete(productId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/shop/products/v1/{productId}\", { params: { path: { productId } } }));\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Subscription entity as returned by the Spacebring API. */\nexport type Subscription = NonNullable<operations[\"getSubscription\"][\"responses\"][200][\"content\"][\"application/json\"][\"subscription\"]>;\n\nexport function createSubscriptions(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n /** Retrieve subscriptions */\n async list(query?: operations[\"getSubscriptions\"][\"parameters\"][\"query\"]): Promise<operations[\"getSubscriptions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/subscriptions/v1\", { params: { query } }));\n },\n /** Retrieve subscriptions — iterates every item across all pages. */\n iterate(query?: Omit<NonNullable<operations[\"getSubscriptions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Subscription, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/subscriptions/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"subscriptions\",\n );\n },\n /**\n * Retrieve a subscription\n *\n * Retrieve a certain subscription.\n */\n async get(subscriptionId: string): Promise<Subscription> {\n return unwrapProp(await client.GET(\"/subscriptions/v1/{subscriptionId}\", { params: { path: { subscriptionId } } }), \"subscription\");\n },\n /**\n * Create a subscription\n *\n * Create a subscription for a membership or company.\n */\n async create(body: NonNullable<operations[\"createSubscription\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Subscription> {\n return unwrapProp(await client.POST(\"/subscriptions/v1\", { body }), \"subscription\");\n },\n /**\n * Update a subscription\n *\n * Update a certain subscription.\n */\n async update(subscriptionId: string, body: NonNullable<operations[\"updateSubscription\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/subscriptions/v1/{subscriptionId}\", { params: { path: { subscriptionId } }, body }));\n },\n /**\n * Delete a subscription\n *\n * Delete a certain subscription.\n */\n async delete(subscriptionId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/subscriptions/v1/{subscriptionId}\", { params: { path: { subscriptionId } } }));\n },\n /** Create a subscription item */\n async createItem(subscriptionId: string, body: NonNullable<operations[\"createSubscriptionItem\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Subscription> {\n return unwrapProp(await client.POST(\"/subscriptions/v1/{subscriptionId}/items\", { params: { path: { subscriptionId } }, body }), \"subscription\");\n },\n /** Delete a subscription item */\n async deleteItem(subscriptionId: string, itemId: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/subscriptions/v1/{subscriptionId}/items/{itemId}\", { params: { path: { subscriptionId, itemId } } }));\n },\n /** Update a subscription item */\n async updateItem(subscriptionId: string, itemId: string, body: NonNullable<operations[\"updateSubscriptionItem\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/subscriptions/v1/{subscriptionId}/items/{itemId}\", { params: { path: { subscriptionId, itemId } }, body }));\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Activity entity as returned by the Spacebring API. */\nexport type Activity = NonNullable<operations[\"createSupportTicketComment\"][\"responses\"][201][\"content\"][\"application/json\"][\"activity\"]>;\n\n/** A SupportTicket entity as returned by the Spacebring API. */\nexport type SupportTicket = NonNullable<operations[\"getSupportTickets\"][\"responses\"][200][\"content\"][\"application/json\"][\"tickets\"]>[number];\n\nexport function createSupport(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n tickets: {\n /**\n * Retrieve tickets\n *\n * Retrieve all support tickets.\n */\n async list(query: operations[\"getSupportTickets\"][\"parameters\"][\"query\"]): Promise<operations[\"getSupportTickets\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/support/tickets/v1\", { params: { query } }));\n },\n /**\n * Retrieve tickets — iterates every item across all pages.\n *\n * Retrieve all support tickets.\n */\n iterate(query: Omit<NonNullable<operations[\"getSupportTickets\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<SupportTicket, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/support/tickets/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"tickets\",\n );\n },\n /**\n * Retrieve a ticket\n *\n * Retrieve a support ticket.\n */\n async get(id: string): Promise<operations[\"getSupportTicket\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/support/tickets/v1/{id}\", { params: { path: { id } } }));\n },\n /**\n * Create a ticket\n *\n * Create a support ticket.\n */\n async create(body: NonNullable<operations[\"createSupportTicket\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"createSupportTicket\"][\"responses\"][201][\"content\"][\"application/json\"]> {\n return unwrap(await client.POST(\"/support/tickets/v1\", { body }));\n },\n /**\n * Update a ticket's assignee\n *\n * Update support ticket assignee.\n */\n async updateAssignee(id: string, body: NonNullable<operations[\"updateSupportTicketAssignee\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"updateSupportTicketAssignee\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.PUT(\"/support/tickets/v1/{id}/assignee\", { params: { path: { id } }, body }));\n },\n /**\n * Update a ticket's status\n *\n * Update support ticket status.\n */\n async updateStatus(id: string, body: NonNullable<operations[\"updateSupportTicketStatus\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<operations[\"updateSupportTicketStatus\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.PUT(\"/support/tickets/v1/{id}/status\", { params: { path: { id } }, body }));\n },\n /**\n * Update a ticket's type\n *\n * Update a support ticket type.\n */\n async updateType(id: string, body: NonNullable<operations[\"updateSupportTicketType\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<undefined> {\n return unwrap(await client.PATCH(\"/support/tickets/v1/{id}/type\", { params: { path: { id } }, body }));\n },\n comment: {\n /**\n * Create a ticket comment\n *\n * Create a support ticket comment.\n */\n async create(body: NonNullable<operations[\"createSupportTicketComment\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Activity> {\n return unwrapProp(await client.POST(\"/support/tickets/v1/comment\", { body }), \"activity\");\n },\n /**\n * Delete a ticket comment\n *\n * Delete a support ticket comment.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/support/tickets/v1/comment/{id}\", { params: { path: { id } } }));\n },\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Balance entity as returned by the Spacebring API. */\nexport type Balance = NonNullable<operations[\"getCreditsBalance\"][\"responses\"][200][\"content\"][\"application/json\"][\"balances\"]>[number];\n\n/** A CreditTransaction entity as returned by the Spacebring API. */\nexport type CreditTransaction = NonNullable<operations[\"getCreditsTransactions\"][\"responses\"][200][\"content\"][\"application/json\"][\"transactions\"]>[number];\n\n/** A DayPassTransaction entity as returned by the Spacebring API. */\nexport type DayPassTransaction = NonNullable<operations[\"getDayPassesTransactions\"][\"responses\"][200][\"content\"][\"application/json\"][\"transactions\"]>[number];\n\n/** A MoneyTransaction entity as returned by the Spacebring API. */\nexport type MoneyTransaction = NonNullable<operations[\"getMoneyTransaction\"][\"responses\"][200][\"content\"][\"application/json\"][\"transaction\"]>;\n\nexport function createTransactions(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n balances: {\n /**\n * Retrieve credit balance\n *\n * Retrieve credits balance.\n */\n async getCredits(id: string): Promise<Balance[]> {\n return unwrapProp(await client.GET(\"/transactions/v1/balances/{id}/credits\", { params: { path: { id } } }), \"balances\");\n },\n /** Retrieve day passes balance */\n async getDayPasses(id: string): Promise<Balance[]> {\n return unwrapProp(await client.GET(\"/transactions/v1/balances/{id}/day_passes\", { params: { path: { id } } }), \"balances\");\n },\n },\n credits: {\n /**\n * Retrieve credit transactions\n *\n * Retrieve credits transactions.\n */\n async list(query?: operations[\"getCreditsTransactions\"][\"parameters\"][\"query\"]): Promise<operations[\"getCreditsTransactions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/transactions/credits/v1\", { params: { query } }));\n },\n /**\n * Retrieve credit transactions — iterates every item across all pages.\n *\n * Retrieve credits transactions.\n */\n iterate(query?: Omit<NonNullable<operations[\"getCreditsTransactions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<CreditTransaction, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/transactions/credits/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"transactions\",\n );\n },\n /**\n * Create a credit transaction\n *\n * Create a credits transaction.\n */\n async create(body: NonNullable<operations[\"createCreditsTransaction\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<CreditTransaction> {\n return unwrapProp(await client.POST(\"/transactions/credits/v1\", { body }), \"transaction\");\n },\n },\n dayPasses: {\n /**\n * Retrieve day pass transactions\n *\n * Retrieve day passes transactions.\n */\n async list(query?: operations[\"getDayPassesTransactions\"][\"parameters\"][\"query\"]): Promise<operations[\"getDayPassesTransactions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/transactions/day_passes/v1\", { params: { query } }));\n },\n /**\n * Retrieve day pass transactions — iterates every item across all pages.\n *\n * Retrieve day passes transactions.\n */\n iterate(query?: Omit<NonNullable<operations[\"getDayPassesTransactions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<DayPassTransaction, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/transactions/day_passes/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"transactions\",\n );\n },\n /**\n * Create a day pass transaction\n *\n * Create a day passes transaction.\n */\n async create(body: NonNullable<operations[\"createDayPassesTransaction\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<DayPassTransaction> {\n return unwrapProp(await client.POST(\"/transactions/day_passes/v1\", { body }), \"transaction\");\n },\n },\n money: {\n /** Retrieve money transactions */\n async list(query: operations[\"getMoneyTransactions\"][\"parameters\"][\"query\"]): Promise<operations[\"getMoneyTransactions\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/transactions/money/v1\", { params: { query } }));\n },\n /** Retrieve money transactions — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getMoneyTransactions\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<MoneyTransaction, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/transactions/money/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"transactions\",\n );\n },\n /** Retrieve a money transaction */\n async get(id: string): Promise<MoneyTransaction> {\n return unwrapProp(await client.GET(\"/transactions/money/v1/{id}\", { params: { path: { id } } }), \"transaction\");\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport { paginate, unwrap, unwrapProp, type SpacebringDefaults } from \"../../core.js\";\nimport type { operations, paths } from \"../schema.js\";\n\n/** A Contact entity as returned by the Spacebring API. */\nexport type Contact = NonNullable<operations[\"getContact\"][\"responses\"][200][\"content\"][\"application/json\"][\"contact\"]>;\n\n/** A Request entity as returned by the Spacebring API. */\nexport type Request = NonNullable<operations[\"getRequest\"][\"responses\"][200][\"content\"][\"application/json\"][\"request\"]>;\n\n/** A RequestVisit entity as returned by the Spacebring API. */\nexport type RequestVisit = NonNullable<operations[\"approveRequest\"][\"responses\"][201][\"content\"][\"application/json\"][\"visit\"]>;\n\n/** A VisitorVisit entity as returned by the Spacebring API. */\nexport type VisitorVisit = NonNullable<operations[\"getVisit\"][\"responses\"][200][\"content\"][\"application/json\"][\"visit\"]>;\n\nexport function createVisitors(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n contacts: {\n /** Get contacts */\n async list(query: operations[\"getContacts\"][\"parameters\"][\"query\"]): Promise<operations[\"getContacts\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/visitors/contacts/v1\", { params: { query } }));\n },\n /** Get contacts — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getContacts\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Contact, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/visitors/contacts/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"contacts\",\n );\n },\n /** Get a contact */\n async get(contactId: string): Promise<Contact> {\n return unwrapProp(await client.GET(\"/visitors/contacts/v1/{contactId}\", { params: { path: { contactId } } }), \"contact\");\n },\n /** Create a contact */\n async create(body: NonNullable<operations[\"createContact\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Contact> {\n return unwrapProp(await client.POST(\"/visitors/contacts/v1\", { body }), \"contact\");\n },\n },\n requests: {\n /** Get requests */\n async list(query: operations[\"getRequests\"][\"parameters\"][\"query\"]): Promise<operations[\"getRequests\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/visitors/requests/v1\", { params: { query } }));\n },\n /** Get requests — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getRequests\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<Request, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/visitors/requests/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"requests\",\n );\n },\n /** Retrieve a request */\n async get(id: string): Promise<Request> {\n return unwrapProp(await client.GET(\"/visitors/requests/v1/{id}\", { params: { path: { id } } }), \"request\");\n },\n /** Create a request */\n async create(body: NonNullable<operations[\"createRequest\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<Request> {\n return unwrapProp(await client.POST(\"/visitors/requests/v1\", { body }), \"request\");\n },\n /** Approve a request */\n async approve(id: string): Promise<RequestVisit> {\n return unwrapProp(await client.POST(\"/visitors/requests/v1/{id}/approve\", { params: { path: { id } } }), \"visit\");\n },\n /** Reject a request */\n async reject(id: string): Promise<undefined> {\n return unwrap(await client.POST(\"/visitors/requests/v1/{id}/reject\", { params: { path: { id } } }));\n },\n },\n visits: {\n /** Retrieve visits */\n async list(query: operations[\"getVisits\"][\"parameters\"][\"query\"]): Promise<operations[\"getVisits\"][\"responses\"][200][\"content\"][\"application/json\"]> {\n return unwrap(await client.GET(\"/visitors/visits/v1\", { params: { query } }));\n },\n /** Retrieve visits — iterates every item across all pages. */\n iterate(query: Omit<NonNullable<operations[\"getVisits\"][\"parameters\"][\"query\"]>, \"nextPageToken\">): AsyncGenerator<VisitorVisit, void, undefined> {\n return paginate(\n async (nextPageToken: string | undefined) =>\n unwrap(await client.GET(\"/visitors/visits/v1\", { params: { query: { ...query, nextPageToken } } })),\n \"visits\",\n );\n },\n /**\n * Retrieve a visit\n *\n * Retrieve a visit by id.\n */\n async get(id: string): Promise<VisitorVisit> {\n return unwrapProp(await client.GET(\"/visitors/visits/v1/{id}\", { params: { path: { id } } }), \"visit\");\n },\n /** Create a visit */\n async create(body: NonNullable<operations[\"createVisit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<VisitorVisit> {\n return unwrapProp(await client.POST(\"/visitors/visits/v1\", { body }), \"visit\");\n },\n /**\n * Update a visit\n *\n * Update a visit by id.\n */\n async update(id: string, body: NonNullable<operations[\"updateVisit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<VisitorVisit> {\n return unwrapProp(await client.PUT(\"/visitors/visits/v1/{id}\", { params: { path: { id } }, body }), \"visit\");\n },\n /**\n * Delete a visit\n *\n * Delete a visit by id.\n */\n async delete(id: string): Promise<undefined> {\n return unwrap(await client.DELETE(\"/visitors/visits/v1/{id}\", { params: { path: { id } } }));\n },\n /** Check in a visit */\n async checkIn(body: NonNullable<operations[\"checkInVisit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<VisitorVisit> {\n return unwrapProp(await client.POST(\"/visitors/visits/v1/checkin\", { body }), \"visit\");\n },\n /** Check out a visit */\n async checkOut(body: NonNullable<operations[\"checkOutVisit\"][\"requestBody\"]>[\"content\"][\"application/json\"]): Promise<VisitorVisit> {\n return unwrapProp(await client.POST(\"/visitors/visits/v1/checkout\", { body }), \"visit\");\n },\n },\n };\n}\n","// AUTO-GENERATED by codegen/generate-facade.ts — DO NOT EDIT.\n// Regenerate with `npm run generate:facade`.\nimport type { Client } from \"openapi-fetch\";\nimport type { SpacebringDefaults } from \"../../core.js\";\nimport type { paths } from \"../schema.js\";\nimport { createAltcurrencies as altCurrenciesGroup } from \"./altCurrencies.js\";\nimport { createBenefits as benefitsGroup } from \"./benefits.js\";\nimport { createBilling as billingGroup } from \"./billing.js\";\nimport { createCommunity as communityGroup } from \"./community.js\";\nimport { createContracts as contractsGroup } from \"./contracts.js\";\nimport { createDiscounts as discountsGroup } from \"./discounts.js\";\nimport { createEvents as eventsGroup } from \"./events.js\";\nimport { createFeed as feedGroup } from \"./feed.js\";\nimport { createFloors as floorsGroup } from \"./floors.js\";\nimport { createGuides as guidesGroup } from \"./guides.js\";\nimport { createLocations as locationsGroup } from \"./locations.js\";\nimport { createNetworks as networksGroup } from \"./networks.js\";\nimport { createPlans as plansGroup } from \"./plans.js\";\nimport { createRegistrations as registrationsGroup } from \"./registrations.js\";\nimport { createResources as resourcesGroup } from \"./resources.js\";\nimport { createShop as shopGroup } from \"./shop.js\";\nimport { createSubscriptions as subscriptionsGroup } from \"./subscriptions.js\";\nimport { createSupport as supportGroup } from \"./support.js\";\nimport { createTransactions as transactionsGroup } from \"./transactions.js\";\nimport { createVisitors as visitorsGroup } from \"./visitors.js\";\n\nexport function createResources(client: Client<paths>, defaults: SpacebringDefaults) {\n return {\n altCurrencies: altCurrenciesGroup(client, defaults),\n benefits: benefitsGroup(client, defaults),\n billing: billingGroup(client, defaults),\n community: communityGroup(client, defaults),\n contracts: contractsGroup(client, defaults),\n discounts: discountsGroup(client, defaults),\n events: eventsGroup(client, defaults),\n feed: feedGroup(client, defaults),\n floors: floorsGroup(client, defaults),\n guides: guidesGroup(client, defaults),\n locations: locationsGroup(client, defaults),\n networks: networksGroup(client, defaults),\n plans: plansGroup(client, defaults),\n registrations: registrationsGroup(client, defaults),\n resources: resourcesGroup(client, defaults),\n shop: shopGroup(client, defaults),\n subscriptions: subscriptionsGroup(client, defaults),\n support: supportGroup(client, defaults),\n transactions: transactionsGroup(client, defaults),\n visitors: visitorsGroup(client, defaults),\n };\n}\n\nexport type SpacebringResources = ReturnType<typeof createResources>;\n","import createClient, { type Client } from \"openapi-fetch\";\nimport type { paths } from \"./generated/schema.js\";\nimport { createResources, type SpacebringResources } from \"./generated/resources/index.js\";\n\nexport interface SpacebringConfig {\n /** Client ID from Spacebring > Network Settings > Developers. */\n clientId: string;\n /** Client secret from Spacebring > Network Settings > Developers. */\n clientSecret: string;\n /** Network ID, sent as the `spacebring-network-id` header on every request. */\n networkId?: string;\n /** API origin. Defaults to `https://api.spacebring.com`. */\n baseUrl?: string;\n /** Custom fetch implementation (testing, non-standard platforms). */\n fetch?: typeof globalThis.fetch;\n /**\n * How many times to retry a request the API rate-limited with a 429\n * (the API allows 10 requests/second). Waits per the `Retry-After` header,\n * or with exponential backoff when absent. Defaults to 3; 0 disables.\n */\n maxRetries?: number;\n}\n\nexport interface Spacebring extends SpacebringResources {}\n\nexport class Spacebring {\n /** Typed openapi-fetch client — escape hatch for endpoints or options the facade does not cover. */\n readonly raw: Client<paths>;\n\n constructor(config: SpacebringConfig) {\n const headers: Record<string, string> = {\n Authorization: `Basic ${toBase64(`${config.clientId}:${config.clientSecret}`)}`,\n };\n if (config.networkId) {\n headers[\"spacebring-network-id\"] = config.networkId;\n }\n this.raw = createClient<paths>({\n baseUrl: config.baseUrl ?? \"https://api.spacebring.com\",\n headers,\n fetch: withRetry(config.fetch ?? globalThis.fetch, config.maxRetries ?? 3),\n });\n Object.assign(this, createResources(this.raw, { networkId: config.networkId }));\n }\n}\n\n/**\n * Retries 429 responses. The request is cloned per attempt so bodies can be\n * resent; 429 means the API did not process the request, so any method is\n * safe to retry.\n */\nfunction withRetry(fetchImpl: typeof globalThis.fetch, maxRetries: number): typeof globalThis.fetch {\n if (maxRetries <= 0) return fetchImpl;\n return async (input, init) => {\n const request = input instanceof Request && init === undefined ? input : new Request(input, init);\n for (let attempt = 0; ; attempt += 1) {\n const response = await fetchImpl(request.clone());\n if (response.status !== 429 || attempt >= maxRetries) return response;\n const retryAfterHeader = response.headers.get(\"retry-after\");\n const retryAfter = retryAfterHeader === null ? Number.NaN : Number(retryAfterHeader);\n // Cap the server-supplied delay: a misbehaving proxy must not be able to\n // park the client on a multi-hour setTimeout.\n const delayMs =\n Number.isFinite(retryAfter) && retryAfter >= 0\n ? Math.min(retryAfter * 1000, 60_000)\n : Math.min(250 * 2 ** attempt + Math.random() * 100, 5_000);\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n }\n };\n}\n\nfunction toBase64(value: string): string {\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(value, \"utf8\").toString(\"base64\");\n }\n let binary = \"\";\n for (const byte of new TextEncoder().encode(value)) {\n binary += String.fromCharCode(byte);\n }\n return btoa(binary);\n}\n"],"mappings":"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","names":["Request","error","final","joiner","createResources","createResources"]}