Compare commits

...

2 Commits

Author SHA1 Message Date
speakeasybot
09060624f9 ci: regenerated with OpenAPI Doc 0.0.3, Speakeasy CLI 1.147.0 2024-01-18 23:38:07 +00:00
speakeasybot
a6620dfce9 ci: regenerated with OpenAPI Doc 0.0.3, Speakeasy CLI 1.142.1 2024-01-17 00:28:54 +00:00
14 changed files with 626 additions and 22 deletions

View File

@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: 16f22cbf-f23f-4419-8924-3a4b06381947
management:
docChecksum: 34d22936f2456c2c461abdfc773e3fc4
docChecksum: 45c73686e6dbe8c29b7e2857b6194ccf
docVersion: 0.0.3
speakeasyVersion: internal
generationVersion: 2.233.2
releaseVersion: 0.4.0
configChecksum: 857d3a3d03c912d0f09faf0342203722
generationVersion: 2.237.2
releaseVersion: 0.4.1
configChecksum: 2bbf5255fdb0ef20c753ed46816eda5b
repoURL: https://github.com/LukeHagar/plexjs.git
repoSubDirectory: .
installationURL: https://github.com/LukeHagar/plexjs
@@ -14,7 +14,7 @@ management:
features:
typescript:
constsAndDefaults: 0.1.1
core: 3.4.6
core: 3.4.7
flattening: 2.81.1
globalSecurity: 2.82.2
globalServerURLs: 2.82.1
@@ -43,6 +43,7 @@ generatedFiles:
- src/lib/base64.ts
- src/lib/config.ts
- src/lib/encodings.ts
- src/lib/event-streams.ts
- src/lib/http.ts
- src/lib/retries.ts
- src/lib/sdks.ts
@@ -264,6 +265,10 @@ generatedFiles:
- docs/models/operations/getrecentlyaddedmediacontainer.md
- docs/models/operations/getrecentlyaddedresponsebody.md
- docs/models/operations/getrecentlyaddedresponse.md
- docs/models/operations/location.md
- docs/models/operations/getlibrariesdirectory.md
- docs/models/operations/getlibrariesmediacontainer.md
- docs/models/operations/getlibrariesresponsebody.md
- docs/models/operations/getlibrariesresponse.md
- docs/models/operations/includedetails.md
- docs/models/operations/getlibraryrequest.md

View File

@@ -78,4 +78,24 @@ Based on:
### Generated
- [typescript v0.4.0] .
### Releases
- [NPM v0.4.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.4.0 - .
- [NPM v0.4.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.4.0 - .
## 2024-01-17 00:27:57
### Changes
Based on:
- OpenAPI Doc 0.0.3
- Speakeasy CLI 1.142.1 (2.234.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.4.0] .
### Releases
- [NPM v0.4.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.4.0 - .
## 2024-01-18 23:37:12
### Changes
Based on:
- OpenAPI Doc 0.0.3
- Speakeasy CLI 1.147.0 (2.237.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.4.1] .
### Releases
- [NPM v0.4.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.4.1 - .

View File

@@ -0,0 +1,28 @@
# GetLibrariesDirectory
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| `allowSync` | *boolean* | :heavy_minus_sign: | N/A | true |
| `art` | *string* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
| `composite` | *string* | :heavy_minus_sign: | N/A | /library/sections/1/composite/1705615584 |
| `filters` | *boolean* | :heavy_minus_sign: | N/A | true |
| `refreshing` | *boolean* | :heavy_minus_sign: | N/A | false |
| `thumb` | *string* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
| `key` | *string* | :heavy_minus_sign: | N/A | 1 |
| `type` | *string* | :heavy_minus_sign: | N/A | movie |
| `title` | *string* | :heavy_minus_sign: | N/A | Movies |
| `agent` | *string* | :heavy_minus_sign: | N/A | tv.plex.agents.movie |
| `scanner` | *string* | :heavy_minus_sign: | N/A | Plex Movie |
| `language` | *string* | :heavy_minus_sign: | N/A | en-US |
| `uuid` | *string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
| `updatedAt` | *number* | :heavy_minus_sign: | N/A | 1705615634 |
| `createdAt` | *number* | :heavy_minus_sign: | N/A | 1654131312 |
| `scannedAt` | *number* | :heavy_minus_sign: | N/A | 1705615584 |
| `content` | *boolean* | :heavy_minus_sign: | N/A | true |
| `directory` | *boolean* | :heavy_minus_sign: | N/A | true |
| `contentChangedAt` | *number* | :heavy_minus_sign: | N/A | 3192854 |
| `hidden` | *number* | :heavy_minus_sign: | N/A | 0 |
| `location` | [operations.Location](../../models/operations/location.md)[] | :heavy_minus_sign: | N/A | [{"id":1,"path":"/movies"}] |

View File

@@ -0,0 +1,11 @@
# GetLibrariesMediaContainer
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `size` | *number* | :heavy_minus_sign: | N/A | 5 |
| `allowSync` | *boolean* | :heavy_minus_sign: | N/A | false |
| `title1` | *string* | :heavy_minus_sign: | N/A | Plex Library |
| `directory` | [operations.GetLibrariesDirectory](../../models/operations/getlibrariesdirectory.md)[] | :heavy_minus_sign: | N/A | [{"Location":[{"id":1,"path":"/movies"}],"agent":"tv.plex.agents.movie","allowSync":true,"art":"/:/resources/movie-fanart.jpg","composite":"/library/sections/1/composite/1705615584","content":true,"contentChangedAt":3192854,"createdAt":1654131312,"directory":true,"filters":true,"hidden":0,"key":"1","language":"en-US","refreshing":false,"scannedAt":1705615584,"scanner":"Plex Movie","thumb":"/:/resources/movie.png","title":"Movies","type":"movie","updatedAt":1705615634,"uuid":"322a231a-b7f7-49f5-920f-14c61199cd30"}] |

View File

@@ -3,8 +3,9 @@
## Fields
| Field | Type | Required | Description |
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
| `object` | [operations.GetLibrariesResponseBody](../../models/operations/getlibrariesresponsebody.md) | :heavy_minus_sign: | The libraries available on the Server |

View File

@@ -0,0 +1,10 @@
# GetLibrariesResponseBody
The libraries available on the Server
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `mediaContainer` | [operations.GetLibrariesMediaContainer](../../models/operations/getlibrariesmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,9 @@
# Location
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `id` | *number* | :heavy_minus_sign: | N/A | 1 |
| `path` | *string* | :heavy_minus_sign: | N/A | /movies |

View File

@@ -8,7 +8,7 @@ generation:
fixes:
nameResolutionDec2023: false
typescript:
version: 0.4.0
version: 0.4.1
author: LukeHagar
clientServerStatusCodesAsErrors: true
flattenGlobalSecurity: true

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@lukehagar/plexjs",
"version": "0.4.0",
"version": "0.4.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@lukehagar/plexjs",
"version": "0.4.0",
"version": "0.4.1",
"dependencies": {
"decimal.js": "^10.4.3",
"jsonpath": "^1.1.1"

View File

@@ -1,7 +1,7 @@
{
"type": "commonjs",
"name": "@lukehagar/plexjs",
"version": "0.4.0",
"version": "0.4.1",
"author": "LukeHagar",
"main": "./index.js",
"sideEffects": false,

View File

@@ -79,7 +79,7 @@ export function serverURLFromOptions(options: SDKOptions): URL {
export const SDK_METADATA = Object.freeze({
language: "typescript",
openapiDocVersion: "0.0.3",
sdkVersion: "0.4.0",
genVersion: "2.233.2",
userAgent: "speakeasy-sdk/typescript 0.4.0 2.233.2 0.0.3 @lukehagar/plexjs",
sdkVersion: "0.4.1",
genVersion: "2.237.2",
userAgent: "speakeasy-sdk/typescript 0.4.1 2.237.2 0.0.3 @lukehagar/plexjs",
});

192
src/lib/event-streams.ts Normal file
View File

@@ -0,0 +1,192 @@
/*
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
*/
export type ServerEvent<T> = {
data?: T | undefined;
event?: string | undefined;
retry?: number | undefined;
id?: string | undefined;
};
const LF = 0x0a;
const CR = 0x0d;
const NEWLINE_CHARS = new Set([LF, CR]);
const MESSAGE_BOUNDARIES = [
new Uint8Array([CR, LF, CR, LF]),
new Uint8Array([CR, CR]),
new Uint8Array([LF, LF]),
];
export class EventStream<Event extends ServerEvent<unknown>> {
private readonly stream: ReadableStream<Uint8Array>;
private readonly decoder: (rawEvent: ServerEvent<string>) => Event;
constructor(init: {
stream: ReadableStream<Uint8Array>;
decoder: (rawEvent: ServerEvent<string>) => Event;
}) {
this.stream = init.stream;
this.decoder = init.decoder;
}
async *[Symbol.asyncIterator]() {
const reader = this.stream.getReader();
let buffer = new Uint8Array([]);
let position = 0;
try {
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
const newBuffer = new Uint8Array(buffer.length + value.length);
newBuffer.set(buffer);
newBuffer.set(value, buffer.length);
buffer = newBuffer;
for (let i = position; i < buffer.length; i++) {
const boundary = findBoundary(buffer, i);
if (boundary == null) {
continue;
}
const chunk = buffer.slice(position, i);
position = i + boundary.length;
const event = parseEvent(chunk, this.decoder);
if (event != null) {
yield event;
}
}
if (position > 0) {
buffer = buffer.slice(position);
position = 0;
}
}
if (buffer.length > 0) {
const event = parseEvent(buffer, this.decoder);
if (event != null) {
yield event;
}
}
} finally {
reader.releaseLock();
}
}
}
function findBoundary(buffer: Uint8Array, start: number): Uint8Array | null {
const char1 = buffer[start];
const char2 = buffer[start + 1];
// Don't bother checking if the first two characters are not new line
// characters.
if (
char1 == null ||
char2 == null ||
!NEWLINE_CHARS.has(char1) ||
!NEWLINE_CHARS.has(char2)
) {
return null;
}
for (const s of MESSAGE_BOUNDARIES) {
const seq = peekSequence(start, buffer, s);
if (seq != null) {
return seq;
}
}
return null;
}
function peekSequence(
position: number,
buffer: Uint8Array,
sequence: Uint8Array,
): Uint8Array | null {
if (sequence.length > buffer.length - position) {
return null;
}
for (let i = 0; i < sequence.length; i++) {
if (buffer[position + i] !== sequence[i]) {
return null;
}
}
return sequence;
}
function parseEvent<Event extends ServerEvent<unknown>>(
chunk: Uint8Array,
decoder: (rawEvent: ServerEvent<string>) => Event,
) {
if (!chunk.length) {
return null;
}
const td = new TextDecoder();
const raw = td.decode(chunk);
const lines = raw.split(/\r?\n|\r/g);
let publish = false;
const rawEvent: ServerEvent<string> = {};
for (const line of lines) {
if (!line) {
continue;
}
const delim = line.indexOf(":");
// Lines starting with a colon are ignored.
if (delim === 0) {
continue;
}
const field = delim > 0 ? line.substring(0, delim) : "";
let value = delim > 0 ? line.substring(delim + 1) : "";
if (value.charAt(0) === " ") {
value = value.substring(1);
}
switch (field) {
case "event": {
publish = true;
rawEvent.event = value;
break;
}
case "data": {
publish = true;
rawEvent.data ??= "";
rawEvent.data += value + "\n";
break;
}
case "id": {
publish = true;
rawEvent.id = value;
break;
}
case "retry": {
const r = parseInt(value, 10);
if (!Number.isNaN(r)) {
publish = true;
rawEvent.retry = r;
}
break;
}
}
}
if (!publish) {
return null;
}
if (rawEvent.data != null) {
rawEvent.data = rawEvent.data.slice(0, -1);
}
return decoder(rawEvent);
}

View File

@@ -4,6 +4,49 @@
import { z } from "zod";
export type Location = {
id?: number | undefined;
path?: string | undefined;
};
export type GetLibrariesDirectory = {
allowSync?: boolean | undefined;
art?: string | undefined;
composite?: string | undefined;
filters?: boolean | undefined;
refreshing?: boolean | undefined;
thumb?: string | undefined;
key?: string | undefined;
type?: string | undefined;
title?: string | undefined;
agent?: string | undefined;
scanner?: string | undefined;
language?: string | undefined;
uuid?: string | undefined;
updatedAt?: number | undefined;
createdAt?: number | undefined;
scannedAt?: number | undefined;
content?: boolean | undefined;
directory?: boolean | undefined;
contentChangedAt?: number | undefined;
hidden?: number | undefined;
location?: Array<Location> | undefined;
};
export type GetLibrariesMediaContainer = {
size?: number | undefined;
allowSync?: boolean | undefined;
title1?: string | undefined;
directory?: Array<GetLibrariesDirectory> | undefined;
};
/**
* The libraries available on the Server
*/
export type GetLibrariesResponseBody = {
mediaContainer?: GetLibrariesMediaContainer | undefined;
};
export type GetLibrariesResponse = {
/**
* HTTP response content type for this operation
@@ -17,14 +60,291 @@ export type GetLibrariesResponse = {
* Raw HTTP response; suitable for custom response parsing
*/
rawResponse: Response;
/**
* The libraries available on the Server
*/
object?: GetLibrariesResponseBody | undefined;
};
/** @internal */
export namespace Location$ {
export type Inbound = {
id?: number | undefined;
path?: string | undefined;
};
export const inboundSchema: z.ZodType<Location, z.ZodTypeDef, Inbound> = z
.object({
id: z.number().int().optional(),
path: z.string().optional(),
})
.transform((v) => {
return {
...(v.id === undefined ? null : { id: v.id }),
...(v.path === undefined ? null : { path: v.path }),
};
});
export type Outbound = {
id?: number | undefined;
path?: string | undefined;
};
export const outboundSchema: z.ZodType<Outbound, z.ZodTypeDef, Location> = z
.object({
id: z.number().int().optional(),
path: z.string().optional(),
})
.transform((v) => {
return {
...(v.id === undefined ? null : { id: v.id }),
...(v.path === undefined ? null : { path: v.path }),
};
});
}
/** @internal */
export namespace GetLibrariesDirectory$ {
export type Inbound = {
allowSync?: boolean | undefined;
art?: string | undefined;
composite?: string | undefined;
filters?: boolean | undefined;
refreshing?: boolean | undefined;
thumb?: string | undefined;
key?: string | undefined;
type?: string | undefined;
title?: string | undefined;
agent?: string | undefined;
scanner?: string | undefined;
language?: string | undefined;
uuid?: string | undefined;
updatedAt?: number | undefined;
createdAt?: number | undefined;
scannedAt?: number | undefined;
content?: boolean | undefined;
directory?: boolean | undefined;
contentChangedAt?: number | undefined;
hidden?: number | undefined;
Location?: Array<Location$.Inbound> | undefined;
};
export const inboundSchema: z.ZodType<GetLibrariesDirectory, z.ZodTypeDef, Inbound> = z
.object({
allowSync: z.boolean().optional(),
art: z.string().optional(),
composite: z.string().optional(),
filters: z.boolean().optional(),
refreshing: z.boolean().optional(),
thumb: z.string().optional(),
key: z.string().optional(),
type: z.string().optional(),
title: z.string().optional(),
agent: z.string().optional(),
scanner: z.string().optional(),
language: z.string().optional(),
uuid: z.string().optional(),
updatedAt: z.number().int().optional(),
createdAt: z.number().int().optional(),
scannedAt: z.number().int().optional(),
content: z.boolean().optional(),
directory: z.boolean().optional(),
contentChangedAt: z.number().int().optional(),
hidden: z.number().int().optional(),
Location: z.array(z.lazy(() => Location$.inboundSchema)).optional(),
})
.transform((v) => {
return {
...(v.allowSync === undefined ? null : { allowSync: v.allowSync }),
...(v.art === undefined ? null : { art: v.art }),
...(v.composite === undefined ? null : { composite: v.composite }),
...(v.filters === undefined ? null : { filters: v.filters }),
...(v.refreshing === undefined ? null : { refreshing: v.refreshing }),
...(v.thumb === undefined ? null : { thumb: v.thumb }),
...(v.key === undefined ? null : { key: v.key }),
...(v.type === undefined ? null : { type: v.type }),
...(v.title === undefined ? null : { title: v.title }),
...(v.agent === undefined ? null : { agent: v.agent }),
...(v.scanner === undefined ? null : { scanner: v.scanner }),
...(v.language === undefined ? null : { language: v.language }),
...(v.uuid === undefined ? null : { uuid: v.uuid }),
...(v.updatedAt === undefined ? null : { updatedAt: v.updatedAt }),
...(v.createdAt === undefined ? null : { createdAt: v.createdAt }),
...(v.scannedAt === undefined ? null : { scannedAt: v.scannedAt }),
...(v.content === undefined ? null : { content: v.content }),
...(v.directory === undefined ? null : { directory: v.directory }),
...(v.contentChangedAt === undefined
? null
: { contentChangedAt: v.contentChangedAt }),
...(v.hidden === undefined ? null : { hidden: v.hidden }),
...(v.Location === undefined ? null : { location: v.Location }),
};
});
export type Outbound = {
allowSync?: boolean | undefined;
art?: string | undefined;
composite?: string | undefined;
filters?: boolean | undefined;
refreshing?: boolean | undefined;
thumb?: string | undefined;
key?: string | undefined;
type?: string | undefined;
title?: string | undefined;
agent?: string | undefined;
scanner?: string | undefined;
language?: string | undefined;
uuid?: string | undefined;
updatedAt?: number | undefined;
createdAt?: number | undefined;
scannedAt?: number | undefined;
content?: boolean | undefined;
directory?: boolean | undefined;
contentChangedAt?: number | undefined;
hidden?: number | undefined;
Location?: Array<Location$.Outbound> | undefined;
};
export const outboundSchema: z.ZodType<Outbound, z.ZodTypeDef, GetLibrariesDirectory> = z
.object({
allowSync: z.boolean().optional(),
art: z.string().optional(),
composite: z.string().optional(),
filters: z.boolean().optional(),
refreshing: z.boolean().optional(),
thumb: z.string().optional(),
key: z.string().optional(),
type: z.string().optional(),
title: z.string().optional(),
agent: z.string().optional(),
scanner: z.string().optional(),
language: z.string().optional(),
uuid: z.string().optional(),
updatedAt: z.number().int().optional(),
createdAt: z.number().int().optional(),
scannedAt: z.number().int().optional(),
content: z.boolean().optional(),
directory: z.boolean().optional(),
contentChangedAt: z.number().int().optional(),
hidden: z.number().int().optional(),
location: z.array(z.lazy(() => Location$.outboundSchema)).optional(),
})
.transform((v) => {
return {
...(v.allowSync === undefined ? null : { allowSync: v.allowSync }),
...(v.art === undefined ? null : { art: v.art }),
...(v.composite === undefined ? null : { composite: v.composite }),
...(v.filters === undefined ? null : { filters: v.filters }),
...(v.refreshing === undefined ? null : { refreshing: v.refreshing }),
...(v.thumb === undefined ? null : { thumb: v.thumb }),
...(v.key === undefined ? null : { key: v.key }),
...(v.type === undefined ? null : { type: v.type }),
...(v.title === undefined ? null : { title: v.title }),
...(v.agent === undefined ? null : { agent: v.agent }),
...(v.scanner === undefined ? null : { scanner: v.scanner }),
...(v.language === undefined ? null : { language: v.language }),
...(v.uuid === undefined ? null : { uuid: v.uuid }),
...(v.updatedAt === undefined ? null : { updatedAt: v.updatedAt }),
...(v.createdAt === undefined ? null : { createdAt: v.createdAt }),
...(v.scannedAt === undefined ? null : { scannedAt: v.scannedAt }),
...(v.content === undefined ? null : { content: v.content }),
...(v.directory === undefined ? null : { directory: v.directory }),
...(v.contentChangedAt === undefined
? null
: { contentChangedAt: v.contentChangedAt }),
...(v.hidden === undefined ? null : { hidden: v.hidden }),
...(v.location === undefined ? null : { Location: v.location }),
};
});
}
/** @internal */
export namespace GetLibrariesMediaContainer$ {
export type Inbound = {
size?: number | undefined;
allowSync?: boolean | undefined;
title1?: string | undefined;
Directory?: Array<GetLibrariesDirectory$.Inbound> | undefined;
};
export const inboundSchema: z.ZodType<GetLibrariesMediaContainer, z.ZodTypeDef, Inbound> = z
.object({
size: z.number().int().optional(),
allowSync: z.boolean().optional(),
title1: z.string().optional(),
Directory: z.array(z.lazy(() => GetLibrariesDirectory$.inboundSchema)).optional(),
})
.transform((v) => {
return {
...(v.size === undefined ? null : { size: v.size }),
...(v.allowSync === undefined ? null : { allowSync: v.allowSync }),
...(v.title1 === undefined ? null : { title1: v.title1 }),
...(v.Directory === undefined ? null : { directory: v.Directory }),
};
});
export type Outbound = {
size?: number | undefined;
allowSync?: boolean | undefined;
title1?: string | undefined;
Directory?: Array<GetLibrariesDirectory$.Outbound> | undefined;
};
export const outboundSchema: z.ZodType<Outbound, z.ZodTypeDef, GetLibrariesMediaContainer> = z
.object({
size: z.number().int().optional(),
allowSync: z.boolean().optional(),
title1: z.string().optional(),
directory: z.array(z.lazy(() => GetLibrariesDirectory$.outboundSchema)).optional(),
})
.transform((v) => {
return {
...(v.size === undefined ? null : { size: v.size }),
...(v.allowSync === undefined ? null : { allowSync: v.allowSync }),
...(v.title1 === undefined ? null : { title1: v.title1 }),
...(v.directory === undefined ? null : { Directory: v.directory }),
};
});
}
/** @internal */
export namespace GetLibrariesResponseBody$ {
export type Inbound = {
MediaContainer?: GetLibrariesMediaContainer$.Inbound | undefined;
};
export const inboundSchema: z.ZodType<GetLibrariesResponseBody, z.ZodTypeDef, Inbound> = z
.object({
MediaContainer: z.lazy(() => GetLibrariesMediaContainer$.inboundSchema).optional(),
})
.transform((v) => {
return {
...(v.MediaContainer === undefined ? null : { mediaContainer: v.MediaContainer }),
};
});
export type Outbound = {
MediaContainer?: GetLibrariesMediaContainer$.Outbound | undefined;
};
export const outboundSchema: z.ZodType<Outbound, z.ZodTypeDef, GetLibrariesResponseBody> = z
.object({
mediaContainer: z.lazy(() => GetLibrariesMediaContainer$.outboundSchema).optional(),
})
.transform((v) => {
return {
...(v.mediaContainer === undefined ? null : { MediaContainer: v.mediaContainer }),
};
});
}
/** @internal */
export namespace GetLibrariesResponse$ {
export type Inbound = {
ContentType: string;
StatusCode: number;
RawResponse: Response;
object?: GetLibrariesResponseBody$.Inbound | undefined;
};
export const inboundSchema: z.ZodType<GetLibrariesResponse, z.ZodTypeDef, Inbound> = z
@@ -32,12 +352,14 @@ export namespace GetLibrariesResponse$ {
ContentType: z.string(),
StatusCode: z.number().int(),
RawResponse: z.instanceof(Response),
object: z.lazy(() => GetLibrariesResponseBody$.inboundSchema).optional(),
})
.transform((v) => {
return {
contentType: v.ContentType,
statusCode: v.StatusCode,
rawResponse: v.RawResponse,
...(v.object === undefined ? null : { object: v.object }),
};
});
@@ -45,6 +367,7 @@ export namespace GetLibrariesResponse$ {
ContentType: string;
StatusCode: number;
RawResponse: never;
object?: GetLibrariesResponseBody$.Outbound | undefined;
};
export const outboundSchema: z.ZodType<Outbound, z.ZodTypeDef, GetLibrariesResponse> = z
@@ -54,12 +377,14 @@ export namespace GetLibrariesResponse$ {
rawResponse: z.instanceof(Response).transform(() => {
throw new Error("Response cannot be serialized");
}),
object: z.lazy(() => GetLibrariesResponseBody$.outboundSchema).optional(),
})
.transform((v) => {
return {
ContentType: v.contentType,
StatusCode: v.statusCode,
RawResponse: v.rawResponse,
...(v.object === undefined ? null : { object: v.object }),
};
});
}

View File

@@ -192,8 +192,13 @@ export class Library extends ClientSDK {
RawResponse: response,
};
if (this.matchStatusCode(response, 200)) {
// fallthrough
if (this.matchResponse(response, 200, "application/json")) {
const responseBody = await response.json();
const result = operations.GetLibrariesResponse$.inboundSchema.parse({
...responseFields$,
object: responseBody,
});
return result;
} else if (this.matchResponse(response, 401, "application/json")) {
const responseBody = await response.json();
const result = errors.GetLibrariesResponseBody$.inboundSchema.parse({
@@ -205,8 +210,6 @@ export class Library extends ClientSDK {
const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody);
}
return operations.GetLibrariesResponse$.inboundSchema.parse(responseFields$);
}
/**