Compare commits

...

3 Commits

Author SHA1 Message Date
speakeasybot
2c04752d88 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.260.6 2024-04-19 00:28:46 +00:00
speakeasybot
242d7d78f2 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.257.1 2024-04-18 00:28:19 +00:00
speakeasybot
779aa2dc9e ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.252.0 2024-04-13 00:26:21 +00:00
53 changed files with 590 additions and 495 deletions

View File

@@ -1,5 +1,4 @@
/* **/*
/docs/**/*.md
!/**/*.ts !/**/*.ts
!/**/*.js !/**/*.js
!/**/*.map !/**/*.map

View File

@@ -3,10 +3,10 @@ id: 16f22cbf-f23f-4419-8924-3a4b06381947
management: management:
docChecksum: a91eaf9ec1e6a3a6f4bf0571f5b18bae docChecksum: a91eaf9ec1e6a3a6f4bf0571f5b18bae
docVersion: 0.0.3 docVersion: 0.0.3
speakeasyVersion: 1.231.1 speakeasyVersion: 1.260.6
generationVersion: 2.295.1 generationVersion: 2.311.1
releaseVersion: 0.12.1 releaseVersion: 0.13.0
configChecksum: 8d21b1fe71b049ddde2e7694c17c983b configChecksum: 62265d55fc035cecbf6f03081c6e5587
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
@@ -14,13 +14,13 @@ management:
features: features:
typescript: typescript:
constsAndDefaults: 0.1.5 constsAndDefaults: 0.1.5
core: 3.7.0 core: 3.8.0
flattening: 2.81.1 flattening: 2.81.1
globalSecurity: 2.82.9 globalSecurity: 2.82.9
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.1 nameOverrides: 2.81.2
responseFormat: 0.2.3 responseFormat: 0.2.3
generatedFiles: generatedFiles:
- src/sdk/server.ts - src/sdk/server.ts
@@ -42,6 +42,7 @@ generatedFiles:
- .eslintrc.js - .eslintrc.js
- .npmignore - .npmignore
- RUNTIMES.md - RUNTIMES.md
- jsr.json
- package.json - package.json
- src/index.ts - src/index.ts
- src/lib/base64.ts - src/lib/base64.ts

21
.speakeasy/workflow.lock Normal file
View File

@@ -0,0 +1,21 @@
speakeasyVersion: 1.260.6
sources:
my-source: {}
targets:
plexjs:
source: my-source
outLocation: /github/workspace/repo
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
sources:
my-source:
inputs:
- location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml
targets:
plexjs:
target: typescript
source: my-source
publish:
npm:
token: $NPM_TOKEN

View File

@@ -1,4 +1,5 @@
workflowVersion: 1.0.0 workflowVersion: 1.0.0
speakeasyVersion: latest
sources: sources:
my-source: my-source:
inputs: inputs:

View File

@@ -31,13 +31,13 @@ yarn add @lukehagar/plexjs
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerCapabilities(); async function run() {
const result = await plexAPI.server.getServerCapabilities();
// Handle the result // Handle the result
console.log(result); console.log(result);
@@ -174,15 +174,15 @@ Validation errors can also occur when either method arguments or data returned f
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import * as errors from "@lukehagar/plexjs/models/errors"; import * as errors from "@lukehagar/plexjs/models/errors";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
let result; let result;
try { try {
result = await sdk.server.getServerCapabilities(); result = await plexAPI.server.getServerCapabilities();
} catch (err) { } catch (err) {
switch (true) { switch (true) {
case err instanceof errors.SDKValidationError: { case err instanceof errors.SDKValidationError: {
@@ -225,14 +225,14 @@ You can override the default server globally by passing a server index to the `s
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ serverIdx: 0,
serverIdx: 0, accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerCapabilities(); async function run() {
const result = await plexAPI.server.getServerCapabilities();
// Handle the result // Handle the result
console.log(result); console.log(result);
@@ -256,14 +256,14 @@ The default server can also be overridden globally by passing a URL to the `serv
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ serverURL: "{protocol}://{ip}:{port}",
serverURL: "{protocol}://{ip}:{port}", accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerCapabilities(); async function run() {
const result = await plexAPI.server.getServerCapabilities();
// Handle the result // Handle the result
console.log(result); console.log(result);
@@ -279,15 +279,15 @@ The server URL can also be overridden on a per-operation basis, provided a serve
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const strong = false; const strong = false;
const xPlexClientIdentifier = "<value>"; const xPlexClientIdentifier = "<value>";
const result = await sdk.plex.getPin(strong, xPlexClientIdentifier, { const result = await plexAPI.plex.getPin(strong, xPlexClientIdentifier, {
serverURL: "https://plex.tv/api/v2", serverURL: "https://plex.tv/api/v2",
}); });
@@ -364,13 +364,13 @@ To authenticate with the API the `accessToken` parameter must be set when initia
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerCapabilities(); async function run() {
const result = await plexAPI.server.getServerCapabilities();
// Handle the result // Handle the result
console.log(result); console.log(result);
@@ -412,15 +412,15 @@ This is used to track the client application and its usage
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const strong = false; const strong = false;
const xPlexClientIdentifier = "<value>"; const xPlexClientIdentifier = "<value>";
const result = await sdk.plex.getPin(strong, xPlexClientIdentifier); const result = await plexAPI.plex.getPin(strong, xPlexClientIdentifier);
// Handle the result // Handle the result
console.log(result); console.log(result);

View File

@@ -299,3 +299,33 @@ Based on:
- [typescript v0.12.1] . - [typescript v0.12.1] .
### Releases ### Releases
- [NPM v0.12.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.12.1 - . - [NPM v0.12.1] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.12.1 - .
## 2024-04-13 00:23:00
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.252.0 (2.306.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.12.2] .
### Releases
- [NPM v0.12.2] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.12.2 - .
## 2024-04-18 00:26:16
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.257.1 (2.308.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.12.3] .
### Releases
- [NPM v0.12.3] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.12.3 - .
## 2024-04-19 00:26:47
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.260.6 (2.311.1) https://github.com/speakeasy-api/speakeasy
### Generated
- [typescript v0.13.0] .
### Releases
- [NPM v0.13.0] https://www.npmjs.com/package/@lukehagar/plexjs/v/0.13.0 - .

View File

@@ -2,13 +2,13 @@
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerCapabilities(); async function run() {
const result = await plexAPI.server.getServerCapabilities();
// Handle the result // Handle the result
console.log(result); console.log(result);

View File

@@ -26,13 +26,13 @@ Get Server Activities
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.activities.getServerActivities(); async function run() {
const result = await plexAPI.activities.getServerActivities();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -68,15 +68,15 @@ Cancel Server Activities
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const activityUUID = "<value>"; const activityUUID = "<value>";
const result = await sdk.activities.cancelServerActivities(activityUUID); const result = await plexAPI.activities.cancelServerActivities(activityUUID);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -22,16 +22,16 @@ This endpoint provides the caller with a temporary token with the same access le
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { GetTransientTokenQueryParamType, Scope } from "@lukehagar/plexjs/models/operations"; import { GetTransientTokenQueryParamType, Scope } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const type = GetTransientTokenQueryParamType.Delegation; const type = GetTransientTokenQueryParamType.Delegation;
const scope = Scope.All; const scope = Scope.All;
const result = await sdk.authentication.getTransientToken(type, scope); const result = await plexAPI.authentication.getTransientToken(type, scope);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -71,15 +71,15 @@ Note: requires Plex Media Server >= 1.15.4.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const source = "server://client-identifier"; const source = "server://client-identifier";
const result = await sdk.authentication.getSourceConnectionInformation(source); const result = await plexAPI.authentication.getSourceConnectionInformation(source);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -23,13 +23,13 @@ Returns a list of butler tasks
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.butler.getButlerTasks(); async function run() {
const result = await plexAPI.butler.getButlerTasks();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -70,13 +70,13 @@ This endpoint will attempt to start all Butler tasks that are enabled in the set
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.butler.startAllTasks(); async function run() {
const result = await plexAPI.butler.startAllTasks();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -113,13 +113,13 @@ This endpoint will stop all currently running tasks and remove any scheduled tas
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.butler.stopAllTasks(); async function run() {
const result = await plexAPI.butler.stopAllTasks();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -161,15 +161,15 @@ This endpoint will attempt to start a single Butler task that is enabled in the
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { TaskName } from "@lukehagar/plexjs/models/operations"; import { TaskName } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const taskName = TaskName.CleanOldBundles; const taskName = TaskName.CleanOldBundles;
const result = await sdk.butler.startTask(taskName); const result = await plexAPI.butler.startTask(taskName);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -208,15 +208,15 @@ This endpoint will stop a currently running task by name, or remove it from the
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { PathParamTaskName } from "@lukehagar/plexjs/models/operations"; import { PathParamTaskName } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const taskName = PathParamTaskName.BackupDatabase; const taskName = PathParamTaskName.BackupDatabase;
const result = await sdk.butler.stopTask(taskName); const result = await plexAPI.butler.stopTask(taskName);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -21,16 +21,16 @@ Get Global Hubs filtered by the parameters provided.
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { OnlyTransient } from "@lukehagar/plexjs/models/operations"; import { OnlyTransient } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const count = 1262.49; const count = 1262.49;
const onlyTransient = OnlyTransient.One; const onlyTransient = OnlyTransient.One;
const result = await sdk.hubs.getGlobalHubs(count, onlyTransient); const result = await plexAPI.hubs.getGlobalHubs(count, onlyTransient);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -70,17 +70,17 @@ This endpoint will return a list of library specific hubs
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { QueryParamOnlyTransient } from "@lukehagar/plexjs/models/operations"; import { QueryParamOnlyTransient } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const sectionId = 6728.76; const sectionId = 6728.76;
const count = 9010.22; const count = 9010.22;
const onlyTransient = QueryParamOnlyTransient.Zero; const onlyTransient = QueryParamOnlyTransient.Zero;
const result = await sdk.hubs.getLibraryHubs(sectionId, count, onlyTransient); const result = await plexAPI.hubs.getLibraryHubs(sectionId, count, onlyTransient);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -29,16 +29,16 @@ This resource returns hash values for local files
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const url = "file://C:\Image.png&type=13"; const url = "file://C:\Image.png&type=13";
const type = 4462.17; const type = 4462.17;
const result = await sdk.library.getFileHash(url, type); const result = await plexAPI.library.getFileHash(url, type);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -77,13 +77,13 @@ This endpoint will return the recently added content.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.library.getRecentlyAdded(); async function run() {
const result = await plexAPI.library.getRecentlyAdded();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -125,13 +125,13 @@ This allows a client to provide a rich interface around the media (e.g. allow so
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.library.getLibraries(); async function run() {
const result = await plexAPI.library.getLibraries();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -207,16 +207,16 @@ Each type in the library comes with a set of filters and sorts, aiding in buildi
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { IncludeDetails } from "@lukehagar/plexjs/models/operations"; import { IncludeDetails } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const sectionId = 1000; const sectionId = 1000;
const includeDetails = IncludeDetails.Zero; const includeDetails = IncludeDetails.Zero;
const result = await sdk.library.getLibrary(sectionId, includeDetails); const result = await plexAPI.library.getLibrary(sectionId, includeDetails);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -254,15 +254,15 @@ Delate a library using a specific section
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const sectionId = 1000; const sectionId = 1000;
const result = await sdk.library.deleteLibrary(sectionId); const result = await plexAPI.library.deleteLibrary(sectionId);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -320,16 +320,16 @@ Fetches details from a specific section of the library identified by a section k
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { Tag } from "@lukehagar/plexjs/models/operations"; import { Tag } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const sectionId = 451092; const sectionId = 451092;
const tag = Tag.Unwatched; const tag = Tag.Unwatched;
const result = await sdk.library.getLibraryItems(sectionId, tag); const result = await plexAPI.library.getLibraryItems(sectionId, tag);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -367,15 +367,15 @@ This endpoint Refreshes the library.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const sectionId = 934.16; const sectionId = 934.16;
const result = await sdk.library.refreshLibrary(sectionId); const result = await plexAPI.library.refreshLibrary(sectionId);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -431,16 +431,16 @@ Each type in the library comes with a set of filters and sorts, aiding in buildi
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { Type } from "@lukehagar/plexjs/models/operations"; import { Type } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const sectionId = 933505; const sectionId = 933505;
const type = Type.Four; const type = Type.Four;
const result = await sdk.library.searchLibrary(sectionId, type); const result = await plexAPI.library.searchLibrary(sectionId, type);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -478,15 +478,15 @@ This endpoint will return the metadata of a library item specified with the rati
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const ratingKey = 8382.31; const ratingKey = 8382.31;
const result = await sdk.library.getMetadata(ratingKey); const result = await plexAPI.library.getMetadata(ratingKey);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -524,15 +524,15 @@ This endpoint will return the children of of a library item specified with the r
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const ratingKey = 1539.14; const ratingKey = 1539.14;
const result = await sdk.library.getMetadataChildren(ratingKey); const result = await plexAPI.library.getMetadataChildren(ratingKey);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -570,13 +570,13 @@ This endpoint will return the on deck content.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.library.getOnDeck(); async function run() {
const result = await plexAPI.library.getOnDeck();
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -23,17 +23,17 @@ This endpoint will write a single-line log message, including a level and source
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { Level } from "@lukehagar/plexjs/models/operations"; import { Level } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const level = Level.Three; const level = Level.Three;
const message = "Test log message"; const message = "Test log message";
const source = "Postman"; const source = "Postman";
const result = await sdk.log.logLine(level, message, source); const result = await plexAPI.log.logLine(level, message, source);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -93,13 +93,13 @@ Ensure each parameter is properly URL-encoded to avoid interpretation issues.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.log.logMultiLine("level=4&message=Test%20message%201&source=postman async function run() {
const result = await plexAPI.log.logMultiLine("level=4&message=Test%20message%201&source=postman
level=3&message=Test%20message%202&source=postman level=3&message=Test%20message%202&source=postman
level=1&message=Test%20message%203&source=postman"); level=1&message=Test%20message%203&source=postman");
@@ -139,13 +139,13 @@ This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.log.enablePaperTrail(); async function run() {
const result = await plexAPI.log.enablePaperTrail();
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -21,15 +21,15 @@ This will mark the provided media key as Played.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const key = 59398; const key = 59398;
const result = await sdk.media.markPlayed(key); const result = await plexAPI.media.markPlayed(key);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -66,15 +66,15 @@ This will mark the provided media key as Unplayed.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const key = 59398; const key = 59398;
const result = await sdk.media.markUnplayed(key); const result = await plexAPI.media.markUnplayed(key);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -112,17 +112,17 @@ This API command can be used to update the play progress of a media item.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const key = "<value>"; const key = "<value>";
const time = 6900.91; const time = 6900.91;
const state = "<value>"; const state = "<value>";
const result = await sdk.media.updatePlayProgress(key, time, state); const result = await plexAPI.media.updatePlayProgress(key, time, state);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -34,13 +34,13 @@ Create a new playlist. By default the playlist is blank. To create a playlist al
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { QueryParamType, Smart } from "@lukehagar/plexjs/models/operations"; import { QueryParamType, Smart } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.playlists.createPlaylist({ async function run() {
const result = await plexAPI.playlists.createPlaylist({
title: "<value>", title: "<value>",
type: QueryParamType.Photo, type: QueryParamType.Photo,
smart: Smart.One, smart: Smart.One,
@@ -83,16 +83,16 @@ Get All Playlists given the specified filters.
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { PlaylistType, QueryParamSmart } from "@lukehagar/plexjs/models/operations"; import { PlaylistType, QueryParamSmart } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const playlistType = PlaylistType.Audio; const playlistType = PlaylistType.Audio;
const smart = QueryParamSmart.Zero; const smart = QueryParamSmart.Zero;
const result = await sdk.playlists.getPlaylists(playlistType, smart); const result = await plexAPI.playlists.getPlaylists(playlistType, smart);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -132,15 +132,15 @@ Smart playlist details contain the `content` attribute. This is the content URI
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const playlistID = 4109.48; const playlistID = 4109.48;
const result = await sdk.playlists.getPlaylist(playlistID); const result = await plexAPI.playlists.getPlaylist(playlistID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -178,15 +178,15 @@ This endpoint will delete a playlist
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const playlistID = 216.22; const playlistID = 216.22;
const result = await sdk.playlists.deletePlaylist(playlistID); const result = await plexAPI.playlists.deletePlaylist(playlistID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -224,17 +224,17 @@ From PMS version 1.9.1 clients can also edit playlist metadata using this endpoi
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const playlistID = 3915; const playlistID = 3915;
const title = "<value>"; const title = "<value>";
const summary = "<value>"; const summary = "<value>";
const result = await sdk.playlists.updatePlaylist(playlistID, title, summary); const result = await plexAPI.playlists.updatePlaylist(playlistID, title, summary);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -277,16 +277,16 @@ Note that for dumb playlists, items have a `playlistItemID` attribute which is u
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const playlistID = 5004.46; const playlistID = 5004.46;
const type = 9403.59; const type = 9403.59;
const result = await sdk.playlists.getPlaylistContents(playlistID, type); const result = await plexAPI.playlists.getPlaylistContents(playlistID, type);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -325,15 +325,15 @@ Clears a playlist, only works with dumb playlists. Returns the playlist.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const playlistID = 1893.18; const playlistID = 1893.18;
const result = await sdk.playlists.clearPlaylistContents(playlistID); const result = await plexAPI.playlists.clearPlaylistContents(playlistID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -372,17 +372,17 @@ With a smart playlist, passing a new `uri` parameter replaces the rules for the
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const playlistID = 8502.01; const playlistID = 8502.01;
const uri = "server://12345/com.plexapp.plugins.library/library/metadata/1"; const uri = "server://12345/com.plexapp.plugins.library/library/metadata/1";
const playQueueID = 123; const playQueueID = 123;
const result = await sdk.playlists.addPlaylistContents(playlistID, uri, playQueueID); const result = await plexAPI.playlists.addPlaylistContents(playlistID, uri, playQueueID);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -423,16 +423,16 @@ Imports m3u playlists by passing a path on the server to scan for m3u-formatted
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { Force } from "@lukehagar/plexjs/models/operations"; import { Force } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const path = "/home/barkley/playlist.m3u"; const path = "/home/barkley/playlist.m3u";
const force = Force.Zero; const force = Force.Zero;
const result = await sdk.playlists.uploadPlaylist(path, force); const result = await plexAPI.playlists.uploadPlaylist(path, force);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -20,15 +20,15 @@ Retrieve a Pin from Plex.tv for authentication flows
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const strong = false; const strong = false;
const xPlexClientIdentifier = "<value>"; const xPlexClientIdentifier = "<value>";
const result = await sdk.plex.getPin(strong, xPlexClientIdentifier); const result = await plexAPI.plex.getPin(strong, xPlexClientIdentifier);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -67,15 +67,15 @@ Retrieve an Access Token from Plex.tv after the Pin has already been authenticat
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const pinID = "<value>"; const pinID = "<value>";
const xPlexClientIdentifier = "<value>"; const xPlexClientIdentifier = "<value>";
const result = await sdk.plex.getToken(pinID, xPlexClientIdentifier); const result = await plexAPI.plex.getToken(pinID, xPlexClientIdentifier);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -33,17 +33,17 @@ This request is intended to be very fast, and called as the user types.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const query = "dylan"; const query = "dylan";
const sectionId = 1516.53; const sectionId = 1516.53;
const limit = 5; const limit = 5;
const result = await sdk.search.performSearch(query, sectionId, limit); const result = await plexAPI.search.performSearch(query, sectionId, limit);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -86,17 +86,17 @@ Results, as well as their containing per-type hubs, contain a `distance` attribu
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const query = "dead+poop"; const query = "dead+poop";
const sectionId = 4094.8; const sectionId = 4094.8;
const limit = 5; const limit = 5;
const result = await sdk.search.performVoiceSearch(query, sectionId, limit); const result = await plexAPI.search.performVoiceSearch(query, sectionId, limit);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -135,15 +135,15 @@ This will search the database for the string provided.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const query = "110"; const query = "110";
const result = await sdk.search.getSearchResults(query); const result = await plexAPI.search.getSearchResults(query);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -26,13 +26,13 @@ Server Capabilities
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerCapabilities(); async function run() {
const result = await plexAPI.server.getServerCapabilities();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -68,13 +68,13 @@ Get Server Preferences
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerPreferences(); async function run() {
const result = await plexAPI.server.getServerPreferences();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -110,13 +110,13 @@ Get Available Clients
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getAvailableClients(); async function run() {
const result = await plexAPI.server.getAvailableClients();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -152,13 +152,13 @@ Get Devices
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getDevices(); async function run() {
const result = await plexAPI.server.getDevices();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -194,13 +194,13 @@ Get Server Identity
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerIdentity(); async function run() {
const result = await plexAPI.server.getServerIdentity();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -236,13 +236,13 @@ Returns MyPlex Account Information
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getMyPlexAccount(); async function run() {
const result = await plexAPI.server.getMyPlexAccount();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -280,13 +280,13 @@ Plex's Photo transcoder is used throughout the service to serve images at specif
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { MinSize, Upscale } from "@lukehagar/plexjs/models/operations"; import { MinSize, Upscale } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getResizedPhoto({ async function run() {
const result = await plexAPI.server.getResizedPhoto({
width: 110, width: 110,
height: 165, height: 165,
opacity: 100, opacity: 100,
@@ -331,13 +331,13 @@ Get Server List
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.server.getServerList(); async function run() {
const result = await plexAPI.server.getServerList();
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -22,13 +22,13 @@ This will retrieve the "Now Playing" Information of the PMS.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.sessions.getSessions(); async function run() {
const result = await plexAPI.sessions.getSessions();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -64,13 +64,13 @@ This will Retrieve a listing of all history views.
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.sessions.getSessionHistory(); async function run() {
const result = await plexAPI.sessions.getSessionHistory();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -106,13 +106,13 @@ Get Transcode Sessions
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.sessions.getTranscodeSessions(); async function run() {
const result = await plexAPI.sessions.getTranscodeSessions();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -148,15 +148,15 @@ Stop a Transcode Session
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const sessionKey = "zz7llzqlx8w9vnrsbnwhbmep"; const sessionKey = "zz7llzqlx8w9vnrsbnwhbmep";
const result = await sdk.sessions.stopTranscodeSession(sessionKey); const result = await plexAPI.sessions.stopTranscodeSession(sessionKey);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -19,15 +19,15 @@ This will return the media statistics for the server
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const timespan = 411769; const timespan = 411769;
const result = await sdk.statistics.getStatistics(timespan); const result = await plexAPI.statistics.getStatistics(timespan);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -22,13 +22,13 @@ Querying status of updates
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.updater.getUpdateStatus(); async function run() {
const result = await plexAPI.updater.getUpdateStatus();
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -65,15 +65,15 @@ Checking for updates
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { Download } from "@lukehagar/plexjs/models/operations"; import { Download } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const download = Download.One; const download = Download.One;
const result = await sdk.updater.checkForUpdates(download); const result = await plexAPI.updater.checkForUpdates(download);
// Handle the result // Handle the result
console.log(result) console.log(result)
@@ -112,16 +112,16 @@ Note that these two parameters are effectively mutually exclusive. The `tonight`
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { Skip, Tonight } from "@lukehagar/plexjs/models/operations"; import { Skip, Tonight } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
async function run() {
const tonight = Tonight.One; const tonight = Tonight.One;
const skip = Skip.Zero; const skip = Skip.Zero;
const result = await sdk.updater.applyUpdates(tonight, skip); const result = await plexAPI.updater.applyUpdates(tonight, skip);
// Handle the result // Handle the result
console.log(result) console.log(result)

View File

@@ -21,13 +21,13 @@ Get the timeline for a media item
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
import { State } from "@lukehagar/plexjs/models/operations"; import { State } from "@lukehagar/plexjs/models/operations";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.video.getTimeline({ async function run() {
const result = await plexAPI.video.getTimeline({
ratingKey: 716.56, ratingKey: 716.56,
key: "<key>", key: "<key>",
state: State.Paused, state: State.Paused,
@@ -75,13 +75,13 @@ Begin a Universal Transcode Session
```typescript ```typescript
import { PlexAPI } from "@lukehagar/plexjs"; import { PlexAPI } from "@lukehagar/plexjs";
async function run() { const plexAPI = new PlexAPI({
const sdk = new PlexAPI({ accessToken: "<YOUR_API_KEY_HERE>",
accessToken: "<YOUR_API_KEY_HERE>", xPlexClientIdentifier: "<value>",
xPlexClientIdentifier: "<value>", });
});
const result = await sdk.video.startUniversalTranscode({ async function run() {
const result = await plexAPI.video.startUniversalTranscode({
hasMDE: 8924.99, hasMDE: 8924.99,
path: "/etc/mail", path: "/etc/mail",
mediaIndex: 9962.95, mediaIndex: 9962.95,

View File

@@ -12,13 +12,15 @@ generation:
auth: auth:
oAuth2ClientCredentialsEnabled: false oAuth2ClientCredentialsEnabled: false
typescript: typescript:
version: 0.12.1 version: 0.13.0
additionalDependencies: additionalDependencies:
dependencies: {} dependencies: {}
devDependencies: {} devDependencies: {}
peerDependencies: {} peerDependencies: {}
additionalPackageJSON: {}
author: LukeHagar author: LukeHagar
clientServerStatusCodesAsErrors: true clientServerStatusCodesAsErrors: true
enumFormat: enum
flattenGlobalSecurity: true flattenGlobalSecurity: true
imports: imports:
option: openapi option: openapi

26
jsr.json Normal file
View File

@@ -0,0 +1,26 @@
{
"name": "@lukehagar/plexjs",
"version": "0.13.0",
"exports": {
".": "./src/index.ts",
"./models/errors": "./src/models/errors/index.ts",
"./models/components": "./src/models/components/index.ts",
"./models/operations": "./src/models/operations/index.ts",
"./lib/config": "./src/lib/config.ts",
"./lib/http": "./src/lib/http.ts",
"./lib/retries": "./src/lib/retries.ts",
"./lib/sdks": "./src/lib/sdks.ts",
"./types": "./src/types/index.ts"
},
"publish": {
"include": [
"LICENSE",
"README.md",
"RUNTIMES.md",
"USAGE.md",
"src/**/*.ts"
]
}
}

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@lukehagar/plexjs", "name": "@lukehagar/plexjs",
"version": "0.12.1", "version": "0.13.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@lukehagar/plexjs", "name": "@lukehagar/plexjs",
"version": "0.12.1", "version": "0.13.0",
"devDependencies": { "devDependencies": {
"@types/jsonpath": "^0.2.4", "@types/jsonpath": "^0.2.4",
"@typescript-eslint/eslint-plugin": "^6.13.2", "@typescript-eslint/eslint-plugin": "^6.13.2",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lukehagar/plexjs", "name": "@lukehagar/plexjs",
"version": "0.12.1", "version": "0.13.0",
"author": "LukeHagar", "author": "LukeHagar",
"main": "./index.js", "main": "./index.js",
"sideEffects": false, "sideEffects": false,
@@ -14,7 +14,6 @@
"build": "tsc", "build": "tsc",
"prepare": "npm run build" "prepare": "npm run build"
}, },
"keywords": [],
"peerDependencies": { "peerDependencies": {
"zod": ">= 3" "zod": ">= 3"
}, },

View File

@@ -4,7 +4,7 @@
import { HTTPClient } from "./http"; import { HTTPClient } from "./http";
import { RetryConfig } from "./retries"; import { RetryConfig } from "./retries";
import { pathToFunc } from "./url"; import { Params, pathToFunc } from "./url";
/** /**
* Contains the list of servers available to the SDK * Contains the list of servers available to the SDK
@@ -62,14 +62,14 @@ export type SDKOptions = {
export function serverURLFromOptions(options: SDKOptions): URL | null { export function serverURLFromOptions(options: SDKOptions): URL | null {
let serverURL = options.serverURL; let serverURL = options.serverURL;
const serverParams = [ const serverParams: Params[] = [
{ {
protocol: options.protocol?.toString() ?? "http", protocol: options.protocol ?? "http",
ip: options.ip?.toString() ?? "10.10.10.47", ip: options.ip ?? "10.10.10.47",
port: options.port?.toString() ?? "32400", port: options.port ?? "32400",
}, },
]; ];
let params: Record<string, string> = {}; let params: Params = {};
if (!serverURL) { if (!serverURL) {
const serverIdx = options.serverIdx ?? 0; const serverIdx = options.serverIdx ?? 0;
@@ -84,10 +84,10 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
return new URL(u); return new URL(u);
} }
export const SDK_METADATA = Object.freeze({ export const SDK_METADATA = {
language: "typescript", language: "typescript",
openapiDocVersion: "0.0.3", openapiDocVersion: "0.0.3",
sdkVersion: "0.12.1", sdkVersion: "0.13.0",
genVersion: "2.295.1", genVersion: "2.311.1",
userAgent: "speakeasy-sdk/typescript 0.12.1 2.295.1 0.0.3 @lukehagar/plexjs", userAgent: "speakeasy-sdk/typescript 0.13.0 2.311.1 0.0.3 @lukehagar/plexjs",
}); } as const;

View File

@@ -15,7 +15,7 @@ export function encodeMatrix(
key: string, key: string,
value: unknown, value: unknown,
options?: { explode?: boolean; charEncoding?: "percent" | "none" }, options?: { explode?: boolean; charEncoding?: "percent" | "none" },
) { ): string {
let out = ""; let out = "";
const pairs: [string, unknown][] = options?.explode const pairs: [string, unknown][] = options?.explode
? explode(key, value) ? explode(key, value)
@@ -65,7 +65,7 @@ export function encodeLabel(
key: string, key: string,
value: unknown, value: unknown,
options?: { explode?: boolean; charEncoding?: "percent" | "none" }, options?: { explode?: boolean; charEncoding?: "percent" | "none" },
) { ): string {
let out = ""; let out = "";
const pairs: [string, unknown][] = options?.explode const pairs: [string, unknown][] = options?.explode
? explode(key, value) ? explode(key, value)
@@ -100,7 +100,13 @@ export function encodeLabel(
return out; return out;
} }
function formEncoder(sep: string) { type FormEncoder = (
key: string,
value: unknown,
options?: { explode?: boolean; charEncoding?: "percent" | "none" },
) => string;
function formEncoder(sep: string): FormEncoder {
return ( return (
key: string, key: string,
value: unknown, value: unknown,
@@ -157,7 +163,7 @@ export function encodeBodyForm(
key: string, key: string,
value: unknown, value: unknown,
options?: { explode?: boolean; charEncoding?: "percent" | "none" }, options?: { explode?: boolean; charEncoding?: "percent" | "none" },
) { ): string {
let out = ""; let out = "";
const pairs: [string, unknown][] = options?.explode const pairs: [string, unknown][] = options?.explode
? explode(key, value) ? explode(key, value)
@@ -200,7 +206,7 @@ export function encodeDeepObject(
key: string, key: string,
value: unknown, value: unknown,
options?: { charEncoding?: "percent" | "none" }, options?: { charEncoding?: "percent" | "none" },
) { ): string {
if (value == null) { if (value == null) {
return ""; return "";
} }
@@ -247,7 +253,7 @@ export function encodeJSON(
key: string, key: string,
value: unknown, value: unknown,
options?: { explode?: boolean; charEncoding?: "percent" | "none" }, options?: { explode?: boolean; charEncoding?: "percent" | "none" },
) { ): string {
if (typeof value === "undefined") { if (typeof value === "undefined") {
return ""; return "";
} }
@@ -265,7 +271,7 @@ export const encodeSimple = (
key: string, key: string,
value: unknown, value: unknown,
options?: { explode?: boolean; charEncoding?: "percent" | "none" }, options?: { explode?: boolean; charEncoding?: "percent" | "none" },
) => { ): string => {
let out = ""; let out = "";
const pairs: [string, unknown][] = options?.explode const pairs: [string, unknown][] = options?.explode
? explode(key, value) ? explode(key, value)
@@ -337,7 +343,7 @@ function serializeValue(value: unknown): string {
return `${value}`; return `${value}`;
} }
function jsonReplacer(_: string, value: unknown) { function jsonReplacer(_: string, value: unknown): unknown {
if (value instanceof Uint8Array) { if (value instanceof Uint8Array) {
return bytesToBase64(value); return bytesToBase64(value);
} else { } else {

View File

@@ -7,7 +7,7 @@ export type Fetcher = (
init?: RequestInit, init?: RequestInit,
) => Promise<Response>; ) => Promise<Response>;
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) => fetch(input, init);
@@ -15,9 +15,9 @@ export interface HTTPClientOptions {
fetcher?: Fetcher; fetcher?: Fetcher;
} }
type BeforeRequestHook = (req: Request) => Awaitable<Request | void>; export type BeforeRequestHook = (req: Request) => Awaitable<Request | void>;
type RequestErrorHook = (err: unknown, req: Request) => Awaitable<void>; export type RequestErrorHook = (err: unknown, req: Request) => Awaitable<void>;
type ResponseHook = (res: Response, req: Request) => Awaitable<void>; export type ResponseHook = (res: Response, req: Request) => Awaitable<void>;
export class HTTPClient { export class HTTPClient {
private fetcher: Fetcher; private fetcher: Fetcher;
@@ -100,7 +100,7 @@ export class HTTPClient {
| [hook: "beforeRequest", fn: BeforeRequestHook] | [hook: "beforeRequest", fn: BeforeRequestHook]
| [hook: "requestError", fn: RequestErrorHook] | [hook: "requestError", fn: RequestErrorHook]
| [hook: "response", fn: ResponseHook] | [hook: "response", fn: ResponseHook]
) { ): this {
let target: unknown[]; let target: unknown[];
if (args[0] === "beforeRequest") { if (args[0] === "beforeRequest") {
target = this.requestHooks; target = this.requestHooks;
@@ -120,7 +120,7 @@ export class HTTPClient {
return this; return this;
} }
clone() { clone(): HTTPClient {
const child = new HTTPClient(this.options); const child = new HTTPClient(this.options);
child.requestHooks = this.requestHooks.slice(); child.requestHooks = this.requestHooks.slice();
child.requestErrorHooks = this.requestErrorHooks.slice(); child.requestErrorHooks = this.requestErrorHooks.slice();
@@ -160,7 +160,7 @@ const codeRangeRE = new RegExp("^[0-9]xx$", "i");
export function matchStatusCode( export function matchStatusCode(
response: Response, response: Response,
codes: number | string | (number | string)[], codes: number | string | (number | string)[],
) { ): boolean {
const actual = `${response.status}`; const actual = `${response.status}`;
const expectedCodes = Array.isArray(codes) ? codes : [codes]; const expectedCodes = Array.isArray(codes) ? codes : [codes];
if (!expectedCodes.length) { if (!expectedCodes.length) {

View File

@@ -40,7 +40,7 @@ export class ClientSDK {
this.client = client; this.client = client;
} }
protected createRequest$(conf: RequestConfig, options?: RequestOptions) { protected createRequest$(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;
@@ -109,7 +109,7 @@ export class ClientSDK {
context: HookContext; context: HookContext;
errorCodes: number | string | (number | string)[]; errorCodes: number | string | (number | string)[];
} }
) { ): Promise<Response> {
const { context, errorCodes } = options; const { context, errorCodes } = options;
let response = await this.client.request(await this.hooks$.beforeRequest(context, req)); let response = await this.client.request(await this.hooks$.beforeRequest(context, req));

View File

@@ -169,7 +169,9 @@ function applyBearer(
state.headers[spec.fieldName] = value; state.headers[spec.fieldName] = value;
} }
export function resolveGlobalSecurity(security: Partial<components.Security> | null | undefined) { export function resolveGlobalSecurity(
security: Partial<components.Security> | null | undefined
): SecurityState | null {
return resolveSecurity([ return resolveSecurity([
{ {
fieldName: "X-Plex-Token", fieldName: "X-Plex-Token",

View File

@@ -4,10 +4,12 @@
const hasOwn = Object.prototype.hasOwnProperty; const hasOwn = Object.prototype.hasOwnProperty;
export type Params = Partial<Record<string, string | number>>;
export function pathToFunc( export function pathToFunc(
pathPattern: string, pathPattern: string,
options?: { charEncoding?: "percent" | "none" }, options?: { charEncoding?: "percent" | "none" },
): (params?: Record<string, string | number>) => string { ): (params?: Params) => string {
const paramRE = /\{([a-zA-Z0-9_]+?)\}/g; const paramRE = /\{([a-zA-Z0-9_]+?)\}/g;
return function buildURLPath(params: Record<string, unknown> = {}): string { return function buildURLPath(params: Record<string, unknown> = {}): string {

View File

@@ -17,7 +17,7 @@ export class SDKValidationError extends Error {
this.rawValue = rawValue; this.rawValue = rawValue;
} }
public override toString() { public override toString(): string {
return `${this.message}: ${this.cause}`; return `${this.message}: ${this.cause}`;
} }
@@ -26,7 +26,7 @@ export class SDKValidationError extends Error {
* is a ZodError or some other recognized error type, otherwise return the * is a ZodError or some other recognized error type, otherwise return the
* default error message. * default error message.
*/ */
public pretty() { public pretty(): string {
if (this.cause instanceof z.ZodError) { if (this.cause instanceof z.ZodError) {
return `${this.message}\n${formatZodError(this.cause)}`; return `${this.message}\n${formatZodError(this.cause)}`;
} else { } else {

View File

@@ -47,10 +47,10 @@ export type ApplyUpdatesResponse = {
}; };
/** @internal */ /** @internal */
export const Tonight$ = z.nativeEnum(Tonight); export const Tonight$: z.ZodNativeEnum<typeof Tonight> = z.nativeEnum(Tonight);
/** @internal */ /** @internal */
export const Skip$ = z.nativeEnum(Skip); export const Skip$: z.ZodNativeEnum<typeof Skip> = z.nativeEnum(Skip);
/** @internal */ /** @internal */
export namespace ApplyUpdatesRequest$ { export namespace ApplyUpdatesRequest$ {

View File

@@ -35,7 +35,7 @@ export type CheckForUpdatesResponse = {
}; };
/** @internal */ /** @internal */
export const Download$ = z.nativeEnum(Download); export const Download$: z.ZodNativeEnum<typeof Download> = z.nativeEnum(Download);
/** @internal */ /** @internal */
export namespace CheckForUpdatesRequest$ { export namespace CheckForUpdatesRequest$ {

View File

@@ -95,10 +95,10 @@ export type CreatePlaylistResponse = {
}; };
/** @internal */ /** @internal */
export const QueryParamType$ = z.nativeEnum(QueryParamType); export const QueryParamType$: z.ZodNativeEnum<typeof QueryParamType> = z.nativeEnum(QueryParamType);
/** @internal */ /** @internal */
export const Smart$ = z.nativeEnum(Smart); export const Smart$: z.ZodNativeEnum<typeof Smart> = z.nativeEnum(Smart);
/** @internal */ /** @internal */
export namespace CreatePlaylistRequest$ { export namespace CreatePlaylistRequest$ {

View File

@@ -91,7 +91,7 @@ export type GetGlobalHubsResponse = {
}; };
/** @internal */ /** @internal */
export const OnlyTransient$ = z.nativeEnum(OnlyTransient); export const OnlyTransient$: z.ZodNativeEnum<typeof OnlyTransient> = z.nativeEnum(OnlyTransient);
/** @internal */ /** @internal */
export namespace GetGlobalHubsRequest$ { export namespace GetGlobalHubsRequest$ {

View File

@@ -128,7 +128,7 @@ export type GetLibraryResponse = {
}; };
/** @internal */ /** @internal */
export const IncludeDetails$ = z.nativeEnum(IncludeDetails); export const IncludeDetails$: z.ZodNativeEnum<typeof IncludeDetails> = z.nativeEnum(IncludeDetails);
/** @internal */ /** @internal */
export namespace GetLibraryRequest$ { export namespace GetLibraryRequest$ {

View File

@@ -170,7 +170,8 @@ export type GetLibraryHubsResponse = {
}; };
/** @internal */ /** @internal */
export const QueryParamOnlyTransient$ = z.nativeEnum(QueryParamOnlyTransient); export const QueryParamOnlyTransient$: z.ZodNativeEnum<typeof QueryParamOnlyTransient> =
z.nativeEnum(QueryParamOnlyTransient);
/** @internal */ /** @internal */
export namespace GetLibraryHubsRequest$ { export namespace GetLibraryHubsRequest$ {

View File

@@ -194,7 +194,7 @@ export type GetLibraryItemsResponse = {
}; };
/** @internal */ /** @internal */
export const Tag$ = z.nativeEnum(Tag); export const Tag$: z.ZodNativeEnum<typeof Tag> = z.nativeEnum(Tag);
/** @internal */ /** @internal */
export namespace GetLibraryItemsRequest$ { export namespace GetLibraryItemsRequest$ {

View File

@@ -83,10 +83,11 @@ export type GetPlaylistsResponse = {
}; };
/** @internal */ /** @internal */
export const PlaylistType$ = z.nativeEnum(PlaylistType); export const PlaylistType$: z.ZodNativeEnum<typeof PlaylistType> = z.nativeEnum(PlaylistType);
/** @internal */ /** @internal */
export const QueryParamSmart$ = z.nativeEnum(QueryParamSmart); export const QueryParamSmart$: z.ZodNativeEnum<typeof QueryParamSmart> =
z.nativeEnum(QueryParamSmart);
/** @internal */ /** @internal */
export namespace GetPlaylistsRequest$ { export namespace GetPlaylistsRequest$ {

View File

@@ -67,10 +67,10 @@ export type GetResizedPhotoResponse = {
}; };
/** @internal */ /** @internal */
export const MinSize$ = z.nativeEnum(MinSize); export const MinSize$: z.ZodNativeEnum<typeof MinSize> = z.nativeEnum(MinSize);
/** @internal */ /** @internal */
export const Upscale$ = z.nativeEnum(Upscale); export const Upscale$: z.ZodNativeEnum<typeof Upscale> = z.nativeEnum(Upscale);
/** @internal */ /** @internal */
export namespace GetResizedPhotoRequest$ { export namespace GetResizedPhotoRequest$ {

View File

@@ -72,7 +72,7 @@ export type GetTimelineResponse = {
}; };
/** @internal */ /** @internal */
export const State$ = z.nativeEnum(State); export const State$: z.ZodNativeEnum<typeof State> = z.nativeEnum(State);
/** @internal */ /** @internal */
export namespace GetTimelineRequest$ { export namespace GetTimelineRequest$ {

View File

@@ -45,10 +45,12 @@ export type GetTransientTokenResponse = {
}; };
/** @internal */ /** @internal */
export const GetTransientTokenQueryParamType$ = z.nativeEnum(GetTransientTokenQueryParamType); export const GetTransientTokenQueryParamType$: z.ZodNativeEnum<
typeof GetTransientTokenQueryParamType
> = z.nativeEnum(GetTransientTokenQueryParamType);
/** @internal */ /** @internal */
export const Scope$ = z.nativeEnum(Scope); export const Scope$: z.ZodNativeEnum<typeof Scope> = z.nativeEnum(Scope);
/** @internal */ /** @internal */
export namespace GetTransientTokenRequest$ { export namespace GetTransientTokenRequest$ {

View File

@@ -62,7 +62,7 @@ export type LogLineResponse = {
}; };
/** @internal */ /** @internal */
export const Level$ = z.nativeEnum(Level); export const Level$: z.ZodNativeEnum<typeof Level> = z.nativeEnum(Level);
/** @internal */ /** @internal */
export namespace LogLineRequest$ { export namespace LogLineRequest$ {

View File

@@ -91,7 +91,7 @@ export type SearchLibraryResponse = {
}; };
/** @internal */ /** @internal */
export const Type$ = z.nativeEnum(Type); export const Type$: z.ZodNativeEnum<typeof Type> = z.nativeEnum(Type);
/** @internal */ /** @internal */
export namespace SearchLibraryRequest$ { export namespace SearchLibraryRequest$ {

View File

@@ -47,7 +47,7 @@ export type StartTaskResponse = {
}; };
/** @internal */ /** @internal */
export const TaskName$ = z.nativeEnum(TaskName); export const TaskName$: z.ZodNativeEnum<typeof TaskName> = z.nativeEnum(TaskName);
/** @internal */ /** @internal */
export namespace StartTaskRequest$ { export namespace StartTaskRequest$ {

View File

@@ -47,7 +47,8 @@ export type StopTaskResponse = {
}; };
/** @internal */ /** @internal */
export const PathParamTaskName$ = z.nativeEnum(PathParamTaskName); export const PathParamTaskName$: z.ZodNativeEnum<typeof PathParamTaskName> =
z.nativeEnum(PathParamTaskName);
/** @internal */ /** @internal */
export namespace StopTaskRequest$ { export namespace StopTaskRequest$ {

View File

@@ -59,7 +59,7 @@ export type UploadPlaylistResponse = {
}; };
/** @internal */ /** @internal */
export const Force$ = z.nativeEnum(Force); export const Force$: z.ZodNativeEnum<typeof Force> = z.nativeEnum(Force);
/** @internal */ /** @internal */
export namespace UploadPlaylistRequest$ { export namespace UploadPlaylistRequest$ {

View File

@@ -50,77 +50,77 @@ export class PlexAPI extends ClientSDK {
} }
private _server?: Server; private _server?: Server;
get server() { get server(): Server {
return (this._server ??= new Server(this.options$)); return (this._server ??= new Server(this.options$));
} }
private _media?: Media; private _media?: Media;
get media() { get media(): Media {
return (this._media ??= new Media(this.options$)); return (this._media ??= new Media(this.options$));
} }
private _video?: Video; private _video?: Video;
get video() { get video(): Video {
return (this._video ??= new Video(this.options$)); return (this._video ??= new Video(this.options$));
} }
private _activities?: Activities; private _activities?: Activities;
get activities() { get activities(): Activities {
return (this._activities ??= new Activities(this.options$)); return (this._activities ??= new Activities(this.options$));
} }
private _butler?: Butler; private _butler?: Butler;
get butler() { get butler(): Butler {
return (this._butler ??= new Butler(this.options$)); return (this._butler ??= new Butler(this.options$));
} }
private _hubs?: Hubs; private _hubs?: Hubs;
get hubs() { get hubs(): Hubs {
return (this._hubs ??= new Hubs(this.options$)); return (this._hubs ??= new Hubs(this.options$));
} }
private _search?: Search; private _search?: Search;
get search() { get search(): Search {
return (this._search ??= new Search(this.options$)); return (this._search ??= new Search(this.options$));
} }
private _library?: Library; private _library?: Library;
get library() { get library(): Library {
return (this._library ??= new Library(this.options$)); return (this._library ??= new Library(this.options$));
} }
private _log?: Log; private _log?: Log;
get log() { get log(): Log {
return (this._log ??= new Log(this.options$)); return (this._log ??= new Log(this.options$));
} }
private _plex?: Plex; private _plex?: Plex;
get plex() { get plex(): Plex {
return (this._plex ??= new Plex(this.options$)); return (this._plex ??= new Plex(this.options$));
} }
private _playlists?: Playlists; private _playlists?: Playlists;
get playlists() { get playlists(): Playlists {
return (this._playlists ??= new Playlists(this.options$)); return (this._playlists ??= new Playlists(this.options$));
} }
private _authentication?: Authentication; private _authentication?: Authentication;
get authentication() { get authentication(): Authentication {
return (this._authentication ??= new Authentication(this.options$)); return (this._authentication ??= new Authentication(this.options$));
} }
private _statistics?: Statistics; private _statistics?: Statistics;
get statistics() { get statistics(): Statistics {
return (this._statistics ??= new Statistics(this.options$)); return (this._statistics ??= new Statistics(this.options$));
} }
private _sessions?: Sessions; private _sessions?: Sessions;
get sessions() { get sessions(): Sessions {
return (this._sessions ??= new Sessions(this.options$)); return (this._sessions ??= new Sessions(this.options$));
} }
private _updater?: Updater; private _updater?: Updater;
get updater() { get updater(): Updater {
return (this._updater ??= new Updater(this.options$)); return (this._updater ??= new Updater(this.options$));
} }
} }

View File

@@ -4,10 +4,11 @@
import * as z from "zod"; import * as z from "zod";
export const blobLikeSchema = z.custom<Blob>(isBlobLike, { export const blobLikeSchema: z.ZodType<Blob, z.ZodTypeDef, Blob> =
message: "expected a Blob, File or Blob-like object", z.custom<Blob>(isBlobLike, {
fatal: true, message: "expected a Blob, File or Blob-like object",
}); fatal: true,
});
export function isBlobLike(val: unknown): val is Blob { export function isBlobLike(val: unknown): val is Blob {
if (val instanceof Blob) { if (val instanceof Blob) {

View File

@@ -11,7 +11,7 @@ export type PageIterator<Result> = Result & {
export function createPageIterator<Result>( export function createPageIterator<Result>(
page: Result & { next: Paginator<Result> }, page: Result & { next: Paginator<Result> },
) { ): { [Symbol.asyncIterator]: () => AsyncIterableIterator<Result> } {
return { return {
[Symbol.asyncIterator]: async function* paginator() { [Symbol.asyncIterator]: async function* paginator() {
yield page; yield page;

View File

@@ -10,7 +10,7 @@ export class RFCDate {
/** /**
* Creates a new RFCDate instance using today's date. * Creates a new RFCDate instance using today's date.
*/ */
static today() { static today(): RFCDate {
return new RFCDate(new Date()); return new RFCDate(new Date());
} }