This commit is contained in:
Luke Hagar
2023-04-17 15:08:32 -05:00
29 changed files with 12962 additions and 0 deletions

2990
dist/plexjs/api.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

3678
dist/plexjs/api.js vendored Normal file

File diff suppressed because it is too large Load Diff

1
dist/plexjs/api.js.map vendored Normal file

File diff suppressed because one or more lines are too long

55
dist/plexjs/base.d.ts vendored Normal file
View File

@@ -0,0 +1,55 @@
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { Configuration } from "./configuration";
import { AxiosInstance, AxiosRequestConfig } from 'axios';
export declare const BASE_PATH: string;
/**
*
* @export
*/
export declare const COLLECTION_FORMATS: {
csv: string;
ssv: string;
tsv: string;
pipes: string;
};
/**
*
* @export
* @interface RequestArgs
*/
export interface RequestArgs {
url: string;
axiosOptions: AxiosRequestConfig;
}
/**
*
* @export
* @class BaseAPI
*/
export declare class BaseAPI {
protected basePath: string;
protected axios: AxiosInstance;
protected configuration: Configuration | undefined;
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
}
/**
*
* @export
* @class RequiredError
* @extends {Error}
*/
export declare class RequiredError extends Error {
field: string;
name: "RequiredError";
constructor(field: string, msg?: string);
}

61
dist/plexjs/base.js vendored Normal file
View File

@@ -0,0 +1,61 @@
/* tslint:disable */
/* eslint-disable */
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// Some imports not used depending on template conditions
// @ts-ignore
import globalAxios from 'axios';
export const BASE_PATH = "http://10.10.10.47:32400".replace(/\/+$/, "");
/**
*
* @export
*/
export const COLLECTION_FORMATS = {
csv: ",",
ssv: " ",
tsv: "\t",
pipes: "|",
};
/**
*
* @export
* @class BaseAPI
*/
export class BaseAPI {
basePath;
axios;
configuration;
constructor(configuration, basePath = BASE_PATH, axios = globalAxios) {
this.basePath = basePath;
this.axios = axios;
if (configuration) {
this.configuration = configuration;
this.basePath = configuration.basePath || this.basePath;
}
}
}
;
/**
*
* @export
* @class RequiredError
* @extends {Error}
*/
export class RequiredError extends Error {
field;
name = "RequiredError";
constructor(field, msg) {
super(msg);
this.field = field;
}
}
//# sourceMappingURL=base.js.map

1
dist/plexjs/base.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../plexjs/base.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;AAIH,yDAAyD;AACzD,aAAa;AACb,OAAO,WAAgE,MAAM,OAAO,CAAC;AAErF,MAAM,CAAC,MAAM,SAAS,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,GAAG;CACb,CAAC;AAYF;;;;GAIG;AACH,MAAM,OAAO,OAAO;IAGqC;IAAwC;IAFnF,aAAa,CAA4B;IAEnD,YAAY,aAA6B,EAAY,WAAmB,SAAS,EAAY,QAAuB,WAAW;QAA1E,aAAQ,GAAR,QAAQ,CAAoB;QAAY,UAAK,GAAL,KAAK,CAA6B;QAC3H,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;SAC3D;IACL,CAAC;CACJ;AAAA,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAEjB;IADnB,IAAI,GAAoB,eAAe,CAAC;IACxC,YAAmB,KAAa,EAAE,GAAY;QAC1C,KAAK,CAAC,GAAG,CAAC,CAAC;QADI,UAAK,GAAL,KAAK,CAAQ;IAEhC,CAAC;CACJ"}

50
dist/plexjs/common.d.ts vendored Normal file
View File

@@ -0,0 +1,50 @@
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { Configuration } from "./configuration";
import { RequestArgs } from "./base";
import { AxiosInstance, AxiosResponse } from 'axios';
/**
*
* @export
*/
export declare const DUMMY_BASE_URL = "https://example.com";
/**
*
* @throws {RequiredError}
* @export
*/
export declare const assertParamExists: (functionName: string, paramName: string, paramValue: unknown) => void;
/**
*
* @export
*/
export declare const setApiKeyToObject: (object: any, keyParamName: string, configuration?: Configuration) => Promise<void>;
/**
*
* @export
*/
export declare const setSearchParams: (url: URL, ...objects: any[]) => void;
/**
*
* @export
*/
export declare const serializeDataIfNeeded: (value: any, requestOptions: any, configuration?: Configuration) => any;
/**
*
* @export
*/
export declare const toPathString: (url: URL) => string;
/**
*
* @export
*/
export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) => <T = unknown, R = AxiosResponse<T, any>>(axios?: AxiosInstance, basePath?: string) => Promise<R>;

95
dist/plexjs/common.js vendored Normal file
View File

@@ -0,0 +1,95 @@
/* tslint:disable */
/* eslint-disable */
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { RequiredError } from "./base";
import axiosRetry from "axios-retry";
/**
*
* @export
*/
export const DUMMY_BASE_URL = 'https://example.com';
/**
*
* @throws {RequiredError}
* @export
*/
export const assertParamExists = function (functionName, paramName, paramValue) {
if (paramValue === null || paramValue === undefined) {
throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
}
};
/**
*
* @export
*/
export const setApiKeyToObject = async function (object, keyParamName, configuration) {
if (configuration && configuration.apiKey) {
const localVarApiKeyValue = typeof configuration.apiKey === 'function'
? await configuration.apiKey(keyParamName)
: await configuration.apiKey;
object[keyParamName] = localVarApiKeyValue;
}
};
/**
*
* @export
*/
export const setSearchParams = function (url, ...objects) {
const searchParams = new URLSearchParams(url.search);
for (const object of objects) {
for (const key in object) {
if (Array.isArray(object[key])) {
searchParams.delete(key);
for (const item of object[key]) {
searchParams.append(key, item);
}
}
else {
searchParams.set(key, object[key]);
}
}
}
url.search = searchParams.toString();
};
/**
*
* @export
*/
export const serializeDataIfNeeded = function (value, requestOptions, configuration) {
const nonString = typeof value !== 'string';
const needsSerialization = nonString && configuration && configuration.isJsonMime
? configuration.isJsonMime(requestOptions.headers['Content-Type'])
: nonString;
return needsSerialization
? JSON.stringify(value !== undefined ? value : {})
: (value || "");
};
/**
*
* @export
*/
export const toPathString = function (url) {
return url.pathname + url.search + url.hash;
};
/**
*
* @export
*/
export const createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
return (axios = globalAxios, basePath = BASE_PATH) => {
axiosRetry(globalAxios, configuration.retriesConfig);
const axiosRequestArgs = { ...axiosArgs.axiosOptions, url: (configuration?.basePath || basePath) + axiosArgs.url };
return axios.request(axiosRequestArgs);
};
};
//# sourceMappingURL=common.js.map

1
dist/plexjs/common.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../plexjs/common.ts"],"names":[],"mappings":"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"}

65
dist/plexjs/configuration.d.ts vendored Normal file
View File

@@ -0,0 +1,65 @@
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { IAxiosRetryConfig } from "axios-retry";
export interface ConfigurationParameters {
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
basePath?: string;
}
export declare class Configuration {
/**
* parameter for apiKey security
* @param name security name
* @memberof Configuration
*/
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePath?: string;
/**
* base options for axios calls
*
* @type {any}
* @memberof Configuration
*/
baseOptions?: any;
/**
* The FormData constructor that will be used to create multipart form data
* requests. You can inject this here so that execution environments that
* do not support the FormData class can still run the generated client.
*
* @type {new () => FormData}
*/
formDataCtor?: new () => any;
/**
* axios retry configuration
*
* @type {IAxiosRetryConfig}
* @memberof Configuration
*/
retriesConfig?: IAxiosRetryConfig;
constructor(param?: ConfigurationParameters);
/**
* Check if the given MIME is a JSON MIME.
* JSON MIME examples:
* application/json
* application/json; charset=UTF8
* APPLICATION/JSON
* application/vnd.company+json
* @param mime - MIME (Multipurpose Internet Mail Extensions)
* @return True if the given MIME is JSON, false otherwise.
*/
isJsonMime(mime: string): boolean;
}

69
dist/plexjs/configuration.js vendored Normal file
View File

@@ -0,0 +1,69 @@
/* tslint:disable */
/* eslint-disable */
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export class Configuration {
/**
* parameter for apiKey security
* @param name security name
* @memberof Configuration
*/
apiKey;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePath;
/**
* base options for axios calls
*
* @type {any}
* @memberof Configuration
*/
baseOptions;
/**
* The FormData constructor that will be used to create multipart form data
* requests. You can inject this here so that execution environments that
* do not support the FormData class can still run the generated client.
*
* @type {new () => FormData}
*/
formDataCtor;
/**
* axios retry configuration
*
* @type {IAxiosRetryConfig}
* @memberof Configuration
*/
retriesConfig;
constructor(param = {}) {
this.apiKey = param.apiKey;
this.basePath = param.basePath;
}
/**
* Check if the given MIME is a JSON MIME.
* JSON MIME examples:
* application/json
* application/json; charset=UTF8
* APPLICATION/JSON
* application/vnd.company+json
* @param mime - MIME (Multipurpose Internet Mail Extensions)
* @return True if the given MIME is JSON, false otherwise.
*/
isJsonMime(mime) {
const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
}
}
//# sourceMappingURL=configuration.js.map

1
dist/plexjs/configuration.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../plexjs/configuration.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;AAWH,MAAM,OAAO,aAAa;IACtB;;;;OAIG;IACH,MAAM,CAA+F;IAErG;;;;;OAKG;IACH,QAAQ,CAAU;IAElB;;;;;OAKG;IACH,WAAW,CAAO;IAElB;;;;;;OAMG;IACH,YAAY,CAAiB;IAE7B;;;;;OAKG;IACH,aAAa,CAAoB;IAEjC,YAAY,QAAiC,EAAE;QAE3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEnC,CAAC;IAED;;;;;;;;;OASG;IACI,UAAU,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAW,IAAI,MAAM,CAAC,+DAA+D,EAAE,GAAG,CAAC,CAAC;QAC1G,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,6BAA6B,CAAC,CAAC;IAC1G,CAAC;CACJ"}

12
dist/plexjs/index.d.ts vendored Normal file
View File

@@ -0,0 +1,12 @@
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export * from "./api";

15
dist/plexjs/index.js vendored Normal file
View File

@@ -0,0 +1,15 @@
/* tslint:disable */
/* eslint-disable */
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export * from "./api";
//# sourceMappingURL=index.js.map

1
dist/plexjs/index.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../plexjs/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;AAGH,cAAc,OAAO,CAAC"}

4
plexjs/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
wwwroot/*.js
node_modules
typings
dist

1
plexjs/.npmignore Normal file
View File

@@ -0,0 +1 @@
# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm

View File

@@ -0,0 +1,23 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.
# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md

View File

@@ -0,0 +1,12 @@
.gitignore
.npmignore
.openapi-generator-ignore
README.md
api.ts
base.ts
common.ts
configuration.ts
git_push.sh
index.ts
package.json
tsconfig.json

View File

@@ -0,0 +1 @@
6.3.0

45
plexjs/README.md Normal file
View File

@@ -0,0 +1,45 @@
## plexjs@0.0.5
This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments:
Environment
* Node.js
* Webpack
* Browserify
Language level
* ES5 - you must have a Promises/A+ library installed
* ES6
Module system
* CommonJS
* ES6 module system
It can be used in both TypeScript and JavaScript. In TypeScript, the definition should be automatically resolved via `package.json`. ([Reference](http://www.typescriptlang.org/docs/handbook/typings-for-npm-packages.html))
### Building
To build and compile the typescript sources to javascript use:
```
npm install
npm run build
```
### Publishing
First build the package then run ```npm publish```
### Consuming
navigate to the folder of your consuming project and run one of the following commands.
_published:_
```
npm install plexjs@0.0.5 --save
```
_unPublished (not recommended):_
```
npm install PATH_TO_GENERATED_PACKAGE --save

5382
plexjs/api.ts Normal file

File diff suppressed because it is too large Load Diff

71
plexjs/base.ts Normal file
View File

@@ -0,0 +1,71 @@
/* tslint:disable */
/* eslint-disable */
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { Configuration } from "./configuration";
// Some imports not used depending on template conditions
// @ts-ignore
import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
export const BASE_PATH = "http://10.10.10.47:32400".replace(/\/+$/, "");
/**
*
* @export
*/
export const COLLECTION_FORMATS = {
csv: ",",
ssv: " ",
tsv: "\t",
pipes: "|",
};
/**
*
* @export
* @interface RequestArgs
*/
export interface RequestArgs {
url: string;
axiosOptions: AxiosRequestConfig;
}
/**
*
* @export
* @class BaseAPI
*/
export class BaseAPI {
protected configuration: Configuration | undefined;
constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
if (configuration) {
this.configuration = configuration;
this.basePath = configuration.basePath || this.basePath;
}
}
};
/**
*
* @export
* @class RequiredError
* @extends {Error}
*/
export class RequiredError extends Error {
name: "RequiredError" = "RequiredError";
constructor(public field: string, msg?: string) {
super(msg);
}
}

105
plexjs/common.ts Normal file
View File

@@ -0,0 +1,105 @@
/* tslint:disable */
/* eslint-disable */
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { Configuration } from "./configuration";
import { RequiredError, RequestArgs } from "./base";
import { AxiosInstance, AxiosResponse } from 'axios';
import axiosRetry from "axios-retry";
/**
*
* @export
*/
export const DUMMY_BASE_URL = 'https://example.com'
/**
*
* @throws {RequiredError}
* @export
*/
export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {
if (paramValue === null || paramValue === undefined) {
throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
}
}
/**
*
* @export
*/
export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {
if (configuration && configuration.apiKey) {
const localVarApiKeyValue = typeof configuration.apiKey === 'function'
? await configuration.apiKey(keyParamName)
: await configuration.apiKey;
object[keyParamName] = localVarApiKeyValue;
}
}
/**
*
* @export
*/
export const setSearchParams = function (url: URL, ...objects: any[]) {
const searchParams = new URLSearchParams(url.search);
for (const object of objects) {
for (const key in object) {
if (Array.isArray(object[key])) {
searchParams.delete(key);
for (const item of object[key]) {
searchParams.append(key, item);
}
} else {
searchParams.set(key, object[key]);
}
}
}
url.search = searchParams.toString();
}
/**
*
* @export
*/
export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {
const nonString = typeof value !== 'string';
const needsSerialization = nonString && configuration && configuration.isJsonMime
? configuration.isJsonMime(requestOptions.headers['Content-Type'])
: nonString;
return needsSerialization
? JSON.stringify(value !== undefined ? value : {})
: (value || "");
}
/**
*
* @export
*/
export const toPathString = function (url: URL) {
return url.pathname + url.search + url.hash
}
/**
*
* @export
*/
export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {
return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
axiosRetry(globalAxios, configuration.retriesConfig)
const axiosRequestArgs = {...axiosArgs.axiosOptions, url: (configuration?.basePath || basePath) + axiosArgs.url};
return axios.request<T, R>(axiosRequestArgs);
};
}

86
plexjs/configuration.ts Normal file
View File

@@ -0,0 +1,86 @@
/* tslint:disable */
/* eslint-disable */
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { IAxiosRetryConfig } from "axios-retry";
export interface ConfigurationParameters {
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
basePath?: string;
}
export class Configuration {
/**
* parameter for apiKey security
* @param name security name
* @memberof Configuration
*/
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePath?: string;
/**
* base options for axios calls
*
* @type {any}
* @memberof Configuration
*/
baseOptions?: any;
/**
* The FormData constructor that will be used to create multipart form data
* requests. You can inject this here so that execution environments that
* do not support the FormData class can still run the generated client.
*
* @type {new () => FormData}
*/
formDataCtor?: new () => any;
/**
* axios retry configuration
*
* @type {IAxiosRetryConfig}
* @memberof Configuration
*/
retriesConfig?: IAxiosRetryConfig
constructor(param: ConfigurationParameters = {}) {
this.apiKey = param.apiKey;
this.basePath = param.basePath;
}
/**
* Check if the given MIME is a JSON MIME.
* JSON MIME examples:
* application/json
* application/json; charset=UTF8
* APPLICATION/JSON
* application/vnd.company+json
* @param mime - MIME (Multipurpose Internet Mail Extensions)
* @return True if the given MIME is JSON, false otherwise.
*/
public isJsonMime(mime: string): boolean {
const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
}
}

57
plexjs/git_push.sh Normal file
View File

@@ -0,0 +1,57 @@
#!/bin/sh
# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
#
# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
git_user_id=$1
git_repo_id=$2
release_note=$3
git_host=$4
if [ "$git_host" = "" ]; then
git_host="github.com"
echo "[INFO] No command line input provided. Set \$git_host to $git_host"
fi
if [ "$git_user_id" = "" ]; then
git_user_id="GIT_USER_ID"
echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
fi
if [ "$git_repo_id" = "" ]; then
git_repo_id="GIT_REPO_ID"
echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
fi
if [ "$release_note" = "" ]; then
release_note="Minor update"
echo "[INFO] No command line input provided. Set \$release_note to $release_note"
fi
# Initialize the local directory as a Git repository
git init
# Adds the files in the local repository and stages them for commit.
git add .
# Commits the tracked changes and prepares them to be pushed to a remote repository.
git commit -m "$release_note"
# Sets the new remote
git_remote=$(git remote)
if [ "$git_remote" = "" ]; then # git remote not defined
if [ "$GIT_TOKEN" = "" ]; then
echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
else
git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
fi
fi
git pull origin master
# Pushes (Forces) the changes in the local repository up to the remote repository
echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
git push origin master 2>&1 | grep -v 'To https'

17
plexjs/index.ts Normal file
View File

@@ -0,0 +1,17 @@
/* tslint:disable */
/* eslint-disable */
/**
* Plex-API
* An Open API Spec for interacting with Plex.tv and Plex Servers
*
* The version of the OpenAPI document: 0.0.3
* Contact: Lukeslakemail@gmail.com
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export * from "./api";

42
plexjs/package.json Normal file
View File

@@ -0,0 +1,42 @@
{
"name": "plexjs",
"version": "0.0.5",
"description": "Community Made Plex JS/TS Module",
"author": "Luke Hagar",
"type": "module",
"repository": {
"type": "git",
"url": "https://github.com/LukeHagar/plexjs.git"
},
"keywords": [
"axios",
"typescript",
"openapi",
"api",
"plex",
"plex media server",
"pms"
"plexjs"
],
"license": "MIT",
"bugs": {
"url": "https://github.com/LukeHagar/plexjs/issues"
},
"main": "./dist/index.js",
"typings": "./dist/index.d.ts",
"scripts": {
"build": "tsc --outDir ./dist/",
"prepare": "npm run build"
},
"dependencies": {
"axios": "^0.26.1",
"axios-retry": "^3.4.0"
},
"devDependencies": {
"@types/node": "^12.11.5",
"typescript": "^4.0"
},
"publishConfig": {
"registry": "lukehagar"
}
}

21
plexjs/tsconfig.json Normal file
View File

@@ -0,0 +1,21 @@
{
"compilerOptions": {
"declaration": true,
"target": "ES5",
"module": "CommonJS",
"noImplicitAny": true,
"outDir": "./dist",
"rootDir": ".",
"lib": [
"es6",
"dom"
],
"typeRoots": [
"node_modules/@types"
]
},
"exclude": [
"dist",
"node_modules"
]
}