Compare commits

...

33 Commits

Author SHA1 Message Date
speakeasybot
b593c2c54b ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.285.1 2024-05-09 04:16:24 +00:00
speakeasybot
a449d25ac4 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.285.1 2024-05-09 03:47:33 +00:00
speakeasybot
6af375d524 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.285.1 2024-05-09 03:32:46 +00:00
speakeasybot
fc838e8ebf ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.285.1 2024-05-09 00:27:26 +00:00
speakeasybot
162b3b3d13 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.285.0 2024-05-08 18:17:06 +00:00
speakeasybot
3dff2b9225 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.283.1 2024-05-08 00:22:37 +00:00
speakeasybot
d6d9c46f51 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.280.1 2024-05-07 00:27:35 +00:00
speakeasybot
f79b24ee0e ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.279.0 2024-05-06 00:28:31 +00:00
speakeasybot
78c540ebf4 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.279.0 2024-05-05 00:29:51 +00:00
speakeasybot
3fc9856c81 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.279.0 2024-05-04 00:26:43 +00:00
speakeasybot
bc1fa68557 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.277.8 2024-05-03 00:29:29 +00:00
speakeasybot
182d88f7f1 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.277.4 2024-05-02 00:27:06 +00:00
speakeasybot
300cbb21cd ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.277.4 2024-05-01 00:29:38 +00:00
speakeasybot
53f3bfd615 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.277.0 2024-04-30 00:28:14 +00:00
speakeasybot
92b22220f1 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.276.0 2024-04-29 00:28:07 +00:00
speakeasybot
a42f887042 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.276.0 2024-04-28 00:30:12 +00:00
speakeasybot
8b9c5c6e41 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.276.0 2024-04-27 00:26:39 +00:00
speakeasybot
eab41f5f41 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.274.1 2024-04-26 00:27:29 +00:00
speakeasybot
e038f1fdcf ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.274.1 2024-04-25 00:31:21 +00:00
Luke Hagar
835f4244ec regenerated 2024-04-24 15:51:11 -05:00
speakeasybot
287c5cb9ad ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.269.1 2024-04-23 00:27:12 +00:00
Luke Hagar
521174faf5 Update jsr.json 2024-04-22 11:37:36 -05:00
Luke Hagar
6fe948fa1e Update publish-jsr.yaml 2024-04-22 11:35:59 -05:00
Luke Hagar
4abb238f51 Update publish-jsr.yaml 2024-04-22 11:35:41 -05:00
Luke Hagar
c10b6af7de Merge branch 'main' of https://github.com/LukeHagar/plexjs 2024-04-22 11:34:22 -05:00
Luke Hagar
6bec4430ff Separated publish action 2024-04-22 11:34:20 -05:00
Luke Hagar
3fe4aee2ea Update speakeasy_sdk_generation.yml 2024-04-22 11:31:20 -05:00
speakeasybot
5b4a51bee7 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.267.2 2024-04-22 16:28:00 +00:00
Luke Hagar
b0cc884d46 Merge branch 'main' of https://github.com/LukeHagar/plexjs 2024-04-22 11:23:11 -05:00
Luke Hagar
a1dc07ae78 Updated generation to also publish to JSR 2024-04-22 11:22:58 -05:00
Luke Hagar
d100297e1d CodeSee is gone 2024-04-22 11:20:58 -05:00
Luke Hagar
14f7d530ec Updated workflow artifacts 2024-04-22 11:20:16 -05:00
Luke Hagar
622219b018 Removed legacy artifacts 2024-04-22 11:20:01 -05:00
73 changed files with 2607 additions and 2813 deletions

View File

@@ -1,23 +0,0 @@
# This workflow was added by CodeSee. Learn more at https://codesee.io/
# This is v2.0 of this workflow file
on:
push:
branches:
- main
pull_request_target:
types: [opened, synchronize, reopened]
name: CodeSee
permissions: read-all
jobs:
codesee:
runs-on: ubuntu-latest
continue-on-error: true
name: Analyze the repo with CodeSee
steps:
- uses: Codesee-io/codesee-action@v2
with:
codesee-token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }}
codesee-url: https://app.codesee.io

33
.github/workflows/publish-jsr.yaml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Publish to JSR
permissions:
checks: write
contents: write
pull-requests: write
statuses: write
on:
workflow_dispatch:
push:
branches:
- main
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Publish package
run: npx jsr publish

View File

@@ -1,26 +1,28 @@
name: Generate name: Generate
permissions: permissions:
checks: write checks: write
contents: write contents: write
pull-requests: write pull-requests: write
statuses: write statuses: write
"on":
workflow_dispatch: on:
inputs: workflow_dispatch:
force: inputs:
description: Force generation of SDKs force:
type: boolean description: Force generation of SDKs
default: false type: boolean
schedule: default: false
- cron: 0 0 * * * schedule:
- cron: 0 0 * * *
jobs: jobs:
generate: generate:
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15 uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
with: with:
force: ${{ github.event.inputs.force }} force: ${{ github.event.inputs.force }}
mode: direct mode: direct
speakeasy_version: latest speakeasy_version: latest
secrets: secrets:
github_access_token: ${{ secrets.GITHUB_TOKEN }} github_access_token: ${{ secrets.GITHUB_TOKEN }}
npm_token: ${{ secrets.NPM_TOKEN }} npm_token: ${{ secrets.NPM_TOKEN }}
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}

View File

@@ -1,27 +1,32 @@
lockVersion: 2.0.0 lockVersion: 2.0.0
id: 16f22cbf-f23f-4419-8924-3a4b06381947 id: 16f22cbf-f23f-4419-8924-3a4b06381947
management: management:
docChecksum: 7a43cd3413d535205cfaee20a4b6a250 docChecksum: 3b1e16609cf3ceba90d86b8161166c39
docVersion: 0.0.3 docVersion: 0.0.3
speakeasyVersion: 1.267.2 speakeasyVersion: 1.285.1
generationVersion: 2.312.1 generationVersion: 2.326.3
releaseVersion: 0.13.1 releaseVersion: 0.15.3
configChecksum: 1ff69678442629cebb3690db99f39502 configChecksum: e49236e08142476473219ef9380215f4
repoURL: https://github.com/LukeHagar/plexjs.git repoURL: https://github.com/LukeHagar/plexjs.git
repoSubDirectory: . repoSubDirectory: .
installationURL: https://github.com/LukeHagar/plexjs installationURL: https://github.com/LukeHagar/plexjs
published: true published: true
features: features:
typescript: typescript:
additionalDependencies: 0.1.0
constsAndDefaults: 0.1.5 constsAndDefaults: 0.1.5
core: 3.8.0 core: 3.9.3
flattening: 2.81.1 flattening: 2.81.1
globalSecurity: 2.82.9 globalSecurity: 2.82.9
globalSecurityCallbacks: 0.1.0
globalSecurityFlattening: 0.1.0
globalServerURLs: 2.82.4 globalServerURLs: 2.82.4
globals: 2.82.1 globals: 2.82.1
methodServerURLs: 2.82.1 methodServerURLs: 2.82.1
nameOverrides: 2.81.2 nameOverrides: 2.81.2
responseFormat: 0.2.3 responseFormat: 0.2.3
sdkHooks: 0.1.0
unions: 2.85.4
generatedFiles: generatedFiles:
- src/sdk/server.ts - src/sdk/server.ts
- src/sdk/media.ts - src/sdk/media.ts
@@ -92,7 +97,6 @@ generatedFiles:
- src/models/operations/getlibraries.ts - src/models/operations/getlibraries.ts
- src/models/operations/getlibrary.ts - src/models/operations/getlibrary.ts
- src/models/operations/deletelibrary.ts - src/models/operations/deletelibrary.ts
- src/models/operations/getlibraryitems.ts
- src/models/operations/refreshlibrary.ts - src/models/operations/refreshlibrary.ts
- src/models/operations/searchlibrary.ts - src/models/operations/searchlibrary.ts
- src/models/operations/getmetadata.ts - src/models/operations/getmetadata.ts
@@ -315,19 +319,6 @@ generatedFiles:
- docs/models/operations/getlibraryresponse.md - docs/models/operations/getlibraryresponse.md
- docs/models/operations/deletelibraryrequest.md - docs/models/operations/deletelibraryrequest.md
- docs/models/operations/deletelibraryresponse.md - docs/models/operations/deletelibraryresponse.md
- docs/models/operations/tag.md
- docs/models/operations/getlibraryitemsrequest.md
- docs/models/operations/getlibraryitemspart.md
- docs/models/operations/getlibraryitemsmedia.md
- docs/models/operations/getlibraryitemsgenre.md
- docs/models/operations/getlibraryitemscountry.md
- docs/models/operations/getlibraryitemsdirector.md
- docs/models/operations/getlibraryitemswriter.md
- docs/models/operations/getlibraryitemsrole.md
- docs/models/operations/getlibraryitemsmetadata.md
- docs/models/operations/getlibraryitemsmediacontainer.md
- docs/models/operations/getlibraryitemsresponsebody.md
- docs/models/operations/getlibraryitemsresponse.md
- docs/models/operations/refreshlibraryrequest.md - docs/models/operations/refreshlibraryrequest.md
- docs/models/operations/refreshlibraryresponse.md - docs/models/operations/refreshlibraryresponse.md
- docs/models/operations/type.md - docs/models/operations/type.md

View File

@@ -12,7 +12,7 @@ generation:
auth: auth:
oAuth2ClientCredentialsEnabled: false oAuth2ClientCredentialsEnabled: false
typescript: typescript:
version: 0.13.1 version: 0.15.3
additionalDependencies: additionalDependencies:
dependencies: {} dependencies: {}
devDependencies: {} devDependencies: {}
@@ -32,6 +32,7 @@ typescript:
webhooks: models/webhooks webhooks: models/webhooks
inputModelSuffix: input inputModelSuffix: input
maxMethodParams: 4 maxMethodParams: 4
methodArguments: require-security-and-request
outputModelSuffix: output outputModelSuffix: output
packageName: '@lukehagar/plexjs' packageName: '@lukehagar/plexjs'
responseFormat: envelope responseFormat: envelope

View File

@@ -1,9 +1,18 @@
speakeasyVersion: 1.267.2 speakeasyVersion: 1.285.1
sources: sources:
my-source: {} my-source:
sourceNamespace: my-source
sourceRevisionDigest: sha256:568fdf0282ce4ed92d85200ae101163540dc48a67f013187ef56abfa72d36731
sourceBlobDigest: sha256:b7eb9c548faa01fc9c05954cb7bfc176db3fee16d2e5633da2791ffbf375114d
tags:
- latest
- main
targets: targets:
plexjs: plexjs:
source: my-source source: my-source
sourceNamespace: my-source
sourceRevisionDigest: sha256:568fdf0282ce4ed92d85200ae101163540dc48a67f013187ef56abfa72d36731
sourceBlobDigest: sha256:b7eb9c548faa01fc9c05954cb7bfc176db3fee16d2e5633da2791ffbf375114d
outLocation: /github/workspace/repo outLocation: /github/workspace/repo
workflow: workflow:
workflowVersion: 1.0.0 workflowVersion: 1.0.0
@@ -12,6 +21,8 @@ workflow:
my-source: my-source:
inputs: inputs:
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml - location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml
registry:
location: registry.speakeasyapi.dev/lukehagar/lukehagar/my-source
targets: targets:
plexjs: plexjs:
target: typescript target: typescript
@@ -19,3 +30,5 @@ workflow:
publish: publish:
npm: npm:
token: $NPM_TOKEN token: $NPM_TOKEN
codeSamples:
output: codeSamples.yaml

View File

@@ -4,6 +4,8 @@ sources:
my-source: my-source:
inputs: inputs:
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml - location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml
registry:
location: registry.speakeasyapi.dev/lukehagar/lukehagar/my-source
targets: targets:
plexjs: plexjs:
target: typescript target: typescript
@@ -11,3 +13,5 @@ targets:
publish: publish:
npm: npm:
token: $NPM_TOKEN token: $NPM_TOKEN
codeSamples:
output: codeSamples.yaml

View File

@@ -1,26 +0,0 @@
.PHONY: *
all: speakeasy
speakeasy: check-speakeasy
speakeasy generate sdk --lang typescript -o . -s ./openapi.yaml
speakeasy-validate: check-speakeasy
speakeasy validate openapi -s ./openapi.yaml
openapi:
curl https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml > ./openapi.yaml
# This will replace the generation source in your workflow file with your local schema path
generate-from-local:
@if ! which sed >/dev/null; then \
echo "sed is not installed. Please install it using the following command:"; \
echo "For Ubuntu/Debian: apt-get install sed"; \
echo "For macOS: sed is pre-installed"; \
exit 1; \
fi
@sed -i '' '/openapi_docs: |/{n;s|-.*|- ./openapi.yaml|;}' ./.github/workflows/speakeasy_sdk_generation.yml
check-speakeasy:
@command -v speakeasy >/dev/null 2>&1 || { echo >&2 "speakeasy CLI is not installed. Please install before continuing."; exit 1; }

View File

@@ -104,7 +104,6 @@ run();
* [getLibraries](docs/sdks/library/README.md#getlibraries) - Get All Libraries * [getLibraries](docs/sdks/library/README.md#getlibraries) - Get All Libraries
* [getLibrary](docs/sdks/library/README.md#getlibrary) - Get Library Details * [getLibrary](docs/sdks/library/README.md#getlibrary) - Get Library Details
* [deleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section * [deleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section
* [getLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
* [refreshLibrary](docs/sdks/library/README.md#refreshlibrary) - Refresh Library * [refreshLibrary](docs/sdks/library/README.md#refreshlibrary) - Refresh Library
* [searchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library * [searchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library
* [getMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata * [getMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata
@@ -284,10 +283,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const strong = false; const result = await plexAPI.plex.getPin(false, "Postman", {
const xPlexClientIdentifier = "Postman";
const result = await plexAPI.plex.getPin(strong, xPlexClientIdentifier, {
serverURL: "https://plex.tv/api/v2", serverURL: "https://plex.tv/api/v2",
}); });
@@ -330,7 +326,7 @@ const httpClient = new HTTPClient({
httpClient.addHook("beforeRequest", (request) => { httpClient.addHook("beforeRequest", (request) => {
const nextRequest = new Request(request, { const nextRequest = new Request(request, {
signal: request.signal || AbortSignal.timeout(5000); signal: request.signal || AbortSignal.timeout(5000)
}); });
nextRequest.headers.set("x-custom-header", "custom value"); nextRequest.headers.set("x-custom-header", "custom value");
@@ -417,10 +413,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const strong = false; const result = await plexAPI.plex.getPin(false, "Postman");
const xPlexClientIdentifier = "Postman";
const result = await plexAPI.plex.getPin(strong, xPlexClientIdentifier);
// Handle the result // Handle the result
console.log(result); console.log(result);

View File

@@ -348,4 +348,214 @@ Based on:
### Generated ### Generated
- [typescript v0.13.1] . - [typescript v0.13.1] .
### Releases ### Releases
- [NPM v0.13.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.13.1 - . - [NPM v0.13.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.13.1 - .
## 2024-04-22 16:25:57
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.267.2 (2.312.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.13.2] .
### Releases
- [NPM v0.13.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.13.2 - .
## 2024-04-23 00:26:56
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.269.1 (2.312.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.13.2] .
### Releases
- [NPM v0.13.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.13.2 - .
## 2024-04-25 00:28:39
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.274.1 (2.314.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.0] .
### Releases
- [NPM v0.14.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.0 - .
## 2024-04-26 00:27:03
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.274.1 (2.314.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.0] .
### Releases
- [NPM v0.14.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.0 - .
## 2024-04-27 00:26:14
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.276.0 (2.314.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.0] .
### Releases
- [NPM v0.14.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.0 - .
## 2024-04-28 00:29:48
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.276.0 (2.314.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.0] .
### Releases
- [NPM v0.14.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.0 - .
## 2024-04-29 00:27:42
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.276.0 (2.314.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.0] .
### Releases
- [NPM v0.14.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.0 - .
## 2024-04-30 00:26:07
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.277.0 (2.317.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.1] .
### Releases
- [NPM v0.14.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.1 - .
## 2024-05-01 00:29:15
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.277.4 (2.318.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.1] .
### Releases
- [NPM v0.14.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.1 - .
## 2024-05-02 00:26:42
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.277.4 (2.318.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.1] .
### Releases
- [NPM v0.14.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.1 - .
## 2024-05-03 00:27:14
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.277.8 (2.319.10) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.2] .
### Releases
- [NPM v0.14.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.2 - .
## 2024-05-04 00:26:20
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.279.0 (2.322.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.2] .
### Releases
- [NPM v0.14.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.2 - .
## 2024-05-05 00:29:26
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.279.0 (2.322.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.2] .
### Releases
- [NPM v0.14.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.2 - .
## 2024-05-06 00:28:07
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.279.0 (2.322.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.2] .
### Releases
- [NPM v0.14.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.2 - .
## 2024-05-07 00:27:12
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.280.1 (2.322.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.2] .
### Releases
- [NPM v0.14.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.2 - .
## 2024-05-08 00:22:14
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.283.1 (2.324.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.14.2] .
### Releases
- [NPM v0.14.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.14.2 - .
## 2024-05-08 18:14:57
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.285.0 (2.326.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.15.0] .
### Releases
- [NPM v0.15.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.15.0 - .
## 2024-05-09 00:26:57
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.285.1 (2.326.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.15.0] .
### Releases
- [NPM v0.15.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.15.0 - .
## 2024-05-09 03:30:33
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.285.1 (2.326.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.15.1] .
### Releases
- [NPM v0.15.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.15.1 - .
## 2024-05-09 03:45:22
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.285.1 (2.326.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.15.2] .
### Releases
- [NPM v0.15.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.15.2 - .
## 2024-05-09 04:14:12
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.285.1 (2.326.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.15.3] .
### Releases
- [NPM v0.15.3] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.15.3 - .

1300
codeSamples.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tonight` | [operations.Tonight](../../models/operations/tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install | | `tonight` | [operations.Tonight](../../models/operations/tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install | 1 |
| `skip` | [operations.Skip](../../models/operations/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`. | | `skip` | [operations.Skip](../../models/operations/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`. | 1 |

View File

@@ -3,6 +3,6 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description | Example |
| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
| `activityUUID` | *string* | :heavy_check_mark: | The UUID of the activity to cancel. | | `activityUUID` | *string* | :heavy_check_mark: | The UUID of the activity to cancel. | 25b71ed5-0f9d-461c-baa7-d404e9e10d3e |

View File

@@ -3,6 +3,6 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description | Example |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| `download` | [operations.Download](../../models/operations/download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. | | `download` | [operations.Download](../../models/operations/download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. | 1 |

View File

@@ -1,8 +0,0 @@
# GetLibraryItemsCountry
## Fields
| Field | Type | Required | Description | Example |
| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
| `tag` | *string* | :heavy_minus_sign: | N/A | United States of America |

View File

@@ -1,8 +0,0 @@
# GetLibraryItemsDirector
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `tag` | *string* | :heavy_minus_sign: | N/A | James Cameron |

View File

@@ -1,8 +0,0 @@
# GetLibraryItemsGenre
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `tag` | *string* | :heavy_minus_sign: | N/A | Adventure |

View File

@@ -1,21 +0,0 @@
# GetLibraryItemsMedia
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | *number* | :heavy_minus_sign: | N/A | 119534 |
| `duration` | *number* | :heavy_minus_sign: | N/A | 11558112 |
| `bitrate` | *number* | :heavy_minus_sign: | N/A | 25025 |
| `width` | *number* | :heavy_minus_sign: | N/A | 3840 |
| `height` | *number* | :heavy_minus_sign: | N/A | 2072 |
| `aspectRatio` | *number* | :heavy_minus_sign: | N/A | 1.85 |
| `audioChannels` | *number* | :heavy_minus_sign: | N/A | 6 |
| `audioCodec` | *string* | :heavy_minus_sign: | N/A | eac3 |
| `videoCodec` | *string* | :heavy_minus_sign: | N/A | hevc |
| `videoResolution` | *string* | :heavy_minus_sign: | N/A | 4k |
| `container` | *string* | :heavy_minus_sign: | N/A | mkv |
| `videoFrameRate` | *string* | :heavy_minus_sign: | N/A | 24p |
| `videoProfile` | *string* | :heavy_minus_sign: | N/A | main 10 |
| `part` | [operations.GetLibraryItemsPart](../../models/operations/getlibraryitemspart.md)[] | :heavy_minus_sign: | N/A | [<br/>{<br/>"id": 119542,<br/>"key": "/library/parts/119542/1680457526/file.mkv",<br/>"duration": 11558112,<br/>"file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv",<br/>"size": 36158371307,<br/>"container": "mkv",<br/>"videoProfile": "main 10"<br/>}<br/>] |

File diff suppressed because one or more lines are too long

View File

@@ -1,64 +0,0 @@
# GetLibraryItemsMetadata
## Fields
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ratingKey` | *string* | :heavy_minus_sign: | N/A | 58683 |
| `key` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683 |
| `guid` | *string* | :heavy_minus_sign: | N/A | plex://movie/5d7768ba96b655001fdc0408 |
| `studio` | *string* | :heavy_minus_sign: | N/A | 20th Century Studios |
| `type` | *string* | :heavy_minus_sign: | N/A | movie |
| `title` | *string* | :heavy_minus_sign: | N/A | Avatar: The Way of Water |
| `contentRating` | *string* | :heavy_minus_sign: | N/A | PG-13 |
| `summary` | *string* | :heavy_minus_sign: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. |
| `rating` | *number* | :heavy_minus_sign: | N/A | 7.6 |
| `audienceRating` | *number* | :heavy_minus_sign: | N/A | 9.2 |
| `year` | *number* | :heavy_minus_sign: | N/A | 2022 |
| `tagline` | *string* | :heavy_minus_sign: | N/A | Return to Pandora. |
| `thumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
| `art` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
| `duration` | *number* | :heavy_minus_sign: | N/A | 11558112 |
| `originallyAvailableAt` | [RFCDate](../../types/rfcdate.md) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC |
| `addedAt` | *number* | :heavy_minus_sign: | N/A | 1680457607 |
| `updatedAt` | *number* | :heavy_minus_sign: | N/A | 1703239236 |
| `audienceRatingImage` | *string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
| `chapterSource` | *string* | :heavy_minus_sign: | N/A | media |
| `primaryExtraKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58684 |
| `ratingImage` | *string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe |
| `grandparentRatingKey` | *string* | :heavy_minus_sign: | N/A | 66 |
| `grandparentGuid` | *string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 |
| `grandparentKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66 |
| `grandparentTitle` | *string* | :heavy_minus_sign: | N/A | Caprica |
| `grandparentThumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 |
| `grandparentArt` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 |
| `grandparentTheme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 |
| `media` | [operations.GetLibraryItemsMedia](../../models/operations/getlibraryitemsmedia.md)[] | :heavy_minus_sign: | N/A | [<br/>{<br/>"id": 119534,<br/>"duration": 11558112,<br/>"bitrate": 25025,<br/>"width": 3840,<br/>"height": 2072,<br/>"aspectRatio": 1.85,<br/>"audioChannels": 6,<br/>"audioCodec": "eac3",<br/>"videoCodec": "hevc",<br/>"videoResolution": "4k",<br/>"container": "mkv",<br/>"videoFrameRate": "24p",<br/>"videoProfile": "main 10",<br/>"Part": [<br/>{<br/>"id": 119542,<br/>"key": "/library/parts/119542/1680457526/file.mkv",<br/>"duration": 11558112,<br/>"file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv",<br/>"size": 36158371307,<br/>"container": "mkv",<br/>"videoProfile": "main 10"<br/>}<br/>]<br/>}<br/>] |
| `genre` | [operations.GetLibraryItemsGenre](../../models/operations/getlibraryitemsgenre.md)[] | :heavy_minus_sign: | N/A | [<br/>{<br/>"tag": "Adventure"<br/>}<br/>] |
| `country` | [operations.GetLibraryItemsCountry](../../models/operations/getlibraryitemscountry.md)[] | :heavy_minus_sign: | N/A | [<br/>{<br/>"tag": "United States of America"<br/>}<br/>] |
| `director` | [operations.GetLibraryItemsDirector](../../models/operations/getlibraryitemsdirector.md)[] | :heavy_minus_sign: | N/A | [<br/>{<br/>"tag": "James Cameron"<br/>}<br/>] |
| `writer` | [operations.GetLibraryItemsWriter](../../models/operations/getlibraryitemswriter.md)[] | :heavy_minus_sign: | N/A | [<br/>{<br/>"tag": "James Cameron"<br/>}<br/>] |
| `role` | [operations.GetLibraryItemsRole](../../models/operations/getlibraryitemsrole.md)[] | :heavy_minus_sign: | N/A | [<br/>{<br/>"tag": "Sigourney Weaver"<br/>}<br/>] |
| `titleSort` | *string* | :heavy_minus_sign: | N/A | Whale |
| `viewCount` | *number* | :heavy_minus_sign: | N/A | 1 |
| `lastViewedAt` | *number* | :heavy_minus_sign: | N/A | 1682752242 |
| `originalTitle` | *string* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 |
| `viewOffset` | *number* | :heavy_minus_sign: | N/A | 5222500 |
| `skipCount` | *number* | :heavy_minus_sign: | N/A | 1 |
| `index` | *number* | :heavy_minus_sign: | N/A | 1 |
| `theme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 |
| `leafCount` | *number* | :heavy_minus_sign: | N/A | 14 |
| `viewedLeafCount` | *number* | :heavy_minus_sign: | N/A | 0 |
| `childCount` | *number* | :heavy_minus_sign: | N/A | 1 |
| `hasPremiumExtras` | *string* | :heavy_minus_sign: | N/A | 1 |
| `hasPremiumPrimaryExtra` | *string* | :heavy_minus_sign: | N/A | 1 |
| `parentRatingKey` | *string* | :heavy_minus_sign: | N/A | 66 |
| `parentGuid` | *string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 |
| `parentStudio` | *string* | :heavy_minus_sign: | N/A | UCP |
| `parentKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66 |
| `parentTitle` | *string* | :heavy_minus_sign: | N/A | Caprica |
| `parentIndex` | *number* | :heavy_minus_sign: | N/A | 1 |
| `parentYear` | *number* | :heavy_minus_sign: | N/A | 2010 |
| `parentThumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 |
| `parentTheme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 |

View File

@@ -1,14 +0,0 @@
# GetLibraryItemsPart
## Fields
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `id` | *number* | :heavy_minus_sign: | N/A | 119542 |
| `key` | *string* | :heavy_minus_sign: | N/A | /library/parts/119542/1680457526/file.mkv |
| `duration` | *number* | :heavy_minus_sign: | N/A | 11558112 |
| `file` | *string* | :heavy_minus_sign: | N/A | /movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv |
| `size` | *number* | :heavy_minus_sign: | N/A | 36158371307 |
| `container` | *string* | :heavy_minus_sign: | N/A | mkv |
| `videoProfile` | *string* | :heavy_minus_sign: | N/A | main 10 |

View File

@@ -1,9 +0,0 @@
# GetLibraryItemsRequest
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| `sectionId` | *number* | :heavy_check_mark: | the Id of the library to query |
| `tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. |

View File

@@ -1,11 +0,0 @@
# GetLibraryItemsResponse
## 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 |
| `object` | [operations.GetLibraryItemsResponseBody](../../models/operations/getlibraryitemsresponsebody.md) | :heavy_minus_sign: | The contents of the library by section and tag |

View File

@@ -1,10 +0,0 @@
# GetLibraryItemsResponseBody
The contents of the library by section and tag
## Fields
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `mediaContainer` | [operations.GetLibraryItemsMediaContainer](../../models/operations/getlibraryitemsmediacontainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -1,8 +0,0 @@
# GetLibraryItemsRole
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `tag` | *string* | :heavy_minus_sign: | N/A | Sigourney Weaver |

View File

@@ -1,8 +0,0 @@
# GetLibraryItemsWriter
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `tag` | *string* | :heavy_minus_sign: | N/A | James Cameron |

View File

@@ -3,6 +3,6 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `timespan` | *number* | :heavy_minus_sign: | The timespan to retrieve statistics for<br/>the exact meaning of this parameter is not known<br/> | | `timespan` | *number* | :heavy_minus_sign: | The timespan to retrieve statistics for<br/>the exact meaning of this parameter is not known<br/> | 4 |

View File

@@ -3,15 +3,15 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description | Example |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `ratingKey` | *number* | :heavy_check_mark: | The rating key of the media item | | `ratingKey` | *number* | :heavy_check_mark: | The rating key of the media item | 23409 |
| `key` | *string* | :heavy_check_mark: | The key of the media item to get the timeline for | | `key` | *string* | :heavy_check_mark: | The key of the media item to get the timeline for | /library/metadata/23409 |
| `state` | [operations.State](../../models/operations/state.md) | :heavy_check_mark: | The state of the media item | | `state` | [operations.State](../../models/operations/state.md) | :heavy_check_mark: | The state of the media item | playing |
| `hasMDE` | *number* | :heavy_check_mark: | Whether the media item has MDE | | `hasMDE` | *number* | :heavy_check_mark: | Whether the media item has MDE | 1 |
| `time` | *number* | :heavy_check_mark: | The time of the media item | | `time` | *number* | :heavy_check_mark: | The time of the media item | 2000 |
| `duration` | *number* | :heavy_check_mark: | The duration of the media item | | `duration` | *number* | :heavy_check_mark: | The duration of the media item | 10000 |
| `context` | *string* | :heavy_check_mark: | The context of the media item | | `context` | *string* | :heavy_check_mark: | The context of the media item | home:hub.continueWatching |
| `playQueueItemID` | *number* | :heavy_check_mark: | The play queue item ID of the media item | | `playQueueItemID` | *number* | :heavy_check_mark: | The play queue item ID of the media item | 1 |
| `playBackTime` | *number* | :heavy_check_mark: | The playback time of the media item | | `playBackTime` | *number* | :heavy_check_mark: | The playback time of the media item | 2000 |
| `row` | *number* | :heavy_check_mark: | The row of the media item | | `row` | *number* | :heavy_check_mark: | The row of the media item | 1 |

View File

@@ -3,21 +3,21 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description | Example |
| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
| `hasMDE` | *number* | :heavy_check_mark: | Whether the media item has MDE | | `hasMDE` | *number* | :heavy_check_mark: | Whether the media item has MDE | 1 |
| `path` | *string* | :heavy_check_mark: | The path to the media item to transcode | | `path` | *string* | :heavy_check_mark: | The path to the media item to transcode | /library/metadata/23409 |
| `mediaIndex` | *number* | :heavy_check_mark: | The index of the media item to transcode | | `mediaIndex` | *number* | :heavy_check_mark: | The index of the media item to transcode | 0 |
| `partIndex` | *number* | :heavy_check_mark: | The index of the part to transcode | | `partIndex` | *number* | :heavy_check_mark: | The index of the part to transcode | 0 |
| `protocol` | *string* | :heavy_check_mark: | The protocol to use for the transcode session | | `protocol` | *string* | :heavy_check_mark: | The protocol to use for the transcode session | hls |
| `fastSeek` | *number* | :heavy_minus_sign: | Whether to use fast seek or not | | `fastSeek` | *number* | :heavy_minus_sign: | Whether to use fast seek or not | 0 |
| `directPlay` | *number* | :heavy_minus_sign: | Whether to use direct play or not | | `directPlay` | *number* | :heavy_minus_sign: | Whether to use direct play or not | 0 |
| `directStream` | *number* | :heavy_minus_sign: | Whether to use direct stream or not | | `directStream` | *number* | :heavy_minus_sign: | Whether to use direct stream or not | 0 |
| `subtitleSize` | *number* | :heavy_minus_sign: | The size of the subtitles | | `subtitleSize` | *number* | :heavy_minus_sign: | The size of the subtitles | 100 |
| `subtites` | *string* | :heavy_minus_sign: | The subtitles | | `subtites` | *string* | :heavy_minus_sign: | The subtitles | burn |
| `audioBoost` | *number* | :heavy_minus_sign: | The audio boost | | `audioBoost` | *number* | :heavy_minus_sign: | The audio boost | 100 |
| `location` | *string* | :heavy_minus_sign: | The location of the transcode session | | `location` | *string* | :heavy_minus_sign: | The location of the transcode session | lan |
| `mediaBufferSize` | *number* | :heavy_minus_sign: | The size of the media buffer | | `mediaBufferSize` | *number* | :heavy_minus_sign: | The size of the media buffer | 102400 |
| `session` | *string* | :heavy_minus_sign: | The session ID | | `session` | *string* | :heavy_minus_sign: | The session ID | zvcage8b7rkioqcm8f4uns4c |
| `addDebugOverlay` | *number* | :heavy_minus_sign: | Whether to add a debug overlay or not | | `addDebugOverlay` | *number* | :heavy_minus_sign: | Whether to add a debug overlay or not | 0 |
| `autoAdjustQuality` | *number* | :heavy_minus_sign: | Whether to auto adjust quality or not | | `autoAdjustQuality` | *number* | :heavy_minus_sign: | Whether to auto adjust quality or not | 0 |

View File

@@ -1,28 +0,0 @@
# Tag
A key representing a specific tag within the section.
## Values
| Name | Value |
| ---------------- | ---------------- |
| `All` | all |
| `Unwatched` | unwatched |
| `Newest` | newest |
| `RecentlyAdded` | recentlyAdded |
| `RecentlyViewed` | recentlyViewed |
| `OnDeck` | onDeck |
| `Collection` | collection |
| `Edition` | edition |
| `Genre` | genre |
| `Year` | year |
| `Decade` | decade |
| `Director` | director |
| `Actor` | actor |
| `Country` | country |
| `ContentRating` | contentRating |
| `Rating` | rating |
| `Resolution` | resolution |
| `FirstCharacter` | firstCharacter |
| `Folder` | folder |

View File

@@ -3,8 +3,8 @@
## Fields ## Fields
| Field | Type | Required | Description | | Field | Type | Required | Description | Example |
| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
| `key` | *string* | :heavy_check_mark: | the media key | | `key` | *string* | :heavy_check_mark: | the media key | |
| `time` | *number* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. | | `time` | *number* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. | 90000 |
| `state` | *string* | :heavy_check_mark: | The playback state of the media item. | | `state` | *string* | :heavy_check_mark: | The playback state of the media item. | played |

View File

@@ -74,9 +74,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const activityUUID = "<value>"; const result = await plexAPI.activities.cancelServerActivities("25b71ed5-0f9d-461c-baa7-d404e9e10d3e");
const result = await plexAPI.activities.cancelServerActivities(activityUUID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -87,11 +85,11 @@ run();
### Parameters ### Parameters
| Parameter | Type | Required | Description | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `activityUUID` | *string* | :heavy_check_mark: | The UUID of the activity to cancel. | | `activityUUID` | *string* | :heavy_check_mark: | The UUID of the activity to cancel. | [object Object] |
| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | |
| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | |
### Response ### Response

View File

@@ -28,10 +28,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const type = GetTransientTokenQueryParamType.Delegation; const result = await plexAPI.authentication.getTransientToken(GetTransientTokenQueryParamType.Delegation, Scope.All);
const scope = Scope.All;
const result = await plexAPI.authentication.getTransientToken(type, scope);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -77,9 +74,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const source = "server://client-identifier"; const result = await plexAPI.authentication.getSourceConnectionInformation("server://client-identifier");
const result = await plexAPI.authentication.getSourceConnectionInformation(source);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -167,9 +167,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const taskName = TaskName.CleanOldBundles; const result = await plexAPI.butler.startTask(TaskName.CleanOldBundles);
const result = await plexAPI.butler.startTask(taskName);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -214,9 +212,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const taskName = PathParamTaskName.BackupDatabase; const result = await plexAPI.butler.stopTask(PathParamTaskName.BackupDatabase);
const result = await plexAPI.butler.stopTask(taskName);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -27,10 +27,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const count = 1262.49; const result = await plexAPI.hubs.getGlobalHubs(1262.49, OnlyTransient.One);
const onlyTransient = OnlyTransient.One;
const result = await plexAPI.hubs.getGlobalHubs(count, onlyTransient);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -76,11 +73,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const sectionId = 6728.76; const result = await plexAPI.hubs.getLibraryHubs(6728.76, 9010.22, QueryParamOnlyTransient.Zero);
const count = 9010.22;
const onlyTransient = QueryParamOnlyTransient.Zero;
const result = await plexAPI.hubs.getLibraryHubs(sectionId, count, onlyTransient);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -13,7 +13,6 @@ API Calls interacting with Plex Media Server Libraries
* [getLibraries](#getlibraries) - Get All Libraries * [getLibraries](#getlibraries) - Get All Libraries
* [getLibrary](#getlibrary) - Get Library Details * [getLibrary](#getlibrary) - Get Library Details
* [deleteLibrary](#deletelibrary) - Delete Library Section * [deleteLibrary](#deletelibrary) - Delete Library Section
* [getLibraryItems](#getlibraryitems) - Get Library Items
* [refreshLibrary](#refreshlibrary) - Refresh Library * [refreshLibrary](#refreshlibrary) - Refresh Library
* [searchLibrary](#searchlibrary) - Search Library * [searchLibrary](#searchlibrary) - Search Library
* [getMetadata](#getmetadata) - Get Items Metadata * [getMetadata](#getmetadata) - Get Items Metadata
@@ -35,10 +34,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const url = "file://C:\Image.png&type=13"; const result = await plexAPI.library.getFileHash("file://C:\Image.png&type=13", 4462.17);
const type = 4462.17;
const result = await plexAPI.library.getFileHash(url, type);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -213,10 +209,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const sectionId = 1000; const result = await plexAPI.library.getLibrary(1000, IncludeDetails.Zero);
const includeDetails = IncludeDetails.Zero;
const result = await plexAPI.library.getLibrary(sectionId, includeDetails);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -260,9 +253,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const sectionId = 1000; const result = await plexAPI.library.deleteLibrary(1000);
const result = await plexAPI.library.deleteLibrary(sectionId);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -290,73 +281,6 @@ run();
| errors.DeleteLibraryResponseBody | 401 | application/json | | errors.DeleteLibraryResponseBody | 401 | application/json |
| errors.SDKError | 4xx-5xx | */* | | errors.SDKError | 4xx-5xx | */* |
## getLibraryItems
Fetches details from a specific section of the library identified by a section key and a tag. The tag parameter accepts the following values:
- `all`: All items in the section.
- `unwatched`: Items that have not been played.
- `newest`: Items that are recently released.
- `recentlyAdded`: Items that are recently added to the library.
- `recentlyViewed`: Items that were recently viewed.
- `onDeck`: Items to continue watching.
- `collection`: Items categorized by collection.
- `edition`: Items categorized by edition.
- `genre`: Items categorized by genre.
- `year`: Items categorized by year of release.
- `decade`: Items categorized by decade.
- `director`: Items categorized by director.
- `actor`: Items categorized by starring actor.
- `country`: Items categorized by country of origin.
- `contentRating`: Items categorized by content rating.
- `rating`: Items categorized by rating.
- `resolution`: Items categorized by resolution.
- `firstCharacter`: Items categorized by the first letter.
- `folder`: Items categorized by folder.
### Example Usage
```typescript
import { PlexAPI } from "@lukehagar/plexjs";
import { Tag } from "@lukehagar/plexjs/models/operations";
const plexAPI = new PlexAPI({
accessToken: "<YOUR_API_KEY_HERE>",
xPlexClientIdentifier: "Postman",
});
async function run() {
const sectionId = 451092;
const tag = Tag.Unwatched;
const result = await plexAPI.library.getLibraryItems(sectionId, tag);
// Handle the result
console.log(result)
}
run();
```
### Parameters
| Parameter | Type | Required | Description |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `sectionId` | *number* | :heavy_check_mark: | the Id of the library to query |
| `tag` | [operations.Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. |
| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. |
### Response
**Promise<[operations.GetLibraryItemsResponse](../../models/operations/getlibraryitemsresponse.md)>**
### Errors
| Error Object | Status Code | Content Type |
| --------------- | --------------- | --------------- |
| errors.SDKError | 4xx-5xx | */* |
## refreshLibrary ## refreshLibrary
This endpoint Refreshes the library. This endpoint Refreshes the library.
@@ -373,9 +297,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const sectionId = 934.16; const result = await plexAPI.library.refreshLibrary(934.16);
const result = await plexAPI.library.refreshLibrary(sectionId);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -437,10 +359,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const sectionId = 933505; const result = await plexAPI.library.searchLibrary(933505, Type.Four);
const type = Type.Four;
const result = await plexAPI.library.searchLibrary(sectionId, type);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -484,9 +403,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const ratingKey = 8382.31; const result = await plexAPI.library.getMetadata(8382.31);
const result = await plexAPI.library.getMetadata(ratingKey);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -530,9 +447,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const ratingKey = 1539.14; const result = await plexAPI.library.getMetadataChildren(1539.14);
const result = await plexAPI.library.getMetadataChildren(ratingKey);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -29,11 +29,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const level = Level.Three; const result = await plexAPI.log.logLine(Level.Three, "Test log message", "Postman");
const message = "Test log message";
const source = "Postman";
const result = await plexAPI.log.logLine(level, message, source);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -27,9 +27,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const key = 59398; const result = await plexAPI.media.markPlayed(59398);
const result = await plexAPI.media.markPlayed(key);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -72,9 +70,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const key = 59398; const result = await plexAPI.media.markUnplayed(59398);
const result = await plexAPI.media.markUnplayed(key);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -118,11 +114,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const key = "<value>"; const result = await plexAPI.media.updatePlayProgress("<value>", 90000, "played");
const time = 6900.91;
const state = "<value>";
const result = await plexAPI.media.updatePlayProgress(key, time, state);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -133,13 +125,13 @@ run();
### Parameters ### Parameters
| Parameter | Type | Required | Description | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `key` | *string* | :heavy_check_mark: | the media key | | `key` | *string* | :heavy_check_mark: | the media key | |
| `time` | *number* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. | | `time` | *number* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. | [object Object] |
| `state` | *string* | :heavy_check_mark: | The playback state of the media item. | | `state` | *string* | :heavy_check_mark: | The playback state of the media item. | [object Object] |
| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | |
| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | |
### Response ### Response

View File

@@ -89,10 +89,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const playlistType = PlaylistType.Audio; const result = await plexAPI.playlists.getPlaylists(PlaylistType.Audio, QueryParamSmart.Zero);
const smart = QueryParamSmart.Zero;
const result = await plexAPI.playlists.getPlaylists(playlistType, smart);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -138,9 +135,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const playlistID = 4109.48; const result = await plexAPI.playlists.getPlaylist(4109.48);
const result = await plexAPI.playlists.getPlaylist(playlistID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -184,9 +179,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const playlistID = 216.22; const result = await plexAPI.playlists.deletePlaylist(216.22);
const result = await plexAPI.playlists.deletePlaylist(playlistID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -230,11 +223,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const playlistID = 3915; const result = await plexAPI.playlists.updatePlaylist(3915, "<value>", "<value>");
const title = "<value>";
const summary = "<value>";
const result = await plexAPI.playlists.updatePlaylist(playlistID, title, summary);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -283,10 +272,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const playlistID = 5004.46; const result = await plexAPI.playlists.getPlaylistContents(5004.46, 9403.59);
const type = 9403.59;
const result = await plexAPI.playlists.getPlaylistContents(playlistID, type);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -331,9 +317,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const playlistID = 1893.18; const result = await plexAPI.playlists.clearPlaylistContents(1893.18);
const result = await plexAPI.playlists.clearPlaylistContents(playlistID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -378,11 +362,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const playlistID = 8502.01; const result = await plexAPI.playlists.addPlaylistContents(8502.01, "server://12345/com.plexapp.plugins.library/library/metadata/1", 123);
const uri = "server://12345/com.plexapp.plugins.library/library/metadata/1";
const playQueueID = 123;
const result = await plexAPI.playlists.addPlaylistContents(playlistID, uri, playQueueID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -429,10 +409,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const path = "/home/barkley/playlist.m3u"; const result = await plexAPI.playlists.uploadPlaylist("/home/barkley/playlist.m3u", Force.Zero);
const force = Force.Zero;
const result = await plexAPI.playlists.uploadPlaylist(path, force);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -25,10 +25,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const strong = false; const result = await plexAPI.plex.getPin(false, "Postman");
const xPlexClientIdentifier = "Postman";
const result = await plexAPI.plex.getPin(strong, xPlexClientIdentifier);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -72,10 +69,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const pinID = "<value>"; const result = await plexAPI.plex.getToken("<value>", "Postman");
const xPlexClientIdentifier = "Postman";
const result = await plexAPI.plex.getToken(pinID, xPlexClientIdentifier);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -39,11 +39,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const query = "dylan"; const result = await plexAPI.search.performSearch("dylan", 1516.53, 5);
const sectionId = 1516.53;
const limit = 5;
const result = await plexAPI.search.performSearch(query, sectionId, limit);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -92,11 +88,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const query = "dead+poop"; const result = await plexAPI.search.performVoiceSearch("dead+poop", 4094.8, 5);
const sectionId = 4094.8;
const limit = 5;
const result = await plexAPI.search.performVoiceSearch(query, sectionId, limit);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -141,9 +133,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const query = "110"; const result = await plexAPI.search.getSearchResults("110");
const result = await plexAPI.search.getSearchResults(query);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -154,9 +154,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const sessionKey = "zz7llzqlx8w9vnrsbnwhbmep"; const result = await plexAPI.sessions.stopTranscodeSession("zz7llzqlx8w9vnrsbnwhbmep");
const result = await plexAPI.sessions.stopTranscodeSession(sessionKey);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -25,9 +25,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const timespan = 411769; const result = await plexAPI.statistics.getStatistics(4);
const result = await plexAPI.statistics.getStatistics(timespan);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -38,11 +36,11 @@ run();
### Parameters ### Parameters
| Parameter | Type | Required | Description | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `timespan` | *number* | :heavy_minus_sign: | The timespan to retrieve statistics for<br/>the exact meaning of this parameter is not known<br/> | | `timespan` | *number* | :heavy_minus_sign: | The timespan to retrieve statistics for<br/>the exact meaning of this parameter is not known<br/> | [object Object] |
| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | |
| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | |
### Response ### Response

View File

@@ -71,9 +71,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const download = Download.One; const result = await plexAPI.updater.checkForUpdates(Download.One);
const result = await plexAPI.updater.checkForUpdates(download);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -84,11 +82,11 @@ run();
### Parameters ### Parameters
| Parameter | Type | Required | Description | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `download` | [operations.Download](../../models/operations/download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. | | `download` | [operations.Download](../../models/operations/download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. | [object Object] |
| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | |
| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | |
### Response ### Response
@@ -118,10 +116,7 @@ const plexAPI = new PlexAPI({
}); });
async function run() { async function run() {
const tonight = Tonight.One; const result = await plexAPI.updater.applyUpdates(Tonight.One, Skip.One);
const skip = Skip.Zero;
const result = await plexAPI.updater.applyUpdates(tonight, skip);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -132,12 +127,12 @@ run();
### Parameters ### Parameters
| Parameter | Type | Required | Description | | Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `tonight` | [operations.Tonight](../../models/operations/tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install | | `tonight` | [operations.Tonight](../../models/operations/tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install | [object Object] |
| `skip` | [operations.Skip](../../models/operations/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`. | | `skip` | [operations.Skip](../../models/operations/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`. | [object Object] |
| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | |
| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | |
### Response ### Response

View File

@@ -28,16 +28,16 @@ const plexAPI = new PlexAPI({
async function run() { async function run() {
const result = await plexAPI.video.getTimeline({ const result = await plexAPI.video.getTimeline({
ratingKey: 716.56, ratingKey: 23409,
key: "<key>", key: "/library/metadata/23409",
state: State.Paused, state: State.Playing,
hasMDE: 7574.33, hasMDE: 1,
time: 3327.51, time: 2000,
duration: 7585.39, duration: 10000,
context: "<value>", context: "home:hub.continueWatching",
playQueueItemID: 1406.21, playQueueItemID: 1,
playBackTime: 2699.34, playBackTime: 2000,
row: 3536.42, row: 1,
}); });
// Handle the result // Handle the result
@@ -82,11 +82,22 @@ const plexAPI = new PlexAPI({
async function run() { async function run() {
const result = await plexAPI.video.startUniversalTranscode({ const result = await plexAPI.video.startUniversalTranscode({
hasMDE: 8924.99, hasMDE: 1,
path: "/etc/mail", path: "/library/metadata/23409",
mediaIndex: 9962.95, mediaIndex: 0,
partIndex: 1232.82, partIndex: 0,
protocol: "<value>", protocol: "hls",
fastSeek: 0,
directPlay: 0,
directStream: 0,
subtitleSize: 100,
subtites: "burn",
audioBoost: 100,
location: "lan",
mediaBufferSize: 102400,
session: "zvcage8b7rkioqcm8f4uns4c",
addDebugOverlay: 0,
autoAdjustQuality: 0,
}); });
// Handle the result // Handle the result

457
files.gen
View File

@@ -1,457 +0,0 @@
src/sdk/server.ts
src/sdk/media.ts
src/sdk/activities.ts
src/sdk/butler.ts
src/sdk/hubs.ts
src/sdk/search.ts
src/sdk/library.ts
src/sdk/log.ts
src/sdk/playlists.ts
src/sdk/security.ts
src/sdk/sessions.ts
src/sdk/updater.ts
src/sdk/video.ts
src/sdk/sdk.ts
.eslintrc.js
.npmignore
package-lock.json
package.json
src/index.ts
src/lib/base64.ts
src/lib/config.ts
src/lib/encodings.ts
src/lib/http.ts
src/lib/retries.ts
src/lib/sdks.ts
src/lib/security.ts
src/lib/url.ts
src/sdk/index.ts
src/models/errors/sdkerror.ts
src/types/blobs.ts
src/types/decimal.ts
src/types/index.ts
src/types/operations.ts
src/types/rfcdate.ts
tsconfig.json
src/models/operations/getservercapabilities.ts
src/models/operations/getserverpreferences.ts
src/models/operations/getavailableclients.ts
src/models/operations/getdevices.ts
src/models/operations/getserveridentity.ts
src/models/operations/getmyplexaccount.ts
src/models/operations/getresizedphoto.ts
src/models/operations/getserverlist.ts
src/models/operations/markplayed.ts
src/models/operations/markunplayed.ts
src/models/operations/updateplayprogress.ts
src/models/operations/getserveractivities.ts
src/models/operations/cancelserveractivities.ts
src/models/operations/getbutlertasks.ts
src/models/operations/startalltasks.ts
src/models/operations/stopalltasks.ts
src/models/operations/starttask.ts
src/models/operations/stoptask.ts
src/models/operations/getglobalhubs.ts
src/models/operations/getlibraryhubs.ts
src/models/operations/performsearch.ts
src/models/operations/performvoicesearch.ts
src/models/operations/getsearchresults.ts
src/models/operations/getfilehash.ts
src/models/operations/getrecentlyadded.ts
src/models/operations/getlibraries.ts
src/models/operations/getlibrary.ts
src/models/operations/deletelibrary.ts
src/models/operations/getlibraryitems.ts
src/models/operations/refreshlibrary.ts
src/models/operations/getlatestlibraryitems.ts
src/models/operations/getcommonlibraryitems.ts
src/models/operations/getmetadata.ts
src/models/operations/getmetadatachildren.ts
src/models/operations/getondeck.ts
src/models/operations/logline.ts
src/models/operations/logmultiline.ts
src/models/operations/enablepapertrail.ts
src/models/operations/createplaylist.ts
src/models/operations/getplaylists.ts
src/models/operations/getplaylist.ts
src/models/operations/deleteplaylist.ts
src/models/operations/updateplaylist.ts
src/models/operations/getplaylistcontents.ts
src/models/operations/clearplaylistcontents.ts
src/models/operations/addplaylistcontents.ts
src/models/operations/uploadplaylist.ts
src/models/operations/gettransienttoken.ts
src/models/operations/getsourceconnectioninformation.ts
src/models/operations/getsessions.ts
src/models/operations/getsessionhistory.ts
src/models/operations/gettranscodesessions.ts
src/models/operations/stoptranscodesession.ts
src/models/operations/getupdatestatus.ts
src/models/operations/checkforupdates.ts
src/models/operations/applyupdates.ts
src/models/operations/startuniversaltranscode.ts
src/models/operations/gettimeline.ts
src/models/errors/getservercapabilities.ts
src/models/errors/getserverpreferences.ts
src/models/errors/getavailableclients.ts
src/models/errors/getdevices.ts
src/models/errors/getserveridentity.ts
src/models/errors/getmyplexaccount.ts
src/models/errors/getresizedphoto.ts
src/models/errors/getserverlist.ts
src/models/errors/markplayed.ts
src/models/errors/markunplayed.ts
src/models/errors/updateplayprogress.ts
src/models/errors/getserveractivities.ts
src/models/errors/cancelserveractivities.ts
src/models/errors/getbutlertasks.ts
src/models/errors/startalltasks.ts
src/models/errors/stopalltasks.ts
src/models/errors/starttask.ts
src/models/errors/stoptask.ts
src/models/errors/getglobalhubs.ts
src/models/errors/getlibraryhubs.ts
src/models/errors/performsearch.ts
src/models/errors/performvoicesearch.ts
src/models/errors/getsearchresults.ts
src/models/errors/getfilehash.ts
src/models/errors/getrecentlyadded.ts
src/models/errors/getlibraries.ts
src/models/errors/getlibrary.ts
src/models/errors/deletelibrary.ts
src/models/errors/getlibraryitems.ts
src/models/errors/refreshlibrary.ts
src/models/errors/getlatestlibraryitems.ts
src/models/errors/getcommonlibraryitems.ts
src/models/errors/getmetadata.ts
src/models/errors/getmetadatachildren.ts
src/models/errors/getondeck.ts
src/models/errors/logline.ts
src/models/errors/logmultiline.ts
src/models/errors/enablepapertrail.ts
src/models/errors/createplaylist.ts
src/models/errors/getplaylists.ts
src/models/errors/getplaylist.ts
src/models/errors/deleteplaylist.ts
src/models/errors/updateplaylist.ts
src/models/errors/getplaylistcontents.ts
src/models/errors/clearplaylistcontents.ts
src/models/errors/addplaylistcontents.ts
src/models/errors/uploadplaylist.ts
src/models/errors/gettransienttoken.ts
src/models/errors/getsourceconnectioninformation.ts
src/models/errors/getsessions.ts
src/models/errors/getsessionhistory.ts
src/models/errors/gettranscodesessions.ts
src/models/errors/stoptranscodesession.ts
src/models/errors/getupdatestatus.ts
src/models/errors/checkforupdates.ts
src/models/errors/applyupdates.ts
src/models/errors/startuniversaltranscode.ts
src/models/errors/gettimeline.ts
src/models/components/security.ts
src/models/errors/index.ts
src/models/operations/index.ts
src/models/components/index.ts
docs/models/operations/directory.md
docs/models/operations/mediacontainer.md
docs/models/operations/getservercapabilitiesresponsebody.md
docs/models/operations/getservercapabilitiesresponse.md
docs/models/operations/getserverpreferencesresponse.md
docs/models/operations/server.md
docs/models/operations/getavailableclientsmediacontainer.md
docs/models/operations/responsebody.md
docs/models/operations/getavailableclientsresponse.md
docs/models/operations/device.md
docs/models/operations/getdevicesmediacontainer.md
docs/models/operations/getdevicesresponsebody.md
docs/models/operations/getdevicesresponse.md
docs/models/operations/getserveridentitymediacontainer.md
docs/models/operations/getserveridentityresponsebody.md
docs/models/operations/getserveridentityresponse.md
docs/models/operations/myplex.md
docs/models/operations/getmyplexaccountresponsebody.md
docs/models/operations/getmyplexaccountresponse.md
docs/models/operations/minsize.md
docs/models/operations/upscale.md
docs/models/operations/getresizedphotorequest.md
docs/models/operations/getresizedphotoresponse.md
docs/models/operations/getserverlistserver.md
docs/models/operations/getserverlistmediacontainer.md
docs/models/operations/getserverlistresponsebody.md
docs/models/operations/getserverlistresponse.md
docs/models/operations/markplayedrequest.md
docs/models/operations/markplayedresponse.md
docs/models/operations/markunplayedrequest.md
docs/models/operations/markunplayedresponse.md
docs/models/operations/updateplayprogressrequest.md
docs/models/operations/updateplayprogressresponse.md
docs/models/operations/context.md
docs/models/operations/activity.md
docs/models/operations/getserveractivitiesmediacontainer.md
docs/models/operations/getserveractivitiesresponsebody.md
docs/models/operations/getserveractivitiesresponse.md
docs/models/operations/cancelserveractivitiesrequest.md
docs/models/operations/cancelserveractivitiesresponse.md
docs/models/operations/butlertask.md
docs/models/operations/butlertasks.md
docs/models/operations/getbutlertasksresponsebody.md
docs/models/operations/getbutlertasksresponse.md
docs/models/operations/startalltasksresponse.md
docs/models/operations/stopalltasksresponse.md
docs/models/operations/taskname.md
docs/models/operations/starttaskrequest.md
docs/models/operations/starttaskresponse.md
docs/models/operations/pathparamtaskname.md
docs/models/operations/stoptaskrequest.md
docs/models/operations/stoptaskresponse.md
docs/models/operations/onlytransient.md
docs/models/operations/getglobalhubsrequest.md
docs/models/operations/getglobalhubsresponse.md
docs/models/operations/queryparamonlytransient.md
docs/models/operations/getlibraryhubsrequest.md
docs/models/operations/getlibraryhubsresponse.md
docs/models/operations/performsearchrequest.md
docs/models/operations/performsearchresponse.md
docs/models/operations/performvoicesearchrequest.md
docs/models/operations/performvoicesearchresponse.md
docs/models/operations/getsearchresultsrequest.md
docs/models/operations/getsearchresultspart.md
docs/models/operations/getsearchresultsmedia.md
docs/models/operations/getsearchresultsgenre.md
docs/models/operations/getsearchresultsdirector.md
docs/models/operations/getsearchresultswriter.md
docs/models/operations/getsearchresultscountry.md
docs/models/operations/getsearchresultsrole.md
docs/models/operations/getsearchresultsmetadata.md
docs/models/operations/provider.md
docs/models/operations/getsearchresultsmediacontainer.md
docs/models/operations/getsearchresultsresponsebody.md
docs/models/operations/getsearchresultsresponse.md
docs/models/operations/getfilehashrequest.md
docs/models/operations/getfilehashresponse.md
docs/models/operations/part.md
docs/models/operations/media.md
docs/models/operations/genre.md
docs/models/operations/director.md
docs/models/operations/writer.md
docs/models/operations/country.md
docs/models/operations/role.md
docs/models/operations/metadata.md
docs/models/operations/getrecentlyaddedmediacontainer.md
docs/models/operations/getrecentlyaddedresponsebody.md
docs/models/operations/getrecentlyaddedresponse.md
docs/models/operations/getlibrariesresponse.md
docs/models/operations/includedetails.md
docs/models/operations/getlibraryrequest.md
docs/models/operations/getlibraryresponse.md
docs/models/operations/deletelibraryrequest.md
docs/models/operations/deletelibraryresponse.md
docs/models/operations/getlibraryitemsrequest.md
docs/models/operations/getlibraryitemsresponse.md
docs/models/operations/refreshlibraryrequest.md
docs/models/operations/refreshlibraryresponse.md
docs/models/operations/getlatestlibraryitemsrequest.md
docs/models/operations/getlatestlibraryitemsresponse.md
docs/models/operations/getcommonlibraryitemsrequest.md
docs/models/operations/getcommonlibraryitemsresponse.md
docs/models/operations/getmetadatarequest.md
docs/models/operations/getmetadataresponse.md
docs/models/operations/getmetadatachildrenrequest.md
docs/models/operations/getmetadatachildrenresponse.md
docs/models/operations/stream.md
docs/models/operations/getondeckpart.md
docs/models/operations/getondeckmedia.md
docs/models/operations/guids.md
docs/models/operations/getondeckmetadata.md
docs/models/operations/getondeckmediacontainer.md
docs/models/operations/getondeckresponsebody.md
docs/models/operations/getondeckresponse.md
docs/models/operations/level.md
docs/models/operations/loglinerequest.md
docs/models/operations/loglineresponse.md
docs/models/operations/logmultilineresponse.md
docs/models/operations/enablepapertrailresponse.md
docs/models/operations/typet.md
docs/models/operations/smart.md
docs/models/operations/createplaylistrequest.md
docs/models/operations/createplaylistresponse.md
docs/models/operations/playlisttype.md
docs/models/operations/queryparamsmart.md
docs/models/operations/getplaylistsrequest.md
docs/models/operations/getplaylistsresponse.md
docs/models/operations/getplaylistrequest.md
docs/models/operations/getplaylistresponse.md
docs/models/operations/deleteplaylistrequest.md
docs/models/operations/deleteplaylistresponse.md
docs/models/operations/updateplaylistrequest.md
docs/models/operations/updateplaylistresponse.md
docs/models/operations/getplaylistcontentsrequest.md
docs/models/operations/getplaylistcontentsresponse.md
docs/models/operations/clearplaylistcontentsrequest.md
docs/models/operations/clearplaylistcontentsresponse.md
docs/models/operations/addplaylistcontentsrequest.md
docs/models/operations/addplaylistcontentsresponse.md
docs/models/operations/force.md
docs/models/operations/uploadplaylistrequest.md
docs/models/operations/uploadplaylistresponse.md
docs/models/operations/queryparamtype.md
docs/models/operations/scope.md
docs/models/operations/gettransienttokenrequest.md
docs/models/operations/gettransienttokenresponse.md
docs/models/operations/getsourceconnectioninformationrequest.md
docs/models/operations/getsourceconnectioninformationresponse.md
docs/models/operations/getsessionsresponse.md
docs/models/operations/getsessionhistoryresponse.md
docs/models/operations/transcodesession.md
docs/models/operations/gettranscodesessionsmediacontainer.md
docs/models/operations/gettranscodesessionsresponsebody.md
docs/models/operations/gettranscodesessionsresponse.md
docs/models/operations/stoptranscodesessionrequest.md
docs/models/operations/stoptranscodesessionresponse.md
docs/models/operations/getupdatestatusresponse.md
docs/models/operations/download.md
docs/models/operations/checkforupdatesrequest.md
docs/models/operations/checkforupdatesresponse.md
docs/models/operations/tonight.md
docs/models/operations/skip.md
docs/models/operations/applyupdatesrequest.md
docs/models/operations/applyupdatesresponse.md
docs/models/operations/startuniversaltranscoderequest.md
docs/models/operations/startuniversaltranscoderesponse.md
docs/models/operations/state.md
docs/models/operations/gettimelinerequest.md
docs/models/operations/gettimelineresponse.md
docs/models/errors/errors.md
docs/models/errors/getservercapabilitiesresponsebody.md
docs/models/errors/getserverpreferenceserrors.md
docs/models/errors/getserverpreferencesresponsebody.md
docs/models/errors/getavailableclientserrors.md
docs/models/errors/getavailableclientsresponsebody.md
docs/models/errors/getdeviceserrors.md
docs/models/errors/getdevicesresponsebody.md
docs/models/errors/getserveridentityerrors.md
docs/models/errors/getserveridentityresponsebody.md
docs/models/errors/getmyplexaccounterrors.md
docs/models/errors/getmyplexaccountresponsebody.md
docs/models/errors/getresizedphotoerrors.md
docs/models/errors/getresizedphotoresponsebody.md
docs/models/errors/getserverlisterrors.md
docs/models/errors/getserverlistresponsebody.md
docs/models/errors/markplayederrors.md
docs/models/errors/markplayedresponsebody.md
docs/models/errors/markunplayederrors.md
docs/models/errors/markunplayedresponsebody.md
docs/models/errors/updateplayprogresserrors.md
docs/models/errors/updateplayprogressresponsebody.md
docs/models/errors/getserveractivitieserrors.md
docs/models/errors/getserveractivitiesresponsebody.md
docs/models/errors/cancelserveractivitieserrors.md
docs/models/errors/cancelserveractivitiesresponsebody.md
docs/models/errors/getbutlertaskserrors.md
docs/models/errors/getbutlertasksresponsebody.md
docs/models/errors/startalltaskserrors.md
docs/models/errors/startalltasksresponsebody.md
docs/models/errors/stopalltaskserrors.md
docs/models/errors/stopalltasksresponsebody.md
docs/models/errors/starttaskerrors.md
docs/models/errors/starttaskresponsebody.md
docs/models/errors/stoptaskerrors.md
docs/models/errors/stoptaskresponsebody.md
docs/models/errors/getglobalhubserrors.md
docs/models/errors/getglobalhubsresponsebody.md
docs/models/errors/getlibraryhubserrors.md
docs/models/errors/getlibraryhubsresponsebody.md
docs/models/errors/performsearcherrors.md
docs/models/errors/performsearchresponsebody.md
docs/models/errors/performvoicesearcherrors.md
docs/models/errors/performvoicesearchresponsebody.md
docs/models/errors/getsearchresultserrors.md
docs/models/errors/getsearchresultsresponsebody.md
docs/models/errors/getfilehasherrors.md
docs/models/errors/getfilehashresponsebody.md
docs/models/errors/getrecentlyaddederrors.md
docs/models/errors/getrecentlyaddedresponsebody.md
docs/models/errors/getlibrarieserrors.md
docs/models/errors/getlibrariesresponsebody.md
docs/models/errors/getlibraryerrors.md
docs/models/errors/getlibraryresponsebody.md
docs/models/errors/deletelibraryerrors.md
docs/models/errors/deletelibraryresponsebody.md
docs/models/errors/getlibraryitemserrors.md
docs/models/errors/getlibraryitemsresponsebody.md
docs/models/errors/refreshlibraryerrors.md
docs/models/errors/refreshlibraryresponsebody.md
docs/models/errors/getlatestlibraryitemserrors.md
docs/models/errors/getlatestlibraryitemsresponsebody.md
docs/models/errors/getcommonlibraryitemserrors.md
docs/models/errors/getcommonlibraryitemsresponsebody.md
docs/models/errors/getmetadataerrors.md
docs/models/errors/getmetadataresponsebody.md
docs/models/errors/getmetadatachildrenerrors.md
docs/models/errors/getmetadatachildrenresponsebody.md
docs/models/errors/getondeckerrors.md
docs/models/errors/getondeckresponsebody.md
docs/models/errors/loglineerrors.md
docs/models/errors/loglineresponsebody.md
docs/models/errors/logmultilineerrors.md
docs/models/errors/logmultilineresponsebody.md
docs/models/errors/enablepapertrailerrors.md
docs/models/errors/enablepapertrailresponsebody.md
docs/models/errors/createplaylisterrors.md
docs/models/errors/createplaylistresponsebody.md
docs/models/errors/getplaylistserrors.md
docs/models/errors/getplaylistsresponsebody.md
docs/models/errors/getplaylisterrors.md
docs/models/errors/getplaylistresponsebody.md
docs/models/errors/deleteplaylisterrors.md
docs/models/errors/deleteplaylistresponsebody.md
docs/models/errors/updateplaylisterrors.md
docs/models/errors/updateplaylistresponsebody.md
docs/models/errors/getplaylistcontentserrors.md
docs/models/errors/getplaylistcontentsresponsebody.md
docs/models/errors/clearplaylistcontentserrors.md
docs/models/errors/clearplaylistcontentsresponsebody.md
docs/models/errors/addplaylistcontentserrors.md
docs/models/errors/addplaylistcontentsresponsebody.md
docs/models/errors/uploadplaylisterrors.md
docs/models/errors/uploadplaylistresponsebody.md
docs/models/errors/gettransienttokenerrors.md
docs/models/errors/gettransienttokenresponsebody.md
docs/models/errors/getsourceconnectioninformationerrors.md
docs/models/errors/getsourceconnectioninformationresponsebody.md
docs/models/errors/getsessionserrors.md
docs/models/errors/getsessionsresponsebody.md
docs/models/errors/getsessionhistoryerrors.md
docs/models/errors/getsessionhistoryresponsebody.md
docs/models/errors/gettranscodesessionserrors.md
docs/models/errors/gettranscodesessionsresponsebody.md
docs/models/errors/stoptranscodesessionerrors.md
docs/models/errors/stoptranscodesessionresponsebody.md
docs/models/errors/getupdatestatuserrors.md
docs/models/errors/getupdatestatusresponsebody.md
docs/models/errors/checkforupdateserrors.md
docs/models/errors/checkforupdatesresponsebody.md
docs/models/errors/applyupdateserrors.md
docs/models/errors/applyupdatesresponsebody.md
docs/models/errors/startuniversaltranscodeerrors.md
docs/models/errors/startuniversaltranscoderesponsebody.md
docs/models/errors/gettimelineerrors.md
docs/models/errors/gettimelineresponsebody.md
docs/models/components/security.md
docs/sdks/plexapi/README.md
docs/sdks/server/README.md
docs/sdks/media/README.md
docs/sdks/activities/README.md
docs/sdks/butler/README.md
docs/sdks/hubs/README.md
docs/sdks/search/README.md
docs/sdks/library/README.md
docs/sdks/log/README.md
docs/sdks/playlists/README.md
docs/sdks/security/README.md
docs/sdks/sessions/README.md
docs/sdks/updater/README.md
docs/sdks/video/README.md
USAGE.md
.gitattributes

View File

@@ -2,7 +2,7 @@
{ {
"name": "@lukehagar/plexjs", "name": "@lukehagar/plexjs",
"version": "0.13.1", "version": "0.15.3",
"exports": { "exports": {
".": "./src/index.ts", ".": "./src/index.ts",
"./models/errors": "./src/models/errors/index.ts", "./models/errors": "./src/models/errors/index.ts",
@@ -20,6 +20,7 @@
"README.md", "README.md",
"RUNTIMES.md", "RUNTIMES.md",
"USAGE.md", "USAGE.md",
"jsr.json",
"src/**/*.ts" "src/**/*.ts"
] ]
} }

350
package-lock.json generated
View File

@@ -1,21 +1,21 @@
{ {
"name": "@lukehagar/plexjs", "name": "@lukehagar/plexjs",
"version": "0.13.1", "version": "0.15.3",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@lukehagar/plexjs", "name": "@lukehagar/plexjs",
"version": "0.13.1", "version": "0.15.3",
"devDependencies": { "devDependencies": {
"@types/jsonpath": "^0.2.4", "@types/jsonpath": "^0.2.4",
"@typescript-eslint/eslint-plugin": "^6.13.2", "@typescript-eslint/eslint-plugin": "^7.7.1",
"@typescript-eslint/parser": "^6.13.2", "@typescript-eslint/parser": "^7.7.1",
"eslint": "^8.55.0", "eslint": "^8.57.0",
"eslint-import-resolver-typescript": "^3.6.1", "eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.0", "eslint-plugin-import": "^2.29.1",
"typescript": "^5.3.3", "typescript": "^5.4.5",
"zod": "^3.22.4" "zod": "^3.23.4"
}, },
"peerDependencies": { "peerDependencies": {
"zod": ">= 3" "zod": ">= 3"
@@ -100,9 +100,9 @@
} }
}, },
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "8.56.0", "version": "8.57.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
"integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -217,39 +217,39 @@
"dev": true "dev": true
}, },
"node_modules/@types/semver": { "node_modules/@types/semver": {
"version": "7.5.7", "version": "7.5.8",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
"integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
"dev": true "dev": true
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz",
"integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.5.1", "@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/scope-manager": "7.7.1",
"@typescript-eslint/type-utils": "6.21.0", "@typescript-eslint/type-utils": "7.7.1",
"@typescript-eslint/utils": "6.21.0", "@typescript-eslint/utils": "7.7.1",
"@typescript-eslint/visitor-keys": "6.21.0", "@typescript-eslint/visitor-keys": "7.7.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.2.4", "ignore": "^5.3.1",
"natural-compare": "^1.4.0", "natural-compare": "^1.4.0",
"semver": "^7.5.4", "semver": "^7.6.0",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^18.18.0 || >=20.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependencies": { "peerDependencies": {
"@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser": "^7.0.0",
"eslint": "^7.0.0 || ^8.0.0" "eslint": "^8.56.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"typescript": { "typescript": {
@@ -258,26 +258,26 @@
} }
}, },
"node_modules/@typescript-eslint/parser": { "node_modules/@typescript-eslint/parser": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz",
"integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/scope-manager": "7.7.1",
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/typescript-estree": "7.7.1",
"@typescript-eslint/visitor-keys": "6.21.0", "@typescript-eslint/visitor-keys": "7.7.1",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^18.18.0 || >=20.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependencies": { "peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0" "eslint": "^8.56.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"typescript": { "typescript": {
@@ -286,16 +286,16 @@
} }
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz",
"integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"@typescript-eslint/visitor-keys": "6.21.0" "@typescript-eslint/visitor-keys": "7.7.1"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^18.18.0 || >=20.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -303,25 +303,25 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz",
"integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/typescript-estree": "7.7.1",
"@typescript-eslint/utils": "6.21.0", "@typescript-eslint/utils": "7.7.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^18.18.0 || >=20.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependencies": { "peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0" "eslint": "^8.56.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"typescript": { "typescript": {
@@ -330,12 +330,12 @@
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz",
"integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^18.18.0 || >=20.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -343,22 +343,22 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz",
"integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"@typescript-eslint/visitor-keys": "6.21.0", "@typescript-eslint/visitor-keys": "7.7.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
"minimatch": "9.0.3", "minimatch": "^9.0.4",
"semver": "^7.5.4", "semver": "^7.6.0",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^18.18.0 || >=20.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -371,41 +371,41 @@
} }
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz",
"integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12", "@types/json-schema": "^7.0.15",
"@types/semver": "^7.5.0", "@types/semver": "^7.5.8",
"@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/scope-manager": "7.7.1",
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/typescript-estree": "7.7.1",
"semver": "^7.5.4" "semver": "^7.6.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^18.18.0 || >=20.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependencies": { "peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0" "eslint": "^8.56.0"
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz",
"integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.3"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^18.18.0 || >=20.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -978,16 +978,16 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "8.56.0", "version": "8.57.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
"integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1", "@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.4", "@eslint/eslintrc": "^2.1.4",
"@eslint/js": "8.56.0", "@eslint/js": "8.57.0",
"@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0", "@ungap/structured-clone": "^1.2.0",
@@ -2151,9 +2151,9 @@
} }
}, },
"node_modules/minimatch": { "node_modules/minimatch": {
"version": "9.0.3", "version": "9.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
@@ -2799,9 +2799,9 @@
} }
}, },
"node_modules/ts-api-utils": { "node_modules/ts-api-utils": {
"version": "1.2.1", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
"integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=16" "node": ">=16"
@@ -2920,9 +2920,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.3.3", "version": "5.4.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
@@ -3031,9 +3031,9 @@
} }
}, },
"node_modules/zod": { "node_modules/zod": {
"version": "3.22.4", "version": "3.23.4",
"resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.4.tgz",
"integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", "integrity": "sha512-/AtWOKbBgjzEYYQRNfoGKHObgfAZag6qUJX1VbHo2PRBgS+wfWagEY2mizjfyAPcGesrJOcx/wcl0L9WnVrHFw==",
"dev": true, "dev": true,
"funding": { "funding": {
"url": "https://github.com/sponsors/colinhacks" "url": "https://github.com/sponsors/colinhacks"
@@ -3101,9 +3101,9 @@
} }
}, },
"@eslint/js": { "@eslint/js": {
"version": "8.56.0", "version": "8.57.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
"integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true "dev": true
}, },
"@humanwhocodes/config-array": { "@humanwhocodes/config-array": {
@@ -3195,110 +3195,110 @@
"dev": true "dev": true
}, },
"@types/semver": { "@types/semver": {
"version": "7.5.7", "version": "7.5.8",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
"integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
"dev": true "dev": true
}, },
"@typescript-eslint/eslint-plugin": { "@typescript-eslint/eslint-plugin": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz",
"integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"@eslint-community/regexpp": "^4.5.1", "@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/scope-manager": "7.7.1",
"@typescript-eslint/type-utils": "6.21.0", "@typescript-eslint/type-utils": "7.7.1",
"@typescript-eslint/utils": "6.21.0", "@typescript-eslint/utils": "7.7.1",
"@typescript-eslint/visitor-keys": "6.21.0", "@typescript-eslint/visitor-keys": "7.7.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.2.4", "ignore": "^5.3.1",
"natural-compare": "^1.4.0", "natural-compare": "^1.4.0",
"semver": "^7.5.4", "semver": "^7.6.0",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
} }
}, },
"@typescript-eslint/parser": { "@typescript-eslint/parser": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz",
"integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/scope-manager": "7.7.1",
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/typescript-estree": "7.7.1",
"@typescript-eslint/visitor-keys": "6.21.0", "@typescript-eslint/visitor-keys": "7.7.1",
"debug": "^4.3.4" "debug": "^4.3.4"
} }
}, },
"@typescript-eslint/scope-manager": { "@typescript-eslint/scope-manager": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz",
"integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"@typescript-eslint/visitor-keys": "6.21.0" "@typescript-eslint/visitor-keys": "7.7.1"
} }
}, },
"@typescript-eslint/type-utils": { "@typescript-eslint/type-utils": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz",
"integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/typescript-estree": "7.7.1",
"@typescript-eslint/utils": "6.21.0", "@typescript-eslint/utils": "7.7.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
} }
}, },
"@typescript-eslint/types": { "@typescript-eslint/types": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz",
"integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==",
"dev": true "dev": true
}, },
"@typescript-eslint/typescript-estree": { "@typescript-eslint/typescript-estree": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz",
"integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"@typescript-eslint/visitor-keys": "6.21.0", "@typescript-eslint/visitor-keys": "7.7.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
"minimatch": "9.0.3", "minimatch": "^9.0.4",
"semver": "^7.5.4", "semver": "^7.6.0",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
} }
}, },
"@typescript-eslint/utils": { "@typescript-eslint/utils": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz",
"integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12", "@types/json-schema": "^7.0.15",
"@types/semver": "^7.5.0", "@types/semver": "^7.5.8",
"@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/scope-manager": "7.7.1",
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/typescript-estree": "7.7.1",
"semver": "^7.5.4" "semver": "^7.6.0"
} }
}, },
"@typescript-eslint/visitor-keys": { "@typescript-eslint/visitor-keys": {
"version": "6.21.0", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz",
"integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/types": "6.21.0", "@typescript-eslint/types": "7.7.1",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.3"
} }
}, },
"@ungap/structured-clone": { "@ungap/structured-clone": {
@@ -3715,16 +3715,16 @@
"dev": true "dev": true
}, },
"eslint": { "eslint": {
"version": "8.56.0", "version": "8.57.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
"integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1", "@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.4", "@eslint/eslintrc": "^2.1.4",
"@eslint/js": "8.56.0", "@eslint/js": "8.57.0",
"@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0", "@ungap/structured-clone": "^1.2.0",
@@ -4588,9 +4588,9 @@
} }
}, },
"minimatch": { "minimatch": {
"version": "9.0.3", "version": "9.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true, "dev": true,
"requires": { "requires": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
@@ -5024,9 +5024,9 @@
} }
}, },
"ts-api-utils": { "ts-api-utils": {
"version": "1.2.1", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
"integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },
@@ -5110,9 +5110,9 @@
} }
}, },
"typescript": { "typescript": {
"version": "5.3.3", "version": "5.4.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true "dev": true
}, },
"unbox-primitive": { "unbox-primitive": {
@@ -5190,9 +5190,9 @@
"dev": true "dev": true
}, },
"zod": { "zod": {
"version": "3.22.4", "version": "3.23.4",
"resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.4.tgz",
"integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", "integrity": "sha512-/AtWOKbBgjzEYYQRNfoGKHObgfAZag6qUJX1VbHo2PRBgS+wfWagEY2mizjfyAPcGesrJOcx/wcl0L9WnVrHFw==",
"dev": true "dev": true
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lukehagar/plexjs", "name": "@lukehagar/plexjs",
"version": "0.13.1", "version": "0.15.3",
"author": "LukeHagar", "author": "LukeHagar",
"main": "./index.js", "main": "./index.js",
"sideEffects": false, "sideEffects": false,
@@ -19,13 +19,13 @@
}, },
"devDependencies": { "devDependencies": {
"@types/jsonpath": "^0.2.4", "@types/jsonpath": "^0.2.4",
"@typescript-eslint/eslint-plugin": "^6.13.2", "@typescript-eslint/eslint-plugin": "^7.7.1",
"@typescript-eslint/parser": "^6.13.2", "@typescript-eslint/parser": "^7.7.1",
"eslint": "^8.55.0", "eslint": "^8.57.0",
"eslint-import-resolver-typescript": "^3.6.1", "eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.0", "eslint-plugin-import": "^2.29.1",
"typescript": "^5.3.3", "typescript": "^5.4.5",
"zod": "^3.22.4" "zod": "^3.23.4"
}, },
"dependencies": { "dependencies": {

View File

@@ -2,6 +2,7 @@
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
*/ */
import { RequestInput } from "../lib/http";
import { import {
AfterErrorContext, AfterErrorContext,
AfterErrorHook, AfterErrorHook,
@@ -9,6 +10,8 @@ import {
AfterSuccessHook, AfterSuccessHook,
BeforeRequestContext, BeforeRequestContext,
BeforeRequestHook, BeforeRequestHook,
BeforeCreateRequestHook,
BeforeCreateRequestContext,
Hooks, Hooks,
SDKInitHook, SDKInitHook,
SDKInitOptions, SDKInitOptions,
@@ -18,6 +21,7 @@ import { initHooks } from "./registration";
export class SDKHooks implements Hooks { export class SDKHooks implements Hooks {
sdkInitHooks: SDKInitHook[] = []; sdkInitHooks: SDKInitHook[] = [];
beforeCreateRequestHooks: BeforeCreateRequestHook[] = [];
beforeRequestHooks: BeforeRequestHook[] = []; beforeRequestHooks: BeforeRequestHook[] = [];
afterSuccessHooks: AfterSuccessHook[] = []; afterSuccessHooks: AfterSuccessHook[] = [];
afterErrorHooks: AfterErrorHook[] = []; afterErrorHooks: AfterErrorHook[] = [];
@@ -30,6 +34,10 @@ export class SDKHooks implements Hooks {
this.sdkInitHooks.push(hook); this.sdkInitHooks.push(hook);
} }
registerBeforeCreateRequestHook(hook: BeforeCreateRequestHook) {
this.beforeCreateRequestHooks.push(hook);
}
registerBeforeRequestHook(hook: BeforeRequestHook) { registerBeforeRequestHook(hook: BeforeRequestHook) {
this.beforeRequestHooks.push(hook); this.beforeRequestHooks.push(hook);
} }
@@ -46,6 +54,16 @@ export class SDKHooks implements Hooks {
return this.sdkInitHooks.reduce((opts, hook) => hook.sdkInit(opts), opts); return this.sdkInitHooks.reduce((opts, hook) => hook.sdkInit(opts), opts);
} }
beforeCreateRequest(hookCtx: BeforeCreateRequestContext, input: RequestInput): RequestInput {
let inp = input;
for (const hook of this.beforeCreateRequestHooks) {
inp = hook.beforeCreateRequest(hookCtx, inp);
}
return inp;
}
async beforeRequest(hookCtx: BeforeRequestContext, request: Request): Promise<Request> { async beforeRequest(hookCtx: BeforeRequestContext, request: Request): Promise<Request> {
let req = request; let req = request;

View File

@@ -2,7 +2,7 @@
* Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
*/ */
import { HTTPClient } from "../lib/http"; import { HTTPClient, RequestInput } from "../lib/http";
export type HookContext = { export type HookContext = {
operationID: string; operationID: string;
@@ -16,6 +16,8 @@ export type SDKInitOptions = {
baseURL: URL | null; baseURL: URL | null;
client: HTTPClient; client: HTTPClient;
}; };
export type BeforeCreateRequestContext = HookContext & {};
export type BeforeRequestContext = HookContext & {}; export type BeforeRequestContext = HookContext & {};
export type AfterSuccessContext = HookContext & {}; export type AfterSuccessContext = HookContext & {};
export type AfterErrorContext = HookContext & {}; export type AfterErrorContext = HookContext & {};
@@ -28,30 +30,41 @@ export interface SDKInitHook {
sdkInit: (opts: SDKInitOptions) => SDKInitOptions; sdkInit: (opts: SDKInitOptions) => SDKInitOptions;
} }
/** export interface BeforeCreateRequestHook {
* BeforeRequestHook is called before the SDK sends a request. The hook can /**
* modify the request before it is sent or throw an error to stop the request * A hook that is called before the SDK creates a `Request` object. The hook
* from being sent. * can modify how a request is constructed since certain modifications, like
*/ * changing the request URL, cannot be done on a request object directly.
*/
beforeCreateRequest: (hookCtx: BeforeCreateRequestContext, input: RequestInput) => RequestInput;
}
export interface BeforeRequestHook { export interface BeforeRequestHook {
/**
* A hook that is called before the SDK sends a request. The hook can
* introduce instrumentation code such as logging, tracing and metrics or
* replace the request before it is sent or throw an error to stop the
* request from being sent.
*/
beforeRequest: (hookCtx: BeforeRequestContext, request: Request) => Awaitable<Request>; beforeRequest: (hookCtx: BeforeRequestContext, request: Request) => Awaitable<Request>;
} }
/**
* AfterSuccessHook is called after the SDK receives a response. The hook can
* modify the response before it is handled or throw an error to stop the
* response from being handled.
*/
export interface AfterSuccessHook { export interface AfterSuccessHook {
/**
* A hook that is called after the SDK receives a response. The hook can
* introduce instrumentation code such as logging, tracing and metrics or
* modify the response before it is handled or throw an error to stop the
* response from being handled.
*/
afterSuccess: (hookCtx: AfterSuccessContext, response: Response) => Awaitable<Response>; afterSuccess: (hookCtx: AfterSuccessContext, response: Response) => Awaitable<Response>;
} }
/**
* AfterErrorHook is called after the SDK encounters an error, or a
* non-successful response. The hook can modify the response if available
* otherwise modify the error.
*/
export interface AfterErrorHook { export interface AfterErrorHook {
/**
* A hook that is called after the SDK encounters an error, or a
* non-successful response. The hook can introduce instrumentation code such
* as logging, tracing and metrics or modify the response or error values.
*/
afterError: ( afterError: (
hookCtx: AfterErrorContext, hookCtx: AfterErrorContext,
response: Response | null, response: Response | null,
@@ -65,6 +78,8 @@ export interface AfterErrorHook {
export interface Hooks { export interface Hooks {
/** Registers a hook to be used by the SDK for initialization event. */ /** Registers a hook to be used by the SDK for initialization event. */
registerSDKInitHook(hook: SDKInitHook): void; registerSDKInitHook(hook: SDKInitHook): void;
/** Registers a hook to be used by the SDK for to modify `Request` construction. */
registerBeforeCreateRequestHook(hook: BeforeCreateRequestHook): void;
/** Registers a hook to be used by the SDK for the before request event. */ /** Registers a hook to be used by the SDK for the before request event. */
registerBeforeRequestHook(hook: BeforeRequestHook): void; registerBeforeRequestHook(hook: BeforeRequestHook): void;
/** Registers a hook to be used by the SDK for the after success event. */ /** Registers a hook to be used by the SDK for the after success event. */

View File

@@ -87,7 +87,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
export const SDK_METADATA = { export const SDK_METADATA = {
language: "typescript", language: "typescript",
openapiDocVersion: "0.0.3", openapiDocVersion: "0.0.3",
sdkVersion: "0.13.1", sdkVersion: "0.15.3",
genVersion: "2.312.1", genVersion: "2.326.3",
userAgent: "speakeasy-sdk/typescript 0.13.1 2.312.1 0.0.3 @lukehagar/plexjs", userAgent: "speakeasy-sdk/typescript 0.15.3 2.326.3 0.0.3 @lukehagar/plexjs",
} as const; } as const;

View File

@@ -9,7 +9,28 @@ export type Fetcher = (
export type Awaitable<T> = T | Promise<T>; export type Awaitable<T> = T | Promise<T>;
const DEFAULT_FETCHER: Fetcher = (input, init) => fetch(input, init); const DEFAULT_FETCHER: Fetcher = (input, init) => {
// If input is a Request and init is undefined, Bun will discard the method,
// headers, body and other options that were set on the request object.
// Node.js and browers would ignore an undefined init value. This check is
// therefore needed for interop with Bun.
if (init == null) {
return fetch(input);
} else {
return fetch(input, init);
}
};
export type RequestInput = {
/**
* The URL the request will use.
*/
url: URL;
/**
* Options used to create a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request).
*/
options?: RequestInit | undefined;
};
export interface HTTPClientOptions { export interface HTTPClientOptions {
fetcher?: Fetcher; fetcher?: Fetcher;
@@ -130,29 +151,56 @@ export class HTTPClient {
} }
} }
export function matchContentType(response: Response, pattern: string): boolean { // A semicolon surrounded by optional whitespace characters is used to separate
if (pattern === "*" || pattern === "*/*") { // segments in a media type string.
const mediaParamSeparator = /\s*;\s*/g;
function matchContentType(response: Response, pattern: string): boolean {
// `*` is a special case which means anything is acceptable.
if (pattern === "*") {
return true; return true;
} }
const contentType = let contentType =
response.headers.get("content-type") ?? "application/octet-stream"; response.headers.get("content-type")?.trim() || "application/octet-stream";
contentType = contentType.toLowerCase();
const idx = contentType.split(";").findIndex((raw) => { const wantParts = pattern.toLowerCase().trim().split(mediaParamSeparator);
const ctype = raw.trim(); const [wantType = "", ...wantParams] = wantParts;
if (ctype === pattern) {
return true;
}
const parts = ctype.split("/"); if (wantType.split("/").length !== 2) {
if (parts.length !== 2) { return false;
}
const gotParts = contentType.split(mediaParamSeparator);
const [gotType = "", ...gotParams] = gotParts;
const [type = "", subtype = ""] = gotType.split("/");
if (!type || !subtype) {
return false;
}
if (
wantType !== "*/*" &&
gotType !== wantType &&
`${type}/*` !== wantType &&
`*/${subtype}` !== wantType
) {
return false;
}
if (gotParams.length < wantParams.length) {
return false;
}
const params = new Set(gotParams);
for (const wantParam of wantParams) {
if (!params.has(wantParam)) {
return false; return false;
} }
}
return `${parts[0]}/*` === pattern || `*/${parts[1]}` === pattern; return true;
});
return idx >= 0;
} }
const codeRangeRE = new RegExp("^[0-9]xx$", "i"); const codeRangeRE = new RegExp("^[0-9]xx$", "i");

View File

@@ -40,7 +40,11 @@ export class ClientSDK {
this.client = client; this.client = client;
} }
protected createRequest$(conf: RequestConfig, options?: RequestOptions): Request { protected createRequest$(
context: HookContext,
conf: RequestConfig,
options?: RequestOptions
): Request {
const { method, path, query, headers: opHeaders, security } = conf; const { method, path, query, headers: opHeaders, security } = conf;
const base = conf.baseURL ?? this.baseURL; const base = conf.baseURL ?? this.baseURL;
@@ -95,12 +99,17 @@ export class ClientSDK {
headers.set(k, v); headers.set(k, v);
} }
return new Request(reqURL, { const input = this.hooks$.beforeCreateRequest(context, {
...options?.fetchOptions, url: reqURL,
body: conf.body ?? null, options: {
headers, ...options?.fetchOptions,
method, body: conf.body ?? null,
headers,
method,
},
}); });
return new Request(input.url, input.options);
} }
protected async do$( protected async do$(

View File

@@ -68,7 +68,7 @@ type SecurityInputOAuth2 = {
type SecurityInputOAuth2ClientCredentials = { type SecurityInputOAuth2ClientCredentials = {
type: "oauth2:client_credentials"; type: "oauth2:client_credentials";
value: string | null | undefined; value: string | null | undefined;
fieldName: "clientID" | "clientSecret"; fieldName: string;
}; };
export type SecurityInput = export type SecurityInput =

View File

@@ -4,6 +4,7 @@
export class SDKError extends Error { export class SDKError extends Error {
public readonly statusCode: number; public readonly statusCode: number;
public readonly contentType: string;
constructor( constructor(
message: string, message: string,
@@ -11,11 +12,13 @@ export class SDKError extends Error {
public readonly body: string = "" public readonly body: string = ""
) { ) {
const statusCode = rawResponse.status; const statusCode = rawResponse.status;
const contentType = rawResponse.headers.get("content-type") || "";
const bodyString = body.length > 0 ? `\n${body}` : ""; const bodyString = body.length > 0 ? `\n${body}` : "";
super(`${message}: Status ${statusCode}${bodyString}`); super(`${message}: Status ${statusCode} Content-Type ${contentType} Body ${bodyString}`);
this.statusCode = statusCode; this.statusCode = statusCode;
this.contentType = contentType;
this.name = "SDKError"; this.name = "SDKError";
} }

File diff suppressed because it is too large Load Diff

View File

@@ -19,7 +19,6 @@ export * from "./getglobalhubs";
export * from "./getlibraries"; export * from "./getlibraries";
export * from "./getlibrary"; export * from "./getlibrary";
export * from "./getlibraryhubs"; export * from "./getlibraryhubs";
export * from "./getlibraryitems";
export * from "./getmetadata"; export * from "./getmetadata";
export * from "./getmetadatachildren"; export * from "./getmetadatachildren";
export * from "./getmyplexaccount"; export * from "./getmyplexaccount";

View File

@@ -71,7 +71,8 @@ export class Activities extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -82,12 +83,13 @@ export class Activities extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -118,7 +120,11 @@ export class Activities extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -172,7 +178,8 @@ export class Activities extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "DELETE", method: "DELETE",
@@ -184,12 +191,13 @@ export class Activities extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -209,7 +217,11 @@ export class Activities extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -90,7 +90,8 @@ export class Authentication extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -102,12 +103,13 @@ export class Authentication extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -127,7 +129,11 @@ export class Authentication extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -188,7 +194,8 @@ export class Authentication extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -200,12 +207,13 @@ export class Authentication extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -225,7 +233,11 @@ export class Authentication extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -69,7 +69,8 @@ export class Butler extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -80,12 +81,13 @@ export class Butler extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -116,7 +118,11 @@ export class Butler extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -156,7 +162,8 @@ export class Butler extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "POST", method: "POST",
@@ -167,12 +174,13 @@ export class Butler extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -192,7 +200,11 @@ export class Butler extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -234,7 +246,8 @@ export class Butler extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "DELETE", method: "DELETE",
@@ -245,12 +258,13 @@ export class Butler extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -270,7 +284,11 @@ export class Butler extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -335,7 +353,8 @@ export class Butler extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "POST", method: "POST",
@@ -347,12 +366,13 @@ export class Butler extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, [200, 202])) { if (this.matchStatusCode(response, [200, 202])) {
@@ -372,7 +392,11 @@ export class Butler extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -433,7 +457,8 @@ export class Butler extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "404", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "404", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "DELETE", method: "DELETE",
@@ -445,12 +470,13 @@ export class Butler extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -470,7 +496,11 @@ export class Butler extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -92,7 +92,8 @@ export class Hubs extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -104,12 +105,13 @@ export class Hubs extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -140,7 +142,11 @@ export class Hubs extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -207,7 +213,8 @@ export class Hubs extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -219,12 +226,13 @@ export class Hubs extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -255,7 +263,11 @@ export class Hubs extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
} }

View File

@@ -89,7 +89,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -101,12 +102,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -126,7 +128,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -168,7 +174,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -179,12 +186,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -215,7 +223,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -256,7 +268,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -267,12 +280,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -303,7 +317,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -405,7 +423,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -417,12 +436,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -453,7 +473,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -507,7 +531,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "DELETE", method: "DELETE",
@@ -519,12 +544,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -544,7 +570,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -554,121 +584,6 @@ export class Library extends ClientSDK {
); );
} }
/**
* Get Library Items
*
* @remarks
* Fetches details from a specific section of the library identified by a section key and a tag. The tag parameter accepts the following values:
* - `all`: All items in the section.
* - `unwatched`: Items that have not been played.
* - `newest`: Items that are recently released.
* - `recentlyAdded`: Items that are recently added to the library.
* - `recentlyViewed`: Items that were recently viewed.
* - `onDeck`: Items to continue watching.
* - `collection`: Items categorized by collection.
* - `edition`: Items categorized by edition.
* - `genre`: Items categorized by genre.
* - `year`: Items categorized by year of release.
* - `decade`: Items categorized by decade.
* - `director`: Items categorized by director.
* - `actor`: Items categorized by starring actor.
* - `country`: Items categorized by country of origin.
* - `contentRating`: Items categorized by content rating.
* - `rating`: Items categorized by rating.
* - `resolution`: Items categorized by resolution.
* - `firstCharacter`: Items categorized by the first letter.
* - `folder`: Items categorized by folder.
*
*/
async getLibraryItems(
sectionId: number,
tag: operations.Tag,
options?: RequestOptions
): Promise<operations.GetLibraryItemsResponse> {
const input$: operations.GetLibraryItemsRequest = {
sectionId: sectionId,
tag: tag,
};
const headers$ = new Headers();
headers$.set("user-agent", SDK_METADATA.userAgent);
headers$.set("Accept", "application/json");
const payload$ = schemas$.parse(
input$,
(value$) => operations.GetLibraryItemsRequest$.outboundSchema.parse(value$),
"Input validation failed"
);
const body$ = null;
const pathParams$ = {
sectionId: enc$.encodeSimple("sectionId", payload$.sectionId, {
explode: false,
charEncoding: "percent",
}),
tag: enc$.encodeSimple("tag", payload$.tag, {
explode: false,
charEncoding: "percent",
}),
};
const path$ = this.templateURLComponent("/library/sections/{sectionId}/{tag}")(pathParams$);
const query$ = "";
let security$;
if (typeof this.options$.accessToken === "function") {
security$ = { accessToken: await this.options$.accessToken() };
} else if (this.options$.accessToken) {
security$ = { accessToken: this.options$.accessToken };
} else {
security$ = {};
}
const context = {
operationID: "getLibraryItems",
oAuth2Scopes: [],
securitySource: this.options$.accessToken,
};
const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["4XX", "5XX"] };
const request = this.createRequest$(
{
security: securitySettings$,
method: "GET",
path: path$,
headers: headers$,
query: query$,
body: body$,
},
options
);
const response = await this.do$(request, doOptions);
const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status,
RawResponse: response,
};
if (this.matchResponse(response, 200, "application/json")) {
const responseBody = await response.json();
const result = schemas$.parse(
responseBody,
(val$) => {
return operations.GetLibraryItemsResponse$.inboundSchema.parse({
...responseFields$,
object: val$,
});
},
"Response validation failed"
);
return result;
} else {
const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody);
}
}
/** /**
* Refresh Library * Refresh Library
* *
@@ -722,7 +637,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -734,12 +650,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -759,7 +676,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -845,7 +766,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["4XX", "5XX"] }; const doOptions = { context, errorCodes: ["4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -857,12 +779,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -880,7 +803,11 @@ export class Library extends ClientSDK {
return result; return result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -935,7 +862,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -947,12 +875,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -983,7 +912,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -1040,7 +973,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -1052,12 +986,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -1088,7 +1023,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -1124,7 +1063,8 @@ export class Library extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -1135,12 +1075,13 @@ export class Library extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -1171,7 +1112,11 @@ export class Library extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
} }

View File

@@ -97,7 +97,8 @@ export class Log extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -109,12 +110,13 @@ export class Log extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -134,7 +136,11 @@ export class Log extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -172,16 +178,17 @@ export class Log extends ClientSDK {
* *
*/ */
async logMultiLine( async logMultiLine(
input: string, request: string,
options?: RequestOptions options?: RequestOptions
): Promise<operations.LogMultiLineResponse> { ): Promise<operations.LogMultiLineResponse> {
const input$ = request;
const headers$ = new Headers(); const headers$ = new Headers();
headers$.set("user-agent", SDK_METADATA.userAgent); headers$.set("user-agent", SDK_METADATA.userAgent);
headers$.set("Content-Type", "text/plain"); headers$.set("Content-Type", "text/plain");
headers$.set("Accept", "application/json"); headers$.set("Accept", "application/json");
const payload$ = schemas$.parse( const payload$ = schemas$.parse(
input, input$,
(value$) => z.string().parse(value$), (value$) => z.string().parse(value$),
"Input validation failed" "Input validation failed"
); );
@@ -207,7 +214,8 @@ export class Log extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "POST", method: "POST",
@@ -219,12 +227,13 @@ export class Log extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -244,7 +253,11 @@ export class Log extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -286,7 +299,8 @@ export class Log extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "403", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "403", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -297,12 +311,13 @@ export class Log extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -322,7 +337,11 @@ export class Log extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -86,7 +86,8 @@ export class Media extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -98,12 +99,13 @@ export class Media extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -123,7 +125,11 @@ export class Media extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -181,7 +187,8 @@ export class Media extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -193,12 +200,13 @@ export class Media extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -218,7 +226,11 @@ export class Media extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -283,7 +295,8 @@ export class Media extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "POST", method: "POST",
@@ -295,12 +308,13 @@ export class Media extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -320,7 +334,11 @@ export class Media extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -48,15 +48,16 @@ export class Playlists extends ClientSDK {
* *
*/ */
async createPlaylist( async createPlaylist(
input: operations.CreatePlaylistRequest, request: operations.CreatePlaylistRequest,
options?: RequestOptions options?: RequestOptions
): Promise<operations.CreatePlaylistResponse> { ): Promise<operations.CreatePlaylistResponse> {
const input$ = request;
const headers$ = new Headers(); const headers$ = new Headers();
headers$.set("user-agent", SDK_METADATA.userAgent); headers$.set("user-agent", SDK_METADATA.userAgent);
headers$.set("Accept", "application/json"); headers$.set("Accept", "application/json");
const payload$ = schemas$.parse( const payload$ = schemas$.parse(
input, input$,
(value$) => operations.CreatePlaylistRequest$.outboundSchema.parse(value$), (value$) => operations.CreatePlaylistRequest$.outboundSchema.parse(value$),
"Input validation failed" "Input validation failed"
); );
@@ -93,7 +94,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "POST", method: "POST",
@@ -105,12 +107,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -141,7 +144,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -199,7 +206,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -211,12 +219,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -247,7 +256,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -303,7 +316,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -315,12 +329,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -351,7 +366,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -406,7 +425,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "DELETE", method: "DELETE",
@@ -418,12 +438,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -443,7 +464,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -516,7 +541,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "PUT", method: "PUT",
@@ -528,12 +554,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -553,7 +580,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -623,7 +654,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -635,12 +667,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -671,7 +704,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -726,7 +763,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "DELETE", method: "DELETE",
@@ -738,12 +776,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -763,7 +802,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -837,7 +880,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "PUT", method: "PUT",
@@ -849,12 +893,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -885,7 +930,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -941,7 +990,8 @@ export class Playlists extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "POST", method: "POST",
@@ -953,12 +1003,13 @@ export class Playlists extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -978,7 +1029,11 @@ export class Playlists extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -88,7 +88,8 @@ export class Plex extends ClientSDK {
const context = { operationID: "getPin", oAuth2Scopes: [], securitySource: null }; const context = { operationID: "getPin", oAuth2Scopes: [], securitySource: null };
const doOptions = { context, errorCodes: ["400", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
method: "POST", method: "POST",
baseURL: baseURL$, baseURL: baseURL$,
@@ -100,12 +101,13 @@ export class Plex extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -136,7 +138,11 @@ export class Plex extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -192,7 +198,8 @@ export class Plex extends ClientSDK {
const context = { operationID: "getToken", oAuth2Scopes: [], securitySource: null }; const context = { operationID: "getToken", oAuth2Scopes: [], securitySource: null };
const doOptions = { context, errorCodes: ["400", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
method: "GET", method: "GET",
baseURL: baseURL$, baseURL: baseURL$,
@@ -204,12 +211,13 @@ export class Plex extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -229,7 +237,11 @@ export class Plex extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -107,7 +107,8 @@ export class Search extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -119,12 +120,13 @@ export class Search extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -144,7 +146,11 @@ export class Search extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -215,7 +221,8 @@ export class Search extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -227,12 +234,13 @@ export class Search extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -252,7 +260,11 @@ export class Search extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -310,7 +322,8 @@ export class Search extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -322,12 +335,13 @@ export class Search extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -358,7 +372,11 @@ export class Search extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
} }

View File

@@ -71,7 +71,8 @@ export class Server extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -82,12 +83,13 @@ export class Server extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -118,7 +120,11 @@ export class Server extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -155,7 +161,8 @@ export class Server extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -166,12 +173,13 @@ export class Server extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -202,7 +210,11 @@ export class Server extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -239,7 +251,8 @@ export class Server extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -250,12 +263,13 @@ export class Server extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -286,7 +300,11 @@ export class Server extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -321,7 +339,8 @@ export class Server extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -332,12 +351,13 @@ export class Server extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -368,7 +388,11 @@ export class Server extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -405,7 +429,8 @@ export class Server extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -416,12 +441,13 @@ export class Server extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -452,7 +478,11 @@ export class Server extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -487,7 +517,8 @@ export class Server extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -498,12 +529,13 @@ export class Server extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -534,7 +566,11 @@ export class Server extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -546,15 +582,16 @@ export class Server extends ClientSDK {
* *
*/ */
async getResizedPhoto( async getResizedPhoto(
input: operations.GetResizedPhotoRequest, request: operations.GetResizedPhotoRequest,
options?: RequestOptions options?: RequestOptions
): Promise<operations.GetResizedPhotoResponse> { ): Promise<operations.GetResizedPhotoResponse> {
const input$ = request;
const headers$ = new Headers(); const headers$ = new Headers();
headers$.set("user-agent", SDK_METADATA.userAgent); headers$.set("user-agent", SDK_METADATA.userAgent);
headers$.set("Accept", "application/json"); headers$.set("Accept", "application/json");
const payload$ = schemas$.parse( const payload$ = schemas$.parse(
input, input$,
(value$) => operations.GetResizedPhotoRequest$.outboundSchema.parse(value$), (value$) => operations.GetResizedPhotoRequest$.outboundSchema.parse(value$),
"Input validation failed" "Input validation failed"
); );
@@ -599,7 +636,8 @@ export class Server extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -611,12 +649,13 @@ export class Server extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -636,7 +675,11 @@ export class Server extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -677,7 +720,8 @@ export class Server extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -688,12 +732,13 @@ export class Server extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -724,7 +769,11 @@ export class Server extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
} }

View File

@@ -69,7 +69,8 @@ export class Sessions extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -80,12 +81,13 @@ export class Sessions extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -116,7 +118,11 @@ export class Sessions extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -153,7 +159,8 @@ export class Sessions extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -164,12 +171,13 @@ export class Sessions extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -200,7 +208,11 @@ export class Sessions extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -237,7 +249,8 @@ export class Sessions extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -248,12 +261,13 @@ export class Sessions extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -284,7 +298,11 @@ export class Sessions extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -338,7 +356,8 @@ export class Sessions extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "DELETE", method: "DELETE",
@@ -350,12 +369,13 @@ export class Sessions extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 204)) { if (this.matchStatusCode(response, 204)) {
@@ -375,7 +395,11 @@ export class Sessions extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -89,7 +89,8 @@ export class Statistics extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -101,12 +102,13 @@ export class Statistics extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -137,7 +139,11 @@ export class Statistics extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
} }

View File

@@ -69,7 +69,8 @@ export class Updater extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -80,12 +81,13 @@ export class Updater extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchResponse(response, 200, "application/json")) { if (this.matchResponse(response, 200, "application/json")) {
@@ -116,7 +118,11 @@ export class Updater extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
} }
@@ -171,7 +177,8 @@ export class Updater extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "PUT", method: "PUT",
@@ -183,12 +190,13 @@ export class Updater extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -208,7 +216,11 @@ export class Updater extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -273,7 +285,8 @@ export class Updater extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "500", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "500", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "PUT", method: "PUT",
@@ -285,12 +298,13 @@ export class Updater extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -310,7 +324,11 @@ export class Updater extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(

View File

@@ -45,15 +45,16 @@ export class Video extends ClientSDK {
* Get the timeline for a media item * Get the timeline for a media item
*/ */
async getTimeline( async getTimeline(
input: operations.GetTimelineRequest, request: operations.GetTimelineRequest,
options?: RequestOptions options?: RequestOptions
): Promise<operations.GetTimelineResponse> { ): Promise<operations.GetTimelineResponse> {
const input$ = request;
const headers$ = new Headers(); const headers$ = new Headers();
headers$.set("user-agent", SDK_METADATA.userAgent); headers$.set("user-agent", SDK_METADATA.userAgent);
headers$.set("Accept", "application/json"); headers$.set("Accept", "application/json");
const payload$ = schemas$.parse( const payload$ = schemas$.parse(
input, input$,
(value$) => operations.GetTimelineRequest$.outboundSchema.parse(value$), (value$) => operations.GetTimelineRequest$.outboundSchema.parse(value$),
"Input validation failed" "Input validation failed"
); );
@@ -107,7 +108,8 @@ export class Video extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -119,12 +121,13 @@ export class Video extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -144,7 +147,11 @@ export class Video extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(
@@ -161,15 +168,16 @@ export class Video extends ClientSDK {
* Begin a Universal Transcode Session * Begin a Universal Transcode Session
*/ */
async startUniversalTranscode( async startUniversalTranscode(
input: operations.StartUniversalTranscodeRequest, request: operations.StartUniversalTranscodeRequest,
options?: RequestOptions options?: RequestOptions
): Promise<operations.StartUniversalTranscodeResponse> { ): Promise<operations.StartUniversalTranscodeResponse> {
const input$ = request;
const headers$ = new Headers(); const headers$ = new Headers();
headers$.set("user-agent", SDK_METADATA.userAgent); headers$.set("user-agent", SDK_METADATA.userAgent);
headers$.set("Accept", "application/json"); headers$.set("Accept", "application/json");
const payload$ = schemas$.parse( const payload$ = schemas$.parse(
input, input$,
(value$) => operations.StartUniversalTranscodeRequest$.outboundSchema.parse(value$), (value$) => operations.StartUniversalTranscodeRequest$.outboundSchema.parse(value$),
"Input validation failed" "Input validation failed"
); );
@@ -256,7 +264,8 @@ export class Video extends ClientSDK {
const securitySettings$ = this.resolveGlobalSecurity(security$); const securitySettings$ = this.resolveGlobalSecurity(security$);
const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] }; const doOptions = { context, errorCodes: ["400", "401", "4XX", "5XX"] };
const request = this.createRequest$( const request$ = this.createRequest$(
context,
{ {
security: securitySettings$, security: securitySettings$,
method: "GET", method: "GET",
@@ -268,12 +277,13 @@ export class Video extends ClientSDK {
options options
); );
const response = await this.do$(request, doOptions); const response = await this.do$(request$, doOptions);
const responseFields$ = { const responseFields$ = {
ContentType: response.headers.get("content-type") ?? "application/octet-stream", ContentType: response.headers.get("content-type") ?? "application/octet-stream",
StatusCode: response.status, StatusCode: response.status,
RawResponse: response, RawResponse: response,
Headers: {},
}; };
if (this.matchStatusCode(response, 200)) { if (this.matchStatusCode(response, 200)) {
@@ -293,7 +303,11 @@ export class Video extends ClientSDK {
throw result; throw result;
} else { } else {
const responseBody = await response.text(); const responseBody = await response.text();
throw new errors.SDKError("Unexpected API response", response, responseBody); throw new errors.SDKError(
"Unexpected API response status or content-type",
response,
responseBody
);
} }
return schemas$.parse( return schemas$.parse(