Compare commits

...

69 Commits

Author SHA1 Message Date
LukeHagar
b868a95db1 Bump version to 0.0.16 2023-04-18 19:21:40 +00:00
Luke Hagar
7d18553ff0 Merge branch 'main' of https://github.com/LukeHagar/plexjs 2023-04-18 14:20:07 -05:00
Luke Hagar
e83d09070a examples and exports 2023-04-18 14:20:04 -05:00
LukeHagar
0794b8457e Bump version to 0.0.15 2023-04-18 18:41:24 +00:00
Luke Hagar
c6ba56222a Update bump_version.yml 2023-04-18 13:40:27 -05:00
Luke Hagar
e8f38b8d0a Update bump_version.yml 2023-04-18 13:37:21 -05:00
Luke Hagar
898fa0212d Merge branch 'main' of https://github.com/LukeHagar/plexjs 2023-04-18 13:36:06 -05:00
Luke Hagar
67a632bbc2 Update bump_version.yml 2023-04-18 13:35:57 -05:00
LukeHagar
19c72dd7d3 Bump version to 0.0.13 2023-04-18 18:32:10 +00:00
Luke Hagar
f4e18606ce Merge branch 'main' of https://github.com/LukeHagar/plexjs 2023-04-18 13:31:21 -05:00
Luke Hagar
dfb04b01ca Update bump_version.yml 2023-04-18 13:31:13 -05:00
LukeHagar
59185de71e Bump version to 0.0.12 2023-04-18 18:30:31 +00:00
Luke Hagar
ef52691a35 working on npm publish version 2023-04-18 13:29:02 -05:00
LukeHagar
5ae5c02dbf Bump version to 0.0.11 2023-04-18 18:24:35 +00:00
Luke Hagar
3da49e7178 Merge branch 'main' of https://github.com/LukeHagar/plexjs 2023-04-18 13:23:51 -05:00
Luke Hagar
e8658f4d85 all in one workflow 2023-04-18 13:23:45 -05:00
LukeHagar
db5f6e554a Bump version to 0.0.10 2023-04-18 18:21:16 +00:00
Luke Hagar
05e801ee19 Merge branch 'main' of https://github.com/LukeHagar/plexjs 2023-04-18 13:20:26 -05:00
Luke Hagar
b4e644b42b Update bump_version.yml 2023-04-18 13:20:20 -05:00
LukeHagar
6c27a91f07 Bump version to 0.0.9 2023-04-18 18:18:32 +00:00
Luke Hagar
abc76a4a13 Update index.mustache 2023-04-18 13:17:34 -05:00
Luke Hagar
1021fd9033 Update bump_version.yml 2023-04-18 13:16:21 -05:00
Luke Hagar
5cf4bcc6f6 Merge branch 'main' of https://github.com/LukeHagar/plexjs 2023-04-18 13:14:11 -05:00
Luke Hagar
7c7a7acbd9 Adding examples package 2023-04-18 13:14:05 -05:00
LukeHagar
ec6c29f064 Bump version to 0.0.7 2023-04-18 18:07:31 +00:00
Luke Hagar
caa2765c5f Update package.mustache 2023-04-18 13:06:36 -05:00
LukeHagar
1ec095ed56 Bump version to 0.0.6 2023-04-18 17:59:20 +00:00
Luke Hagar
aefb6027f3 Update bump_version.yml 2023-04-18 12:57:40 -05:00
GitHub Action Bot
dc44c91c24 Automated build '' typescript-axios sdk: 4735449858 2023-04-18 17:53:45 +00:00
Luke Hagar
d6277545f3 Update package.mustache 2023-04-17 20:03:35 -05:00
Luke Hagar
bebf4d93ae cleanup 2023-04-17 15:11:29 -05:00
Luke Hagar
2b8140dc54 Merge branch 'main' of https://github.com/LukeHagar/plexjs 2023-04-17 15:08:32 -05:00
Luke Hagar
7cb29166f7 Update .gitignore 2023-04-17 15:08:25 -05:00
GitHub Action Bot
ea30cd0cc5 Automated build 'Added resource parameters' typescript-axios sdk: 4725309673 2023-04-17 20:03:38 +00:00
Luke Hagar
1be0bd7858 Action and folder cleanup 2023-04-17 14:46:03 -05:00
Luke Hagar
ec8a3f7026 Update config.yaml 2023-04-17 14:09:46 -05:00
GitHub Action Bot
866ca99ca2 Automated build 'Security' typescript-axios sdk: 4723017542 2023-04-17 15:33:39 +00:00
Luke Hagar
01738e4720 adjusted project structure 2023-04-17 09:41:47 -05:00
GitHub Action Bot
d2c3838c84 Automated build 'Adjusting Headers and parameters' typescript-axios sdk: 4722224093 2023-04-17 14:14:51 +00:00
GitHub Action Bot
b57c6be086 Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4695449944 2023-04-14 01:37:25 +00:00
GitHub Action Bot
747686ef12 Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4695295998 2023-04-14 01:10:46 +00:00
GitHub Action Bot
7bc89004b3 Automated build 'Adjusted Required Parameters, Populated Global Parameters on all endpointss' typescript-axios sdk: 4695261283 2023-04-14 01:04:31 +00:00
GitHub Action Bot
b29457e4fb Automated build 'Update pins.yaml' typescript-axios sdk: 4682879987 2023-04-12 21:04:57 +00:00
GitHub Action Bot
8af9e78276 Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4681414548 2023-04-12 18:01:00 +00:00
GitHub Action Bot
a9c96763c0 Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4681161204 2023-04-12 17:27:24 +00:00
GitHub Action Bot
84942e4573 Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4681041552 2023-04-12 17:13:57 +00:00
GitHub Action Bot
ab8210088d Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4680550303 2023-04-12 16:17:26 +00:00
GitHub Action Bot
49516f4698 Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4680407435 2023-04-12 16:03:00 +00:00
GitHub Action Bot
0dd1acd733 Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4680335894 2023-04-12 15:55:38 +00:00
GitHub Action Bot
d5d4cf625d Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4680304111 2023-04-12 15:51:52 +00:00
GitHub Action Bot
0acf65e505 Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4679704586 2023-04-12 14:51:28 +00:00
GitHub Action Bot
644d4d0e4a Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4679428838 2023-04-12 14:24:01 +00:00
GitHub Action Bot
632f8d111f Automated build 'Merge branch 'main' of https://github.com/LukeHagar/plex-api-spec' typescript-axios sdk: 4679363310 2023-04-12 14:18:12 +00:00
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
35 changed files with 6059 additions and 511 deletions

View File

@@ -26,17 +26,17 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: "16"
- name: Build TS SDK
id: buildTS
run: |
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.3.0/openapi-generator-cli-6.3.0.jar -O openapi-generator-cli.jar
rm -rf sdk-output/
java -jar openapi-generator-cli.jar generate -i api-specs/referenced/plex-api-spec.yaml -g typescript-axios -o sdk-output/ --global-property skipFormModel=false --config config.yaml
rm -rf plexjs/
java -jar openapi-generator-cli.jar generate -i api-specs/referenced/plex-api-spec.yaml -g typescript-axios -o plexjs/ --global-property skipFormModel=false --config config.yaml
- name: Run npm install and build Typescript SDK
id: buildSDK
if: steps.buildTS.outcome == 'success'
run: |
cd plexjs
npm install
npm run build
npm run build

View File

@@ -5,6 +5,11 @@ on:
inputs:
version:
description: The version to bump to
push:
branches:
- main
paths:
- plexjs/**
jobs:
update_typescript_version:
@@ -19,14 +24,13 @@ jobs:
ref: ${{ github.ref }}
fetch-depth: 0
- name: Checkout API Specs Repo
uses: actions/checkout@v3
with:
repository: lukehagar/plex-api-spec
path: api-specs
ref: main
- name: Set up Node
uses: actions/setup-node@v3
with:
@@ -56,32 +60,41 @@ jobs:
run: |
yq -i '.npmVersion = "${{ github.event.inputs.version }}"' config.yaml
## Update package.json file with new version
- name: Update package.json version
id: updatePackageJsonVersion
if: steps.updateVersion.outcome == 'success'
run: |
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
- name: Build TS SDK
id: buildTS
run: |
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.3.0/openapi-generator-cli-6.3.0.jar -O openapi-generator-cli.jar
rm -rf sdk-output/
java -jar openapi-generator-cli.jar generate -i api-specs/referenced/plex-api-spec.yaml -g typescript-axios -o sdk-output/ --global-property skipFormModel=false --config config.yaml
rm -rf plexjs/
java -jar openapi-generator-cli.jar generate -i api-specs/referenced/plex-api-spec.yaml -g typescript-axios -o plexjs/ --global-property skipFormModel=false --config config.yaml
- name: After SDK Build
id: buildSDK
if: steps.buildTS.outcome == 'success'
run: |
cd plexjs
npm install
npm run build
- name: Publish to NPM
id: publish
uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./plexjs/package.json
- name: Commit changes and create new version tag
if: steps.buildSDK.outcome == 'success'
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Bump version to ${{ github.event.inputs.version }}
tagging_message: ${{ github.event.inputs.version }}
tagging_message: ${{ github.event.inputs.version }}
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }}
draft: false
prerelease: false

View File

@@ -1,20 +0,0 @@
name: Publish SDK package to npmjs
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# Setup .npmrc file to publish to npm
- uses: actions/setup-node@v3
with:
node-version: 12
- run: |
npm ci
- id: publish
uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./sdk-output/package.json

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
node_modules
build
dist
api-specs
.env

View File

@@ -5,5 +5,8 @@ files:
destinationFilename: package.json
npmName: plexjs
npmRepository: lukehagar
npmVersion: 0.0.1
useSingleRequestParameter: true
npmVersion: 0.0.16
useSingleRequestParameter: true
sortParamsByRequiredFlag: true
gitUserID: lukehagar
gitRepoID: plexjs

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');
}
}

4
examples/index.js Normal file
View File

@@ -0,0 +1,4 @@
import { Configuration, DevicesApi } from "@lukehagar/plexjs";
let Config = new Configuration({ basePath: "127.0.0.1:80" });
let devicesApi = new DevicesApi(Config);

16
examples/package.json Normal file
View File

@@ -0,0 +1,16 @@
{
"name": "examples",
"version": "1.0.0",
"description": "Examples using the plexjs package",
"main": "index.js",
"type": "module",
"scripts": {
"dev": "node --experimental-modules index.js ",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "lukehagar",
"license": "MIT",
"devDependencies": {
"@lukehagar/plexjs": "^0.0.15"
}
}

202
examples/yarn-error.log Normal file
View File

@@ -0,0 +1,202 @@
Arguments:
C:\Program Files\nodejs\node.exe C:\Users\Luke\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js dev
PATH:
C:\Python311\Scripts\;C:\Python311\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\Program Files\Docker\Docker\resources\bin;C:\Program Files\Go\bin;C:\Users\Luke\.console-ninja\.bin;C:\Users\Luke\AppData\Local\Microsoft\WindowsApps;C:\Users\Luke\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Luke\AppData\Local\GitHubDesktop\bin;C:\Users\Luke\go\bin;C:\Users\Luke\AppData\Roaming\npm;C:\Users\Luke\go\bin
Yarn version:
1.22.19
Node version:
18.14.2
Platform:
win32 x64
Trace:
SyntaxError: C:\Users\Luke\Documents\GitHub\plexjs\examples\package.json: Unexpected token } in JSON at position 361
at JSON.parse (<anonymous>)
at C:\Users\Luke\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:1629:59
at Generator.next (<anonymous>)
at step (C:\Users\Luke\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:310:30)
at C:\Users\Luke\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:321:13
npm manifest:
{
"name": "examples",
"version": "1.0.0",
"description": "Examples using the plexjs package",
"main": "index.js",
"scripts": {
"dev": "node --experimental-modules index.js ",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "lukehagar",
"license": "MIT",
"devDependencies": {
"@lukehagar/plexjs": "^0.0.15",
}
}
yarn manifest:
No manifest
Lockfile:
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@babel/runtime@^7.15.4":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
dependencies:
regenerator-runtime "^0.13.11"
"@cspotcode/source-map-support@^0.8.0":
version "0.8.1"
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
dependencies:
"@jridgewell/trace-mapping" "0.3.9"
"@jridgewell/resolve-uri@^3.0.3":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@jridgewell/trace-mapping@0.3.9":
version "0.3.9"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
dependencies:
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@lukehagar/plexjs@^0.0.15":
version "0.0.15"
resolved "https://registry.yarnpkg.com/@lukehagar/plexjs/-/plexjs-0.0.15.tgz#fa4bfc7b87b0fb79357ae0eb31e68eeed45de0db"
integrity sha512-reAJ+c5e7MDEZ6xy+zhNQOPEt+O20s/TYoD8wQXf5KjQCXpYas3isDQgSPxSa6PENJPSr32e30bruuXMXyzDmQ==
dependencies:
axios "^0.26.1"
axios-retry "^3.4.0"
"@tsconfig/node10@^1.0.7":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
"@tsconfig/node12@^1.0.7":
version "1.0.11"
resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
"@tsconfig/node14@^1.0.0":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
"@tsconfig/node16@^1.0.2":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e"
integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==
acorn-walk@^8.1.1:
version "8.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
acorn@^8.4.1:
version "8.8.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
arg@^4.1.0:
version "4.1.3"
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
axios-retry@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.4.0.tgz#f464dbe9408e5aa78fa319afd38bb69b533d8854"
integrity sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA==
dependencies:
"@babel/runtime" "^7.15.4"
is-retry-allowed "^2.2.0"
axios@^0.26.1:
version "0.26.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
dependencies:
follow-redirects "^1.14.8"
create-require@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
diff@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
follow-redirects@^1.14.8:
version "1.15.2"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
is-retry-allowed@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d"
integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==
make-error@^1.1.1:
version "1.3.6"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
regenerator-runtime@^0.13.11:
version "0.13.11"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
ts-node@^10.9.1:
version "10.9.1"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
dependencies:
"@cspotcode/source-map-support" "^0.8.0"
"@tsconfig/node10" "^1.0.7"
"@tsconfig/node12" "^1.0.7"
"@tsconfig/node14" "^1.0.0"
"@tsconfig/node16" "^1.0.2"
acorn "^8.4.1"
acorn-walk "^8.1.1"
arg "^4.1.0"
create-require "^1.1.0"
diff "^4.0.1"
make-error "^1.1.1"
v8-compile-cache-lib "^3.0.1"
yn "3.1.1"
typescript@^5.0.4:
version "5.0.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
v8-compile-cache-lib@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
yn@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==

48
examples/yarn.lock Normal file
View File

@@ -0,0 +1,48 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@babel/runtime@^7.15.4":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
dependencies:
regenerator-runtime "^0.13.11"
"@lukehagar/plexjs@^0.0.15":
version "0.0.15"
resolved "https://registry.yarnpkg.com/@lukehagar/plexjs/-/plexjs-0.0.15.tgz#fa4bfc7b87b0fb79357ae0eb31e68eeed45de0db"
integrity sha512-reAJ+c5e7MDEZ6xy+zhNQOPEt+O20s/TYoD8wQXf5KjQCXpYas3isDQgSPxSa6PENJPSr32e30bruuXMXyzDmQ==
dependencies:
axios "^0.26.1"
axios-retry "^3.4.0"
axios-retry@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.4.0.tgz#f464dbe9408e5aa78fa319afd38bb69b533d8854"
integrity sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA==
dependencies:
"@babel/runtime" "^7.15.4"
is-retry-allowed "^2.2.0"
axios@^0.26.1:
version "0.26.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
dependencies:
follow-redirects "^1.14.8"
follow-redirects@^1.14.8:
version "1.15.2"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
is-retry-allowed@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d"
integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==
regenerator-runtime@^0.13.11:
version "0.13.11"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==

View File

@@ -1,24 +0,0 @@
/* 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 {Configuration as ConfigurationBeta, ConfigurationParameters as ConfigurationParameter} from "./sdk-output/configuration";
export {Configuration, ConfigurationParameters} from "./configuration";
export * from "./paginator";
export * as axiosRetry from "axios-retry"

BIN
openapi-generator-cli.jar Normal file

Binary file not shown.

View File

@@ -1,63 +0,0 @@
export interface PaginationParams {
/**
* Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.
* @type {number}
* @memberof AccountsApiListAccounts
*/
limit?: number;
/**
* Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.
* @type {number}
* @memberof AccountsApiListAccounts
*/
offset?: number;
/**
* If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count&#x3D;true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information.
* @type {boolean}
* @memberof AccountsApiListAccounts
*/
count?: boolean;
/**
* Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **id**: *eq, in* **identityId**: *eq* **name**: *eq, in* **nativeIdentity**: *eq, in* **sourceId**: *eq, in* **uncorrelated**: *eq*
* @type {string}
* @memberof AccountsApiListAccounts
*/
filters?: string;
}
export interface AxiosResponse<T = any, D = any> {
data: T;
status: number;
statusText: string;
request?: any;
headers: AxiosResponseHeaders;
}
export type AxiosResponseHeaders = Record<string, string> & {
"set-cookie"?: string[]
};
export class Paginator {
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
}
}
}

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.16
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.16 --save
```
_unPublished (not recommended):_
```
npm install PATH_TO_GENERATED_PACKAGE --save

5250
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'

18
plexjs/index.ts Normal file
View File

@@ -0,0 +1,18 @@
/* 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";
export {ConfigurationParameters, Configuration} from "./configuration";

View File

@@ -1,28 +1,26 @@
{
"name": "plexjs",
"version": "0.0.1",
"name": "@lukehagar/plexjs",
"version": "0.0.16",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "plexjs",
"version": "0.0.1",
"name": "@lukehagar/plexjs",
"version": "0.0.16",
"license": "MIT",
"dependencies": {
"axios": "^0.26.1",
"axios-retry": "^3.4.0",
"js-yaml": "^4.1.0"
"axios-retry": "^3.4.0"
},
"devDependencies": {
"@types/js-yaml": "^4.0.5",
"@types/node": "^12.11.5",
"typescript": "^4.0"
}
},
"node_modules/@babel/runtime": {
"version": "7.20.13",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
"integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
"version": "7.21.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
"integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
"dependencies": {
"regenerator-runtime": "^0.13.11"
},
@@ -30,23 +28,12 @@
"node": ">=6.9.0"
}
},
"node_modules/@types/js-yaml": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz",
"integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==",
"dev": true
},
"node_modules/@types/node": {
"version": "12.20.55",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
"integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
"dev": true
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/axios": {
"version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
@@ -94,26 +81,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
},
"node_modules/typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -126,30 +102,19 @@
},
"dependencies": {
"@babel/runtime": {
"version": "7.20.13",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
"integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
"version": "7.21.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
"integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
"requires": {
"regenerator-runtime": "^0.13.11"
}
},
"@types/js-yaml": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz",
"integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==",
"dev": true
},
"@types/node": {
"version": "12.20.55",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
"integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
"dev": true
},
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"axios": {
"version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
@@ -177,23 +142,15 @@
"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz",
"integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg=="
},
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"requires": {
"argparse": "^2.0.1"
}
},
"regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
},
"typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true
}
}

View File

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

View File

@@ -4,7 +4,7 @@
"target": "ES5",
"module": "CommonJS",
"noImplicitAny": true,
"outDir": "dist",
"outDir": "./dist",
"rootDir": ".",
"lib": [
"es6",
@@ -12,8 +12,7 @@
],
"typeRoots": [
"node_modules/@types"
],
"sourceMap": true
]
},
"exclude": [
"dist",

View File

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

View File

@@ -2,7 +2,7 @@
/* eslint-disable */
{{>licenseInfo}}
import { Configuration } from "../configuration";
import { Configuration } from "./configuration";
// Some imports not used depending on template conditions
// @ts-ignore
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) {
if (configuration) {
this.configuration = configuration;
this.basePath = configuration.basePathV3 || this.basePath;
this.basePath = configuration.basePath || this.basePath;
}
}
};

View File

@@ -2,7 +2,7 @@
/* eslint-disable */
{{>licenseInfo}}
import { Configuration } from "../configuration";
import { Configuration } from "./configuration";
import { RequiredError, RequestArgs } from "./base";
import { AxiosInstance, AxiosResponse } from 'axios';
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) {
return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
axiosRetry(globalAxios, configuration.retriesConfig)
axiosArgs.axiosOptions.headers['X-SailPoint-SDK'] = 'typescript-{{npmVersion}}'
const axiosRequestArgs = {...axiosArgs.axiosOptions, url: (configuration?.basePathV3 || basePath) + axiosArgs.url};
const axiosRequestArgs = {...axiosArgs.axiosOptions, url: (configuration?.basePath || basePath) + axiosArgs.url};
return axios.request<T, R>(axiosRequestArgs);
};
}

View File

@@ -1,15 +1,13 @@
/* tslint:disable */
/* eslint-disable */
{{>licenseInfo}}
import { IAxiosRetryConfig } from "axios-retry";
export interface ConfigurationParameters {
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;
baseOptions?: any;
formDataCtor?: new () => any;
}
export class Configuration {
@@ -19,27 +17,7 @@ export class Configuration {
* @memberof Configuration
*/
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
*
@@ -47,6 +25,7 @@ export class Configuration {
* @memberof Configuration
*/
basePath?: string;
/**
* base options for axios calls
*
@@ -54,6 +33,7 @@ export class Configuration {
* @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
@@ -63,14 +43,19 @@ export class Configuration {
*/
formDataCtor?: new () => any;
/**
* axios retry configuration
*
* @type {IAxiosRetryConfig}
* @memberof Configuration
*/
retriesConfig?: IAxiosRetryConfig
constructor(param: ConfigurationParameters = {}) {
this.apiKey = param.apiKey;
this.username = param.username;
this.password = param.password;
this.accessToken = param.accessToken;
this.basePath = param.basePath;
this.baseOptions = param.baseOptions;
this.formDataCtor = param.formDataCtor;
}
/**

View File

@@ -3,4 +3,5 @@
{{>licenseInfo}}
export * from "./api";
export {ConfigurationParameters, Configuration} from "./configuration";
{{#withSeparateModelsAndApi}}export * from "./{{tsModelPackage}}";{{/withSeparateModelsAndApi}}

View File

@@ -1,24 +1,31 @@
{
"name": "{{npmName}}",
"name": "@lukehagar/plexjs",
"version": "{{npmVersion}}",
"description": "OpenAPI client for {{npmName}}",
"author": "OpenAPI-Generator Contributors",
"description": "Community Made Plex JS/TS Module",
"author": "Luke Hagar",
"type": "module",
"repository": {
"type": "git",
"url": "https://{{gitHost}}/{{gitUserId}}/{{gitRepoId}}.git"
"url": "https://github.com/LukeHagar/plexjs.git"
},
"keywords": [
"axios",
"typescript",
"openapi-client",
"openapi-generator",
"openapi",
"api",
"plex",
"plex media server",
"pms",
"{{npmName}}"
],
"license": "Unlicense",
"license": "MIT",
"bugs": {
"url": "https://github.com/LukeHagar/plexjs/issues"
},
"main": "./dist/index.js",
"typings": "./dist/index.d.ts",
"scripts": {
"build": "tsc --outDir dist/",
"build": "tsc --outDir ./dist",
"prepare": "npm run build"
},
"dependencies": {
@@ -28,10 +35,5 @@
"devDependencies": {
"@types/node": "^12.11.5",
"typescript": "^4.0"
}{{#npmRepository}},{{/npmRepository}}
{{#npmRepository}}
"publishConfig": {
"registry": "{{npmRepository}}"
}
{{/npmRepository}}
}

View File

@@ -4,7 +4,7 @@
"target": "{{#supportsES6}}ES6{{/supportsES6}}{{^supportsES6}}ES5{{/supportsES6}}",
"module": "{{#supportsES6}}ES6{{/supportsES6}}{{^supportsES6}}CommonJS{{/supportsES6}}",
"noImplicitAny": true,
"outDir": "dist",
"outDir": "./dist",
"rootDir": ".",
{{^supportsES6}}
"lib": [