Compare commits

..

16 Commits
0.0.1 ... 0.0.5

Author SHA1 Message Date
LukeHagar
f75d22cf6a Bump version to 0.0.5 2023-04-12 02:27:11 +00:00
GitHub Action Bot
705cd5f26b Automated build '' typescript-axios sdk: 4673951944 2023-04-12 02:25:36 +00:00
Luke Hagar
5162542903 removed paginator 2023-04-10 09:34:19 -05:00
LukeHagar
f412ddd4d5 Bump version to 0.0.4 2023-04-07 15:04:24 +00:00
Luke Hagar
3f4ea2071e Update package.json 2023-04-07 09:58:58 -05:00
Luke Hagar
76726427e2 Update bump_version.yml 2023-04-07 09:58:37 -05:00
LukeHagar
1536e4e888 Bump version to 0.0.3 2023-04-07 14:58:09 +00:00
Luke Hagar
0789f62dcf Fixed action 2023-04-07 09:55:54 -05:00
Luke Hagar
bcbd24903b removed node_modules 2023-04-07 09:36:04 -05:00
Luke Hagar
09ad25d937 gitignore and package name 2023-04-07 09:34:12 -05:00
LukeHagar
d39c0dd2e2 Bump version to 0.0.2 2023-04-07 14:22:39 +00:00
GitHub Action Bot
e7c4df7bab Automated build '' typescript-axios sdk: 4638889339 2023-04-07 14:21:19 +00:00
Luke Hagar
bc037dd491 Update configuration.mustache 2023-04-07 09:20:30 -05:00
Luke Hagar
55f0566e2f adjusted mustache files further 2023-04-07 09:12:37 -05:00
Luke Hagar
10fcbd2e6c mustache template adjustments 2023-04-07 08:48:09 -05:00
GitHub Action Bot
6367e344e7 Automated build '' typescript-axios sdk: 4638458958 2023-04-07 13:16:12 +00:00
52 changed files with 13335 additions and 354 deletions

View File

@@ -62,7 +62,6 @@ jobs:
if: steps.updateVersion.outcome == 'success' if: steps.updateVersion.outcome == 'success'
run: | run: |
LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`) LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`)
cd sdk-output
jq '.version = "${{ github.event.inputs.version }}"' package.json > package.json.tmp && mv package.json.tmp package.json jq '.version = "${{ github.event.inputs.version }}"' package.json > package.json.tmp && mv package.json.tmp package.json
- name: Build TS SDK - name: Build TS SDK
@@ -84,4 +83,4 @@ jobs:
uses: stefanzweifel/git-auto-commit-action@v4 uses: stefanzweifel/git-auto-commit-action@v4
with: with:
commit_message: Bump version to ${{ github.event.inputs.version }} commit_message: Bump version to ${{ github.event.inputs.version }}
tagging_message: ${{ github.event.inputs.version }} tagging_message: ${{ github.event.inputs.version }}

View File

@@ -17,4 +17,4 @@ jobs:
uses: JS-DevTools/npm-publish@v1 uses: JS-DevTools/npm-publish@v1
with: with:
token: ${{ secrets.NPM_TOKEN }} token: ${{ secrets.NPM_TOKEN }}
package: ./sdk-output/package.json package: ./package.json

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
node_modules/

1
api-specs Submodule

Submodule api-specs added at 462e131304

View File

@@ -5,5 +5,5 @@ files:
destinationFilename: package.json destinationFilename: package.json
npmName: plexjs npmName: plexjs
npmRepository: lukehagar npmRepository: lukehagar
npmVersion: 0.0.1 npmVersion: 0.0.5
useSingleRequestParameter: true useSingleRequestParameter: true

View File

@@ -1,217 +0,0 @@
import axios from "axios";
import * as os from 'os';
import * as path from 'path';
import * as yaml from "js-yaml";
import * as fs from "fs";
import { IAxiosRetryConfig } from "axios-retry";
export interface ConfigurationParameters {
baseurl?: string;
clientId?: string;
clientSecret?: string;
accessToken?: string;
tokenUrl?: string;
}
export interface Configuration {
activeenvironment?: string;
authtype?: string;
customexporttemplatespath?: string;
customsearchtemplatespath?: string;
debug?: boolean;
environments?: {[key: string]: Environment};
}
export interface Environment {
baseurl: string;
pat: Pat;
tenanturl: string;
}
export interface Pat {
clientid: string;
clientsecret: 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>);
/**
* parameter for clientId
*
* @type {string}
* @memberof Configuration
*/
clientId?: string;
/**
* parameter for clientSecret
*
* @type {string}
* @memberof Configuration
*/
clientSecret?: string;
/**
* parameter for clientSecret
*
* @type {string}
* @memberof Configuration
*/
/**
* parameter for oauth2 security
* @param name security name
* @param scopes oauth2 scope
* @memberof Configuration
*/
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
/**
* parameter for clientId
*
* @type {string}
* @memberof Configuration
*/
tokenUrl?: string;
/**
* parameter for basic security
*
* @type {string}
* @memberof Configuration
*/
username?: string;
/**
* parameter for basic security
*
* @type {string}
* @memberof Configuration
*/
password?: string;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePathBeta?: string;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePathV3?: string;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePathV2?: string;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePathCC?: 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) {
if (!param) {
param = this.getParams()
}
this.basePathBeta = param.baseurl + `/beta`
this.basePathV3 = param.baseurl + `/v3`
this.basePathV2 = param.baseurl + `/v2`
this.basePathCC = param.baseurl
this.tokenUrl = param.tokenUrl
this.clientId = param.clientId;
this.clientSecret = param.clientSecret;
const url = `${this.tokenUrl}?grant_type=client_credentials&client_id=${this.clientId}&client_secret=${this.clientSecret}`;
if (!this.accessToken) {
this.accessToken = this.getAccessToken(url);
}
}
private getParams(): ConfigurationParameters {
const config: ConfigurationParameters = {}
try {
const homeDir = os.homedir()
const configPath = path.join(homeDir, '.sailpoint','config.yaml')
const doc = yaml.load(fs.readFileSync(configPath, 'utf8')) as Configuration
if (doc.authtype && doc.authtype.toLowerCase() === 'pat') {
config.baseurl = doc.environments[doc.activeenvironment].baseurl
config.clientId = doc.environments[doc.activeenvironment].pat.clientid
config.clientSecret = doc.environments[doc.activeenvironment].pat.clientsecret
}
} catch (error) {
console.log('unable to find config file')
}
config.baseurl = process.env["SAIL_BASE_URL"] ? process.env["BASE_URL"] : config.baseurl
config.clientId = process.env["SAIL_CLIENT_ID"] ? process.env["CLIENT_ID"] : config.clientId
config.clientSecret = process.env["SAIL_CLIENT_SECRET"] ? process.env["CLIENT_SECRET"] : config.clientSecret
config.tokenUrl = config.baseurl + '/oauth/token'
return config
}
private async getAccessToken(url: string): Promise<string> {
try {
const {data, status} = await axios.post(url)
if (status === 200) {
return data.access_token;
} else {
throw new Error("Unauthorized")
}
} catch (error) {
console.error("Unable to fetch access token. Aborting.");
throw new Error(error);
}
}
/**
* 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');
}
}

147
dist/configuration.d.ts vendored Normal file
View File

@@ -0,0 +1,147 @@
import { IAxiosRetryConfig } from "axios-retry";
export interface ConfigurationParameters {
baseurl?: string;
clientId?: string;
clientSecret?: string;
accessToken?: string;
tokenUrl?: string;
}
export interface Configuration {
activeenvironment?: string;
authtype?: string;
customexporttemplatespath?: string;
customsearchtemplatespath?: string;
debug?: boolean;
environments?: {
[key: string]: Environment;
};
}
export interface Environment {
baseurl: string;
pat: Pat;
tenanturl: string;
}
export interface Pat {
clientid: string;
clientsecret: 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>);
/**
* parameter for clientId
*
* @type {string}
* @memberof Configuration
*/
clientId?: string;
/**
* parameter for clientSecret
*
* @type {string}
* @memberof Configuration
*/
clientSecret?: string;
/**
* parameter for clientSecret
*
* @type {string}
* @memberof Configuration
*/
/**
* parameter for oauth2 security
* @param name security name
* @param scopes oauth2 scope
* @memberof Configuration
*/
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
/**
* parameter for clientId
*
* @type {string}
* @memberof Configuration
*/
tokenUrl?: string;
/**
* parameter for basic security
*
* @type {string}
* @memberof Configuration
*/
username?: string;
/**
* parameter for basic security
*
* @type {string}
* @memberof Configuration
*/
password?: string;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePathBeta?: string;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePathV3?: string;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePathV2?: string;
/**
* override base path
*
* @type {string}
* @memberof Configuration
*/
basePathCC?: 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);
private getParams;
private getAccessToken;
/**
* 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;
}

126
dist/configuration.js vendored Normal file
View File

@@ -0,0 +1,126 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Configuration = void 0;
var axios_1 = require("axios");
var os = require("os");
var path = require("path");
var yaml = require("js-yaml");
var fs = require("fs");
var Configuration = /** @class */ (function () {
function Configuration(param) {
if (!param) {
param = this.getParams();
}
this.basePathBeta = param.baseurl + "/beta";
this.basePathV3 = param.baseurl + "/v3";
this.basePathV2 = param.baseurl + "/v2";
this.basePathCC = param.baseurl;
this.tokenUrl = param.tokenUrl;
this.clientId = param.clientId;
this.clientSecret = param.clientSecret;
var url = "".concat(this.tokenUrl, "?grant_type=client_credentials&client_id=").concat(this.clientId, "&client_secret=").concat(this.clientSecret);
if (!this.accessToken) {
this.accessToken = this.getAccessToken(url);
}
}
Configuration.prototype.getParams = function () {
var config = {};
try {
var homeDir = os.homedir();
var configPath = path.join(homeDir, '.sailpoint', 'config.yaml');
var doc = yaml.load(fs.readFileSync(configPath, 'utf8'));
if (doc.authtype && doc.authtype.toLowerCase() === 'pat') {
config.baseurl = doc.environments[doc.activeenvironment].baseurl;
config.clientId = doc.environments[doc.activeenvironment].pat.clientid;
config.clientSecret = doc.environments[doc.activeenvironment].pat.clientsecret;
}
}
catch (error) {
console.log('unable to find config file');
}
config.baseurl = process.env["SAIL_BASE_URL"] ? process.env["BASE_URL"] : config.baseurl;
config.clientId = process.env["SAIL_CLIENT_ID"] ? process.env["CLIENT_ID"] : config.clientId;
config.clientSecret = process.env["SAIL_CLIENT_SECRET"] ? process.env["CLIENT_SECRET"] : config.clientSecret;
config.tokenUrl = config.baseurl + '/oauth/token';
return config;
};
Configuration.prototype.getAccessToken = function (url) {
return __awaiter(this, void 0, void 0, function () {
var _a, data, status_1, error_1;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
_b.trys.push([0, 2, , 3]);
return [4 /*yield*/, axios_1.default.post(url)];
case 1:
_a = _b.sent(), data = _a.data, status_1 = _a.status;
if (status_1 === 200) {
return [2 /*return*/, data.access_token];
}
else {
throw new Error("Unauthorized");
}
return [3 /*break*/, 3];
case 2:
error_1 = _b.sent();
console.error("Unable to fetch access token. Aborting.");
throw new Error(error_1);
case 3: return [2 /*return*/];
}
});
});
};
/**
* 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.
*/
Configuration.prototype.isJsonMime = function (mime) {
var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
};
return Configuration;
}());
exports.Configuration = Configuration;
//# sourceMappingURL=configuration.js.map

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

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

3
dist/index.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
export * from "./sdk-output/api";
export { Configuration, ConfigurationParameters } from "./sdk-output/configuration";
export * as axiosRetry from "axios-retry";

22
dist/index.js vendored Normal file
View File

@@ -0,0 +1,22 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.axiosRetry = exports.Configuration = void 0;
__exportStar(require("./sdk-output/api"), exports);
var configuration_1 = require("./sdk-output/configuration");
Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return configuration_1.Configuration; } });
exports.axiosRetry = require("axios-retry");
//# sourceMappingURL=index.js.map

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

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAiC;AAEjC,4DAAkF;AAA1E,8GAAA,aAAa,OAAA;AAErB,4CAAyC"}

View File

@@ -24,40 +24,16 @@ export interface PaginationParams {
*/ */
filters?: string; filters?: string;
} }
export interface AxiosResponse<T = any, D = any> {
export interface AxiosResponse<T = any, D = any> {
data: T; data: T;
status: number; status: number;
statusText: string; statusText: string;
request?: any; request?: any;
headers: AxiosResponseHeaders; headers: AxiosResponseHeaders;
} }
export type AxiosResponseHeaders = Record<string, string> & { export declare type AxiosResponseHeaders = Record<string, string> & {
"set-cookie"?: string[] "set-cookie"?: string[];
}; };
export declare class Paginator {
export class Paginator { static paginate<T, TResult, A extends PaginationParams>(thisArg: T, callbackFn: (this: T, args: A) => Promise<AxiosResponse<TResult[], any>>, args?: A, increment?: number): Promise<AxiosResponse<TResult[], any>>;
public static async paginate<T, TResult, A extends PaginationParams>(thisArg: T, callbackFn: (this: T, args: A) => Promise<AxiosResponse<TResult[], any>>, args?: A, increment?: number): Promise<AxiosResponse<TResult[], any>> { }
let params: PaginationParams = args ? args : {limit: 0, offset: 0}
const maxLimit = params && params.limit ? params.limit : 0
if (!params.offset) {
params.offset = 0
}
if (!increment) {
increment = 250
}
params.limit = increment
let modified: TResult[] = []
while (true) {
console.log(`Paginating call, offset = ${params.offset}`)
let results = await callbackFn.call(thisArg, params)
modified.push.apply(modified, results.data)
if (results.data.length < increment || (params.offset >= maxLimit && maxLimit > 0)) {
results.data = modified
return results
}
params.offset += increment
}
}
}

81
dist/paginator.js vendored Normal file
View File

@@ -0,0 +1,81 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Paginator = void 0;
var Paginator = /** @class */ (function () {
function Paginator() {
}
Paginator.paginate = function (thisArg, callbackFn, args, increment) {
return __awaiter(this, void 0, void 0, function () {
var params, maxLimit, modified, results;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
params = args ? args : { limit: 0, offset: 0 };
maxLimit = params && params.limit ? params.limit : 0;
if (!params.offset) {
params.offset = 0;
}
if (!increment) {
increment = 250;
}
params.limit = increment;
modified = [];
_a.label = 1;
case 1:
if (!true) return [3 /*break*/, 3];
console.log("Paginating call, offset = ".concat(params.offset));
return [4 /*yield*/, callbackFn.call(thisArg, params)];
case 2:
results = _a.sent();
modified.push.apply(modified, results.data);
if (results.data.length < increment || (params.offset >= maxLimit && maxLimit > 0)) {
results.data = modified;
return [2 /*return*/, results];
}
params.offset += increment;
return [3 /*break*/, 1];
case 3: return [2 /*return*/];
}
});
});
};
return Paginator;
}());
exports.Paginator = Paginator;
//# sourceMappingURL=paginator.js.map

1
dist/paginator.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"paginator.js","sourceRoot":"","sources":["../paginator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA;IAAA;IAwBA,CAAC;IAvBuB,kBAAQ,GAA5B,UAAqE,OAAU,EAAE,UAAwE,EAAE,IAAQ,EAAE,SAAkB;;;;;;wBAC/K,MAAM,GAAqB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAA;wBAC5D,QAAQ,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;wBAC1D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;4BAChB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;yBACpB;wBACD,IAAI,CAAC,SAAS,EAAE;4BACZ,SAAS,GAAG,GAAG,CAAA;yBAClB;wBACD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAA;wBAEpB,QAAQ,GAAc,EAAE,CAAA;;;6BACrB,IAAI;wBACP,OAAO,CAAC,GAAG,CAAC,oCAA6B,MAAM,CAAC,MAAM,CAAE,CAAC,CAAA;wBAC3C,qBAAM,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA;;wBAAhD,OAAO,GAAG,SAAsC;wBACpD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;wBAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;4BAChF,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACvB,sBAAO,OAAO,EAAA;yBACjB;wBACD,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;;;;;;KAEjC;IACL,gBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,8BAAS"}

2861
dist/sdk-output/api.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

4291
dist/sdk-output/api.js vendored Normal file

File diff suppressed because it is too large Load Diff

1
dist/sdk-output/api.js.map vendored Normal file

File diff suppressed because one or more lines are too long

55
dist/sdk-output/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);
}

83
dist/sdk-output/base.js vendored Normal file
View File

@@ -0,0 +1,83 @@
"use strict";
/* 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.
*/
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;
// Some imports not used depending on template conditions
// @ts-ignore
var axios_1 = require("axios");
exports.BASE_PATH = "http://10.10.10.47:32400".replace(/\/+$/, "");
/**
*
* @export
*/
exports.COLLECTION_FORMATS = {
csv: ",",
ssv: " ",
tsv: "\t",
pipes: "|",
};
/**
*
* @export
* @class BaseAPI
*/
var BaseAPI = /** @class */ (function () {
function BaseAPI(configuration, basePath, axios) {
if (basePath === void 0) { basePath = exports.BASE_PATH; }
if (axios === void 0) { axios = axios_1.default; }
this.basePath = basePath;
this.axios = axios;
if (configuration) {
this.configuration = configuration;
this.basePath = configuration.basePath || this.basePath;
}
}
return BaseAPI;
}());
exports.BaseAPI = BaseAPI;
;
/**
*
* @export
* @class RequiredError
* @extends {Error}
*/
var RequiredError = /** @class */ (function (_super) {
__extends(RequiredError, _super);
function RequiredError(field, msg) {
var _this = _super.call(this, msg) || this;
_this.field = field;
_this.name = "RequiredError";
return _this;
}
return RequiredError;
}(Error));
exports.RequiredError = RequiredError;
//# sourceMappingURL=base.js.map

1
dist/sdk-output/base.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../sdk-output/base.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;AAIH,yDAAyD;AACzD,aAAa;AACb,+BAAqF;AAExE,QAAA,SAAS,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAExE;;;GAGG;AACU,QAAA,kBAAkB,GAAG;IAC9B,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,GAAG;CACb,CAAC;AAYF;;;;GAIG;AACH;IAGI,iBAAY,aAA6B,EAAY,QAA4B,EAAY,KAAkC;QAA1E,yBAAA,EAAA,WAAmB,iBAAS;QAAY,sBAAA,EAAA,QAAuB,eAAW;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;IACL,cAAC;AAAD,CAAC,AATD,IASC;AATY,0BAAO;AASnB,CAAC;AAEF;;;;;GAKG;AACH;IAAmC,iCAAK;IAEpC,uBAAmB,KAAa,EAAE,GAAY;QAA9C,YACI,kBAAM,GAAG,CAAC,SACb;QAFkB,WAAK,GAAL,KAAK,CAAQ;QADhC,UAAI,GAAoB,eAAe,CAAC;;IAGxC,CAAC;IACL,oBAAC;AAAD,CAAC,AALD,CAAmC,KAAK,GAKvC;AALY,sCAAa"}

50
dist/sdk-output/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>;

176
dist/sdk-output/common.js vendored Normal file
View File

@@ -0,0 +1,176 @@
"use strict";
/* 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.
*/
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;
var base_1 = require("./base");
var axios_retry_1 = require("axios-retry");
/**
*
* @export
*/
exports.DUMMY_BASE_URL = 'https://example.com';
/**
*
* @throws {RequiredError}
* @export
*/
var assertParamExists = function (functionName, paramName, paramValue) {
if (paramValue === null || paramValue === undefined) {
throw new base_1.RequiredError(paramName, "Required parameter ".concat(paramName, " was null or undefined when calling ").concat(functionName, "."));
}
};
exports.assertParamExists = assertParamExists;
/**
*
* @export
*/
var setApiKeyToObject = function (object, keyParamName, configuration) {
return __awaiter(this, void 0, void 0, function () {
var localVarApiKeyValue, _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5];
if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2];
return [4 /*yield*/, configuration.apiKey(keyParamName)];
case 1:
_a = _b.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, configuration.apiKey];
case 3:
_a = _b.sent();
_b.label = 4;
case 4:
localVarApiKeyValue = _a;
object[keyParamName] = localVarApiKeyValue;
_b.label = 5;
case 5: return [2 /*return*/];
}
});
});
};
exports.setApiKeyToObject = setApiKeyToObject;
/**
*
* @export
*/
var setSearchParams = function (url) {
var objects = [];
for (var _i = 1; _i < arguments.length; _i++) {
objects[_i - 1] = arguments[_i];
}
var searchParams = new URLSearchParams(url.search);
for (var _a = 0, objects_1 = objects; _a < objects_1.length; _a++) {
var object = objects_1[_a];
for (var key in object) {
if (Array.isArray(object[key])) {
searchParams.delete(key);
for (var _b = 0, _c = object[key]; _b < _c.length; _b++) {
var item = _c[_b];
searchParams.append(key, item);
}
}
else {
searchParams.set(key, object[key]);
}
}
}
url.search = searchParams.toString();
};
exports.setSearchParams = setSearchParams;
/**
*
* @export
*/
var serializeDataIfNeeded = function (value, requestOptions, configuration) {
var nonString = typeof value !== 'string';
var needsSerialization = nonString && configuration && configuration.isJsonMime
? configuration.isJsonMime(requestOptions.headers['Content-Type'])
: nonString;
return needsSerialization
? JSON.stringify(value !== undefined ? value : {})
: (value || "");
};
exports.serializeDataIfNeeded = serializeDataIfNeeded;
/**
*
* @export
*/
var toPathString = function (url) {
return url.pathname + url.search + url.hash;
};
exports.toPathString = toPathString;
/**
*
* @export
*/
var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
return function (axios, basePath) {
if (axios === void 0) { axios = globalAxios; }
if (basePath === void 0) { basePath = BASE_PATH; }
(0, axios_retry_1.default)(globalAxios, configuration.retriesConfig);
var axiosRequestArgs = __assign(__assign({}, axiosArgs.axiosOptions), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePath) || basePath) + axiosArgs.url });
return axios.request(axiosRequestArgs);
};
};
exports.createRequestFunction = createRequestFunction;
//# sourceMappingURL=common.js.map

1
dist/sdk-output/common.js.map vendored Normal file
View File

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

65
dist/sdk-output/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;
}

40
dist/sdk-output/configuration.js vendored Normal file
View File

@@ -0,0 +1,40 @@
"use strict";
/* 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.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Configuration = void 0;
var Configuration = /** @class */ (function () {
function Configuration(param) {
if (param === void 0) { 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.
*/
Configuration.prototype.isJsonMime = function (mime) {
var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
};
return Configuration;
}());
exports.Configuration = Configuration;
//# sourceMappingURL=configuration.js.map

1
dist/sdk-output/configuration.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../sdk-output/configuration.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,oBAAoB;AACpB;;;;;;;;;;GAUG;;;AAWH;IAyCI,uBAAY,KAAmC;QAAnC,sBAAA,EAAA,UAAmC;QAE3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEnC,CAAC;IAED;;;;;;;;;OASG;IACI,kCAAU,GAAjB,UAAkB,IAAY;QAC1B,IAAM,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;IACL,oBAAC;AAAD,CAAC,AA9DD,IA8DC;AA9DY,sCAAa"}

12
dist/sdk-output/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";

31
dist/sdk-output/index.js vendored Normal file
View File

@@ -0,0 +1,31 @@
"use strict";
/* 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.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./api"), exports);
//# sourceMappingURL=index.js.map

1
dist/sdk-output/index.js.map vendored Normal file
View File

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

View File

@@ -1,24 +1,5 @@
/* tslint:disable */
/* eslint-disable */
/**
* IdentityNow V3 API
* Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.
*
* The version of the OpenAPI document: 3.0.0
*
*
* 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 "./sdk-output/api"; export * from "./sdk-output/api";
export {Configuration as ConfigurationBeta, ConfigurationParameters as ConfigurationParameter} from "./sdk-output/configuration";
export {Configuration, ConfigurationParameters} from "./configuration"; export {Configuration, ConfigurationParameters} from "./sdk-output/configuration";
export * from "./paginator";
export * as axiosRetry from "axios-retry" export * as axiosRetry from "axios-retry"

BIN
openapi-generator-cli.jar Normal file

Binary file not shown.

8
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "plexjs", "name": "@lukehagar/plexjs",
"version": "0.0.1", "version": "0.0.5",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "plexjs", "name": "@lukehagar/plexjs",
"version": "0.0.1", "version": "0.0.5",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"axios": "^0.26.1", "axios": "^0.26.1",

View File

@@ -1,11 +1,11 @@
{ {
"name": "plexjs", "name": "@lukehagar/plexjs",
"version": "0.0.1", "version": "0.0.5",
"description": "Community Made Plex JS/TS Module", "description": "Community Made Plex JS/TS Module",
"author": "Luke Hagar", "author": "Luke Hagar",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/lukehagar/plexjs.git" "url": "https://github.com/LukeHagar/plexjs.git"
}, },
"keywords": [ "keywords": [
"axios", "axios",
@@ -18,7 +18,7 @@
"access": "public" "access": "public"
}, },
"bugs": { "bugs": {
"url": "https://github.com/lukehagar/plexjs/issues" "url": "https://github.com/LukeHagar/plexjs/issues"
}, },
"main": "./dist/index.js", "main": "./dist/index.js",
"typings": "./dist/index.d.ts", "typings": "./dist/index.d.ts",

4
sdk-output/.gitignore vendored Normal file
View File

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

1
sdk-output/.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
sdk-output/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

4762
sdk-output/api.ts Normal file

File diff suppressed because it is too large Load Diff

71
sdk-output/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
sdk-output/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);
};
}

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
sdk-output/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
sdk-output/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";

35
sdk-output/package.json Normal file
View File

@@ -0,0 +1,35 @@
{
"name": "plexjs",
"version": "0.0.5",
"description": "OpenAPI client for plexjs",
"author": "OpenAPI-Generator Contributors",
"repository": {
"type": "git",
"url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git"
},
"keywords": [
"axios",
"typescript",
"openapi-client",
"openapi-generator",
"plexjs"
],
"license": "Unlicense",
"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
sdk-output/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"
]
}

View File

@@ -3,7 +3,7 @@
{{>licenseInfo}} {{>licenseInfo}}
{{^withSeparateModelsAndApi}} {{^withSeparateModelsAndApi}}
import { Configuration } from '../configuration'; import { Configuration } from './configuration';
import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
{{#withNodeImports}} {{#withNodeImports}}
// URLSearchParams not necessarily used // URLSearchParams not necessarily used

View File

@@ -2,7 +2,7 @@
/* eslint-disable */ /* eslint-disable */
{{>licenseInfo}} {{>licenseInfo}}
import { Configuration } from "../configuration"; import { Configuration } from "./configuration";
// Some imports not used depending on template conditions // Some imports not used depending on template conditions
// @ts-ignore // @ts-ignore
import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';
@@ -41,7 +41,7 @@ export class BaseAPI {
constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
if (configuration) { if (configuration) {
this.configuration = configuration; this.configuration = configuration;
this.basePath = configuration.basePathV3 || this.basePath; this.basePath = configuration.basePath || this.basePath;
} }
} }
}; };

View File

@@ -2,7 +2,7 @@
/* eslint-disable */ /* eslint-disable */
{{>licenseInfo}} {{>licenseInfo}}
import { Configuration } from "../configuration"; import { Configuration } from "./configuration";
import { RequiredError, RequestArgs } from "./base"; import { RequiredError, RequestArgs } from "./base";
import { AxiosInstance, AxiosResponse } from 'axios'; import { AxiosInstance, AxiosResponse } from 'axios';
import axiosRetry from "axios-retry"; import axiosRetry from "axios-retry";
@@ -40,41 +40,6 @@ export const setApiKeyToObject = async function (object: any, keyParamName: stri
} }
} }
/**
*
* @export
*/
export const setBasicAuthToObject = function (object: any, configuration?: Configuration) {
if (configuration && (configuration.username || configuration.password)) {
object["auth"] = { username: configuration.username, password: configuration.password };
}
}
/**
*
* @export
*/
export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {
if (configuration && configuration.accessToken) {
const accessToken = typeof configuration.accessToken === 'function'
? await configuration.accessToken()
: await configuration.accessToken;
object["Authorization"] = "Bearer " + accessToken;
}
}
/**
*
* @export
*/
export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {
if (configuration && configuration.accessToken) {
const localVarAccessTokenValue = typeof configuration.accessToken === 'function'
? await configuration.accessToken(name, scopes)
: await configuration.accessToken;
object["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
}
/** /**
* *
@@ -126,8 +91,7 @@ export const toPathString = function (url: URL) {
export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) { 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) => { return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
axiosRetry(globalAxios, configuration.retriesConfig) axiosRetry(globalAxios, configuration.retriesConfig)
axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-{{npmVersion}}' const axiosRequestArgs = {...axiosArgs.axiosOptions, url: (configuration?.basePath || basePath) + axiosArgs.url};
const axiosRequestArgs = {...axiosArgs.axiosOptions, url: (configuration?.basePathV3 || basePath) + axiosArgs.url};
return axios.request<T, R>(axiosRequestArgs); return axios.request<T, R>(axiosRequestArgs);
}; };
} }

View File

@@ -1,15 +1,13 @@
/* tslint:disable */ /* tslint:disable */
/* eslint-disable */ /* eslint-disable */
{{>licenseInfo}} {{>licenseInfo}}
import { IAxiosRetryConfig } from "axios-retry";
export interface ConfigurationParameters { export interface ConfigurationParameters {
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>); apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
username?: string;
password?: string;
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
basePath?: string; basePath?: string;
baseOptions?: any;
formDataCtor?: new () => any;
} }
export class Configuration { export class Configuration {
@@ -19,27 +17,7 @@ export class Configuration {
* @memberof Configuration * @memberof Configuration
*/ */
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>); apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
/**
* parameter for basic security
*
* @type {string}
* @memberof Configuration
*/
username?: string;
/**
* parameter for basic security
*
* @type {string}
* @memberof Configuration
*/
password?: string;
/**
* parameter for oauth2 security
* @param name security name
* @param scopes oauth2 scope
* @memberof Configuration
*/
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
/** /**
* override base path * override base path
* *
@@ -47,6 +25,7 @@ export class Configuration {
* @memberof Configuration * @memberof Configuration
*/ */
basePath?: string; basePath?: string;
/** /**
* base options for axios calls * base options for axios calls
* *
@@ -54,6 +33,7 @@ export class Configuration {
* @memberof Configuration * @memberof Configuration
*/ */
baseOptions?: any; baseOptions?: any;
/** /**
* The FormData constructor that will be used to create multipart form data * The FormData constructor that will be used to create multipart form data
* requests. You can inject this here so that execution environments that * requests. You can inject this here so that execution environments that
@@ -63,14 +43,19 @@ export class Configuration {
*/ */
formDataCtor?: new () => any; formDataCtor?: new () => any;
/**
* axios retry configuration
*
* @type {IAxiosRetryConfig}
* @memberof Configuration
*/
retriesConfig?: IAxiosRetryConfig
constructor(param: ConfigurationParameters = {}) { constructor(param: ConfigurationParameters = {}) {
this.apiKey = param.apiKey; this.apiKey = param.apiKey;
this.username = param.username;
this.password = param.password;
this.accessToken = param.accessToken;
this.basePath = param.basePath; this.basePath = param.basePath;
this.baseOptions = param.baseOptions;
this.formDataCtor = param.formDataCtor;
} }
/** /**